Я работаю над простым патчем Supercollider (мой первый), предназначенным для замены сэмплов в файле, чтобы получить заикающийся, гранулярный синтезированный звук.
То, что я пытаюсь сделать, это создать новый аудиофайл с длиной входного файла. Он должен запустить цикл, который поменяет местами сэмплы в файле с сэмплами в зашифрованных индексах.
Я не смог найти способ заставить его скомпилировать и записать аудиофайл.
var indexa, indexb, frames, count, j, aa, ab;
j = 0;
s.boot;
b = Buffer.read(s, "/Users/admin/Desktop/10counter.aiff"); //my test file
"Frames: " + b.numFrames.postln;
"Channels: " + b.numChannels.postln;
count = b.numFrames * b.numChannels;
"Count: " + count.postln;
b.write("/Users/admin/Desktop/rbs.aiff", "aiff", "int16", 0, 0, true);
opCount.do ({
temp1 = Buffer.alloc(s, 1, 2);
temp2 = Buffer.alloc(s, 1, 2);
aa = Array.fill(frames, {arg i; i});
ab = a1.scramble;
})
//do the swaps
{j < count}.while ({
indexa = aa[j];
indexb = ab[j];
temp1 = b.get(indexa);
temp2 = b.get(indexb);
b.set(indexb, temp1);
b.set(indexa, temp2);
j.increment;
})
//write to file here?
b.close;