It can’t know if the patches it finds are bug-free and have been compiled with the current firmware version. It will attempt to load anything that has a matching filename, so the responsibility that all patches are bug-free and loadable is with the user.
On Gills and Big Genes you will be able to trigger it using a long-press on the (right) encoder.
It doesn’t remember the last selected patch (yet?) And always points to 001 when you call up the Manager.
I played around for a bit, added a little mechanism writing a small file to SD card which would contain the last selected patch number, but meh.
There will likely be many issues because I can’t guess how you’re using your Gills or Big Genes …
Let me know if you encounter anything weird!
Or have any suggestions.
The branch manager will not clear the display when a new patch is selected. It is a bit counter-intuitive. I may play around a bit more to find out how to best clear the display before switching patches.
In the meantime, if the frozen branch manager text after switching to a new patch bothers you, you can try dropping a gills/clear display / big genes/clear display object in the patch you switch to, in order to clear the display upon patch start. If the patch you switch to uses the display, you don’t need to do anything as the display is updated by the patch.
Thanks for this! It seems that I can only select one patch though…
On Gills first boot I get the BRANCH MANAGER text and can scroll though whatever patches I have saved and select one using the encoder. I then can’t press the encoder again and select a second patch, it seems the encoder knob is locked out, is that normal?
I have Branch Controller set as a Controller Object under Preferences (ksoloti/gills/controller/branch controller) does it also need to be included in each patch you upload?
Hm, it sounds all correct then. You can scroll through the patches and press the encoder to select one.
You don’t need to drop a branch controller in each patch (though you could do so instead of using the preferences way). The preferences controller setting does just that under the hood - it adds that object in the header of the patch code for each patch you compile.
You have recompiled and re-uploaded to SD card the patches you wish to select so the Branch Controller (set in preferences) is included in each patch’s code.
So when you long-press the encoder (1+ sec.) from such a patch, it doesn’t switch back to the Manager?
Maybe backup your SD card and start from a clean formatted one? (drop utils/format in an empty patch)
Tried reformatting the SD card and recompiled the patches using the Branch Manager as a Controller Object but still no luck. I can see and select whichever patch I want on first boot but then can’t move to a different patch using a long press on the encoder, seems to be locked out.
If I uncheck the box next to the Controller Object under preferences and include the Branch Controller object in each patch instead I can select a patch, use it and then on a long encoder press it does a slight “beep” and goes back to the Branch Manager menu, so that seems to work.
Not sure why the Controller Object version isn’t happy though.
Is it the /gills/ branch controller and not /big genes/?
Let me check again, maybe some changes I made weren’t saved the last time, or I edited the gills object thinking I was on big genes…
Edit: branch controllers look all fine here and the Gills combo works on my two Gills.
Are you using any unusual objects in your patches, or older I2C / display objects?
Any fancy logic utilizing the encoder switch?
Yeah, seem to be using the Gills and not Big Genes.
There’s nothing fancy going on with the test patches, just got three different variations of this so I can hear a different tone when I switch from one to the next, no display object included:
Could it be some irritating Mac thing? I’ve nuked all the security permissions afaik.
You are entirely correct, all your steps should make perfect sense.
Very odd things happening, as usual. Enabling a controller object via prefs is literally the same thing like dropping the object manually in every patch.
I’ll have to confirm with a code diff. Over here the created patch code is literally the same, except different naming of the object.
Could you
Upload a patch to SD card, with controller object set and enabled in the prefs, then pick up the temporary file xpatch.cpp from /Users/YOURNAME/ksoloti/build (Mac)
(You can rename it to xpatch-controller.cpp or something, so it isn’t overwritten)
Go back and upload the same patch to SD card, but with controller object disabled in the prefs, and gills/controller/branch controller dropped manually in the patch, then pick up the same temporary file xpatch.cpp from /Users/YOURNAME/ksoloti/build (Mac)
(You can rename it to xpatch-manual.cpp or something, so it isn’t overwritten)
And send me both files?
This would help me out a lot! Thanks in advance. Let me know if this makes any sense!
Yep, that was it… I’d somehow picked up a load of extraneous characters when cutting and pasting the Controller Object path but they were before ksoloti/gills… so I couldn’t see them in that window until I scrolled backwards.
No error message in the Patcher console though which is interesting, but obviously enough to stop it from loading.
Thanks for your patience!
Questions now are:
How do I get rid of the “beep” when you do the +1 long touch on the encoder to return to the Branch Manager menu?
Is there a way to jump from one patch to another without returning to silence and the Branch Manager menu?
Yep, unusable for live. I’m building on what Axoloti left us with, figuring out how to mute the beep. (It beeps/glitches because audio freezes when SD card is accessed)
Maybe one day. Ideally it should just be the branch controller, and the current patch should keep running until you fire up the next one. This is obviously a challenge as this mechanism must not interfere with the current patch, and when opened it must block the current patches OLED display so it can display the patch list, and also the current patch will have to know somehow which number in the list it is. The issue with the audio glitch/beep when accessing the SD card would remain. Part of the firmware would have to be rewritten to make it non-blocking.
No problem, thanks again for sticking with it. Pleased it was just a simple error on my part, was starting to think perhaps my Gills build had gone wrong somewhere
It turns out it wasn’t too hard to mute the beep. The objects and library have been updated.
Funny enough I was making changes to the controller object and all my efforts had no effect, until I remembered I have to recompile and re-upload all patches too, duh. Bit tedious, but once the Branch combo is more stable we won’t have to reupload all the time.
Also in v1.1.0 opening patches will be more convenient as you can select multiple patches in the file selector, or drop multiple patches from your OS right into the Patcher, etc. You’ll also be able to (mis)use the old Patchbank window to open and/or batch upload patches. So at least uploading a bunch of patches will be fewer steps, which can make all the difference in any creative process.
For this you’ll probably have to resort to the old patchbank / index file system for now. The Branch Manager currently is more of an immediate “check my SD card and allow me to load up any patch you find there” feature.
The advantage of the patchbank / index system is you can select which patches you want, and which order you want them in. You can also change patches via MIDI etc.
The Branch Manager might offer MIDI program change support too, at some point.
But I did make some progress in having the Manager coexist with any running patch, and block off certain parts when it is time to do some managing.
I can’t seem to get Branch Manager working on my Big Genes, either, I’m afraid
I’ve uploaded the Branch Manager patch as the startup patch, and uploaded two other patches to the SD card.
When I restart the module, I get the Branch Manager screen, but the right encoder does nothing, it seems. I can’t scroll to the patches I uploaded.
I’m running the latest (non-beta) release of the patcher software, and have reloaded the library, and refreshed the Ksoloti firmware.
I’m seeing references to the Branch Manager object when I upload patches (nothing in red though, so I assume the objects is successfully being added to the patch binary before upload).
Encoder and button both work fine in other patches, so not a hardware issue.
I did some housekeeping on the encoder object so maybe I messed something up. Double-check that you got both the big genes/branch controller and big genes/branch manager (not gills)