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...