Hello
Has anyone an idea how to convert a Program Change command, no matter which number (1-16) to a NextSongPart command?
Is there a way to translate specific sysex commands to PrevSongPart command?
Thanks in advance
Mvc
Hello
Has anyone an idea how to convert a Program Change command, no matter which number (1-16) to a NextSongPart command?
Is there a way to translate specific sysex commands to PrevSongPart command?
Thanks in advance
Mvc
You mean if a specific MID in port receives any PC command it has to ignore the PC command and produce a NextSongPart command instead?
Could you please tell us more about this use case? Is it that your MIDI controller is not able to produce any other more appropriate MIDI message? Which controller do you use? (There is no SysEX involved here)
Hello!
Thank you in advance for your interest in my issue.
I have a Yamaha Electone ELS-02X electronic organ and want to use it as master keyboard with Gigperformer so I can use the organ with VSTs.
The Electone can manage 80 presets in one song, organized in A1-A16, B1-B16 until E16. These presets are accessible using a foot switch. Unfortunately the foot switch does not send any MIDI data. If i choose any preset like for example D11 it only sends a āProgram Change 11ā command, ignoring the bank A-E information. In this case, i can use Gigperformer only with 16 Song parts, since I have no possibility to give further information about the bank to Gigperformer. So I thought using Gigperformer this way: as soon as the organ sends any program change message, Gigperformer just goes one further SongPart. In case I do a mistake and go one program change too far I could use any other button on the organ which unfortunately only sends sysex data. That shuold eventually go one SongPart back in GP.
I hope there is a solution to this issue.
Thanks a lot in advance!
P. S.:
here is a vid how I use the instrument:
Here is the Midi documentation of the 02X:
Amazing performance, mate! Thanks for sharing, and keep the music coming!
Nice playing, thanks.
GP should be able to solve your issue! The foot switch, knee lever and bank select messages are all sent via SysEx and using GPScript, GP should be able to convert these messages such that you can use them seamlessly.
Bank select A,B,C,D,E (n=0ā¦4)
F0, 43, 70, 78, 44, 7E, 0n, 00, F7
=> I propose to convert this into regular MIDI bank select messages, such that you will be able to use them to switch rackspaces/variations, song/songparts the regular way in GP.
Left foot switch
F0, 43, 70, 70, 40, 45, 7F, F7 (ON)
F0, 43, 70, 70, 40, 45, 00, F7 (OFF)
=> I propose to transform this as a CC66 piano pedal regular MIDI message
Knee lever
F0, 43, 70, 70, 40, 47, 7F, F7 (ON)
F0, 43, 70, 70, 40, 47, 00, F7 (OFF)
=> I propose to transform this as a CC67 piano pedal regular MIDI message
CC# message make it possible to use regular GP MIDI mapping, such that you could move using previous/next rackspaces/variations, song/songparts.
Would my proposals fit to your needs?
If yes, this is the Gig GPScript which goes with my proposals:
Gig_GPScript_SysEx_to_CC_and_Bank_Select.txt (2.1 KB)
Var Electone : MidiInDeviceAlias;
On SysexEvent(s : SysexMessage) From Electone
Var
sysExString : string = SM_Pretty(s, s.SM_Length(), True);
Select
//Bank select A..E => CC0=0, CC32=n
sysExString == "F0437078447E0000F7" Do InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(0, 0));
InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(32, 0));
sysExString == "F0437078447E0100F7" Do InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(0, 0));
InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(32, 1));
sysExString == "F0437078447E0200F7" Do InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(0, 0));
InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(32, 2));
sysExString == "F0437078447E0300F7" Do InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(0, 0));
InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(32, 3));
sysExString == "F0437078447E0400F7" Do InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(0, 0));
InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(32, 4));
//Left foot switch ON
sysExString == "F043707040457FF7" Do InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(66, 127));
//Left foot switch OFF
sysExString == "F0437070404500F7" Do InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(66, 0));
//Knee lever ON
sysExString == "F043707040477FF7" Do InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(67, 127));
//Knee lever OFF
sysExString == "F0437070404700F7" Do InjectMidiEventViaRigManager(Electone, MakeControlChangeMessage(67, 0));
End
End
I couldnāt test the GPScript, so I am not 100% sure it will do the job.
Wow thabk you so much. Asbsoon as I am back home Iāll try! The only problem I see at this moment is the fact that I use the right foot switch, not the left one. Iāll let you know
I didnāt see anything regarding a right foot switch, so I suppose it doesnāt produce any MIDI message. But, as I explained what I did is supposed to generate bank select messages for PC, so hopefully you will be able to have a GP rackspace following all your Electone PC and bank select, not only 16 PC.
Hi @mvc82, I donāt know how much you need what you requested, but I you tested something, it would be nice to have your feedback for other usersā¦
Hello David
Thanks for your reminder. Unfortunately I have not been able to test it yet, because of a suddenly changed situation in my family. I think I can not test it before October unfortunately.
Cheers