eh2k / squares-and-circles

squares-and-circles is an alternate firmware for the Eurorack module O_C, targeting Teensy 4.
https://eh2k.github.io/□●/
168 stars 14 forks source link

Enhancement idea for the Patch storage. #74

Open koswir opened 7 months ago

koswir commented 7 months ago

I love the Patch storage - it is amazeing!

Would be possible to copy settings from one machine to an another?

I use s&c for poly patches and it takes alot of time to configure all the voices! Anyway even without copy/paste the Patch storage will be super helpful for creating some templates! Thank you @eh2k!

eh2k commented 7 months ago

@koswir - thanks.

Forgot to mention: If you run the FORMAT SD in WebFlasher, all patches (except the last loaded/saved one) are gone. And you can go back to the previous version - the current loaded/saved patch remains active.

I'm thinking about adding the possibility to download all saved patches or a general backup mechanism (sysex dump).


Regarding poly patches - I had once a "experimental" CopyCat engine (which I had discarded).

The idea was e.g. to select a first engine, and then set 1-3 CopyCat engines. If you changed the first engine, the others were also replaced dynamically (UseCase was basically to configure multiple voices. The paramters of the CopyCat were only offsets relative to the first). But in the end it was all very complicated - and the approach didn't quite work out, e.g. with polyphonic MidiEngines like VAx6.

koswir commented 7 months ago

@koswir - thanks.

Forgot to mention: If you run the FORMAT SD in WebFlasher, all patches (except the last loaded/saved one) are gone. And you can go back to the previous version - the current loaded/saved patch remains active.

Good to know. Thanks.

I'm thinking about adding the possibility to download all saved patches or a general backup mechanism (sysex dump).

That would be great!

Regarding poly patches - I had once a "experimental" CopyCat engine (which I had discarded). The idea was e.g. to select a first engine, and then set 1-3 CopyCat engines. If you changed the first engine, the others were also replaced dynamically (UseCase was basically to configure multiple voices. The paramters of the CopyCat were only offsets relative to the first). But in the end it was all very complicated - and the approach didn't quite work out, e.g. with polyphonic MidiEngines like VAx6.

Actually I have been thinking about something like that, but it seems complex even to write a feature idea about it. 😄

What about something like "COPY Machine from x" on the machine-selection-page? s c copy from

eh2k commented 7 months ago

I"m not shure if the following behavior is generally known, so here is a short explanation:

If you select a new engine in the Machines/Engines page by short-presssing-right-encoder then the last IO settings are only kept under certain conditions.

For example, if you change from a fx engine to another fx engine, it would be a pain if the AUX mixer settings were reset each time. On the other hand, if you switch from a fx engine to a synth engine, there are no parameters to take over (e.g. quantizer) - in this case, a reset to a default occurs.

I think this can be confusing, but it is the same behavior since the early versions.

And there are cases where you simply want to reset the default IO settings after changing engines. That's why I also handling the long-press-right-encoder when selecting an engine - here IO-Config is always initialized to default (this is also quite useful for debugging).

I think this can be improved as follows: Instead resetting IO settings to default - i.e. a popup with the following choices would appear:

image image image

Perhaps even more operations ... suggestions welcome.

koswir commented 7 months ago

I"m not shure if the following behavior is generally known, so here is a short explanation: If you select a new engine in the Machines/Engines page by short-presssing-right-encoder then the last IO settings are only kept under certain conditions. And there are cases where you simply want to reset the default IO settings after changing engines. That's why I also handling the long-press-right-encoder when selecting an engine - here IO-Config is always initialized to default (this is also quite useful for debugging).

Wow! I didn't know about it - it's very handy!

I think this can be improved as follows: Instead resetting IO settings to default - i.e. a popup with the following choices would appear:

  • Reset IO-settings (default at the moment)
  • Try keep IO-settings (default short-press)
  • Copy from X (All Parameter-Values + Modulations + IO-Config will be copied)
    • Presumably copying the paramters+modulations only makes sense with same/compatible engines ?!
    • When copying the IO settings, a few special cases will probably be necessary or a mixture of Reset IO-settings and Try keep IO-config. Perhaps even more operations ... suggestions welcome.

I love the idea! I've been contemplating multiple copy choices for special cases, but that might be too complex and messy. I don't think it's necessary. In general, everyone is used to a copy command creating an exact duplicate that can be edited later. In my opinion, copying with All Parameter-Values + Modulations + IO-Config (if possible) is perfect!

image image image

It looks great!

eh2k commented 7 months ago

@koswir

just pushed 36b6694 9b81a8a (just noticed a problem with the copy while testing, and fixed it)

Two "small" enhancements:

Thanks for the "Copy" suggestion - I quite like the way it has now been implemented with the popup.

koswir commented 7 months ago

@eh2k Thank you. I am going to test it over weekend. ~I have already noticed plenty of weird behaviour tho - mostly parameters doesn't work or are not copied properly.~ Ędit: ah I see you have dropped a new version just a few mins ago - going to check it out right now!

eh2k commented 7 months ago

@koswir

please make sure that this is version 9b81a8a (I just fixed the copy bug) - and have edited my previous message.

koswir commented 7 months ago

@eh2k It's all good now! I have only noticed a small thing - m-osc waveforms shape parameter loads by default with "Shape" name. The same happens after copy.

I will test more over weekend! Take care!