Клавиатура компьютера в клавиатуру пианино с 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, но та же концепция воспроизводит ноты асинхронно).

Другие вопросы по тегам