From 6aabf209da366b2c62b0b44fc6eed9b1a24cdc63 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Mon, 16 Apr 2012 22:18:27 +0200 Subject: added sample-based oscillator class --- lib.ck | 1 + lib/SampOsc.ck | 26 ++++++++++++++++++++++++++ lib/pulse.wav | Bin 0 -> 35322 bytes pulse.wav | Bin 35322 -> 0 bytes 4 files changed, 27 insertions(+) create mode 100644 lib/SampOsc.ck create mode 100644 lib/pulse.wav delete mode 100644 pulse.wav diff --git a/lib.ck b/lib.ck index b6f8809..1b956d5 100644 --- a/lib.ck +++ b/lib.ck @@ -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/lib/pulse.wav b/lib/pulse.wav new file mode 100644 index 0000000..ccf7b26 Binary files /dev/null and b/lib/pulse.wav differ diff --git a/pulse.wav b/pulse.wav deleted file mode 100644 index ccf7b26..0000000 Binary files a/pulse.wav and /dev/null differ -- cgit v1.2.3