[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sc-users] Problems with AtsFile / NRT / Score
hello (josh),
we are trying to synthesize a time-streched version of a soundfile
using AtsFile / AtsNoiSynth.
we have a bunch of questions:
- while AtsNoiSynth seems to work in realtime mode, the output in NRT
is just silence
(in the below example, if you exchange it for PinkNoise, the
output is there, so the setup is basically fine!)
- the sound quality is very bad. is this normal for Ats? Should we go
for other methods like classical phase vocoder?
do i have the wrong settings with atsa (we used the defaults)?
- is there a newer version of atsa than the one from 2004?
- how is AtsFile -> addToScore supposed to work? we get a text file
that we can read with Score, but
Score is broken since it calls .sort after reading the file, and
that reverses the time order of the OSC bundles
(so in the example below, i just set the bundle list directly)
- am i having a strange hybrid intermediate build of SC, or why does
scsynth in NRT mode look for synthdefs in
/Applications/SuperCollider_f/synthdefs, while SynthDef ->
writeDefFile puts it into ~/Library/Application Support/SuperCollider/
synthdefs
so it won't be found by scsynth?
thanks a lot for help!
ciao, -sciss-
///////////////////////////////////////////////
a = AtsFile.new( "sounds/AlphavilleIlArrive.ats" );
a.addToScore( "sounds/test.sco" );
///////////////////////////////////////////////
x = Score.new;
// THIS DOESN'T WORK BECAUSE .sort reverses the messages order!!
//newFromFile( "sounds/test.sco" );
x.score = thisProcess.interpreter.executeFile( "sounds/test.sco" );
( //play just the resynth, with LFSaw pointing into the file
y = SynthDef( \atsTest, { arg scale = 1, noisePct = 0.1, bufnum = 0;
// Out.ar( 0, PinkNoise.ar( 0.25 ));
Out.ar( 0, AtsNoiSynth.ar( bufnum, a.numPartials, 0, 1,
filePointer: LFSaw.ar( a.sndDur.reciprocal * scale, pi, 0.5, 0.5 ),
noisePct: noisePct, mul: 1 ));
});
);
y.writeDefFile;
// ---> now copy ~/Library/Application Support/SuperCollider/
synthdefs/atsTest.scsyndef
// to /Applications/SuperCollider_f/synthdefs because scynth only
looks in the latter ?!
// x.add([ 0.0, [ "/d_recv", y.asBytes, nil ]]);
k = Synth.basicNew( \atsTest );
//x.add([ 0.0, [ "/sync", 666 ]]);
x.add([ 0.0, k.newMsg( nil, [ \scale, 0.9 ])]);
x.add([ (a.sndDur / 0.9), k.freeMsg ]);
o = ServerOptions.new;
o.numOutputBusChannels = 1;
x.recordNRT( "/tmp/test.osc", "sounds/testOut.aif", nil, 44100,
"AIFF", "int16", o );