intro text and some fixes
parent
eb3aa5624f
commit
dafbcc78ad
|
@ -1,22 +1,49 @@
|
||||||
/*
|
/*
|
||||||
|
|
||||||
|
algoforte #3 (220105b)
|
||||||
|
code for first track of "algoforte01" - a two-tracker release on my
|
||||||
|
bandcamp: https://music.lukaprincic.si or https://bandcamp.com/lukaprincic
|
||||||
|
track 2 is a live performance of most the ideas in here with some changes
|
||||||
|
that seem to be necessary for live coding performance. :/
|
||||||
|
|
||||||
|
to use this code you need to be able to send midi out to either virtual
|
||||||
|
instrument that plays a grand piano (a sampler or similar). i personally
|
||||||
|
used Salamander Grand Piano SFZ loaded into Renoise.
|
||||||
|
|
||||||
|
you can also use disklavier if you have one handy nearby.
|
||||||
|
|
||||||
|
by starting MIDIClient.init (and waiting for a second or two)
|
||||||
|
and then m=MIDIOut(0) a midi output/input is created for SC.
|
||||||
|
|
||||||
|
the midi out from SC must go into midi input of the sampler/piano,
|
||||||
|
use test Pbindef to test. midichannel on sampler/piano: 1 (in SC: 0)
|
||||||
|
|
||||||
|
route audio output from piano back to SC and disconnect it from
|
||||||
|
main output (speakers). this is easily done using JACK.
|
||||||
|
|
||||||
|
requirement for this patch is also DEINDUGens which include JPverb
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// algoforte #3 ///////////////////////////////////////////////////////////////////////
|
// helpers:
|
||||||
//
|
s.boot
|
||||||
//
|
s.meter
|
||||||
//
|
s.plotTree
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
|
// init midi
|
||||||
|
MIDIClient.init(1,1);
|
||||||
|
|
||||||
|
// create output on channel 1
|
||||||
|
m = MIDIOut(0)
|
||||||
|
|
||||||
|
// connect.
|
||||||
|
m.connect
|
||||||
|
|
||||||
|
// test
|
||||||
|
Pbindef(\testmidi, \type, \midi, \midicmd, \noteOn, \midiout, m, \chan, 1, \amp, 0.5).play
|
||||||
|
Pbindef(\testmidi).stop
|
||||||
|
|
||||||
// processing input from piano
|
// processing input from piano
|
||||||
(
|
(
|
||||||
Ndef(\inDSPout, {
|
Ndef(\inDSPout, {
|
||||||
|
@ -34,6 +61,7 @@ Ndef(\inDSPout, {
|
||||||
Ndef(\inDSPout).fadeTime = 4
|
Ndef(\inDSPout).fadeTime = 4
|
||||||
Ndef(\inDSPout).play(fadeTime:5)
|
Ndef(\inDSPout).play(fadeTime:5)
|
||||||
|
|
||||||
|
// when needed:
|
||||||
Ndef(\inDSPout).end(30)
|
Ndef(\inDSPout).end(30)
|
||||||
Ndef(\inDSPout).stop
|
Ndef(\inDSPout).stop
|
||||||
|
|
||||||
|
@ -90,7 +118,7 @@ Pbindef(\p220105b, \type, \midi, \midicmd, \noteOn, \midiout, m, \chan, 1,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
// -->
|
// allocate new buffer
|
||||||
b = Buffer.alloc(s, s.sampleRate*10, 1)
|
b = Buffer.alloc(s, s.sampleRate*10, 1)
|
||||||
|
|
||||||
// start recording into buffer via 'in'
|
// start recording into buffer via 'in'
|
||||||
|
@ -99,10 +127,10 @@ Ndef(\recbuf, {var sn=\in.ar(0!2); RecordBuf.ar(sn[0], b)})
|
||||||
// plug output from inDSPout to in of \recbuf
|
// plug output from inDSPout to in of \recbuf
|
||||||
Ndef(\recbuf) <<>.in Ndef(\inDSPout)
|
Ndef(\recbuf) <<>.in Ndef(\inDSPout)
|
||||||
|
|
||||||
// is there something in a buffer?
|
// is there something being recorded in a buffer?
|
||||||
b.plot
|
b.plot
|
||||||
|
|
||||||
// stop recording to a buffer
|
// when needed - stop recording to a buffer
|
||||||
Ndef(\recbuf).clear
|
Ndef(\recbuf).clear
|
||||||
|
|
||||||
|
|
||||||
|
@ -123,7 +151,8 @@ Ndef(\gran, {
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
Ndef(\gran).fadeTime = 5
|
Ndef(\gran).fadeTime = 5
|
||||||
Ndef(\recbuf).play
|
Ndef(\gran).play
|
||||||
|
|
||||||
|
|
||||||
Ndef(\gran).end(30) // fadeout
|
Ndef(\gran).end(30) // fadeout
|
||||||
Ndef(\recbuf).stop // stop immediately (send note offs)
|
Ndef(\gran).stop // stop immediately (send note offs)
|
||||||
|
|
Loading…
Reference in New Issue