diff options
Diffstat (limited to 'tran/instrflute.alg')
-rw-r--r-- | tran/instrflute.alg | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tran/instrflute.alg b/tran/instrflute.alg new file mode 100644 index 0000000..363d9a5 --- /dev/null +++ b/tran/instrflute.alg @@ -0,0 +1,25 @@ +(INSTRFLUTE-ALG +(NAME "flute") +(ARGUMENTS ("double" "freq") ("sound_type" "breath_env") ("rate_type" "sr")) +(STATE ("struct instr *" "myflute" "initInstrument(FLUTE, round(sr)); + controlChange(susp->myflute, 1, 0.0);") + ("int" "temp_ret_value" "noteOn(susp->myflute, freq, 1.0)")) +(START (min breath_env)) +(NOT-IN-INNER-LOOP "freq" "temp_ret_value") +(SAMPLE-RATE "sr") +(ALWAYS-SCALE breath_env) +(TERMINATE (min breath_env)) +(INNER-LOOP " + controlChange(myflute, 128, FLUTE_CONTROL_CHANGE_CONST * breath_env); + output = (sample_type) tick(myflute)") +(SUPPORT-HEADER " + #define FLUTE_CONTROL_CHANGE_CONST 128 +") +(SUPPORT-FUNCTIONS " + #include \"instr.h\" +") +(FINALIZATION " + deleteInstrument(susp->myflute); +") +) + |