Видимо это от безделья...
Даже не знаю, с чего начать.
Думаю, с этого:
В общем, суть идеи - в создании семплера. Только не простого, а... эм... ну, короче, чтоб всё и сразу. Дальше опишу свои мысли очень кучно и вперемешку, так как систематизировать всё это у меня не получилось:
- Функция Master BPM (любой семпл можно "зациклить", и тогда он будет повторяться в ритм с остальными, а не "как получится")
- Семпл может быть настроен так, что при его запуске его остальные (все) могут быть остановлены, либо "отключены" (продолжают играть, но их не слышно).
- Специальные "служебные" псевдо-семплы, реализованные плагинами. Например, эффекты, такие как flanger, crash, jet, noise и так далее. (Про них можно почитать в гугле)
- Управление, реализованное в модулях, с любых устройств - клавиатура, launch-pad, и что угодно, чей драйвер можно подцепить и написать на его основе модуль для работы с этой программой. И, разумеется, midi-контроллеры
- "Sample bank". Так как количество кнопок на любом аппарате ограничено (самое максимальное на лаунч-паде 16х16 = 256 кнопок), нужна возможность с одной кнопки запускать разные действия. Но можно сделать проще - с одной кнопки, например, запускаем семпл, который сейчас находится в позиции 3 в текущем банке семплов. А банк, опять же, можно переключить с помощью определённой кнопки.
- На любую кнопку можно назначить любое действие в настройках - запуск/остановка любого семпла, переключение семпл-банка...
- Смешанное управление - например, часть действий выполняем с контроллера, часть - с клавиатуры, часть - с лаунч-пада...
Что интересует:
1. Какой звуковой движок лучше использовать - Direct Sound, или bass, или ....?
2. Как можно перехватить любое нажатие, и СОБЫТИЕМ передать из DLL? Или как иначе реализовать управление?
P.S. Кто что не понял по тексту - спрашиваем, ибо писал на смешанном программистско-диджейском языке......