Prg-change-Befehle senden aus einer HTML-Umgebung

  • Ersteller Selbender Sing
  • Erstellt am
Also, ich habe mal nachgeforscht: Es scheint keine Möglichkeit zu geben, einem auf einer Webseite integrierten Player per Button oder Link eine MIDI-Datei zuzuweisen, damit diese anstelle der vorherigen abgespielt wird. Mein zweiter Gedanke wäre, den Player so zu konfigurieren, dass nur der Play-Button sichbar ist, was aber auch nicht geht. Verschiedene Komponenten können zwar ausgeblendet werden, aber die Transport-Buttons sind zusammengefasst - scheidet also auch aus. Du wirst also damit leben müssen, für jede MIDI-Datei einen kleinen Player auf der Seite zu haben. Es gibt wohl auch einen fertigen Player für Flash, der so aussehen könnte wie auf den Band-Seiten bei MySpace, aber ich habe noch nie mit Flash gearbeitet und keine Ahnung davon.

Ich hoffe, Dir trotzdem geholfen zu haben.
 
auf jeden Fall hast du mir sehr geholfen, vielen dank nochmal.
Ich hatte da lediglich noch diese Idee, bei der ich aber nicht sicher bin ob sie funktioniert, da ich nicht so GANZ verstanden habe, wie die Player aufgerufen werden.

reicht es, wenn ich eine beliebige Mididatei verlinke und sie dann aufrufe, daß dann der Player startet, oder muss ich die Datei mit dem Player starten?

wenn es ersteres wäre, wäre es ja egal, wo der Player sich befindet. Erkönnte dann ja auch außerhalb des sichtbaren Bereiches sein. Ich drücke dann nur einen Button, der die Datei aufruft, diese startet automatisch mit dem Player (aber woher weiß die Datei mit welchem Player?), und gut iss.

Aber wahrscheinlich geht das so nicht.
 
Das Problem ist, dass Du für jede MIDI-Datei einen Player brauchst und sie auch nur über den Button im Player starten kannst. Es sei denn, Du legst tatsächlich eine HTML-Seite mit Links an, die auf weitere Seiten verlinken, von denen jede nur eine einzige MIDI-Datei inkl. Player enthält. Du müsstest dann allerdings jedesmal entweder die neu geöffnete Seite schließen, in den Hintergrund bringen oder den Zurück-Button des Browsers benutzen - je nachdem, wie die Seiten aufgerufen werden.

Ich halte die bisherige Variante für das kleinere Übel.
 
Es gibt noch eine andere Möglichkeit, oder eigentlich sogar zwei:
Man kann ja Midi-Dateien auch direkt von der Seite über den Browser abspielen lassen, als Hintergrundmusik oder so. Das ist zwar nicht standardkonform, aber sollte trotzdem funktionieren.
Die andere Möglichkeit wäre, den Browser so einzustellen, dass er beim Linken auf eine Midi-Datei diese direkt im Browser abspielt (ggf. mit dem entsprechenden Plugin).

In beiden Fällen könnte man mit (i)Frames eine Lösung bauen. Beispielsweise so, dass man eine große Fläche mit den wählbaren Sounds hat, die dann im anderen Frame die Midi-Datei öffnen. Dadurch würde man sich das zurück-steppen sparen.
 
Wenn man nicht mit HTML arbeitet, sondern die Seite per PHP-Script erstellt, sollte es m.E. möglich sein per exec() ein externes Programm ablaufen zu lassen. Wenn man ein Programm hat, daß MIDI-Daten verschicken kann (z.b. per Parameterübergabe) sollte das also klappen.
Dazu macht man sich eine Formularseite und beim Anklicken eines Buttons übergibt man die Daten per GET oder POST wertet sie aus, startet das Programm per exec mit den richtigen Parametern und ruft die Formularseite erneut auf.

Ist jetzt so aus dem Bauch heraus geschrieben... müßte man mal ausprobieren.
:gruebel:

So in der Art... eine Seite erstellen: meineseite.php
Code:
<?php

if (isset($_POST['midiparameter'])) {
   $midiparameter=$_POST['midiparameter'];

   $meinmidiprogrammaufruf="C:\blablalba"
   exec('$meinmidiprogrammaufruf.$midiparameter')
}

?>
<HTML>
Hier die HTML-Formularseite einbauen mit
 Parameterübergabe an sich selbst (meineseite.php)
</HTML>

Sorry falls das so nicht geht, habe schon lange nix mehr in PHP gemacht. :redface:

Nachtrag:
---> http://www.php.net/manual/de/book.exec.php
 
Zuletzt bearbeitet:
Naja, da ist der Aufwand fürs Laufzeitsystem aber schon wieder deutlich höher, weil man nen Webserver am Laufen haben muss...
 
Ja logisch.
Als ich das mal brauchte habe ich dafür den omniHTTP genutzt, aber die Firma scheint es nicht mehr zu geben. Jedenfalls ist die Webseite nicht mehr erreichbar. :gruebel:
 
Es gibt noch eine andere Möglichkeit, oder eigentlich sogar zwei:
Man kann ja Midi-Dateien auch direkt von der Seite über den Browser abspielen lassen, als Hintergrundmusik oder so. Das ist zwar nicht standardkonform, aber sollte trotzdem funktionieren.
Die andere Möglichkeit wäre, den Browser so einzustellen, dass er beim Linken auf eine Midi-Datei diese direkt im Browser abspielt (ggf. mit dem entsprechenden Plugin).

In beiden Fällen könnte man mit (i)Frames eine Lösung bauen. Beispielsweise so, dass man eine große Fläche mit den wählbaren Sounds hat, die dann im anderen Frame die Midi-Datei öffnen. Dadurch würde man sich das zurück-steppen sparen.
So wie im ersten fall funktioniert mein Code, nur dass die MIDI-Datei nicht im Hintergrund abgespielt wird, denn es sollen ja mehrere Stücke getrennt voneinander gezielt ausgewählt werden.
Deine zweite Variante hatte ich mir auch schon überlegt aber dafür benötigt man wieder für jedes Stück eine eigene HTML-Seite, die ins IFrame geladen werden muss.
 
So wie im ersten fall funktioniert mein Code
Nein, das meinte ich nicht. Du nutzt ja ein Plugin, aber es gab mal für HTML oder CSS (weiß nicht mehr genau) die entsprechenden Befehle, eine Midi-Datei abzuspielen. Dafür braucht man dann eben kein Plugin.

nur dass die MIDI-Datei nicht im Hintergrund abgespielt wird, denn es sollen ja mehrere Stücke getrennt voneinander gezielt ausgewählt werden.
Deshalb ja der Vorschlag mit den Frames

Deine zweite Variante hatte ich mir auch schon überlegt aber dafür benötigt man wieder für jedes Stück eine eigene HTML-Seite, die ins IFrame geladen werden muss.
Ja, aber das braucht man doch sowieso?
 
Nein, das meinte ich nicht. Du nutzt ja ein Plugin, aber es gab mal für HTML oder CSS (weiß nicht mehr genau) die entsprechenden Befehle, eine Midi-Datei abzuspielen. Dafür braucht man dann eben kein Plugin.
Mit dem <embed>-Tag kann man, ohne ein Plugin im Code angeben zu müssen, Medien-Dateien im Browser abspielen. Wahrscheinlich meinst Du das. ABER, auch wenn man kein explizites Plugin definiert, muss das Plugin, das dem Browser ermöglicht eine Datei wiederzugeben installiert sein. Bei Windows verhält es sich so, dass das Media-Player-Plugin immer im IE installiert ist.

Vorteil von <embed>: Wenn es HTML-Standard wäre, würde es in jedem Browser laufen, der irgendein Plugin enthält, das in der Lage ist, MIDI-Dateien abzuspielen (der User bestimmt also das Plugin). Ich habe z. B. im FF Quicktime Alternative installiert und kann damit die gleichen MIDIs von der gleichen Seite abspielen, die ich im IE mit dem Media-Player abspiele. Dazu muss an der Seite nichts geändert werden.

Nachteile: a) <embed> ist (noch) kein HTML-Standard und läuft daher nicht in jedem Browser (ok, das macht meine Version auch nicht).
b) Ein MIDI-Musikstück wird immer bei Seitenaufruf automatisch abgespielt. Einen 'Autostart=false'-Parameter konnte ich nicht ausfindig machen.

Ja, aber das braucht man doch sowieso?
Nö. Hast Du meinen Code mal ausprobiert? Da habe ich schon zwei Player mit jeweils einem anderen MIDI-Stück auf der Seite. Theoretisch kann man mit der Methode so viele Player auf eine Seite bringen wie man will.
 
Mit dem <embed>-Tag kann man, ohne ein Plugin im Code angeben zu müssen, Medien-Dateien im Browser abspielen. Wahrscheinlich meinst Du das.
Nein, ich meinte das hier: http://de.selfhtml.org/html/dateiweit/hintergrundmusik.htm
Ist zwar nicht standardkonform und in einer normalen Webseite würde das auch niemand haben wollen, aber für diesen Fall würde es ja gehen.

ABER, auch wenn man kein explizites Plugin definiert, muss das Plugin, das dem Browser ermöglicht eine Datei wiederzugeben installiert sein. Bei Windows verhält es sich so, dass das Media-Player-Plugin immer im IE installiert ist.
Klar, aber du musst dich nicht drum kümmern, nicht von Hand abspielen usw.

Vorteil von <embed>: Wenn es HTML-Standard wäre, würde es in jedem Browser laufen, der irgendein Plugin enthält, das in der Lage ist, MIDI-Dateien abzuspielen (der User bestimmt also das Plugin). Ich habe z. B. im FF Quicktime Alternative installiert und kann damit die gleichen MIDIs von der gleichen Seite abspielen, die ich im IE mit dem Media-Player abspiele. Dazu muss an der Seite nichts geändert werden.
Ist für unseren Fall aber völlig uninteressant.

b) Ein MIDI-Musikstück wird immer bei Seitenaufruf automatisch abgespielt. Einen 'Autostart=false'-Parameter konnte ich nicht ausfindig machen.
Deshalb ja meine Variante mit Frames!

Nö. Hast Du meinen Code mal ausprobiert? Da habe ich schon zwei Player mit jeweils einem anderen MIDI-Stück auf der Seite. Theoretisch kann man mit der Methode so viele Player auf eine Seite bringen wie man will.
Ich kann deinen Code nicht ausprobieren, da ich mit Linux arbeite ;) Aber auch davon abgesehen: Wenn ich erst den frizzeligen Play-Button finden muss, um deinen Player in Gang zu setzen, hat die ganze Aktion doch keinen Sinn gehabt. Wenn man den trifft könnte man stattdessen auch einfach eine Datei im Explorer aufrufen...
 
Nein, ich meinte das hier: http://de.selfhtml.org/html/dateiweit/hintergrundmusik.htm
Ist zwar nicht standardkonform und in einer normalen Webseite würde das auch niemand haben wollen, aber für diesen Fall würde es ja gehen.
Da wird aber auch <embed> benutzt. Zumindest für alle Nicht-Microsoft-Browser. Aber funktionieren würde es grundsätzlich schon. Alledings funktioniert <bgsound> auch nicht ohne Plugin.

Klar, aber du musst dich nicht drum kümmern, nicht von Hand abspielen usw.
Aber genau das will Selbender Sing, er will auf einen Button klicken, damit ein Stück abgespielt wird.

Ich kann deinen Code nicht ausprobieren, da ich mit Linux arbeite ;) Aber auch davon abgesehen: Wenn ich erst den frizzeligen Play-Button finden muss, um deinen Player in Gang zu setzen, hat die ganze Aktion doch keinen Sinn gehabt. Wenn man den trifft könnte man stattdessen auch einfach eine Datei im Explorer aufrufen...
Also, das Ziel von Selbender Sing ist es, unterschiedliche MIDI-Stücke, die nur Program-Changes enthalten per Button abzuspielen. Wo ist denn der große Unterschied, ob er auf den Play-Button des Players oder auf einen anderen Button klickt?
 
Also, das Ziel von Selbender Sing ist es, unterschiedliche MIDI-Stücke, die nur Program-Changes enthalten per Button abzuspielen. Wo ist denn der große Unterschied, ob er auf den Play-Button des Players oder auf einen anderen Button klickt?
Er möchte vor allem über einen Touchscreen die Wiedergabe starten, und soweit ich das verstanden habe gehts deshalb um eine brauchbare Oberfläche, die für einen Nicht-Programmierer schön einfach mit HTML umsetzbar ist.
Wenn man irgendein Plugin benutzt, wird man aber doch im Normalfall einen relativ kleinen Play-Button haben, der eben für die Touchscreen-Nutzung nicht wirklich geeignet ist. Stattdessen könnte man dann genauso gut den Windows-Explorer in der Symbol-Darstellung benutzen, da sind die Icons eher größer, und man muss nicht groß frickeln. Ich weiß gerade nicht, wie es bei WinXP ist, aber ab Vista aufwärts kann man die Buttons ja sogar noch größer machen. Dazu im Hintergrund einen Player, in dem die Dateien geöffnet werden, und fertig. Meiner Ansicht nach immer noch die einfachste und schnellste Methode. Auch, weil man dann ohne Probleme die bekannten Ordnerstrukturen einsetzen kann usw.
 
Ich weiß ja nicht, ob ich mich mit einer selbstgebastelten Lösung, welche vermutlich wirklich einen Webserver z. B. auf xampp-Basis oder im Fall von ASP den IIS bedingen wird, auf einem Touchpad wirklich sicher fühlen würde. Eher nicht. Nein: eigentlich sicher nicht. :p Ganz abgesehen vom Overkill...

Entweder die von Distance vorgeschlagene Lösung Midifile direkt über den Explorer + Player, oder aber wenn ich schon mit einem PC zur Setupverwaltung arbeite eine wirklich gute, dauerhafte und erprobte Lösung. Ich würde mir mal "Forte" von Brainspawn ansehen, mehr ein VSTi-Host aber mit Zusatzmodul auch für externes Equipment. Mit der Scene-Selection kannst du dann komfortabel über deinen Touchscreen das Setup steuern (sieht man hier sehr schön bei Mark Kelly von Marillion). Bezahlbar ist das ganze auch noch.

http://www.brainspawn.com/

http://www.brainspawn.com/profiles/press/marillionforte.pdf
 
Ach ja, die Touchpad-Geschichte hatte ich vor lauter Rumprobiererei ganz vergessen. Klar, da passt nicht so viel auf den Monitor und die Buttons sollten größer als nur normalgroß sein. In dem Fall plädiere ich für die Lösung mit IFrame und Plugin.
 
<embed src="verzeichnis/dateiname.mid" autostart="false">
 
Böhmorgler;4531063 schrieb:
<embed src="verzeichnis/dateiname.mid" autostart="false">
Hmm, autostart="false" hatte ich versucht, das wurde vom Browser ignoriert.
 
Böhmorgler;4533584 schrieb:
Da embed sowieso nicht W3C-konform ist, kann da jeder machen will, was er will.
Solche "Spielereien", die nur manche Browser unterstürzen, sollte man tunlichst lassen.
Es sei denn, die Seite soll ohnehin nur lokal laufen.
 

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben