May 24, 2001
I worked on the helicopter sound a bit more. This one sounds great if you have speakers with some good bass. I combined it with the flanger below and added some pulse width modulation effects. I fixed a bug in the original copter. I got mixed up on the left and right sides. Thanks to João Miguel Pais for the bug fix.
April 28, 2001
Gabriel Maldonado has proposed the following conventions for writing macros:
|One of the main problem of macros is the variable name conficts. To avoid this drawback is sufficient to add a unique suffix for each variable contained in the macro, different for each macro call.
This unique suffix must be provided by the user as a macro argument.
Suffix is necessary mainly for i-rate variables, however, even with k and a-rate variables, suffix could avoid hidden conflicts and could be a good habit.
So I suggest the following broad convention:
#define TrivialMacro(suffix'aOutput1'aOutput2'aOutputN'xInput1'xInput2'kInput3'iInputN)# ;body a1$suffix oscil $xInput1, $xInput2, $iInputN a2$suffix tone a1$suffix,$kInput3 a3$suffix delay a2$suffix, .5 a4$suffix reverb a1$suffix, 3 $aOutput1 = a2$suffix $aOutput2 = a3$suffix $aOutputN = a4$suffix #
I suggest to define each macro argument with the initial letter corresponding to the suggested rates, to avoid confusion:
i -> init rate
(init, control or audio, obviously except the unique suffix, that, when called, could even be a simple number). Notice also the indentation tabbing for the macro body. This can help user to easily locate start and end of macro. In macro head, the conventional order could be:
I suggest to use a single letter to identificate the suffix argument, so variables names could be kept short (for example an uppercase S could be agreed as a convention):
#define TrivialMacro(S'aOutput1'aOutput2'aOutputN'kInput1'aInput2'kInput3'iInputN)# ....BODY #
Please adopt this style for future macro-based orchestras, or propose a better style.
April 12, 2001
Here is a helicopter like sound based on filtered noise. Perhaps not that realistic but a cool set of sounds anyway. Hint combine this with the flanger below for even more fun!
Through zero Flanger
February 20, 2001
This flanger sets up both a variable delay line and a stationary delay line for the original signal. Since the original signal is delayed the flanger is capable of going through a "zero" delay time. This results in constructive interference in the positive feedback case or destructive interference in the negative feedback case. I thought the result was very nice.