float array[44100]; SinOsc s; Impulse out; KBHit kb; 1 => int notDone; while( notDone ) { kb => now; while( kb.more() ) { kb.getchar() => int c; if (c == 114) record(); // 'r' character else if (c == 112) play(); // 'p' character else if (c == 115) save(); else if (c == 120) 0 => notDone; // 'x' character } } fun void record() { int i; adc => blackhole; s => dac; 1000.0 => s.freq; for (0 => i; i < 3; i++) { <<< "Ready..... ", 3-i >>>; 1.0 => s.gain; 0.2 :: second => now; 0.0 => s.gain; 0.8 :: second => now; } <<< "GO!!!...", " " >>>; for (0 => int i; i < 44100; i++) { adc.last() => array[i]; 1 :: samp => now; } s =< dac; adc =< blackhole; } fun void play() { out => dac; for (0 => int i; i < 44100; i++) { array[i] => out.next; 1 :: samp => now; } out =< dac; } fun void save() { out => WvOut w => blackhole; "test.wav" => w.wavFilename; for (0 => int i; i < 44100; i++) { array[i] => out.next; 1 :: samp => now; } w.closeFile(); out =< w; w =< blackhole; } // Ascii values: // 97 a 98 b 99 c 100 d 101 e 102 f 103 g // 104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o // 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w // 120 x 121 y 122 z