Hi Frits,
I have a couple of hardware synths and was looking over the documentation for the system exlusive features of Podium, thinking of interesting ideas…
Since VSTi’s without a GUI now have a Podium-generated one based on the parameter objects linked to the device definition, would it be too terribly difficult to add that ‘E’-for-edit button to hardware synth definitions as well, using their respective parameters?
In this way users could set up custom editors for their hardware synths… I had a few more ideas related to sysex but I figured I’d start with this request since it seems like such a minor extention of what Podium already does.
Oh, and thanks again for this great program. 🙂
Regards,
Brian
Hi Brian,
It would be doable, but only for one-way communication. It would require a lot of coding and extended parameter properties to enable Podium to retrieve current settings from a hardware synth. That would give Podium the features of a dedicated synth editor application, and that is not a direction I want to go in the near future.
So would a hardware editor window in Podium have any use, if the parameters were always set to default on startup? If you recall a preset with the window open, the dial positions would not follow, etc. I can see some use of this, but I think it would also be confusing/frustrating for some users, that the functionality is only ‘half’ implemented, if you know what I mean.
Frits
Hi Frits,
Thanks for the quick reply. I definitely see how the lack of sync between editor panel and patch selection would give the impression of something broken or half-implemented. Sysex is very powerful, but it can get complex very quickly…
I think if there were access to an organized collection of parameter settings, even if it were entirely one-way and even if it weren’t necessarily accessable from the main arrangement screen, it would still have some use to users who do want to do patch creation or editing without having to fiddle with the buttons on their synths. (until they have to hit the save button, that is.)
I suppose that this does tie in with another idea I had for sysex. In a preset object, an option for “Sysex Transmit” under the “Program selection” radio buttons and a field for pasting and editing said message would allow for transmission of patch sysex into the temporary edit buffers of some synths – Basically a way of allowing “library” presets for hardware. (The actual creation of the sysex file or string would be left up to another program like MIDI-OX or something.)
Now if there was someway to syncronize these presets with an editor panel, that would be absolutely killer. 🙂
Of course, I know this is all pretty ambitious, but when I play with Podium I can’t help but get ideas and share them. Thanks again…
Regards
Brian
I suppose that this does tie in with another idea I had for sysex. In a preset object, an option for “Sysex Transmit” under the “Program selection” radio buttons and a field for pasting and editing said message would allow for transmission of patch sysex into the temporary edit buffers of some synths – Basically a way of allowing “library” presets for hardware. (The actual creation of the sysex file or string would be left up to another program like MIDI-OX or something.)
If I understand you correctly, then this is already possible. Check out the ‘Collecting Hardware Device Library Presets’ section in the guide. If you have a bunch of .syx files with presets, then you can also import those directly, in which case Podium will create SysEx library presets for them. You have to import them under the proper device definition object though.
@Zynewave wrote:
If I understand you correctly, then this is already possible. Check out the ‘Collecting Hardware Device Library Presets’ section in the guide. If you have a bunch of .syx files with presets, then you can also import those directly, in which case Podium will create SysEx library presets for them. You have to import them under the proper device definition object though.
That’s it exactly! I guess I should have RTFM on that one. 😳
I have a Nord Lead 2X and a Roland JV-2080 (both of which I’m about to complete device definitions for and send your way, if you’d like to add them to the library)… So I’ve played around with this feature and thought I’d share what I’ve found.
Starting with the Nord, since it’s a bit more simple… The Nord is 4 part multi-timbral. When you send patch data from the temporary edit buffer, it still sends the patch slot ($00-$03, for parts A-D) as the sixth byte in the message. In hex:
F0
33 – Manufacturer ID
0F – Device ID
04 – Model ID
00 – Specifies the Bank, 00 = Edit Buffer
00 – Patch Slot, if a specific memory location is not specified
F7
So if you’ve made your library while selecting patches in slot A and you’re looking for a library preset to go with a sequence you’ve got playing on slot D, you will hear no difference there from sending out these patches since they will have been sent right back to A.
It’s the same with the JV-2080, except in that case there are 16 temporary edit buffers in its multi-timbral Performance mode, one for each part. Trouble here is that a patch sent to and from the JV doesn’t go to ANY of those buffers, but to the edit buffer for the mono-timbral Patch mode. There is no other way to manually send a single patch from this device.
If there were some way that Podium could be told (perhaps in the Device Mapping) what byte(s) in a system exclusive Library Preset object corresponded to the Part or Slot on a synth, then perhaps that data could be changed dynamically to match the channel of the device mapping on the current track.
Of course, nothing is ever really that simple, I know… considering:
1) Patches are not the only things that could be sent out from a system exclusive library preset.
2) Roland JV-2080 presets appear to be broken into multiple messages… and
3) Messages for Roland devices would have to have their checksums recalculated if they are changed, if I’m not mistaken.
I understand that trying to make anything work with this synth or that’s system exclusive messages is not for the faint of heart, so I’m not writing expecting miracles or anything – Just thought I’d give you some feedback should you decide to take Podium further in this direction.
Regards
Brian
Thanks for the suggestions Brian.
I’ve had similar ideas, although I have put those on ice since I started going the route of VST plugin support. It’s all logical suggestions, but it requires a lot of coding. There are dedicated applications for this purpose like SoundDiver and MidiQuest, that cost 2-3 times the price of Podium.
I’ve made a simple macro language for SysEx parameters. Doing something similar with SysEx presets, with all the pitfalls you mention, is a bit more complex. Maybe I’ll look at it sometime in the future if the Podium userbase that uses hardware synths grows considerably.
@Zynewave wrote:
Thanks for the suggestions Brian.
I’ve had similar ideas, although I have put those on ice since I started going the route of VST plugin support. It’s all logical suggestions, but it requires a lot of coding. There are dedicated applications for this purpose like SoundDiver and MidiQuest, that cost 2-3 times the price of Podium.
I’ve made a simple macro language for SysEx parameters. Doing something similar with SysEx presets, with all the pitfalls you mention, is a bit more complex. Maybe I’ll look at it sometime in the future if the Podium userbase that uses hardware synths grows considerably.
Thanks for keeping these in mind for the future. While detailed synth editing might be best left to a dedicated application, some librarian features are definitely nice to have in a sequencer.
I’ve found what looks like a pretty decent editor for JV/XP (and even XV) synths called Changeit. It’s freeware to boot. So I’ll probably be working with that.
In the meantime, as far as sysex parameter objects go, perhaps a [checksum] variable in the macro language would help on the synths that require them? I’m assuming I can’t use these with the Roland as it is now, but I’ll experiment a little more just to make sure.
Thanks again…
Brian
In the meantime, as far as sysex parameter objects go, perhaps a [checksum] variable in the macro language would help on the synths that require them? I’m assuming I can’t use these with the Roland as it is now, but I’ll experiment a little more just to make sure.
I’ve never encountered checksums in small parameter change SysEx messages. Does the Roland really use checksum for these as well? Do you have a link for downloading Roland SysEx docs?
@Zynewave wrote:
In the meantime, as far as sysex parameter objects go, perhaps a [checksum] variable in the macro language would help on the synths that require them? I’m assuming I can’t use these with the Roland as it is now, but I’ll experiment a little more just to make sure.
I’ve never encountered checksums in small parameter change SysEx messages. Does the Roland really use checksum for these as well? Do you have a link for downloading Roland SysEx docs?
Just tried it out using this sysex string :
F0 41 10 6A 12 02 00 00 00 [value] 5E F7
The [02 00 00 00] is the address for the first character in the name of the patch in the first part of the performance on the JV. The ‘5E’ is the checksum byte. If I take that byte out, the JV does nothing but display the following message :
“System Exclusive Message : Check Sum Error”
If I leave it in, it displays the same message, but changes the first character in the display when changing the parameter in the mixer. So it appears to need that checksum, even if it’s the wrong one. ❓
Here’s a little light reading on Roland sysex stuff that I found :
http://www.borg.com/~jglatt/tutr/rolsysx.htm
In any case, my simple test appears to work, even if it gives the error.
Phew, I’m learning a lot here. 😯
I’ll add support for a ‘sum’ parameter macro to the plan.
Thanks! 🙂
I guess I’ll go ahead and spill the rest of the ideas I had in this area, bringing it back round to the ‘hardware editor’ thing, and then I’ll shut up. 😉
Basically, in the realm of MIDI sysex Library Presets, I imagine you’d only have a few common types besides regular bulk dumps. The terms vary from synth to synth, but whatever they’re called, they would look something like Patches, Performances, Rhythm Kits, System, and then Generic/Bulk. So if you had a MIDI sysex Library Preset, and could assign this Preset type with a radio button, with two further checkboxes that looked something like:
[x]Data begins at byte [8] from any occurance of F0
[x]Checksum byte precedes any occurance of F7
…then you could account for most of the data types that would commonly occur, along with checksums and segmented messages. Assuming this was in place, then two further options in the properties of a Parameter object, like so:
[x]Synchronize with Byte [42] in MIDI Sysex Library Preset Type [Patch]
[x]Display Parameter in Instrument/Library Preset Editor
…would enable the Parameter objects read the values as they are transmitted to the synth when selecting a library preset, since the location of said values would be very consistent as long as Podium knows the Preset type. So you could then have that cool ‘E’ button pop up when you have select a Library preset that is not Generic/Bulk, which could then revise the Library preset at the same time Parameter values are being sent to the synth.
This would allow the user to make quick editor panels for common synth parameters, for tweaking pre-existing Library presets, updating any bytes that are changed and leaving the rest intact.
Okay, I’ll shut up now. 😀
It’s good to have these kind of ideas documented in this forum, for future reference. Remember to bump this topic some time next year 😉
I’m gonna go make some music or something. 8)