If you hit the bug... this will work: s.boot; (// make this the path to your soundfile... this is a test file I used with three channels
f = SoundFile.new("sounds/DyneTromBF.aif");
f.openRead;
f.numChannels;
f.close;
f.path;
c = Condition.new;
Routine.run({
f.numChannels.do({arg i;
s.sendMsgSync(c, \b_allocReadChannel, 0, f.path, 0, 0, i);
s.sendMsgSync(c, \b_write, 0, "sounds/"++f.path.basename++i+
+".aiff");
("Channel "++i++" saved").postln;
})
})
)
On Dec 31, 2006, at 11:11 AM, Sciss wrote:
hi, there is a bug in the "/b_readChannel" implementation of scsynth : b = Buffer.alloc( s, 32768 );s.listSendMsg( b.readChannelMsg( "/Volumes/Loomis/Kalligraphie/ Papier1.aif", 0, 32768, channels: [ 0 ]))----> "Channel mismatch. Requested 2 channels. Buffer has 1 channels."s.listSendMsg([ "/b_readChannel", b.bufnum, "/Volumes/Loomis/ Kalligraphie/Papier1.aif", 0, 32768, 0, 0, 0 ])----> ok worksthe error occurs when a completionMsg is provided. seems it counts the last argument for another channel index...ciao, -sciss- Am 31.12.2006 um 19:55 schrieb Joshua Parmenter:(\b_allocReadChannel, 0, f.path, 0, 0, i,_______________________________________________ sc-users mailing list sc-users@xxxxxxxxxxxxxxx http://www.create.ucsb.edu/mailman/listinfo/sc-users
****************************************** Joshua D. Parmenter http://www.realizedsound.net/josh/“Every composer – at all times and in all cases – gives his own interpretation of how modern society is structured: whether actively or passively, consciously or unconsciously, he makes choices in this regard. He may be conservative or he may subject himself to continual renewal; or he may strive for a revolutionary, historical or social palingenesis." - Luigi Nono