Midi Help
Posted: Wed Sep 10, 2014 10:32 am
Hey guys, im trying to understand some midi issues im having. . .
So basically its regarding midi messages (note) and their impact with respect to timing. . .
If I play say one key (midi note 40 for instance) and quickly play it again, the 'history' (thanks Trog's analyzer module) shows me the following:
STATUS:144
NOTE: 40
STATUS:128
NOTE:40
This makes sense as:
# Note ON
STATUS:144
NOTE: 40
#Note OFF
STATUS:128
NOTE:40
Cool, so now I make a module which subtracts 1 to the midi note number if midi note == 61. What this means is that if I press the note C# it will send a midi note with number 60(C) as opposed to 61(C#). Basically im just messing around.
Ok, so all good. Now the issues comes in when Im trying to trigger the same note while holding them. lets take an example we can understand:
The naturalist I am, I take to the computer keyboard & enable it inside FS to play a synth (Midi In = keyboard). looking good. . .
OK so then I decide to play a sustained set of two notes over an interval. Only two notes, C and C#.
I gently hold down the 'Q' key and loose myself in the sustained sine tone of C. I then (while still holding the 'Q' key) press & hold the '2' key (C#) quickly and let go of the 'Q' key (I will miss you my dearest C note). Now you should be expecting me to say I get lost in the sustaining sine tone of C#. But no. Its not sustaining. Its like a one shot. "Blip". . . .
So I look to the analyzer of the midi notes after. . . this is what I get:
STATUS:144
NOTE:60
STATUS:144
NOTE:60
STATUS:128
NOTE:60
STATUS:128
NOTE:60
That makes sense again:
# Note ON (C)
STATUS:144 <----------- This means I pressed the 'Q' key (note C)
NOTE:60
# Note ON (C#)
STATUS:144 <----------- This means I pressed the '2' key (note C#)
NOTE:60
# Note OFF (C)
STATUS:128 <----------- This means I let go the 'Q' key (note C)
NOTE:60
# Note OFF (C#)
STATUS:128 <----------- This means I let go the '2' key (note C#)
NOTE:60
What this shows me is that because I have set if input midi note == 61 then output 60 (as above). However it seems to conflict with the already initiated midi note of 60 (the original C). So when I press the '2' key (C# midi note 61) it 'switches' off the original C note (60).
Are midi messages sent as their own respective instance? Or are they bundled together? because from what I have seen, midi out notes which are sent in succession with the same note number switch off each other and cause interference (because the original midi note didn't switch off (was not let go) ) but they shouldnt????
I have probably confused the crap out of anyone reading this. . .and im sorry. I will try attach a example when I get the chance today.
So basically its regarding midi messages (note) and their impact with respect to timing. . .
If I play say one key (midi note 40 for instance) and quickly play it again, the 'history' (thanks Trog's analyzer module) shows me the following:
STATUS:144
NOTE: 40
STATUS:128
NOTE:40
This makes sense as:
# Note ON
STATUS:144
NOTE: 40
#Note OFF
STATUS:128
NOTE:40
Cool, so now I make a module which subtracts 1 to the midi note number if midi note == 61. What this means is that if I press the note C# it will send a midi note with number 60(C) as opposed to 61(C#). Basically im just messing around.
Ok, so all good. Now the issues comes in when Im trying to trigger the same note while holding them. lets take an example we can understand:
The naturalist I am, I take to the computer keyboard & enable it inside FS to play a synth (Midi In = keyboard). looking good. . .
I gently hold down the 'Q' key and loose myself in the sustained sine tone of C. I then (while still holding the 'Q' key) press & hold the '2' key (C#) quickly and let go of the 'Q' key (I will miss you my dearest C note). Now you should be expecting me to say I get lost in the sustaining sine tone of C#. But no. Its not sustaining. Its like a one shot. "Blip". . . .
So I look to the analyzer of the midi notes after. . . this is what I get:
STATUS:144
NOTE:60
STATUS:144
NOTE:60
STATUS:128
NOTE:60
STATUS:128
NOTE:60
That makes sense again:
# Note ON (C)
STATUS:144 <----------- This means I pressed the 'Q' key (note C)
NOTE:60
# Note ON (C#)
STATUS:144 <----------- This means I pressed the '2' key (note C#)
NOTE:60
# Note OFF (C)
STATUS:128 <----------- This means I let go the 'Q' key (note C)
NOTE:60
# Note OFF (C#)
STATUS:128 <----------- This means I let go the '2' key (note C#)
NOTE:60
What this shows me is that because I have set if input midi note == 61 then output 60 (as above). However it seems to conflict with the already initiated midi note of 60 (the original C). So when I press the '2' key (C# midi note 61) it 'switches' off the original C note (60).
Are midi messages sent as their own respective instance? Or are they bundled together? because from what I have seen, midi out notes which are sent in succession with the same note number switch off each other and cause interference (because the original midi note didn't switch off (was not let go) ) but they shouldnt????
I have probably confused the crap out of anyone reading this. . .and im sorry. I will try attach a example when I get the chance today.