KeyPlayerRec a simple recorder for KeyPlayer


KeyPlayerRec can record a series of key presses made with KeyPlayer, 

and play it back with variable speed.



class methods:


// *new needs a KeyPlayer object

KeyPlayer(\kRec);

KeyPlayer.gui;

KeyPlayer(\kRec).makeRec;

// or make rec explicitly: 

// r = KeyPlayerRec.new();

// k.rec = r;



examples:

// random keyboard: 

(

var notes = ();

thisThread.randSeed = 2008;

"qwertzuiopasdfghjklyxcvbnm".do { |char| 


notes.put(char, rrand(36, 96));

KeyPlayer(\kRec).put(char, { |char| 

// recording added here!

KeyPlayer(\kRec).rec.recordEvent(char, \down);

char.postln; 

(midinote: notes[char]).play 

});

};

// use extra keys for record and play on/off

KeyPlayer(\kRec).putDown($,, { KeyPlayer(\kRec).rec.toggleRec }, noRep: true);

KeyPlayer(\kRec).putDown($., { KeyPlayer(\kRec).rec.togglePlay }, noRep: true);

)

// record a sequence now:

// bring window to front, 

// type ',' to start rec, type a few letter keys;

// type ',' to stop rec, type '.' to toggle playback


k = KeyPlayer(\kRec);


k.rec.task.play; // play it by hand

k.rec.list; // the list of recorded events

k.rec.list.printAll;

k.rec.isOn; // recording now or not?


// maybe do automatic recording? 

// if so, problem: we must know which keys to record, 

// and which not (e.g. rec on/off controls).


// good enough for playing with it now, extend later...