|
Post by lottery on Sept 1, 2014 20:31:08 GMT
Hello all,
I just bought MB and it is really cool as I can do things I could not do before. I play guitar live using loppers and want to use different instruments without midi pedals. I want to use my guitar to send program change commands and if possibly loop stop start messages. Also I do not want to sacrifice many notes on my guitar for this control.
So my first question. Can there be a "hyper scene" where the first "note on" event defines what scene to set next. This was in Casio MIDI guitar where played note in a special mode sent program change command. All I saw here map one note to one scene. I see it like this - I play highest note on 21st fret and MB enters "hyper scene" mode. The very next note I play defines scene number to select and there may be around 100 possibilities - as many a there are notes on guitar. After that MB takes notes normally until I play the 21st fret highest note again.
Thanks,
Erik
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Sept 1, 2014 21:04:45 GMT
Hi Erik,
Yes, you can do this by switching to an intermediate scene that gets triggered by a note on the 21st fret, but there is a downside in that the 21st fret trigger will need to exist in the Stream Byter config for each scene you switch to. Given that limitation, here is what you do.
First, here is the trigger rule for the Stream Byter. What this does is when it sees C#5 (I think that is the note generated at 21st fret highest string) is switch to a 'special' scene that interprets the next note you play that you store in scene 0 (for example). Assume here that you have Scene Channel set to 16 in MidiBridge Preferences>Options and that these rules go in the Stream Byter on the input port for the guitar:
Assuming the guitar notes range from E1 (hex 28, decimal 40) to C#5 (hex 55, decimal 86) we will store our note triggered scenes in scenes 40 to 86 which corresponds to lowest E to highest B
Scenes 40 to 88 need this rule:
# select scene 0 on C#5 9X 58 = CF 00 +C
And in scene 0 you need this:
# select scene based on note number 9X = CF +C
If there is nothing saved in the scene you try to switch to it will remain in scene 0 until you play a note that corresponds to a saved scene.
I've been fairly brief here. If you need me to detail anything just let me know.
Regards, Nic.
|
|
|
Post by lottery on Sept 1, 2014 23:34:56 GMT
Thanks, that really works. I use notes from C3 to C4 to select a scene, as for the start 12 is well enough. All the scenes have all the same IN-OUT connections, i.e. the same green lines in GUI. The only difference is in the Stream Byter as below:
scene 60 = C3 # select scene 0 on D5 note, 22nd fret e-string 9X 56 = CF 00 +C #move all events to channel 2 for sunrizer X0 = X1
scene 61 = C#3 # select scene 0 on D5 note, 22nd fret e-string 9X 56 = CF 00 +C #move all events to channel 3 for thumbjam X0 = X2
The only issue is hanging note after switch. Would be great to send all notes off when changing from / to any scene. Is this possible?
I guess the same approach may be used to switch sounds patches in a synth, but this time another note will trigger "special scene" and program change will be sent to all channels except of 16 which we reserve for scene changes.
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Sept 2, 2014 8:01:46 GMT
Odd, if all your connections are static then you shouldn't get hung notes since we are not blocking/doing anything with note offs.
It is possible to trigger events when a scene loads by using the Program Changer module. Since we are already borrowing channel 16 for internal scene switching, if we can similarly borrow channel 15, then the procedure is:
1. Load up the scene that you want the auto-trigger on 2. On instrument input port (where all your other rules are) invoke Program Changer and select program 0 for channel 15 3. In the Stream Byter on the same port, you can look out for that program change trigger and do something:
# send all notes off, chan 1 on # internal program change trigger CE 00 = B0 7B 00 +C
Note that if you use the +C flag you can trigger as many different events as you like
Save the updated scene
When you load that scene the program change will trigger and the Stream Byter will see it and issue all notes off
Regards, Nic.
|
|