mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-22 19:23:59 +00:00
264 lines
5.5 KiB
Plaintext
264 lines
5.5 KiB
Plaintext
// This is an example file to show some of the capabilities of
|
|
// the MidiNote command.
|
|
|
|
Include stdpats // this is inserted in case we block out parts of the file
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Inserting a few melody notes is simple enough in MMA. For example
|
|
// here is a 4 bar bossanova song with a simple melody using a SOLO
|
|
// track (actually, this is just a cut/paste of the intro to Julia).
|
|
// To demonstrate something simple we play the intro 2x, the 2nd time
|
|
// is with the modulation set. Note that we turn it off after the repeat!
|
|
|
|
|
|
Groove BossaNovaIntro
|
|
|
|
Begin Solo
|
|
Voice Piano2
|
|
Articulate 110
|
|
Volume mf
|
|
Octave 5
|
|
End
|
|
|
|
Repeat
|
|
|
|
Begin Solo Riff
|
|
4.c+;8;4;4;
|
|
4.c+;8;4;4;
|
|
2.d+;4c+;
|
|
1c;
|
|
End
|
|
|
|
1 F
|
|
2 Dm
|
|
3 Gm
|
|
4 C7
|
|
|
|
Begin Solo MidiNote
|
|
Offsets=Beats // work in beat offsets, not ticks
|
|
Ctrl 1 Modulation 90
|
|
End
|
|
BeatAdjust 1
|
|
Repeatend
|
|
|
|
Solo MidiNote Ctrl 1 Modulation 0
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Pitch Bend
|
|
|
|
// You can use the pitch bend for interesting effects. Here's an example
|
|
// with 2 piano tracks playing in unison, but with the Chord-2 playing
|
|
// a bit out of pitch. This is supposed to give a "fuller" sound.
|
|
|
|
SeqClear
|
|
BeatAdjust 1
|
|
|
|
Begin Chord-1
|
|
Voice Piano1
|
|
Sequence L2
|
|
End
|
|
Begin Chord-2
|
|
Voice Piano1
|
|
Sequence L2
|
|
End
|
|
Chord-2 MidiNote Offsets=Beats
|
|
|
|
1 C
|
|
2 G
|
|
|
|
BeatAdjust 1
|
|
Chord-1 Midinote PB 1 -20
|
|
Chord-2 Midinote PB 1 20
|
|
|
|
3 C
|
|
4 G
|
|
|
|
Chord-1 Midinote PB 1 0
|
|
Chord-2 Midinote PB 1 0
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Pitch Bend Range
|
|
|
|
// Pitch Bend Range can be used for interesting effects. Here we insert
|
|
// a single chord and bend it up and down. For this example we are using
|
|
// MIDI ticks for offsets.
|
|
|
|
// Pitch Bend effects ALL currently playing notes in a Midi channel.
|
|
|
|
SeqClear
|
|
BeatAdjust 1
|
|
|
|
Begin Solo
|
|
Voice Flute
|
|
Volume f
|
|
Octave 5
|
|
Articulate 110
|
|
Harmony Open
|
|
Midinote Offsets=Ticks
|
|
End
|
|
Solo MidiNote Pbr 20 0,192 0,8000
|
|
Solo Midinote Pbr 20 384,576 8000,0
|
|
z {1ae+c+;}
|
|
Solo MidiNote Pb 0 0
|
|
|
|
// This is a similar effect using a chord track. The sequence is a long piano tone.
|
|
// This time the offsets are given in beats. Note that '1' is the start of the bar.
|
|
|
|
SeqClear
|
|
BeatAdjust 1
|
|
|
|
Begin Chord
|
|
Voice TremoloStrings
|
|
Volume f
|
|
Octave 5
|
|
Articulate 110
|
|
Midinote Offsets=Beats
|
|
Sequence L1
|
|
End
|
|
|
|
Chord MidiNote PBR 30 1,2 0,8000
|
|
Chord Midinote PBR 30 3,4 8000,0
|
|
|
|
C7 /// our single chord to bend
|
|
|
|
Chord MidiNote PB 1 0 // tidiness may count in a future life!
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Channel Aftertouch
|
|
|
|
// This inserts a series of aftertouch events (range) over a cascading
|
|
// G major chord.
|
|
|
|
SeqClear
|
|
BeatAdjust 1
|
|
|
|
Groove Rhumba
|
|
|
|
Begin Solo
|
|
Voice Flute
|
|
End
|
|
|
|
Begin Solo MidiNote
|
|
Transpose=ON Offsets=Beats Duration=Notes
|
|
1 g 100 1+1
|
|
2 b 100 1+2.
|
|
3 d+ 100 1+2
|
|
4 g+ 100 1+4
|
|
chatr 50 1,4.9 1,127
|
|
End
|
|
|
|
1 G
|
|
2 G
|
|
|
|
Solo midinote chat 1 0
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// Note Insert
|
|
|
|
// Insert actual MIDI note on/off into the stream. This is much easier to do with
|
|
// SOLO track notation, but this is an example what you can do, not what you should.
|
|
// In this case I've recorded a few bars of my playing on a keyboard (using a piano
|
|
// tone) and extracted this into a text file which was then pasted into this file.
|
|
// I used mma-extract to generate the data. A few bars of Londonairy Air.
|
|
|
|
SeqClear
|
|
BeatAdjust 1
|
|
|
|
Keysig Eb
|
|
Tempo 80
|
|
|
|
Groove FolkBallad
|
|
Volume ppp
|
|
|
|
Begin Solo
|
|
Voice TremoloStrings
|
|
// everything below this is ignored by MidiNote
|
|
Volume f
|
|
Octave 5
|
|
Harmony OpenBelow
|
|
Articulate 110
|
|
End
|
|
|
|
Begin Solo MidiNote
|
|
// Note the adjust factor of 22. This was calculated by looking at the 2nd
|
|
// bar start note (offset 790) and subtracting a full bar of ticks (768)
|
|
Offsets=Ticks Duration=Ticks Adjust=-22
|
|
|
|
// 0
|
|
Note 505 62 70 97
|
|
Note 599 63 60 90
|
|
Note 688 65 68 88
|
|
// 1
|
|
Note 790 67 67 291
|
|
Note 1083 65 63 105
|
|
Note 1175 67 63 92
|
|
Note 1261 72 63 102
|
|
Note 1352 70 56 105
|
|
Note 1443 67 59 101
|
|
// 2
|
|
Note 1543 65 56 103
|
|
Note 1643 63 49 111
|
|
Note 1741 60 56 304
|
|
Note 2043 63 75 99
|
|
Note 2139 67 75 78
|
|
Note 2215 68 72 88
|
|
// 3
|
|
Note 2317 70 67 284
|
|
Note 2599 72 63 92
|
|
Note 2690 70 61 90
|
|
Note 2781 67 61 95
|
|
Note 2882 63 43 92
|
|
Note 2980 67 56 104
|
|
// 4
|
|
Note 3084 65 53 477
|
|
Note 3563 62 67 101
|
|
Note 3655 63 61 85
|
|
Note 3748 65 75 95
|
|
// 5
|
|
Note 3849 67 55 283
|
|
Note 4135 65 64 102
|
|
Note 4222 67 63 107
|
|
Note 4320 72 45 86
|
|
Note 4401 70 50 90
|
|
Note 4492 67 60 94
|
|
Note 4587 65 60 104
|
|
// 6
|
|
Note 4686 63 53 114
|
|
Note 4790 60 58 324
|
|
Note 5096 62 66 82
|
|
Note 5186 63 57 93
|
|
Note 5287 65 49 96
|
|
// 7
|
|
Note 5395 67 40 286
|
|
Note 5667 68 56 87
|
|
Note 5759 67 58 94
|
|
Note 5853 65 53 104
|
|
Note 5946 63 52 101
|
|
Note 6048 65 50 107
|
|
// 8
|
|
Note 6145 63 55 600
|
|
End
|
|
|
|
// We've actually inserted the entire melody stuff into the MMA track.
|
|
// Since MMA doesn't track bars when doing MIDINOTE stuff our pointer
|
|
// is still at the start of the song! So, we can do normal notation for
|
|
// the chords.
|
|
|
|
// If you want to have a bit of fun, add harmony notes at the end of each
|
|
// line. This shows how to combine things. Bars 2,3 & 4 have an example commented out.
|
|
|
|
1 z // pickup bar
|
|
2 Eb // {2e;g;}
|
|
3 Ab // {2a;e;}
|
|
4 Eb Ab Eb // {4e;a;g;e;}
|
|
5 F7 / Bb Bb7
|
|
6 Eb / / Eb7
|
|
8 Ab / / Bb7
|
|
9 Eb / / Bb7
|
|
10 Eb / z!
|
|
|
|
|
|
|
|
|