diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-04-16 22:18:27 +0200 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-04-16 22:18:27 +0200 |
commit | 6aabf209da366b2c62b0b44fc6eed9b1a24cdc63 (patch) | |
tree | 9f41835c433d701438119f9f87fbe462d6adf0e2 | |
parent | 7f8536b4a6d7fd06b1cd4929f548d241183c09cd (diff) | |
download | digitale-debutanten-6aabf209da366b2c62b0b44fc6eed9b1a24cdc63.tar.gz |
added sample-based oscillator class
-rw-r--r-- | lib.ck | 1 | ||||
-rw-r--r-- | lib/SampOsc.ck | 26 | ||||
-rw-r--r-- | lib/pulse.wav (renamed from pulse.wav) | bin | 35322 -> 35322 bytes |
3 files changed, 27 insertions, 0 deletions
@@ -1,4 +1,5 @@ /* Includes */ +Machine.add("lib/SampOsc.ck"); Machine.add("lib/Clipper.ck"); Machine.add("lib/MIDI.ck"); Machine.add("lib/Queue.ck"); diff --git a/lib/SampOsc.ck b/lib/SampOsc.ck new file mode 100644 index 0000000..bc5feda --- /dev/null +++ b/lib/SampOsc.ck @@ -0,0 +1,26 @@ +/* + * Sample based oscillator + * NOTE: may not be frequency-synced! + */ +public class SampOsc extends SndBuf { + 1 => float __freq; /* pseudo-private */ + fun float freq(float f) + { + return f => __freq; + } + fun float freq() + { + return __freq; + } + + /* FIXME: not independant from cwd when instantiated */ + "lib/pulse.wav" => read; + 1 => rate; + + fun void __loop() /* pseudo-private */ + { + while (second/__freq => now) + 0 => pos; + } + spork ~ __loop(); +} diff --git a/pulse.wav b/lib/pulse.wav Binary files differindex ccf7b26..ccf7b26 100644 --- a/pulse.wav +++ b/lib/pulse.wav |