[Всем, кто признает следующую установку бессовестно полученной из musique concrète и музыки Кейджа: извинения за грубые упрощения]
Настройка: у меня есть проект, в котором мне нужно программно читать аудиосэмплы, возможно, манипулировать их функциями (применять огибающие, реверсировать, реверберировать, увеличивать/уменьшать скорость и т. д.) и объединять их в последовательности.
По сути, мне нужно программно управлять эффектами, которые были бы доступны в таком инструменте, как Audacity или его эквиваленты.
Вопрос: Какие типы инструментов я могу использовать для достижения этой цели? Я кратко изучил суперколлайдер и чистые данные (= прочитал пару руководств), но они, похоже, в основном ориентированы на синтез звука, хотя чтение сэмплов из файлов возможно. Ориентация на синтез звука, кажется, также вносит много ненужной сложности в такой простой проект, как мой. Кроме того, чистые данные (и их собратья) визуально ориентированы, и я бы предпочел текстовую среду, если это возможно.
Возможно, существуют библиотеки управления звуком, которые позволили бы получить доступ к «подобным Audacity» эффектам из стандартного языка программирования (инструмент, который был бы похож на «привязки Audacity» для языка X, из-за отсутствия лучшего термина)?
Один из способов — просто использовать язык программирования общего назначения — подойдет почти любой — для считывания аудиосэмплов, выполнения какой-либо обработки и записи фрагмента на диск. Чтение и запись формата WAV довольно просты, даже если вам нужно разобрать его самостоятельно. Некоторые из упомянутых вами манипуляций — применение огибающих, замедление звука — очень легко закодировать; сверточная реверберация довольно проста. Ускорение звука может быть немного сложнее, так как вы должны сделать это таким образом, чтобы избежать наложения . http://musicdsp.org/ — это один из ресурсов аудиоалгоритмов, которые вы можете реализовать самостоятельно.
Конечно, вы можете предпочесть, чтобы сторонняя аудиобиблиотека выполняла часть работы за вас, чтобы вам не приходилось выполнять всю эту низкоуровневую работу. Их выбор будет зависеть от языка, который вы используете.
Другим вариантом может быть язык с хорошей поддержкой звука, встроенный в его стандартные библиотеки — например, JavaScript на самом деле неплохо справляется со звуком, если вы используете его в браузере, который поддерживает API веб-аудио . Этот API поддерживает все, что вы упомянули, и вы даже можете получить некоторые интересные интерактивные вещи, происходящие в веб-браузере (и, конечно же, размещать свои интерактивные работы в Интернете!).
Затем мы переходим к специализированным языкам программирования аудио , которые часто являются диалектами общих языков программирования со встроенной поддержкой аудиобиблиотек в качестве стандарта. Недавно я видел отличную демонстрацию Sonic PI (которая использует суперколлайдер под капотом) и ориентирована на живое кодирование, хотя вы можете так же легко рендерить свою работу на диск. Это было бы одной из моих личных рекомендаций для простой отправной точки, хотя я не эксперт в этом.
Вы также можете рассмотреть возможность использования некоторых аудиоинструментов командной строки и написания пакетного / PowerShell / другого файла сценария, чтобы заставить их выполнять некоторую обработку. Примером может служить Sox , и резиновая лента тоже интересный инструмент.
Нет войны
Тодд Уилкокс
Нет войны
Стефано
Нет войны