SysEx string to retrieve current patch name?

Hi,

I am building an Ambika programmer and I need to retrieve the current patch name from Ambika’s memory. Which SysEx string do I need to send out in order to have Ambika answer with the patch name? I guess this should be doable with the PEEK command mentioned in the manual, somehow?

Thanks, ilmenator

Given you’ll be reading the current patch anyway, can’t you just retrieve that and take the patch name from the resulting SYSEX string?

I am not particularly sure that the patch name is actually transmitted via SysEx?!

I’m sure it is.

a|x

What I used to do years ago in C days was build a struct that represented the voice, then you’d convert to and from sysex. These days you could use an object and serialise/deserialise to sysex, json, html or whatever.

I am doing this on a “high-level” platform that has a number of limits wrt how I can handle data, hence building a struct is not an option.

@alx: at which position in the patch dump / SysEx string can I find the patch name?

It’s all there in the patch.h file?

While there will be a byte or two in front of that, F0 <device id, manufacturer id etc>

// Offset: 68-76
uint8_t name[kPatchNameSize];

That will get you in the right ballpark.

@6581punk: Thanks for taking your time with this and going into the details, but I’m afraid you are referencing the Shruthi patch.h - I can’t seem to find similar information in Ambika’s patch.h, that’s why I’m stuck.

I probably sound like a dork, but are you all sure that the patch name is part of the SysEx patch dump?

The name is not a part of the patch settings.

It is just a file name that is created when the patch is saved to the SD card, and what the last page of the menu system shows is really the name of the last loaded file.

You’ll have to create your own SysEx commands if you want to retrieve/edit that.

Doh, wrong unit argh.

Ah, that makes sense. With the Shruthi-1, there’s no filesystem, as such, so it makes sense to store the patch name in the patch itself.

But with the Ambika, storing the patch name in the patch just adds an unecessary level of complexity.

Since there already a variable storing the filename, it should be possible to modify the Ambika firmware to send that when requested, though, I imagine. It would certainly be helpful to anyone trying to build an editor for the synth.

a|x

So that variable would be kNameTag from storage.cc?

No, it’s Library::name_ . It contains the name of the currently active object (program, multi, patch…)

Thanks Olivier!