Last year, I finally weened myself completely off of Perl and learned Python in its place. Colors have never been brighter. There is such an elegance to Python, and I would love to see this in a computer music language.
The following mockup code is what you would get if your combined the awesome powers of Csound with the beauty of Python. I’m taking some liberties. The example is ignorant of i, k and a-rate. Instead of an orchestra/score pair, everything is combined as one file. And I’m introducing a concept for scheduling events, @, which tells when to do something.
#!/usr/bin/env slipmat import Wavetable from Gen import sine from Pitch import cpspch def sine_arp(dur, amp, pitch, lfo_freq): this['dur'] = dur pitch = cpspch(pitch) notes = [0, 3, 7, 8] arp = Wavetable.osc(1, lfo_freq, notes) freq = pitch + pitch * 2 ** (arp / 12.0) osc = Wavetable.osc(amp, pitch, sine(1000)) output osc def ping(amp=1.0, freq=262): this['dur'] = 0.5 output Wavetable.osc(amp, freq, sine(32)) if __name__ == '__main__': def harmonic_pattern(freq=100): @0 ping(1.0, freq) @1 ping(0.8, freq * 2) @2 ping(0.6, freq * 3) @3 ping(0.4, freq * 4) @4 ping(0.2, freq * 5) sine_arp(4, 0.5, 8.00, 1 / 4) @4 sine_arp(4, 0.5, 7.07, 1 / 4) @8 harmonic_pattern() @13 harmonic_patten(cpspch(7.00)) @18 ping()
I’ll comeback with a commented version of this in a few days. Though unlikely, it is my hope that some of you will take the time to try to figure out what is going on. My philosophy is that code should be human readable, and that syntax can help reinforce this.