First off, I just realized that there are two completely different ways to handle this computationally with a clear winner for easy execution, because there are two basic types of MIDI guitars:
1) Real guitars with Midi pickups. (in which case you have the problem of only being able to activate the tremelo pitch bend
after the note is first cleanly struck, and the note-on is sent, plus this problem is amplified immensely when you consider the other strings each having their own pitch bend info)
2) An artificial MIDI guitar controller like the current YouRockGuitar, where the pitch bend is always independently sent from it's own onboard tremelo bridge, equally through each string/channel.
A YRG is better for this, because the same note signal would be sent that corresponds to the fret you are pushing down, even if you had the tremelo bridge pushed down to all the way to 0 when you strike the note, or pushed/pulled to
any point between 0 and 127!) Plus the Pitch Bend data is likely ALWAYS independently sent on all six MIDI channels with the same data generated from the artificial whammy bar controller on the YRG, so it effects all the strings' data equally. This is MUCH better for what I'm looking for. I was planning on installing a second-hand Roland MIDI pickup system on one of my guitars (but that's risky bc/ it's an old hand-me-down and corroded), but I just realized that creating a cool midi controller for ALL my software is much easier with the YRG (and I have one of these cheap things from a christmas gift)... As a guitar emulator it sucks, but as a general controller, there are sure a lot of ways to imagine using it.
So - that said - Let's imagine this whole scenario with the much, much easier situation of using a YRG MIDI guitar, where the exact fret note is sent correctly no matter where the pitch bend (tremelo bridge) is positioned at the time of the note on message, and the pitch bend MIDI message should be the exact same on every string/channel (making my previous post about hypothetical uses very realistic)... OK??? DvlsAdvct wrote:
So you only want the physical tremelo command to react to the initial position and then move up or down based on the volume? So, to further elucidate:
Except with the YRG, this initial position shouldn't matter, the note on signal will be precise to the fret, and we can have the tremolo bar be located at any point
DvlsAdvct wrote:
Strike Note
Volume is above 50
Activate Pitch Bend
Yes, but with the YRG, the Tremolo Pitch Bend can be located anywhere at the point of the note on, I would think, and thus should be addressed in code before note on? We can have it after note on, if you think that's better - it's totally up to you.
DvlsAdvct wrote:
Pitch Bend sends a message based on current positive of the tremelo bridge
Like I said, I'm pretty sure that the Pitch Bend can be anywhere before or after the note-on message with the YRG... all that needs to happen while the Volume is above 50 is a directly proportional one-to-one translation from the Pitch Bend to the CC, and then it is still one-to-one, but inverted, via MT.
DvlsAdvct wrote:
It instantly starts moving up (ends at say 84)
Volume drops below 50
Pitch Bend signal inverts to 43
Pitch bend begins moving down
And if that is correct, how do you want to measure the rate the pitch bend decays? Is MT going to be receiving MIDI clock to keep it within tempo, or will you just send it at a static rate?
I was under the impression that because Pitch Bend is a variable from 0-127, just like the intended CC output, that this is simply a matter of using the volume decay point of 50 to trigger the translator to flip from a positive linear one-to-one relationship to a negative (inverted) linear relationship. With the YRG, can't the Tremolo Pitch Bend be wherever the player wants, moving at whatever rate he wants, and MT just determines when a series of changes like PB1-CC1... PB2-CC2...PB3-CC3... inverts to PB4-CC123...PB5-CC122...PB6-CC121...etc......? With the YRG, isn't the rate always one-to-one (PB-CC), even if the YRG's controller output skips PB integer values with faster physical bridge bends, because MT will just receive the values the YRG spits out and deal with them directly or inversely, depending on the volume decay point specified (or multiple decay points if we wish)?