Ein Sequenzer in NodeJS

Auf der Suche nach Software zu meinem Launchpad MINI stöberte ich bei GitHub und fand diese Sequenzer. Noch bevor es zum ersten Test den Weg auf meine Festplatte gefunden hatte, fiel mir auf das es die Launchpad Ansteuerung über ein NPM Packet erledigte. Launchpad-Mini ist praktisch wenn man genau dieses Pad besitzt, damit sollte es doch möglich sein selber etwas zu Programmieren.

pad.on( 'key', k => {
  if(k.pressed) {
    pad.col( pad.red.full, k);
    return;
  } else {
    console.log(`pressed: ${k.pressed} Y:${k.y} X:${k.x}`);
    let btnStatus = BTN_GRID[k.x][k.y];
    if(!btnStatus||false) return;
    if(btnStatus._name==='green') {
      BTN_GRID[k.x][k.y] = pad.yellow;
      updatePatts(false,k.x,k.y);
    } else if(btnStatus._name==='yellow') {
      BTN_GRID[k.x][k.y] = pad.green;
      updatePatts(true,k.x,k.y);
    }
    pad.col( BTN_GRID[k.x][k.y], k);
  }
});

Hier zu sehen wie bei jedem druck auf eines der Pads, solange des gehalten wird dieses Rot leuchtet. Und bei jedem anderen Event den Status invertiert. Dann steht grün für Aktiv und gelb für Inaktiv. Der Teil der die meiste Arbeit bereitet hat, war die Midi Verbindung zu einem anderen Programm. Da das Pad selber auch per MIDI angesteuert wird, muss ein Kanal auswählt werden der nur die zu spielen Noten enthält. Und eine wichtige Erkenntnis war das Verbinden des JavaScript Programmes mit dem Sample Abspieler. [Hydrogen/Alsa/Linux]

Der Samstag war dann noch lang genug um zumindest eine minimale Version meines Sequenzers zu erstellen.

So meine ich muss das ungefaehr aussehen wenn man einen Sequencer auf dem Launchpad abbilden will.

Da ja auch bald wieder Hacktober ist für alle die mitmachen wollen =>
https://github.com/dexta/launchpad-mini-my16seq