wir35 / marf

Source code for electronic music store MARF 248r
MIT License
19 stars 2 forks source link

Set CYCLE LAST STAGE while running #27

Closed norjad closed 2 years ago

norjad commented 2 years ago

Beta 6

I tried this with the vertical sequencer patch: external clock to MARF's START In, all steps set to STOP.

While the sequence is running, I set step 1 to CYCLE FIRST and then play with CYCLE LAST: I activate CYCLE LAST for a later step (like 7), let it loop for a while. Then I delete it by holding CYCLE LAST down, let all 16 steps loop for some time, then activate CYCLE LAST for a different step and so on...

There are some issues when doing that. Sometimes CYCLE LAST will be not set for the step where I push the switch up. (Often I get a two step sequence despite having pushed the switch way later.)

Sometimes pushing the CYCLE LAST switch up will delete the set CYCLE FIRST and the sequence stops on step 1. When I push the CYCLE FIRST switch up again (still on step 1), the sequence will run and loop again.

I hope this is clear enough. Please let me know if you need a video to reproduce it.

maxl0rd commented 2 years ago

I think this has to do with main loop slowness under heavy external clocking. When clocking externally, extra time is spent trying to acquire the ADCs and the switches are deprioritized. This could result in switches exhibiting sluggish behavior when clocked at higher rates.

We should test this as well without the external clocking where it is just looping a plain sequence.

norjad commented 2 years ago

I just gave it a try with internal clocking, internal sequence: same behaviour.

maxl0rd commented 2 years ago

I came back to this, and I recognize that this could be a neat trick, but I just don't think this is a viable approach.

When you are in display mode, the programming for active switches is applied as soon as you enter the step. When you hit the 'last stage' switch, you better release it before it cycles back to step 1. Otherwise, step 1 immediately becomes last and you are stuck in a 1 step loop.

You can do what you want to do, with the same audible effect, but stay out of display mode when you are toggling the last switch.