MIDIPlayer
MIDIGatePlayer.new(spec)
generates a gate with the level scaled from 0..127 to the requested spec
CCPlayer.new(controller,spec)
controller value is scaled to the requested spec
MIDIFreqPlayer.new
midi note to freq
Any attached midi keyboard should work
(
Instr(\monosynth,{ arg gate=0.0,freq=440.0,ffreq=500,rq=0.1,width=0.3;
var amp;
amp = Latch.kr(gate,gate);
RLPF.ar(
Pulse.ar(freq,width),
ffreq,
rq)
* EnvGen.kr(Env.adsr,gate,amp)
});
Patch(\monosynth,[
MIDIGatePlayer.new,
MIDIFreqPlayer.new
]).gui
)
(
Patch(\monosynth,[
BeatClockPlayer.new(16),
MIDIFreqPlayer.new,
CCPlayer(50,[100,3000,\exp,0.0,1500.0]),
CCPlayer(51,[0.1,0.9,\exp,0.0,0.2]),
CCPlayer(52,[0.05,1.0])
]).play
)
Note that the intial values are the spec's defaults, not the Instr function argument defaults.
/*
( PlayerBinop not yet implemented
Patch(\monosynth,[
BeatClockPlayer.new(16) * MIDIGatePlayer.new,
MIDIFreqPlayer.new,
CCPlayer(50,[100,3000,\exp,0.0,1500.0]),
CCPlayer(51,[0.1,0.9,\exp,0.0,0.2]),
CCPlayer(52,[0.05,1.0])
]).play
)
*/
)
(
Instr(\fatsynth,{ arg gate=0.0,freq=440.0,ffreq=500,rq=0.1;
var amp;
amp = Latch.kr(gate,gate);
RHPF.ar(
Splay.arFill(9,{ arg i;
Pulse.ar(freq + rrand(-100,100),LFNoise1.kr(0.01))
}),
ffreq * amp,
rq)
* EnvGen.kr(Env.adsr,gate,amp)
});
Patch(\fatsynth,[
MIDIGatePlayer.new,
MIDIFreqPlayer.new,
CCPlayer(50,ControlSpec(100,3000,\exp,0.0,500.0)),
CCPlayer(51,ControlSpec(0.1,0.9,\exp,0.0,0.1))
]).gui
)
Mod Wheel
(
Patch(\fatsynth,[
MIDIGatePlayer.new,
MIDIFreqPlayer.new,
CCPlayer(1,[100,3000,\exp,0.0,500.0])
]).play
)
// command-. to stop