Клавиатура компьютера в клавиатуру пианино с AutoHotkey
Я хочу иметь возможность использовать клавиатуру своего компьютера в качестве клавиатуры пианино, однако версия AHK по умолчанию поддерживает только один "голос" за раз. Я попытался запустить экземпляр для каждой заметки, но это не исправляет, если я нажимаю одну и ту же заметку несколько раз.
Я нашел эту тему о том, как это можно решить с помощью библиотеки BASS, но я довольно зелен, когда дело доходит до кодирования, и поэтому я не уверен, как включить библиотеку в мой простой код.
Вот еще один подобный форум, который может решить проблемы, но у него есть задержка, и частично совпадающее решение не решает мою проблему.
Это такая простая идея (воспроизводить звук при нажатии кнопки), но каким-то образом она выходит из моей глубины. В настоящее время мой код выглядит так:
~1::
SoundPlay, C:\Users\Fires\Downloads\2489__jobro__piano-ff\39187__jobro__piano-ff-040.wav
за каждую ноту
РЕДАКТИРОВАТЬ:
~a::
FileDelete, %A_ScriptDIR%\Sound1.AHK
FileAppend,
(
SoundPlay, C:\Users\Fires\Desktop\New folder (4)\043.wav, Wait
), %A_ScriptDir%\Sound1.AHK
Run, %A_ScriptDIR%\Sound1.AHK
Return
Это то, что я использую сейчас, но это все еще сомнительно, когда 2 нажаты одновременно
1 ответ
Скорее всего, из-за "Подождите". согласно документации: https://autohotkey.com/docs/commands/SoundPlay.htm
"Если файл воспроизводится, а текущий скрипт воспроизводит второй файл, первый файл будет остановлен, чтобы можно было воспроизвести второй. В некоторых системах некоторые типы файлов могут перестать воспроизводиться, даже если новый файл воспроизводит совершенно отдельный скрипт. "
Похоже, это проблема с AutoHotKey. И невозможно открыть несколько "голосов" или одновременных звуков. вполне возможно сделать программу на C#, которая делает то же самое, что я делал раньше. и теперь у меня есть фрагменты кода (он воспроизводит звуки midi вместо wavs, но та же концепция воспроизводит ноты асинхронно).