bestehendes Interface an Datastream rankommen

Doch .. sollte schon gehen ... man könnte ja selbst von InputStream oder FilterInputStream ableiten und das als Quelle nutzen *kenne leider deinen kompletten Source nicht daher weis ich nicht ob man irgendwo angreifen könnte*.

Wie wäre es wenn du uns mal deinen bisherigen *hoffentlich noch vorhandenen Source* postest mit dem du Daten vom Keyboard liest ... vielleicht kann man ja doch was machen ... so schnell gebe ich nicht auf ... mit Streams kenn ich mich dann doch sehr gut aus ...
 
In deiner Klasse MidiPort schreibst du in Zeile 92 den Output in eine Datei. Also hast du DA deinen Stream. Denn es gibt neben javax.sound.midi.MidiSystem.write(javax.sound.midi.Sequenz, int, File) auch noch die Methode javax.sound.midi.MidiSystem.write(javax.sound.midi.Sequenz, int, OutputStream).
Was du jetzt machen musst ist die Daten die dort in irgend ein OutputStream geschrieben werden wieder zugänglich machen. Mir würden da spontan ByteArray*Stream oder ein work-around über eine Server-Client- bzw Pipe-Architektur einfallen *bei der genauen Umsetzung kann ich dir dann helfen*.

Diesen dann mitlerweile wieder InputStream kannst du dann als Input für deinen Filter verwenden ...

Wie genau das ganze dann mit Timing und Datenmenge abläuft müsste man dann testen. Aber den grundlegenden Ansatzpunkt wo du an die Daten rankommst haben wir jetzt.
 
Ich habe die Klasse MidiInDump.java etwas unter die Lupe genommen und diese Klasse kann ein Midi-Dump in die Konsole erzeugen. Somit ist auch ein Dump in einen Stream möglich.
 
Das ganze könnte man jetzt mit einem FIFO-Stack realisieren : http://de.wikipedia.org/wiki/FIFO
Ich weis jetzt gerade nich aus dem Kopf ob Java sowas von Haus aus mitbringt ... jedoch wie der Zufall will gibt es bei Wikipedia mal wieder ein Java-Beispiel. Wie man das jetzt mit Streams macht ... also einmal als OutputStream damit man daten reinschreiben kann und einmal als InputStream um Daten wieder auszulesen ... hmm ... da würde ich zwei weitere Klassen schreiben.
Der OutputStream füllt den Stack in dem er FIFO.enqueue(<T>) aufruft und der InputStream leert diesen wieder durch aufrufen von FIFO.dequeue().
Das ganze müsste man dann mal einem Test unterziehen ... aber so in etwa sollte es funktionieren.
 
Tja mein Fehler - ich habe den Fehler im Programm gefunden - was da ausgegeben wurde war nicht dat active Sync sondern dat ende von der sequenz - schäm

problem war mal wider vor der tastatur :-(

jetzt gehts weiter mit vollem elan mit dem projekt - als nächstes grafische noten ausgabe - wird auch lustig
 
Zuletzt bearbeitet:
Auch wenn du dich vermutlich nur registriert hast um genau das zu posten ...

Willkommen bei Tutorials.de

Schön wäre allerdings auch ein Verweis auf entsprechende Klassen gewesen und nicht nur die Info das es das grunsätzlich gibt.
 
Zurück