Переключатель Pure Data osc~ вкл./выкл.

У меня есть этот простой патч:

Простая схема исправления

Теперь я подключил игровой контроллер к Pd, где клавиши дают мне 1 или 0 в зависимости от того, нажимаю я кнопку или нет.

Если я нажму кнопку, я хочу, чтобы osc~ «играл», и если я отпущу ее, он должен остановиться.

НО: я не смог найти точку, куда прикрепить переключатель. Я не хочу выключать DSP, так как хочу одновременно воспроизводить другой звук на другой клавише.

Было бы неплохо, если бы у кого-нибудь из вас было решение

EDIT: Хорошо, приведенное ниже решение сработало. Если есть необходимость в проекте, который я сделал (используя игровой контроллер в качестве инструмента), просто свяжитесь со мной напрямую.


person hGen    schedule 01.07.2014    source источник


Ответы (3)


Это делается с помощью объекта умножения звука [*~] и 0 или 1, как указано в предыдущем ответе.

Вот простой пример с переключателем PureData (который выводит 0 или 1, как и кнопки вашего геймпада):

Простое включение и выключение звука в Pd

источник

Объект [строка~] совершает плавный переход от 0 к 1 и обратно в течение 100 миллисекунд (окно сообщения выше заменяет токен $1 своим вводом), это обеспечивает огибающую громкости и стоп-клики, которые могут происходить, когда уровень тона меняется слишком резко. Если вы хотите, чтобы это изменение звучало мгновенно, по-прежнему используйте [строку~], но уменьшите 100 до 10.

Если это вам поможет, у меня также есть руководство по использованию игры прокладки в чистых данных

person AJFaraday    schedule 21.07.2014

Переключение сигнала в Pd осуществляется путем умножения сигнала на 0 или 1. Умножение сигнала выполняется с помощью объекта *~. Поскольку у вас уже есть 0 и 1 с вашего игрового контроллера, это должно быть легко. Однако вы начнете слышать щелчки, в зависимости от того, где находится синусоида в тот момент, когда вы резко отключите ее. Чтобы исправить это, добавьте объект line~ и увеличивайте и уменьшайте осциллятор.

person Max N    schedule 02.07.2014

Следует также иметь в виду, что при включении LFO слышен эффект его фазы. Поэтому в зависимости от частоты вашего генератора желательно контролировать его фазу при включении. Вы можете отправить числовые аргументы (0-1) на правый вход для управления фазой. Например, если вы хотите, чтобы LFO снижался каждый раз, когда вы включаете osc~, вы можете отправить 0 на правый вход, чтобы начать в начале фазы.

Если вы пойдете по этому пути, вы должны включить триггер, который вызывает удар по рампе, прежде чем вы отправите его на вход фазы. В противном случае вы будете слышать клиппинг при каждом включении. Это особенно важно при коротком времени разгона. Дополнительную информацию о порядке срабатывания триггеров можно найти в справочных файлах PureData в разделе «2.control.examples/03.connections.pd».

Вероятно, нет причин отправлять фазовый аргумент в osc~, когда вы его выключаете, поэтому вы можете просто добавить атом выбора, чтобы управлять переключением в зависимости от того, включаете вы или выключаете.

person Rich    schedule 31.03.2015