Я бы хотел предварительно выполнить операции в ChucK, используя отдельные сэмплы из аудиофайла. Есть ли разумный способ получить значения сэмплов из аудиофайла в массив в ChucK? По сути, я хочу знать Как читать данные из файла wav в массив , но для ChucK вместо C.
Моей первой мыслью было использование und SndBuf для выполнения это, но кажется, что я могу только отправлять данные из SndBuf в другие угги.
Моя вторая мысль заключалась в том, чтобы использовать FileIO в двоичном режиме для непосредственного считывания значений из несжатого файла WAV PCM. Однако единственный источник, который я смог найти в FileIO, был http://wiki.cs.princeton.edu/index.php/ChucK/Dev/IO/FileIO, а пример кода
fun int[] readInts(string path) {
// open the file
FileIO file;
if (!file.open(path, FileIO.MODE_READONLY | FileIO.MODE_BINARY)) {
int ret[0]; // error opening the specified file
return ret;
}
// read the size of the array
file ~> int size;
file.finish(); // wait for the read to finish without advancing time
// before continuing
// now read in the contents
int ret[size];
for (0 => int i; i < size; i++)
file ~> ret[i];
// and we're done
file.close(); // automatically calls file.finish()
return ret;
}
не работает. Я получаю сообщение об ошибке, что «FileIO» не имеет члена «MODE_WRITEONLY» или «MODE_BINARY». Кроме того, я не могу найти информацию об операторе '~>', который выдает синтаксическую ошибку.