Sequenzer selber programmieren

Gisel1990

||||||||||
Hi,

dieses Thema hätte vielleicht besser in Controller, Kabel, MIDI / CV gepasst, vielleicht aber auch nicht.

Ich bin Anwendungsentwickler, allerdings ziemlich eingerostet. Beruflich befasse ich mich zu 90% mit Sysadmin-Kram und darf gelegentlich in JSP und Java am ERP-System basteln.

Um wieder etwas in Form zu kommen, dachte ich, es wäre vielleicht ganz lustig, einen Midi-Sequenzer zu bauen, da ich hobbymäßig elektronische Musik mache.

Ich hab mitgekriegt, dass es in Chrome eine Midi-Schnittstelle gibt, so gesehen wäre vielleicht Javascript die Wahl der Programmiersprache? Hat jemand sowas schon mal gemacht? Gibt es fertige Beispiele?

Ich dachte, ich frag einfach mal in die Runde, bevor ich selber auf die Suche gehe, falls jemand den ein oder anderen nützlichen Link oder Tipp zu dem Thema hat.
 
Na, Chrome ist meines Wissens der einzige Browser, der diese Schnittstelle unterstützt. Aber auch wenn der Browser durchaus verbreitet ist, ist nicht jeder bereit, so ein Google-Produkt einzusetzen.

Wenn andererseits JavaScript deine bevorzugte Programmiersprache ist, und du vor allem an den Spaß beim Programmieren und weniger an ein fertiges Produkt denkst, könnte es für dich der richtige Weg sein.

Ein bissen off-topic: Kennst du das (gleich der erste Beitrag)?
 
Na, Chrome ist meines Wissens der einzige Browser, der diese Schnittstelle unterstützt. Aber auch wenn der Browser durchaus verbreitet ist, ist nicht jeder bereit, so ein Google-Produkt einzusetzen.

Wenn andererseits JavaScript deine bevorzugte Programmiersprache ist, und du vor allem an den Spaß beim Programmieren und weniger an ein fertiges Produkt denkst, könnte es für dich der richtige Weg sein.

Ein bissen off-topic: Kennst du das (gleich der erste Beitrag)?
rly? excel statt chrome? wtf...
Und wenn's JavaScript sein soll bleibt wohl nur Chrome oder Node (z.B. https://github.com/Pomax/midi-with-node)...
 
qertySeq() geht in die Richtung. Der Browser dachte ich hat den Vorteil des Zugriffs auf das DOM, so dass ich mich nicht so sehr um die Grafik kümmern muss. Das in Verbindung mit der Chrome Midi-API sollte die schnellsten Ergebnisse bringen. Mir reicht im aller ersten Schritt schon, beispielsweise einen Button zu bauen, der auf der verbundenen Hardware einfach nur auf Kanal 1 ein Note On triggert. Und dann Schritt für Schritt. Hab auch noch nie Midi programmiert. Würde das ganze dann auch nicht wie qertySeq() als Browser Add-on machen, sondern ganz einfach als Web-Anwendung.

Aber falls jemand eine bessere Idee hat oder z.B. eine tolle Java Bibliothek empfehlen kann, die genau das ermöglicht, dann immer her damit.
 
Zuletzt bearbeitet:
Ist schon länger her, da habe ich mit der Programmiersprache Chuck herum probiert. Hat mir gut gefallen, wie man dort mit Zeit und Events umgeht. Hat allerdings keine integrierte GUI Funktionalität, das müßtest du extern (z. Bsp. PyQT) machen und über OSC kommunizieren.
 
@schnuffke2 Ich wollte keine Audio-Anwendung programmieren, sondern einen Midi-Sequenzer

Ich hab mir eben mal quertySeq() etwas genauer angesehen. Als erstes hatte ich 2 Volcas (Key und FM) angeschlossen und mich sehr darüber gewundert, dass bei beiden Geräten ein sehr hoher, unangenehmer Ton zusätzlich zum eigentlichen Ton erklang. Beim Keys kam dieser Ton sogar dann noch, wenn ich die Note oder die Sequenz auf dem Keys direkt, und nicht mit quertySeq() abspielte. Der Spuk war nach einem Neustart des Keys vorbei, bis ich wieder die Sequenz von quertySeq() startete. Ich kann mir gar nicht erklären, was da los ist. Jemand ne Idee? Hatte dann noch einen Behringer TD-3 probiert, da tauchte dieses Problem nicht auf. Sehr merkwürdig.
 
Zuletzt bearbeitet:
Ja, find ich auch. Aber warum so hochfrequent? Meinst du, das liegt eher an den Volcas oder an dem Midi-Interface (USB auf Midi-DIN)? Aber irgendwie muss das ja ein Bug in quertySeq() sein, denn mit der DAW oder dem Arturia Keystep lassen sich die Volcas prima spielen.
 
@schnuffke2 Ich wollte keine Audio-Anwendung programmieren, sondern einen Midi-Sequenzer
Hast Du ja geschrieben ... auch dass Du JS nutzen möchtest. So dachte ich mir wiederum, ich poste mal eine Videoreihe in der ein paar dafür wichtige Themen behandelt/angeschnitten werden.
 
…dieses Thema hätte vielleicht besser in Controller, Kabel, MIDI / CV gepasst…
Vielleicht noch besser in Rechenzentrum > APPartig + Nerdig

Um wieder etwas in Form zu kommen, dachte ich, es wäre vielleicht ganz lustig, einen Midi-Sequenzer zu bauen, da ich hobbymäßig elektronische Musik mache.
Wenn Du bei Java bleiben möchtest, ist das Folgende sicher keine Hilfe. Falls Du Dir aber vorstellen könntest, Dich mit Lua zu beschäftigen, könnte die kleine Hardware monome norns vielleicht etwas für Dich sein. Hier gibt es einen Thread dazu. Das Teil gibt es auch in einer DIY-Version basierend auf einem Raspberry Pi.

Du würdest hier Lua nutzen, um die Sequencer-Logik, die MIDI-Kommunikation sowie die Interaktion mit dem eingebauten Display, Encodern und Tastern zu programmieren, sowie eine mögliche Steuerung Deines Sequencers durch per USB an norns angeschlossene MIDI-Controller zu schreiben.

Optional kannst Du parallel dazu eins der vielen mitgelieferten Klangbearbeitungs- und Klangerzeugungs-Programme auf norns laufen lassen, und dessen Parameter auch von Deinem Sequencer, den norns-Bedienelementen und USB-Controllern steuern lassen. Auch diese Verbindungen werden über Lua programmiert. Im einfachsten Fall könnte das so aussehen, dass das Audio-Signal Deines Hardware-Synthesizers, der von Deinem norns-Sequencer gesteuert wird, durch das norns geleitet wird und dort mit Effekten versehen wird, deren Parameter Du wiederum über weitere Reihen Deines norns-Sequencers rhythmisch steuerst. Es könnte aber auch sein, dass Du einfach direkt eins der norns-Synthesizer-Programme als Klangerzeuger benutzt.

Falls es Dich später einmal reizen sollte, eigene Klangbearbeitungs- und Klangerzeugungs-Programme schreiben zu wollen (ja, willst Du im Moment nicht, ich erwähne es nur der Vollständigkeit halber), so kannst Du das mit Supercollider und dessen Code auf norns laufen lassen.

In jedem Falle viel Spaß und Erfolg!
 
Ich werfe mal noch https://www.osar.fr/protoplug/ als Option in den Raum. Hat den Vorteil, dass Dein Sequenzer dann ein VST-plugin ist und sich wahrscheinlich besser in Deine restlichen Software integrieren läßt. Lua ist schnell zu lernen, und meiner Meinung nach eine wirklich gelungene Programmiersprache. Luajit sorgt für wirklich schnellen Code. Der einzigste Nachteil ist, dass ein JIT schwierig in den Griff zu bekommen ist, wenn es um realtime Applikationen geht, komplexere Programme völlig knacksfrei bei niedrigen Latenzen mit Protoplug hinzubekommen ist nicht trivial. Aber für ein privates Projekt sollte das jetzt kein echtes Problem sein, ich habe mir damit einen wirklich komplexen Audiolooper programmiert, den wir auch live benutzen.
 
Ich bastel gerade an einem in Java mit raspberry pi und 7“ touchscreen. Einfach von scratch um zu verstehen, wie so etwas funktioniert. Bin bei 8 tracks unterschiedliche step-Anzahl und unterschiedliche step-Längen.
Bisher ist deutlich mehr Zeit in das ui-konstrukt (rendert sich alles in eine components) als in den sequencer gesteckt.

macht Spaß,Aber Knöpfe und Drehgeber sind besser als Touch...
 


Zurück
Oben