Tuning RPNs: Difference between revisions
Wikispaces>TallKite **Imported revision 450745434 - Original comment: ** |
Wikispaces>TallKite **Imported revision 450745720 - Original comment: ** |
||
| Line 1: | Line 1: | ||
<h2>IMPORTED REVISION FROM WIKISPACES</h2> | <h2>IMPORTED REVISION FROM WIKISPACES</h2> | ||
This is an imported revision from Wikispaces. The revision metadata is included below for reference:<br> | This is an imported revision from Wikispaces. The revision metadata is included below for reference:<br> | ||
: This revision was by author [[User:TallKite|TallKite]] and made on <tt>2013-09-12 20: | : This revision was by author [[User:TallKite|TallKite]] and made on <tt>2013-09-12 20:41:20 UTC</tt>.<br> | ||
: The original revision id was <tt> | : The original revision id was <tt>450745720</tt>.<br> | ||
: The revision comment was: <tt></tt><br> | : The revision comment was: <tt></tt><br> | ||
The revision contents are below, presented both in the original Wikispaces Wikitext format, and in HTML exactly as Wikispaces rendered it.<br> | The revision contents are below, presented both in the original Wikispaces Wikitext format, and in HTML exactly as Wikispaces rendered it.<br> | ||
| Line 24: | Line 24: | ||
data LSB: Bc 26 zz (fine tune, required) | data LSB: Bc 26 zz (fine tune, required) | ||
These messages are always sent in this order. The RPN MSB message need only be sent once (NRPN exception below). The CC/channel byte for the other 4 messages can sometimes be omitted via running status. The RPN LSB message need only be sent once per note. As per the midi spec, aditional data MSB/LSB messages continue to affect the current RPN parameter, overwriting previous data messages. Unlike the midi spec, data inc/dec messages are not summed, instead the newest one overwrites any older ones. Thus inc = 3 followed by inc = 5 results in inc = not 8 but 5. | These messages are always sent in this order. The RPN MSB message need only be sent once (NRPN exception below). The CC/channel byte for the other 4 messages can sometimes be omitted via running status. The RPN LSB message need only be sent once per note. As per the midi spec, aditional data MSB/LSB messages continue to affect the current RPN parameter, overwriting previous data messages. Unlike the midi spec, data inc/dec messages are not summed, instead the newest one overwrites any older ones. Thus inc = 3 followed by inc = 5 results in inc = not 8 but 5. Furthermore data MSB/LSB values are not affected by inc/dec. This is because the highest priority in designing this new method is to make the coding as easy as possible for the synth author. By overwriting instead of summing, he doesn't have to maintain an array of current transpositions for all notes on all channels. Similarly, it's the tuning software author's responsibility to avoid transposing out of range. Thus nn + inc must always be <= 127 and nn - dec must always be >= 0. | ||
The data inc/dec message is optional and would generally be omitted for 12-notes-per-octave tunings. The data MSB could be omitted for slight pitch bends that don't change the MSB. The required data LSB functions as an "end of tuning message" marker and the synth waits until receiving this message to actually apply the new tuning. | The data inc/dec message is optional and would generally be omitted for 12-notes-per-octave tunings. The data MSB could be omitted for slight pitch bends that don't change the MSB. The required data LSB functions as an "end of tuning message" marker and the synth waits until receiving this message to actually apply the new tuning. | ||
| Line 81: | Line 81: | ||
data LSB: Bc 26 zz (fine tune, required)<br /> | data LSB: Bc 26 zz (fine tune, required)<br /> | ||
<br /> | <br /> | ||
These messages are always sent in this order. The RPN MSB message need only be sent once (NRPN exception below). The CC/channel byte for the other 4 messages can sometimes be omitted via running status. The RPN LSB message need only be sent once per note. As per the midi spec, aditional data MSB/LSB messages continue to affect the current RPN parameter, overwriting previous data messages. Unlike the midi spec, data inc/dec messages are not summed, instead the newest one overwrites any older ones. Thus inc = 3 followed by inc = 5 results in inc = not 8 but 5. | These messages are always sent in this order. The RPN MSB message need only be sent once (NRPN exception below). The CC/channel byte for the other 4 messages can sometimes be omitted via running status. The RPN LSB message need only be sent once per note. As per the midi spec, aditional data MSB/LSB messages continue to affect the current RPN parameter, overwriting previous data messages. Unlike the midi spec, data inc/dec messages are not summed, instead the newest one overwrites any older ones. Thus inc = 3 followed by inc = 5 results in inc = not 8 but 5. Furthermore data MSB/LSB values are not affected by inc/dec. This is because the highest priority in designing this new method is to make the coding as easy as possible for the synth author. By overwriting instead of summing, he doesn't have to maintain an array of current transpositions for all notes on all channels. Similarly, it's the tuning software author's responsibility to avoid transposing out of range. Thus nn + inc must always be &lt;= 127 and nn - dec must always be &gt;= 0.<br /> | ||
<br /> | <br /> | ||
The data inc/dec message is optional and would generally be omitted for 12-notes-per-octave tunings. The data MSB could be omitted for slight pitch bends that don't change the MSB. The required data LSB functions as an &quot;end of tuning message&quot; marker and the synth waits until receiving this message to actually apply the new tuning.<br /> | The data inc/dec message is optional and would generally be omitted for 12-notes-per-octave tunings. The data MSB could be omitted for slight pitch bends that don't change the MSB. The required data LSB functions as an &quot;end of tuning message&quot; marker and the synth waits until receiving this message to actually apply the new tuning.<br /> | ||