squares-and-circles icon indicating copy to clipboard operation
squares-and-circles copied to clipboard

BETA TEST - FEEDBACK

Open eh2k opened this issue 3 years ago • 101 comments

WORK-IN-PROGRESS: At the moment where are not all engines in this repo. Feel free to leave me a message / feedback or any hints in this issue. More engines will follow.

HINT:

If the POGO Pin is soldered - cover the bottom of the teensy with insulating tape - all other pins are compatible with T4 to T3 (see pjrc). Be careful with connecting USB and power at the same time - if you have VIN/VUSB connected.

POGO Pin: https://www.modwiggler.com/forum/viewtopic.php?p=2867702#p2867702

FIRMWARE:

WebFlasher

eh2k avatar Nov 29 '21 22:11 eh2k

Hey there! first of all, absolutely appreciate the work you've put in here! An amazing use of existing hardware and the GUI is very well thought-out, love the menu system and visualization of values.

some things I'd be very happy to see (possibly as settings or simple defines in the source-code?):

  • set long-press duration for menus
  • be able to set encoder / sw button (short-, long- and hold-)functions

modularev avatar Dec 05 '21 13:12 modularev

@modularev thank you for the first feedback. I have reduced the "long-press-duration" duration from 1s to 0.5s in the latest_firmware. At the moment I trying to avoid hardwarespecific settings in the "application" layer. The "Engine::OnEncoder" method is overridable - I think I have to introduce long-press there - e.g. for resting to defaults...

eh2k avatar Dec 05 '21 20:12 eh2k

Is there a way to calibrate the knobs as mine seems to be in the opposite direction? I recall in the ornament and crime this is in the calibration menu.

djdoz avatar Dec 17 '21 01:12 djdoz

Also, for mine ... Channel 2 CV is sequencing the v/oct of Channel 1. Also, how do you get the reverb machines to work? Do you patch the sound into one of the channel inputs?

djdoz avatar Dec 17 '21 03:12 djdoz

Hello @djdoz, thank you for your feedback. I have added a "hardware setup procudurce" in the latest firmware. You can change the encoder direction and test also your CV inputs there. "AUDIO_PROCESSOR" Machines like "Reverb or Resonator" are getting the audio input from the "left" neighbor machine. The output from the neighbor will be replaced, so you can have stereo output (like a Insert-FX). The CV-input can be setup-ed as "aux-input" to patch additional signal into the audio-processors.

eh2k avatar Dec 18 '21 13:12 eh2k

hi, very interesting project, made me finally utilise my abandoned t4:) I would like to ask about current/future midi implementation, having cc control over all parameters could nicely compensate the lack of jack inputs. Also noticed that in models where is not the same amount of parameters on each side, like m-osc/resonator, you can click with the right encoder to empty space - that should probably cycle just between the 2 available.

wtkdwc avatar Dec 19 '21 09:12 wtkdwc

Hello @wtkdwc, thank you for your feedback. I did some midi refactoring in the latest firmware - check: https://github.com/eh2k/squares-and-circles#midi-control. Have also to fix the "empty-parameter-selection-state" - well noticed ;-).

eh2k avatar Dec 19 '21 11:12 eh2k

Thanks @eh2k for the quick turnaround!

One question, in the TR/CV test screen, I'm seeing the below values, TR0 0 CV0 +0.06V TR1 0 CV1 +0.04V TR2 0 CV2 +0.04V TR3 0 CV3 +0.02V

Is it possible to calibrate the CV values?

djdoz avatar Dec 21 '21 10:12 djdoz

Hello @djdoz - sorry - there is no callibration at the momenent (but in my todo list).

eh2k avatar Dec 21 '21 14:12 eh2k

Haven't had a chance to try this yet (teensy 4.0 on the way!), but just wanted to throw in there that a macro control that could map the CV in to arbitrary other params for each machine would be killer.

Also, a copier that allowed any copies to share params (e.g. so you could have 4-oscs with pitch and 3 other params modifiable by CV).

naught101 avatar Dec 26 '21 13:12 naught101

Hello @naught101 - cv is V/OCT per default, but can also be modulation to any parameter of the track or as audio-aux for effects.(https://github.com/eh2k/squares-and-circles#machine-config-per-track).

As I understand the "copier" is like a "single cv modulating multiple parameters across tracks" ?

eh2k avatar Dec 26 '21 22:12 eh2k

@eh2k:

For the first part, what you're describing is assignable CV. What I'm suggesting is a way to make a macro/superknob that modfies any/all other params by some arbitrary amount, e.g. with M-OSC, maybe you could have:

  • Timbre = 0.2 + 0.4 * macro
  • Color = 0.9 - 0.3 * macro
  • FM = 0.2 - 0.05 * macro
  • Assign CV to macro

Where each param's first value is set in the current config screen, and the macro coefficient is set in a macro screen. This would make it possible to use CV to get much more diverse modulation.

Yes, the copier idea would be basically that there are 2-4 copies of this track/machine that share 2-4 CV-parameter assignments, but each parameter's base value (CV=0) can be independently set per track/machine.

naught101 avatar Dec 27 '21 07:12 naught101

@naught101 @eh2k maybe more manageable would be adaptation of modulation config from mk2 analog elektrons, where you have page for each cv in with up to four targets (machine+parameter) and attenuverter for each of these modulations

wtkdwc avatar Dec 27 '21 08:12 wtkdwc

Yes, @wtkdwc that sounds like a much better suggestion that could encompass both of mine in one feature.

naught101 avatar Dec 28 '21 00:12 naught101

@wtkdwc @naught101 thanks for the suggestions - cv-macro-modulation is definitively in the todo-list.

eh2k avatar Dec 28 '21 08:12 eh2k

Thanks for this awesome new firmware! Really appreciate the work going into this.

Would it make sense to mark the stereo machines in the menu somehow? When i first tried out the clap i thought something broke because the kick i had on the other channel obviously stopped playing. I figured that the clap is stereo quite quickly and probably should have taken a look in the manual. On the other hand putting (stereo) behind the corresponding machines shouldn't be a problem right? 😊

fxwiegand avatar Jan 01 '22 16:01 fxwiegand

hello @fxwiegand, thank you for your feedback. Stereo makes the whole thing a bit complicated - on the other hand it's really nice especially with effects. I think the whole thing would be more self-explanatory - if it was visible somehow - maybe a small icon in the corner. I think the clap behavior is still a bug. Actually only fx-engines should overwrite the neighbour signal. I think non-fx engines should logically become mono (if the neighbor is not free).

eh2k avatar Jan 01 '22 21:01 eh2k

@eh2k thanks for update, nice to see the progress, have to try the midi:) btw is there some parameter in the platformio to build it with display upside down, as was flip_180 in o_c?

wtkdwc avatar Jan 10 '22 17:01 wtkdwc

Hello @modularev, @djdoz, @wtkdwc, @naught101, @fxwiegand

I have just uploaded a new squares-and-circles version.

The highlight are the modulations - I think this brings the whole thing to a new level.

If you hold down the encoder the modulation popup is shown for the selected parameter. At the beginning I wanted to implement only the CV-voltage as source, but I quickly got the idea to use the triggers for sample-and-hold, and then only the trigger for generating random values. I'm currently trying to see if I can push the randomness even further - it's a pity that the number of parameters is limited. I hope the whole thing is still understandable and not overcomplicated. Beside the selection of the modulation source there is only one parameter (attenuverter).

New modulations can be added in the code similar to the engines (https://github.com/eh2k/squares-and-circles/blob/main/src/modulations.cxx).

I also changed the logic of the config page. Now you can select any TRIG-Inputs or CV-Inputs for an engine/track. So you can e.g. pass the V/OCT signal for all 4 engines with one CV-input.

On the top right you can see which outputs are used by the engine.

The whole parameter logic was also refactored. I hope I didn't add any new bugs.

I think I have to make another youtube video - demonstrating the modulations.

I wish you a lot of fun with the firmware - and a nice weekend.

eh2k avatar Jan 14 '22 19:01 eh2k

Hey!

Just wanted to say that I've been having an absolute blast with Squares And Circles!! I made a little jam/cover and used this for the drums, would be nice if you could give it a listen :D https://www.youtube.com/watch?v=3MqSL9IBduc

I look forward to trying out this new update. Also, knowing CV calibration is on the horizon is reassuring.

The only issue (outside of CV tracking) that I've been facing with the firmware is that I can't for some reason use drum sounds on both channel 0 and 1; loading a drum engine on channel 1 mutes channel 0 and I don't know how to avoid that... But its still an amazing firmware nonetheless!

Looking forward to seeing all the progress! :D <3

angiamusic avatar Jan 15 '22 11:01 angiamusic

@angiamusic, thanks. I have watched your jam - nice! - it is funny - I could swear I also hear the synths, although you say you used it only for drums!

I think the issue you are describing "stereo handling non fx tracks" is already fixed in the latest firmware.

eh2k avatar Jan 15 '22 20:01 eh2k

Just had a play with the new firmware, the randomisation is really a nice touch, especially on drums to give it a bit of variation.

djdoz avatar Feb 14 '22 09:02 djdoz

For me personally, random modulation is more useful in practice than CV. Thinking a little further, I think a small sequencer with variable step lengths (Randuencer ©) that can be assigned to the parameters as modulations would make the whole thing even more interesting.

eh2k avatar Feb 14 '22 18:02 eh2k

@eh2k Just got this up and running. Its amazing!!! Thanks for your hard work on this. Im very much looking forward to having calibration implemented as I'm having some trouble with pitch when using oscillator engines. The drums are so good though. Wondering if it would be possible to have a level control for all the drum engines? Also would it be possible have a mixing option to allow engines to choose an output? Id love to be able to set up a multi oscillator or a set of drums and have the come out of one output. Lastly I have 2 o&C's and they sit side by side. I can see with your firmware the screen brightness is much lower that the original firmware. Is this possible to adjust?

adh82 avatar Feb 28 '22 01:02 adh82

@adh82, thank you for your feedback.

  • Calibration is in progress (I am currently considering a small "optional" MOD - it should be possible to lower the DAC range to -5...5V simply by adding an additional resistor - 100K parallel to R14 on uOC).
  • Level control: In the latest firmware it is already possible add extra gain on individual outputs (https://github.com/eh2k/squares-and-circles#machine-config).
  • Mixing option: This is really tricky - i don't have a simple solution for this - especially if you add stereo or panning etc.. I am however thinking about adding something similar to the modulation-popup to effect-engines, which allows you to feed in different channels (instead of just the neighboring channel).
  • Display brightness: The next update will include a setting option for this. If someone wants to set the brightness in other O_C / T_U firmware, you can do it this way: https://github.com/eh2k/temps_utile-/blob/master/soft/t_u_REV/src/SH1106_128x64_driver.cpp#L253

eh2k avatar Mar 06 '22 12:03 eh2k

@eh2k, do you think it is feasibile to import the Befaco Noise Phetora algorithms as machines in squares & circles?

djdoz avatar Mar 21 '22 21:03 djdoz

@djdoz

I have just looked at the source code of befaco. Unfortunately, the algorithms are based on the Teensy Audio Library and are distributed under GPL. The sound generation is not completely digital, and would probably be rather unspectacular on the OC without the additional analogue filters.

Theoretically, it should be possible to use the Teensy Audio Library in some way (implement a class based on AudioStream or AudioConnection). You just have to redirect the AudioStream frame-wise into the buffer array in the engine-process-method. But it could be difficult, because of DMA, the whole timing and dependencies to other libraries.

At the moment, for example, all algorithms/engines are hardware-independent and can also be run on a PC (for testing purposes, etc.). With the Teensy Audio Library, this would IMHO no longer be possible.

At the moment I try to avoid GPL code, because I want to keep the option - to make "closed source" engines possible. I think the trend is more towards contributing with e.g. small closed-source "free-ware" engines instead of completely "open sourcing" the algorithms.

eh2k avatar Mar 22 '22 20:03 eh2k

@eh2k thanks for looking into this and the detialed response.

djdoz avatar Mar 25 '22 22:03 djdoz

Hello all,

after some work I want to slowly finish the beta phase, and share the release candidate version with you.

Besides the setup procedure (ADC/DAC calibration and display settings) I have mainly extended and optimized the modulations.

Modulations are now instantiated for each parameter individually - i.e. envelope or LFO with individual frequencies and settings per engine parameter are possible.

Two new FX engines have been added ( Gated-Reverb, Reverb-HP-LP - the algorithms are based on FV-1 emulation ). It is now also possible to virtually mix the input signal of an FX engine from different engines.

Furthermore I have extended the documentation / readme.

I hope there are no new bugs added so far - it is really time-consuming to test the whole thing. I would be pleased for simply reporting back here that e.g. the calibration worked. I have only one module, where I have modded the DAC output to -5V/+5V lately.

eh2k avatar Apr 03 '22 15:04 eh2k

Wow, nice update! Will give this a try.

So, it is possible to port SPIN FV-1 algos onto this now? Does it support both mono and stereo effects?

Also, do you calibrate the module first and then perform the -5V/+5V mod or the other way around? And how would you verify that the -5V/+5V is working. I've triggered some sounds without the mod and by monitoring the waveforms on an oscilloscope it seems like it rarely exceeds -3V/+3V.

djdoz avatar Apr 03 '22 21:04 djdoz