Alpha-09 proj 9 of 56: splitting the Voice module into Note, Pitch, and Voice
Posted: Mon Mar 13, 2017 7:12 pm
Almost finished Alpha-09 sub-project 8 and 9 out of 56: splitting the Voice module, which did three unrelated jobs, into a Note module (MIDI and internal info you can base your sound on), Pitch (does all the calculation for octave, transpose, detune, pitch bend, pitch envelopes, vibrato and unison), and finally Voice (which now is only the destination of your output wave per voice, and where you tell Moselle that the note should finish).
I've written about 25 example patches showing how to use all features.
The new Pitch module especially is really nice. For instance here's all you need to do to turn the vibrato into kind of a sequencer. The following patch (this is the complete patch!) uses a 1/2 Hz LFO's phase to pick values from the list. 12 is octave, 7 is fifth, 0 is base pitch. This patch depends on lots of default connections: for instance the oscillator frequency is Pitch's output by default, and its waveform is sawtooth by default. Pitch's input in turn goes through a default tuning table and portamento generator.
[Pitch]
VibManual = 1 semi
VibSource = Select( LFO(.5):PhaseOut, 12, 7, 0, 12, 7, 0, 7, 0 )
[Osc]
[Voice]
Result = Osc
I've written about 25 example patches showing how to use all features.
The new Pitch module especially is really nice. For instance here's all you need to do to turn the vibrato into kind of a sequencer. The following patch (this is the complete patch!) uses a 1/2 Hz LFO's phase to pick values from the list. 12 is octave, 7 is fifth, 0 is base pitch. This patch depends on lots of default connections: for instance the oscillator frequency is Pitch's output by default, and its waveform is sawtooth by default. Pitch's input in turn goes through a default tuning table and portamento generator.
[Pitch]
VibManual = 1 semi
VibSource = Select( LFO(.5):PhaseOut, 12, 7, 0, 12, 7, 0, 7, 0 )
[Osc]
[Voice]
Result = Osc