[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 );