Distemper: Тогда микшер. У него должны быть дрова для компа, чтобы можно было управлять каналами внутри операционки. Что-нибудь _типа_ такого www.muztorg.ru/cat/details/A001873
Касательно софта - это специфическая задача, но, думаю, Reaper справится (www.reaper.fm/). Если его функциональность недостаточна (что большая редксть, но в вашем случае может быть), то можно допилить к нему что-то свое на языке Lua (http://www.lua.org), который как раз для допиливания и создавался.
Еще последние годы сетевым звуком начали заниматься крупные фирмы типа Waves, но их продукты обычно на порядок дороже.
Да, собрать и запрограммировать - два отдельных больших этапа. Можно запилить программу на PD независимо от железа и просто залить ее на Raspberry позже с незначительными модификациями.
Дима Петрук: Даже человеку с абсолютным слухом, знающему звук инструмента, нужно примерно полсекунды :)
"На лету" - с технической точки зрения растяжимое понятие. Я думаю, что 1-2 секунды - это вполне достаточная задержка, чтобы такой алгоритм успел сработать. К тому же, его можно допилить так, чтобы он выдавал результат в процессе: отображал распознавание каждой отдельной компоненты по ходу, а в конце уже писал результат.
Чтобы делать такие вещи на лету, нужно оконное преобразование Фурье. Это не вносит никаких фундаментальных ограничений в данном случае, но может несколько усложнить получение аккуратных результатов.
Эти библиотеки могут не только анализировать, но и изменять компоненты сигнала и ресинтезировать изменения в звук.
maximilyanvelikolepny: Посмотрите материалы вот этого курса https://class.coursera.org/audio-001 , если он еще открыт.
Там как раз используется одна из вышеуказанных библиотек и обсуждаются некоторые аспекты высокоуровневого анализа аудио.
maximilyanvelikolepny: Там под каждой есть краткое описание и ссылка на страницу с подробным описанием. Для первого С++ проекта / проекта по работе со звуком лучше выбрать что-то попроще, чем свой Shasam :)
Да, наводки скорее всего есть, но USB не сильно поможет. Можно обойтись имеющимся микрофоном и экранированным XLR длиной до 2м.
И еще, конечно, можно в настройках драйверов увеличить битность записи. Это улучшит соотношение сигнал/шум. Однако, на чудеса надеяться не стоит. У этих звуковых интерфейсов вход все равно относительно шумный.
Любым образом, главное - гладкость кривой и эффективность. На данный момент рисуется кривая степенной функции и слайдер на GUI меняет значение показателя степени.
Если это не требует прочтения толстых книг и прохождения курсов, то готов :) Эта вещь мне нужна для желаемой, но не критичной функциональности. То есть желание есть, но не фанатичное.
Касательно софта - это специфическая задача, но, думаю, Reaper справится (www.reaper.fm/). Если его функциональность недостаточна (что большая редксть, но в вашем случае может быть), то можно допилить к нему что-то свое на языке Lua (http://www.lua.org), который как раз для допиливания и создавался.
Еще последние годы сетевым звуком начали заниматься крупные фирмы типа Waves, но их продукты обычно на порядок дороже.