Tuning RPNs: Difference between revisions

Wikispaces>TallKite
**Imported revision 452367366 - Original comment: **
Wikispaces>TallKite
**Imported revision 452369772 - 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-19 04:38:49 UTC</tt>.<br>
: This revision was by author [[User:TallKite|TallKite]] and made on <tt>2013-09-19 04:59:40 UTC</tt>.<br>
: The original revision id was <tt>452367366</tt>.<br>
: The original revision id was <tt>452369772</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 31: Line 31:


Multi-timbral synths should be able to handle as many as 16 of these keyboards at once, one per channel. (To be decided: Tuning messages must only affect their own channel, so that a pitch glide on one keyboard won't affect the tuning of another keyboard. **OR** Tuning messages must affect all channels at once, to reduce the volume of the midi traffic. If one keyboard is sending pitch glides, the synth developer can assume that that musician is using a separate instance of the synth.)
Multi-timbral synths should be able to handle as many as 16 of these keyboards at once, one per channel. (To be decided: Tuning messages must only affect their own channel, so that a pitch glide on one keyboard won't affect the tuning of another keyboard. **OR** Tuning messages must affect all channels at once, to reduce the volume of the midi traffic. If one keyboard is sending pitch glides, the synth developer can assume that that musician is using a separate instance of the synth.)
**__Implementation__:**


The new method uses RPNs (Registered Parameter Numbers). The technical details: There are about 16,000 possible RPN parameters, and only about a dozen are in use. We can use a block of 128 RPNs, one for each input note number, for retuning. Data MSB and LSB messages for these RPNs contain the cents to retune by, in the exact same format as the standard midi pitch bend message. The retuning is immediate (real-time), just like the standard pitch bend. This makes it easier for the synth developer or designer, because he has already written code that deals with physical pitch bend wheel movement, and can just reuse it to deal with tuning RPNs. We use another block of 128 RPNs to define the output note. The RPN LSB is again the input note number. The data MSB is the output note number, and the data LSB is not used. If this RPN MSB is 100 = 64 hexadecimal, and the first RPN MSB is 101 = 65 hexadecimal, then to bend note nn on channel c to note mm with bend of yyzz would take up to 6 midi CC (Controller Change) messages. In hexadecimal the midi looks like this:
The new method uses RPNs (Registered Parameter Numbers). The technical details: There are about 16,000 possible RPN parameters, and only about a dozen are in use. We can use a block of 128 RPNs, one for each input note number, for retuning. Data MSB and LSB messages for these RPNs contain the cents to retune by, in the exact same format as the standard midi pitch bend message. The retuning is immediate (real-time), just like the standard pitch bend. This makes it easier for the synth developer or designer, because he has already written code that deals with physical pitch bend wheel movement, and can just reuse it to deal with tuning RPNs. We use another block of 128 RPNs to define the output note. The RPN LSB is again the input note number. The data MSB is the output note number, and the data LSB is not used. If this RPN MSB is 100 = 64 hexadecimal, and the first RPN MSB is 101 = 65 hexadecimal, then to bend note nn on channel c to note mm with bend of yyzz would take up to 6 midi CC (Controller Change) messages. In hexadecimal the midi looks like this:
Line 109: Line 111:
&lt;br /&gt;
&lt;br /&gt;
Multi-timbral synths should be able to handle as many as 16 of these keyboards at once, one per channel. (To be decided: Tuning messages must only affect their own channel, so that a pitch glide on one keyboard won't affect the tuning of another keyboard. &lt;strong&gt;OR&lt;/strong&gt; Tuning messages must affect all channels at once, to reduce the volume of the midi traffic. If one keyboard is sending pitch glides, the synth developer can assume that that musician is using a separate instance of the synth.)&lt;br /&gt;
Multi-timbral synths should be able to handle as many as 16 of these keyboards at once, one per channel. (To be decided: Tuning messages must only affect their own channel, so that a pitch glide on one keyboard won't affect the tuning of another keyboard. &lt;strong&gt;OR&lt;/strong&gt; Tuning messages must affect all channels at once, to reduce the volume of the midi traffic. If one keyboard is sending pitch glides, the synth developer can assume that that musician is using a separate instance of the synth.)&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;Implementation&lt;/u&gt;:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The new method uses RPNs (Registered Parameter Numbers). The technical details: There are about 16,000 possible RPN parameters, and only about a dozen are in use. We can use a block of 128 RPNs, one for each input note number, for retuning. Data MSB and LSB messages for these RPNs contain the cents to retune by, in the exact same format as the standard midi pitch bend message. The retuning is immediate (real-time), just like the standard pitch bend. This makes it easier for the synth developer or designer, because he has already written code that deals with physical pitch bend wheel movement, and can just reuse it to deal with tuning RPNs. We use another block of 128 RPNs to define the output note. The RPN LSB is again the input note number. The data MSB is the output note number, and the data LSB is not used. If this RPN MSB is 100 = 64 hexadecimal, and the first RPN MSB is 101 = 65 hexadecimal, then to bend note nn on channel c to note mm with bend of yyzz would take up to 6 midi CC (Controller Change) messages. In hexadecimal the midi looks like this:&lt;br /&gt;
The new method uses RPNs (Registered Parameter Numbers). The technical details: There are about 16,000 possible RPN parameters, and only about a dozen are in use. We can use a block of 128 RPNs, one for each input note number, for retuning. Data MSB and LSB messages for these RPNs contain the cents to retune by, in the exact same format as the standard midi pitch bend message. The retuning is immediate (real-time), just like the standard pitch bend. This makes it easier for the synth developer or designer, because he has already written code that deals with physical pitch bend wheel movement, and can just reuse it to deal with tuning RPNs. We use another block of 128 RPNs to define the output note. The RPN LSB is again the input note number. The data MSB is the output note number, and the data LSB is not used. If this RPN MSB is 100 = 64 hexadecimal, and the first RPN MSB is 101 = 65 hexadecimal, then to bend note nn on channel c to note mm with bend of yyzz would take up to 6 midi CC (Controller Change) messages. In hexadecimal the midi looks like this:&lt;br /&gt;