Hilfe für MIDI WebPlayer

Du hast eine Idee für ein Projekt?
Antworten
koshi
User
Beiträge: 1
Registriert: Sonntag 25. Juli 2021, 07:28

Hallo zusammen,

ich hänge gerade etwas in der Luft und hoffe, hier gibt es jemanden, der mir helfen kann:

Seit ca. einer Woche bin ich stolzer Besitzer einens alten, externen MIDI Synthesizers. Das ist ein Gerät, an welches man MIDI Kommandos schicken kann und welches daraus Sound erzeugt. Meine Idee war, dass an einen Raspberry Pi zu hängen und einen der zahlreichen Musikserver zu nutzen, um hier bequem MIDI-Dateien abspielen zu können und das Playback/die Playliste mit modernen Tools zu steuern, wie man es eben von den diversen Musikservern kennt.
Leider musste ich feststellen, dass die Server meistens auf dem Linux Musik Player Daemon basieren, welcher selbst zwar sogar zwei MIDI Plugins mitbringt, beides aber Software Synthesizer sind (sprich: Die MIDI Datei wird nicht an ein externes Device geschickt, sondern über diverse Libraries quasi selbst übersetzt).

Mittlerweile suche ich seit Tagen rum, finde aber keine Lösung, die mir so wirklich zusagt. Mittlerweile habe ich sogar netzwerkstreaming laufen, sodass MIDI Player von meinem Windows Client Musik auf dem Raspberry ausgeben können. Leider scheinen aber auch für Windows alle MIDI Player mindestens 20 Jahre alt zu sein. Alle modernen Player, die sich gut in Smarthome integrieren ließen/fernsteuern können haben das gleiche Problem wie der MPD - mein Anwendungsfall ist wohl einfach zu exotisch...

Allerdings bin ich auf dieses Projekt hier gestoßen: https://github.com/mido/mido

Damit sollte es eigentlich möglich sein, einen einfachen, modernen MIDI Player in Python zu realisieren. In den Issues hat sogar jemand ein Beispiel für einen Player gepostet, der schon ziemlich genau das umsetzt, was ich eigentlich möchte: https://github.com/mido/mido/issues/170 - allerdings leider per GUI, nicht per Webfrontend.

Die Aufgabestellung ist also im Prinzip den Code aus dem Beispiel so umzubauen, dass GUI und Abhängigkeiten von PySimpleGUI rausfliegen und die Steuerung stattdessen über einen Webbrowser erfolgen kann. Bestenfalls so, dass man die Kommandos auch direkt von extern aufrufen kann (also z.B. per Webrequest aus der Smarthomesteuerung mit http://playerip/midi?playfile=pfadzulokalerdatei respektive http://playerip/midi?stop - irgendwie sowas).

Mein Prolem ist, dass ich zwar in der Vergangenheit durchaus etwas programmiert habe - ganz früher Visual Basic, für meine Adruino Projekte auch kleine, überschaubare Sachen in C - mit Python bin ich aber so vertraut, dass ich hier immer aufs Logo gucken muss, um das "h" an die richtige Stelle zu setzen.

Ich müsste also wahrscheinlich ein gutes Wochenende investieren für eine Arbeit, die für einen halbwegs erfahrenen Programmierer wahrscheinlich eine Sache von 1-2 Stunden ist. Bei dem was man so an üblichen Stundensätzen liest, wäre ich tatsächlich bereit, das zu investieren - auch wenn es ein privates Bastelprojekt ist, was komplett aus der eigenen, privaten Tasche geht. Andererseits ist es für Freelancer wahrscheinlich mäßig attraktiv, weil halt sehr special interest und nur einmalige, kurze Geschichte...

Aber vielleicht liest ja ein Freelancer/Student/etc. mit, der sich vorstellen könnte, mir hier zu helfen?

Würde mich wirklich sehr freuen :)
__deets__
User
Beiträge: 14480
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du bist in meinen Augen etwas sehr optimistisch, was den Aufwand angeht. Auch mit Erfahrung in Python und Webentwicklung ist das alles andere als trivial. Auch und gerade wegen dem Wunsch nach Integration in deine bestehende Smarthome Infrastruktur. Das braucht Stunden oder Tage, das zum laufen zu bekommen.

Wenn der MPD ansonsten zusagt, dann wäre es in meinen Augen das einfachste, das wildmidi plug-in einfach umzuschreiben auf eines, das die MIDI-Noten via ALSA streamt.

Allerdings bin ich mir nicht sicher, ob das überhaupt alles etwas bringt. MIDI an sich geht, aber das reicht doch tendenziell gar nicht, oder? Denn zumindest wenn es sich nach ganzen Stücken anhören soll, wird die Musik ja dem General MIDI Standard entsprechen. https://de.wikipedia.org/wiki/General_MIDI Und den auf deine Synth zu Mappen ist die wahre Herausforderung. Dabei hilft auch die MIDIO-Lib nicht.
Antworten