LINUX.ORG.RU

Музыка в linux


3

2

Всего сообщений: 4

Преобразование звука в MIDI в реальном времени

Спустя 2,5 месяца работы я готов вам представить свою программу wave2midi. Она анализирует спектр нот в звуковом сигнале в реальном времени и выдает на выход MIDI события, которые можно записывать в таких программах, как MuseScore, или проигрывать в синтезаторе Yoshimi. Моя программа может воспринимать даже аккорды!

Программа работает в среде UNIX подобных систем с звуковой системой JACK Audio Connection Kit.

К ней можно подключать любые программы, поддерживающие JACK.

Я использую w2midi для того, чтобы получать звук синтезатора, играя на электрогитаре и для того, чтобы получать звук синтезатора своим голосом в микрофон! Вы можете придумать свой способ её использовать. Можно, например, для более точного распознавания пропускать входящий сигнал через компрессор, а выходящие ноты транспонировать (я думаю есть такие утилиты, если нет, то напишу).

>>> Видео демонстрация

Программа состоит из интерфейса командной строки (w2midi) и графического интерфейса (w2midi_qt). CLI часть написана на C99, а графическая - на C++ с использованием фреймворка Qt5.

w2midi распространяется под лицензией Apache 2.0, w2midi_qt под GPL-3.0-only.

Хочу обратить внимание на настройку:

  • Чем выше буфер, тем выше задержка и точность
  • Если программа улавливает лишние звуки, измените порог срабатывания в Дб

Программа распознает частоты с помощью преобразования Фурье, а конкретно, с помощью библиотеки FFTW3. Частоты преобразуются в ноты по простой формуле: 12 * \log_2 \frac{f}{d}, где f - полученная частота, d - опорная. Гармонический ряд - относителен, я считаю его относительно частоты 440 герц (нота ля первой октавы).

Отдельно хочу обратить внимание на обертоны. Если просто анализировать ноты по такому алгоритму, то получается настоящая какафония… Это из за того, что музыкальные инструменты издают не чистую синусоиду, а еще и дополнительные гармоники, называемые обертонами, придающие тембр. Но они нам не нужны во время записи нот. Чтобы их побороть я придумал очень простой алгоритм: из полутонов, стоящий в интервале (расстояние между нотами) секунда (1-2 полутона) выбирается самый громкий. Да, все так просто… В музыке НИКОГДА не используются секунды. Самое интересное, что об этом нигде не написано, просто заметил эмпирическим путём такое интересное свойство.

Вот такая история. Инструкции по сборке из исходных кодов находятся в README.

>>> Видео демонстрация

>>> Репозиторий w2midi

>>> Репозиторий w2midi_qt

>>> Просмотр (1920x1080, 1088 Kb)

 , , , ,

realbarmaley
()

Install Djentoo

Всё! Чтоб его, установил-таки этот проклятый всеми богами Gentoo! И даже умудрился джентануть немножечко (и даже больше – да простит меня покойный Эдди)! Правда, через кое-как настроеный Guitarix, но это детали…

А теперь всё по порядку.

Как-то в декабре меня в очередной раз посетила мысль – а не накатить ли мне Gentoo? Несколько раз, между прочим, ещё с прошлого года, я уже пробовал, да только вечно что-то мешало – то нехватка времени (почему-то я думал, что мощностей пятой "ряженки" хватит для компиляции всего за ночь; хватить-то может и хватило бы, но установка "генты" – это ведь не только компиляция!), то как раз в этот момент что-то сломали в репозитории, и Python не ставился, а месяц назад вообще Wiki легла, стоило мне только до загрузчика добраться!

Но наконец-то наступил новый 2022 век год, и я таки поборол этого монстра! Так как я "арчевод" со стажем, большинства проблем мне удалось избежать. Однако не всех, ой не всех…

( читать дальше... )

>>> Просмотр (3840x2160, 3384 Kb)

 , ,

Korchevatel
()

Свожу и развожу, часть шестая

С прошлого раза сменилась DAW. На сей раз, это нативная версия REAPER с темой iLogic v3, которая в линуксовом Рипере выглядит криво, а половина функций конфига автора темы не подгружается. Да, применять темы с готовыми конфигами под Рипер, это, вроде как, не Ъ, но знаете ли, я долго сидел на Ardour, и мне хочется, чтобы у DAW сразу были нужные мне кнопки и удобная мне раскладка, и ковырять её в попытках налепить такое самому совсем не хочется.

Тем не менее, я был очень рад переезду на новый софт, потому что в сравнении с Ardour эта штука прямо таки летает. Производительность проекта куда лучше, возможность «гасить» звуковое устройство при сворачивании выручает, автоматическое отключение звука дорожки при перегрузе (а не вылетание DAW, как с Ardour) радует и так далее.

На скриншоте моя первая попытка сделать в этой DAW что-то, которая, на мой взгляд, не увенчалась успехом, потому что я был лишён поддержки LADSPA/LV2 (хотя и запускал некоторые плагины через lv2vst), и, соответственно, привычных плагинов (хотя, поддержку LV2 в Рипер все-таки недавно добавили, а на скриншоте август 2020), а так же, помимо этого, как и проект из предыдущего моего поста (ссылка выше), этот стал жертвой долгого производственного цикла, отсутствия нормального аудио-контроля (сейчас с этим получше), от чего звук, в итоге, стал плосковат. Кроме того, по скриншоту можно заметить мою нездоровую тягу к раздуванию проектов. Больше - не всегда значит лучше.

Послушать трек со скриншота можно здесь, а сам альбом по этой ссылке.

>>> Просмотр (2560x1440, 1111 Kb)

 , , , ,

tekk
()

Свожу и развожу, часть вторая

Скриншот сделан десять дней назад, но я хотел выложить, так что вот...

Основная деятельность не очень поменялась с прошлого раза, но софт, техника и окружение поменялись.

На скриншоте Ardour2.8, 8 дорожек, примерно 30 ladspa-фильтров на весь проект(я считаю дублирующиеся, да).

2.8 потому, что конкретно этот проект был создан в нем. Перенастраивать входы/выходы и фильтры в 3м ардуре я не очень хочу, поэтому доделывал там, где и начал.

Пишется все на M-Audio Delta 66 и Intel Core i7 =)

Собственно, информация о дистре и окружении есть тут.

Результат работы можно прослушать здесь, если кому интересно.

Ну и да, у меня перегруз на ударных =)

>>> Просмотр (1920x1080, 279 Kb)

 , ,

tekk
()