Patch Changes and File structure in sd card


#23

Pity they don't do a gray code version.
Delaying patch loading to after the number stays the same for a dozen milliseconds should prevent unwanted patch loading caused by a glitch. But I think you will hardly notice the unwanted load.


#24

Has anybody successfully used "controller/cycle buttons" in conjunction with a gpio/out/digital, to use the S1 and S2 buttons to change patches while triggering a change on an external device? I'm attempting this with both of the commands in the Controller object. TL;DR: By using this setup, pressing S1 or S2 freezes the Axoloti and the controller.

My Teensy-based MIDI controller has a preset system for the knobs that I've set up to be divided between patches, so that each patch contains 16 of its own presets. On the Teensy, I call each set of 16 presets "banks", so patch 1 on the Axoloti is bank 1 on the Teensy, patch 2 = bank 2 etc. Note: with respects to the code, my usage of "bank" has nothing to do with MIDI banks, I just call it that.

I've tested this by trying to light up the internal LED (pin 13) on the Teensy, while cycling through patches (so I have immediate feedback), but the Axoloti freezes or at least stops producing any sound regardless of cycle buttons pressed after, and the LED on the Teensy stays stuck on high. However, lighting up the LED works just fine when "cycle bottons" isn't enabled.

If this simply doesn't work, I'll just wire a whole separate button to trigger both at the same time, S1 and S2 be damned. It just seemed like a nifty idea. Thanks!


#25

i guess axoloti has the GPIO stuck in some position because you call it right before you change patches (which actually will stop the current program and start the next one)

you could measure with a multimeter if that is true.

first lets get the patch changing on axoloti working. do you use a patchbank already? that would be the recommended way.

before you start be sure to have the controller object enabled and take each patch once Live (and save it) so that it get's compiled in. then:

-create a new patchbank
-add all your patches to it
-press "Upload bank table" -> wait for it to finish (see logs)
-select each of the patches in the window and hit "Upload" (bottom left button) -> again see logs.

you should be good to go for the axoloti part. try again with the teensy, maybe it works now?


#26

Yeah, I've been using a patch bank for switching between patches while using a start.bin patch for the startup patch. I"ve never gotten a patch bank to work on startup without a startup patch, but it's never been a problem because it works as intended that way... all except for the patch changing issue mentioned above.

I decided to go with the gpio/in/digital option using a button that's simultaneously wired to the teensy and the Axoloti. It actually works perfectly. Fortunately, there are a couple unused pins in the back of mine and this part only needs 2.

Maybe you can help me with the part that took me the longest though. Do you happen to know when a controller object is applied to a patch that is uploaded to the SD card for standalone use? I understand that if I go live with a patch in the Axoloti Patcher, the controller object is applied on compilation, but when I upload a patch bank, I use patches that I haven't compiled in the patcher for a while. When is the controller object applied to those?

The reason I ask is because you can test basically anything that you add to the controller object while the patcher is live (like if I added a bunch of potentiometers, you can test them right away by going live), but in order to test patch changes, you have to actually go to standalone mode, because switching patches doesn't work in the patcher software for obvious reasons.

And the problem with all of that is, since I don't know specifically when the controller object is applied to patches in a patch bank, if I'm trying out different methods of patch changing (like different buttons, different methods in increment/decrement, etc.), the only thing that I've found to work is wiping the whole SD card and starting over again from uploading a new patch bank, etc. Anything less than wiping the SD card and starting a new patch bank from scratch usually results in the patches retaining the controller object from the most recent patch bank upload following a full wipe of the card. That process took me all night just because of the number of steps involved.

All's well that ends well though, I'm happy with this gpio/in/digital setup.