1 Ann Hell Ex Machina Scripting - II: Extended Commands
2 =====================================================
4 Angel Ortega <angel@triptico.com>
9 Those directives that are not pure music instructions or are specific to a
10 given output mode are called extended commands. They are expressed as
11 curly bracket-enclosed blocks of keywords directly followed by their
12 optional, respective arguments. As for the basic commands, formatting and
13 indentation is free-form.
15 Extended commands are interleaved with basic commands, they are inserted
16 exactly where found and can be enclosed in blocks or group structures as
19 Software synthesizer commands
20 -----------------------------
25 wav "file.wav" <base note>
26 wav "file.wav" <base note> <min note> <max note>
27 wav "file.wav" <base note> <min note> <max note> <loop start> <loop end>
42 vibrato <depth> <frequency>
46 /* good depth values range from 0.45 to 0.68 */
47 /* good frequency values are 6hz to 10hz */
53 channel <channel #> <volume>
60 vol <volume> <volume> <volume>
61 vol <volume> <volume> <volume> <volume>
62 vol <volume> <volume> <volume> <volume> <volume> <volume>
67 pitch_stretch <note> <length in wholes> <volume>
72 time_stretch <note> <length in wholes> <volume>
74 This command is NOT IMPLEMENTED.
76 Digital effect commands
77 -----------------------
82 delay <channel> <time>
84 Creates a phase delay in <channel>. Sample output will be delayed by
85 the <time> specification. No further filtering is done.
89 /* add a phase delay of 20 milliseconds in the right channel */
95 echo <channel> <time> <gain>
97 Creates an echo effect in <channel>. Sample output will be pass as is,
98 but mixed with the original signal phased by <time> and amplified by
103 /* add an 50% echo after 15 milliseconds */
109 comb <channel> <time> <gain>
111 Creates a comb filter in <channel>. Comb filters are used for implementing
122 allpass <channel> <time> <gain>
124 Creates an allpass filter in <channel>. Allpass filters are used for
125 implementing reverbs (see the built-in reverb command).
130 { allpass 0 20ms 0.9 }
135 flanger <channel> <time> <gain> <depth> <freq> <phase>
137 Creates a flanger effect in <channel>.
141 /* good stereo flanger */
142 { flanger 0 1s 0.9 3.40ms 0.1 0
143 flanger 1 1s 0.9 3.40ms 0.1 0.25 }
148 wobble <channel> <freq> <phase>
150 Creates a wobble effect in <channel>. Amplitude will have a sine wave
151 applied with a frequency of <freq>, so volume will effectively go from
152 full amplitude to silence twice a period. The initial value for the
153 phase is set in <phase>. The wobble effect can be used to implement
154 tremolos with short frequencies and pan effects with long ones.
158 /* tremolo (10Hz frequency) */
161 /* long stereo panning: one complete cycle
162 in 4 seconds (0.25Hz), with a 1/4 period
163 phase difference between both channels */
170 square_wobble <channel> <freq> <phase>
172 Creates a square wobble effect in <channel>. Its behaviour is the same
173 as the wobble command, but applying a square wave instead, so volume
174 will abruptly change from full amplitude to absolute silence twice a
180 fader <channel> <time> <initial volume> <final volume>
182 Creates a fader effect in <channel>. <Time> is the length that will take
183 the channel volume to change from <initial volume> to <final volume>.
184 After <time> is passed, volume will be filtered to <final volume> until
185 the effect is destroyed.
189 /* a 5 seconds fade-in in left channel */
190 { fader 0 5s 0.0 1.0 }
197 Creates simple reverb in <channel>. This reverb is defined as
208 This command resets the digital effect chain for <channel>, destroying
209 all possible effects in it. Samples will then pass unmodified.
217 midi_channel <channel #>
219 Sets the MIDI channel for the current track. The <channel #> value must range
225 midi_program <program #>
227 Adds a MIDI program change event. The <program #> value ranges from 0 to 127.
230 Angel Ortega - http://www.triptico.com