Типы инструментов для автоматизации «ленточных» манипуляций со звуком [закрыто]

[Всем, кто признает следующую установку бессовестно полученной из musique concrète и музыки Кейджа: извинения за грубые упрощения]

Настройка: у меня есть проект, в котором мне нужно программно читать аудиосэмплы, возможно, манипулировать их функциями (применять огибающие, реверсировать, реверберировать, увеличивать/уменьшать скорость и т. д.) и объединять их в последовательности.

По сути, мне нужно программно управлять эффектами, которые были бы доступны в таком инструменте, как Audacity или его эквиваленты.

Вопрос: Какие типы инструментов я могу использовать для достижения этой цели? Я кратко изучил суперколлайдер и чистые данные (= прочитал пару руководств), но они, похоже, в основном ориентированы на синтез звука, хотя чтение сэмплов из файлов возможно. Ориентация на синтез звука, кажется, также вносит много ненужной сложности в такой простой проект, как мой. Кроме того, чистые данные (и их собратья) визуально ориентированы, и я бы предпочел текстовую среду, если это возможно.

Возможно, существуют библиотеки управления звуком, которые позволили бы получить доступ к «подобным Audacity» эффектам из стандартного языка программирования (инструмент, который был бы похож на «привязки Audacity» для языка X, из-за отсутствия лучшего термина)?

нужны ли какие-то возможности реального времени, или все дело в автономной обработке?
Этот вопрос здесь не по теме, потому что мы решили не обсуждать рекомендации по аппаратному или программному обеспечению. Вместо этого вы можете попробовать его на softwarerecs.stackexchange.com.
Стефано, были бы вы довольны рекомендациями по типу инструмента, а не по конкретным инструментам?
@topomorto: мне нужна только автономная обработка. Также приветствуются предложения по рекомендуемому классу инструментов. на самом деле они приветствуются даже больше, чем предложения о конкретных инструментах. Мне в основном нужно знать, где искать
Я отредактировал вопрос, чтобы прояснить это - надеюсь, что редактирование в порядке. (вопросы с предложениями для конкретных инструментов здесь не по теме, но, надеюсь, в нынешней формулировке все в порядке.)

Ответы (1)

Один из способов — просто использовать язык программирования общего назначения — подойдет почти любой — для считывания аудиосэмплов, выполнения какой-либо обработки и записи фрагмента на диск. Чтение и запись формата WAV довольно просты, даже если вам нужно разобрать его самостоятельно. Некоторые из упомянутых вами манипуляций — применение огибающих, замедление звука — очень легко закодировать; сверточная реверберация довольно проста. Ускорение звука может быть немного сложнее, так как вы должны сделать это таким образом, чтобы избежать наложения . http://musicdsp.org/ — это один из ресурсов аудиоалгоритмов, которые вы можете реализовать самостоятельно.

Конечно, вы можете предпочесть, чтобы сторонняя аудиобиблиотека выполняла часть работы за вас, чтобы вам не приходилось выполнять всю эту низкоуровневую работу. Их выбор будет зависеть от языка, который вы используете.

Другим вариантом может быть язык с хорошей поддержкой звука, встроенный в его стандартные библиотеки — например, JavaScript на самом деле неплохо справляется со звуком, если вы используете его в браузере, который поддерживает API веб-аудио . Этот API поддерживает все, что вы упомянули, и вы даже можете получить некоторые интересные интерактивные вещи, происходящие в веб-браузере (и, конечно же, размещать свои интерактивные работы в Интернете!).

Затем мы переходим к специализированным языкам программирования аудио , которые часто являются диалектами общих языков программирования со встроенной поддержкой аудиобиблиотек в качестве стандарта. Недавно я видел отличную демонстрацию Sonic PI (которая использует суперколлайдер под капотом) и ориентирована на живое кодирование, хотя вы можете так же легко рендерить свою работу на диск. Это было бы одной из моих личных рекомендаций для простой отправной точки, хотя я не эксперт в этом.

Вы также можете рассмотреть возможность использования некоторых аудиоинструментов командной строки и написания пакетного / PowerShell / другого файла сценария, чтобы заставить их выполнять некоторую обработку. Примером может служить Sox , и резиновая лента тоже интересный инструмент.

Спасибо. Это именно то, что я искал: таксономию доступных типов гудок (с правильными условиями для поиска).