[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sc-users] Mac keyboard as midi keyboard
Hello!
Attached code - my attempt to use mac keyboard as midi keyboard.
As I see, there is some problem:
If I press several keys, not wide accord, but klaster (sorry for bad
english :) - they not sounds all. And, If I press key and hold it
more,then 1 sec, it starts to send series of notes. All it seems like
pressing keys and view words on screen. May be course is not
supercollider, but computer' keyboard low-level interruption soft?
May be it is impossible to use computer keyboard for same tasks? But,
if remember using keyboard in computer games...
Is it possible in Supercollider?
Best regards,
Vadim
(
// Window mast be front for play
m = MIDIOut(0, MIDIClient.destinations.at(1).uid); // 0=IAC,
1=midi interface
w = SCWindow.new;
c = SCNumberBox(w,Rect(0,0,100,30));
c.focus;
c.keyDownAction = { arg view,char,modifiers,unicode,keycode;
// char.asString.postln;
if(char.asString == "q", {m.noteOn(0, 54, 127);});
if(char.asString == "a", {m.noteOn(0, 55, 127);});
if(char.asString == "z", {m.noteOn(0, 56, 127);});
if(char.asString == "w", {m.noteOn(0, 57, 127);});
if(char.asString == "s", {m.noteOn(0, 58, 127);});
if(char.asString == "x", {m.noteOn(0, 59, 127);});
if(char.asString == "e", {m.noteOn(0, 60, 127);});
if(char.asString == "d", {m.noteOn(0, 61, 127);});
if(char.asString == "c", {m.noteOn(0, 62, 127);});
if(char.asString == "r", {m.noteOn(0, 63, 127);});
if(char.asString == "f", {m.noteOn(0, 64, 127);});
if(char.asString == "v", {m.noteOn(0, 65, 127);});
if(char.asString == "t", {m.noteOn(0, 66, 127);});
if(char.asString == "g", {m.noteOn(0, 67, 127);});
if(char.asString == "b", {m.noteOn(0, 68, 127);});
if(char.asString == "y", {m.noteOn(0, 69, 127);});
if(char.asString == "h", {m.noteOn(0, 70, 127);});
if(char.asString == "n", {m.noteOn(0, 71, 127);});
if(char.asString == "u", {m.noteOn(0, 72, 127);});
if(char.asString == "j", {m.noteOn(0, 73, 127);});
if(char.asString == "m", {m.noteOn(0, 74, 127);});
if(char.asString == "i", {m.noteOn(0, 75, 127);});
if(char.asString == "k", {m.noteOn(0, 76, 127);});
if(char.asString == ",", {m.noteOn(0, 77, 127);});
if(char.asString == "o", {m.noteOn(0, 78, 127);});
if(char.asString == "l", {m.noteOn(0, 79, 127);});
if(char.asString == ".", {m.noteOn(0, 80, 127);});
if(char.asString == "p", {m.noteOn(0, 81, 127);});
if(char.asString == ";", {m.noteOn(0, 82, 127);});
if(char.asString == "/", {m.noteOn(0, 83, 127);});
};
c.keyUpAction = { arg view,char,modifiers,unicode,keycode;
// char.asString.postln;
if(char.asString == "q", {m.noteOff(0, 54, 127);});
if(char.asString == "a", {m.noteOff(0, 55, 127);});
if(char.asString == "z", {m.noteOff(0, 56, 127);});
if(char.asString == "w", {m.noteOff(0, 57, 127);});
if(char.asString == "s", {m.noteOff(0, 58, 127);});
if(char.asString == "x", {m.noteOff(0, 59, 127);});
if(char.asString == "e", {m.noteOff(0, 60, 127);});
if(char.asString == "d", {m.noteOff(0, 61, 127);});
if(char.asString == "c", {m.noteOff(0, 62, 127);});
if(char.asString == "r", {m.noteOff(0, 63, 127);});
if(char.asString == "f", {m.noteOff(0, 64, 127);});
if(char.asString == "v", {m.noteOff(0, 65, 127);});
if(char.asString == "t", {m.noteOff(0, 66, 127);});
if(char.asString == "g", {m.noteOff(0, 67, 127);});
if(char.asString == "b", {m.noteOff(0, 68, 127);});
if(char.asString == "y", {m.noteOff(0, 69, 127);});
if(char.asString == "h", {m.noteOff(0, 70, 127);});
if(char.asString == "n", {m.noteOff(0, 71, 127);});
if(char.asString == "u", {m.noteOff(0, 72, 127);});
if(char.asString == "j", {m.noteOff(0, 73, 127);});
if(char.asString == "m", {m.noteOff(0, 74, 127);});
if(char.asString == "i", {m.noteOff(0, 75, 127);});
if(char.asString == "k", {m.noteOff(0, 76, 127);});
if(char.asString == ",", {m.noteOff(0, 77, 127);});
if(char.asString == "o", {m.noteOff(0, 78, 127);});
if(char.asString == "l", {m.noteOff(0, 79, 127);});
if(char.asString == ".", {m.noteOff(0, 80, 127);});
if(char.asString == "p", {m.noteOff(0, 81, 127);});
if(char.asString == ";", {m.noteOff(0, 82, 127);});
if(char.asString == "/", {m.noteOff(0, 83, 127);});
};
w.front;
)