JScript и WSH с MIDI входами в Windows 10 - PullRequest
0 голосов
/ 03 февраля 2019

Я музыкант, пытающийся сделать несколько простых миди-скриптов в Windows.Я хочу: 1 - получить MIDI-вход от MIDI-устройства, 2 - обработать его, 3 - отправить MIDI-выход на MIDI-устройство.

У меня есть номер 1 и 3 разобрались.Используя 2 утилиты командной строки Windows под названием «Sendmidi» и «Receivemidi» (https://github.com/gbevin/SendMIDI), я могу получать и отправлять MIDI-данные по своему усмотрению.

Поскольку я могу кодировать в Javascript, а Windows читает .js непосредственно воболочка, которую я считал самым простым путем, - это написать логическую сторону в Javascript и использовать Shell.Run для выполнения утилит «Sendmidi» и «Receivemidi»

var device = "LoopBe Internal MIDI";
var shell = WScript.CreateObject("WScript.Shell");

function sendMidi(note, options){
    if (!options) options = '';
    shell.Run('sendmidi dev ' + device + ' on ' + note + ' 0 off' + options);
}

function receiveMidi(options){
    if (!options) options = '';
    shell.Run('receivemidi dev ' + device + options);   
}


receiveMidi('on'); //listen for Notes On events

//console continually outpus:
//channel  1   note-on           C3 100
//channel  1   note-on          C#3 100
//channel  1   note-on           D3 100
//channel  1   note-on          D#3 100
//awesome!

Это открывает окно процесса «receivemidi»и консоль выводит разные ноты MIDI для каждой четвертной ноты (C1, C # 1, D1, D # 1, повтор).

Теперь я хотел бы назначить переменную в зависимости от того, какая нота MIDIпоследний раз был получен (т. е. var beat = 1,2,3 или 4) и используется в моем основном цикле JS для отправки разных MIDI-нот в зависимости от того, какой "удар" у меня включен и какие MIDI-ноты поступили

Но я не могу понять, как я могу использовать данные в окне командной строки «receivemidi» внутри окна командной строки Javascript?

Полагаю, вопрос не относится к MIDI как таковому, ноЯ надеюсь су omeone есть предложения по достижению того, что я хочу сделать, по сути простой сценарий с MIDI-событиями и входами / выходами

...