Да, это вполне возможно. Я уже сделал именно то, что вы предлагаете. Вы можете найти более подробную информацию на моем сайте для MindMaster MIDI .
Есть несколько частей к этому. Первый - это получить образцы из гарнитуры и поместить их в буфер. Для этого вам понадобится Neurosky SDK .
Далее вам нужно будет обработать эти образцы. Есть много алгоритмов для работы с мозговыми волнами. Самый простой метод (и самый плодотворный, в зависимости от того, кого вы спрашиваете) - это преобразовать ваш сигнал из временной области в частотную область и проверить относительные уровни нескольких полос в альфа / бета диапазоне частот. (Это где-то от 8 Гц до 24 Гц или около того.)
Есть несколько способов сделать это программно. FFT является обычным способом, и вы найдете множество доступных алгоритмов. Я решил, что FFT слишком медленный для моих целей, и в итоге использовал алгоритм Goertzel . Это было более эффективно, так как я смотрю только на несколько групп.
Как только вы это сделаете, вам нужно написать свое приложение, чтобы превратить эти данные в MIDI. Как вы это сделаете, зависит от вас и от того, какие функции вы хотите реализовать.
Далее необходимо отправить данные MIDI. Я не уверен, насколько вы знакомы с MIDI, но на базовом уровне есть сообщения включения / выключения заметок. Скорее всего, вас больше будут интересовать сообщения об изменении управления, которые управляют различными параметрами, такими как частота среза и резонанс. Чтобы отправить MIDI с C #, снова у вас есть много вариантов. Пример Лесли Санфорда о Code Project достаточен, чтобы вы начали.
Наконец, если у вас есть вопросы по этому вопросу, вам лучше задавать отдельные вопросы отдельно. Переполнение стека действительно не место для «Я хочу сделать этот большой проект, скажите мне, как сделать все это сразу».