Problem mit Midi/Sequencer

Status
Nicht offen für weitere Antworten.

Mofi

Bekanntes Mitglied
huhu ihr,
also ich les grad so in meinem java buch und kam zu dem kapitel mit den midi sachen :)
das erste Beispielprogramm hab ich also abegtiptt und wollt es ausprobieren, allerdings bekam ich erstmal eine flut an fehlermeldungen...

der code wäre
[HIGHLIGHT="Java"]import javax.sound.midi.*;

public class MiniMiniMusikProg{

public static void main(String[] args){
MiniMiniMusikProg mini = new MiniMiniMusikProg();
mini.spielen();
} // main schließen

public void spielen(){
try{
Sequencer player = MidiSystem.getSequencer();
player.open();

Sequence seq = new Sequence(Sequence.PPQ, 4);

Track track = seq.createTrack();

ShortMessage a = new ShortMessage();
a.setMessage(144, 1, 44, 100);
MidiEvent noteOn = new MidiEvent(a, 1);
track.add(noteOn);

ShortMessage b = new ShortMessage();
b.setMessage(128, 1, 44, 100);
MidiEvent noteOff = new MidiEvent(b, 16);
track.add(noteOff);

player.setSequence(seq);

player.start();
Thread.sleep(5000);
player.close();
}catch(Exception e){
e.printStackTrace();
}
} // spielen schließen
} // Klasse schließen[/HIGHLIGHT]

ich bin mir relativ sicher mich nicht verschrieben zu haben
Code:
java.lang.IllegalArgumentException: No line matching interface SourceDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian is supported.
	at javax.sound.sampled.AudioSystem.getLine(AudioSystem.java:476)
	at javax.sound.sampled.AudioSystem.getSourceDataLine(AudioSystem.java:604)
	at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:906)
	at com.sun.media.sound.SoftSynthesizer.open(SoftSynthesizer.java:881)
	at com.sun.media.sound.SoftSynthesizer.getReceiverReferenceCounting(SoftSynthesizer.java:1165)
	at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:431)
	at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:365)
	at MiniMiniMusikProg.spielen(MiniMiniMusikProg.java:12)
	at MiniMiniMusikProg.main(MiniMiniMusikProg.java:7)

DAS sind meine fehlermeldungen :)

ich arbeite unter linux(ubuntu 8 wars glaub ich)

vllt kann mir ja wer auf die sprünge helfen :)
 
S

Spacerat

Gast
SourceDataline hat eigentlich nichts mit "javax.sound.midi" zu tun... Ich tippe mal auf einen echten Bug. Ich reis aus aktuellem Anlass gerade "com.sun.media.sound" auseinander. Daraus geht schon mal hervor, das "javax.sound.midi" im Prinzip auf "javax.sound.sampled" aufsetzt. Da werden die Instrumente je nach Reihenfolge in der Midisequenz in ein AudioFormat gebracht und in eine Line ("DirectSDL") geschrieben. Daher rührt dann wohl auch der Fehler, an dem man afaik erst mal nichts rütteln kann.
Ganz banal könnte man aber auch mal die Soundkarte korrekt konfigurieren... Auf sowas komm ich allerdings ganz zuletzt... ich geh' halt davon aus, das das schon geschehen ist.
 
Zuletzt bearbeitet von einem Moderator:

frapo

Bekanntes Mitglied
huhu ihr,
also ich les grad so in meinem java buch und kam zu dem kapitel mit den midi sachen :)
das erste Beispielprogramm hab ich also abegtiptt und wollt es ausprobieren, allerdings bekam ich erstmal eine flut an fehlermeldungen...

Na wenn das Buch mal nicht aus der Head First-Reihe ist ;-)

ich arbeite unter linux(ubuntu 8 wars glaub ich)

vllt kann mir ja wer auf die sprünge helfen :)

Hast du die Möglichkeit das mal unter Windows zu kompilieren? Ich hatte an der selben Stelle ein ähnliches Problem. Auf debian lief es nicht, unter Windows schon.

Gruß
frapo
 
S

Spacerat

Gast
Ich hab das hier noch entdeckt:Midi not working in Java - Ubuntu Forums (englisch)
Irgendwie scheints doch am System zu liegen. vllt. tuts ja diese Zeile die dort gepostet wird bei dir auch.
Sonst versuch mal eine Wave-Datei mit den Eigenschaften aus der Exception in Java abzuspielen. Das sollte dann auch der Einfachheit halber mit der Klasse "Clip" gehen, da diese auch 'ne "DirectSDL" verwendet.
 

Mofi

Bekanntes Mitglied
Na wenn das Buch mal nicht aus der Head First-Reihe ist ;-)



Hast du die Möglichkeit das mal unter Windows zu kompilieren? Ich hatte an der selben Stelle ein ähnliches Problem. Auf debian lief es nicht, unter Windows schon.

Gruß
frapo

hehe jap genau diese reihe (halt auf deutsch :p) ganz ehrlich ich hatte noch nie soviel spaß beim java lernen *g*

ja klar hab ich auch einen windows rechner ;) (linux ist nur für tagsüber weils aufm netbook ist)

und tada unter windows funktioniert *seufz*

hm woran könnts liegen? soundkarte? hab da echt keinen plan *g*
 
Zuletzt bearbeitet:

frapo

Bekanntes Mitglied
hehe jap genau diese reihe (halt auf deutsch :p) ganz ehrlich ich hatte noch nie soviel spaß beim java lernen *g*

Ging mir genauso bzw. geht mir immer noch genauso, denn andere Titel der Reihe finde ich ebenso gelungen (Entwurfsmuster und OOA & OOD).

ja klar hab ich auch einen windows rechner ;) (lnux ist nur für tagsüber weils aufm netbook ist)

und tada unter windows funktioniert *seufz*

hm woran könnts liegen? soundkarte? hab da echt keinen plan *g*

Ich bin da auch nicht wirklich weitergekommen bzw. mir ist es nicht sooo wichtig gewesen MIDI auf Linux ans laufen zu bekommen.

Vermutlich wird die Soundkarte nicht richtig ins System eingebunden oder das System erkennt nicht korrekt die MIDI-Möglichkeiten der Karte. Der Rest an Sound funktioniert ja. Es gibt da wohl noch die Möglichekeit einen reinen Software-Synthesizer zu installieren und einzurichten. In diese Richtung würde ich mal forschen.

Gruß
frapo
 
S

Spacerat

Gast
Schaut euch den Stacktrace da oben mal an... Da wird bereits eine Software-Lösung von Java verwendet ("SoftSynthesizer"). Daraus resultiert dann auch, das die oben besagte SourceDataLine verwendet wird, welche dann das Format "44100Hz, Stereo, 16 Bits pro Sample" nicht unterstützt. SourceDatalLine verwendet definitiv einen (Nicht-Midi-) Hardware-Mixer.
 

frapo

Bekanntes Mitglied
Schaut euch den Stacktrace da oben mal an... Da wird bereits eine Software-Lösung von Java verwendet ("SoftSynthesizer"). Daraus resultiert dann auch, das die oben besagte SourceDataLine verwendet wird, welche dann das Format "44100Hz, Stereo, 16 Bits pro Sample" nicht unterstützt. SourceDatalLine verwendet definitiv einen (Nicht-Midi-) Hardware-Mixer.

Hm.. ich denke du hast da recht. Nur wie geht man mit dem Problem um? Was genau kann man tun? Kann man z.B. einen anderen Software-Synth. nutzen? Wenn ja, wie? Eine andere Frage ist warum wird der Hardware-Mixer benutzt, wo doch einer vorhanden ist?

Mit Java und MIDI habe ich mich nun wirklich noch gar nicht beschäftigt.

Gruß
frapo
 
S

Spacerat

Gast
Eine andere Frage ist warum wird der Hardware-Mixer benutzt, wo doch einer vorhanden ist?
Die Frage stellst du jetzt nicht wirklich... soll etwa ein Software-Mixer verwendet werden? :)
Glücklicherweise ahne ich was du fragen wolltest. Der Hardware-Midi-Synthesizer wird offensichtlich von Java nicht gefunden. Deswegen wird der Java interne "SoftSynthesizer" verwendet, welcher die Ausgabe auf ein gefundenes AudioDevice leitet. Das AudioDevice könnte nun ebenfalls ein "SoftDevice" sein (das mit dem "Hardware-Mixer" ist bei nochmaligem überlegen, eher Unfug). Das geht aus der Fehlermeldung nicht hervor. Fakt ist, das dieses Device das vom "SoftSyntesizer" gewählte AudioFormat nicht unterstützt. Da jene Soundkarten, die dieses besagte Format noch nicht unterstützen, kaum noch in heutige Rechner passen, (wie hiess dieser 16-Bit-Bus doch gleich? Na Egal...) gehe ich stark davon aus, das deine Soundkarte von Java nicht gefunden wurde. Noch angemerkt: AudioDevice und MidiSynthesizer (sofern vorhanden) sind auf jeder Soundkarte zwei verschiedene Geräte. Nun bin ich mit Linux leider nicht auf dem laufenden. Sofern deine Soundkarte aber korrekt konfiguriert ist, fehlt möglicherweise nur ein Link im "/dev"-Verzeichnis, welcher auf die Soundkarte zeigt (z.B. "/dev/snd -> /dev/snd0" bzw. "/dev/midi -> /dev/midi0").
 
Zuletzt bearbeitet von einem Moderator:

frapo

Bekanntes Mitglied
Nun bin ich mit Linux leider nicht auf dem laufenden. Sofern deine Soundkarte aber korrekt konfiguriert ist, fehlt möglicherweise nur ein Link im "/dev"-Verzeichnis, welcher auf die Soundkarte zeigt (z.B. "/dev/snd -> /dev/snd0" bzw. "/dev/midi -> /dev/midi0").

Hey, genau das könnte es eigentlich sein.. ein fehlender Link /dev ..da werde ich mal forschen.

Ach ja.. herzlichen Dank für deine Anteilnahme hier :). Auch wenn ich nicht der ursprüngliche Threadersteller war, habe ich durch deine Beiträge, einiges mehr zum Thema Midi, Synth (ob HW oder SW) begriffen.

Gruß
frapo
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
T PIM basierend auf netbeans via AnyDesk Problem Allgemeine Java-Themen 3
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
Kirby.exe Verständnis Problem bei Rucksack Problem Allgemeine Java-Themen 6
B Eclipse-Lombok-Problem Allgemeine Java-Themen 19
I Input/Output ObjectOutputStream - Problem Allgemeine Java-Themen 7
1 Multiple Choice Knapsack- Problem Allgemeine Java-Themen 2
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
E Problem mit Gridlayout und Button Allgemeine Java-Themen 2
A Array Problem Allgemeine Java-Themen 8
bueseb84 Problem Allgemeine Java-Themen 0
S Problem mit Arrays Allgemeine Java-Themen 1
D Nullpointer Exception Problem Allgemeine Java-Themen 5
B Problem mit meinen Klassen Allgemeine Java-Themen 6
A HashMap Methode "get()"-Problem Allgemeine Java-Themen 28
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
J Problem bei Install java 13 Allgemeine Java-Themen 3
X Profitable Reise Problem Allgemeine Java-Themen 32
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
Dann07 Problem mit JavaMail API Allgemeine Java-Themen 26
J Problem beim Generischen Klassen und Interfaces Allgemeine Java-Themen 2
L Klassen Algorithmus für das folgende Problem entwickeln? Allgemeine Java-Themen 30
J Clear-Problem Allgemeine Java-Themen 10
B Problem zu einem Java Projekt Allgemeine Java-Themen 6
S JFileChooser Problem Allgemeine Java-Themen 4
M Traveling Salesman - MST Heuristik Problem Allgemeine Java-Themen 4
J Traveling Salesman Problem Allgemeine Java-Themen 14
E Java Editor Problem mit 2er Exceptions Allgemeine Java-Themen 12
C code oder Bibliotheken für 2-Center Problem Allgemeine Java-Themen 4
M Salesman Problem - Bruteforce Algorithmus Allgemeine Java-Themen 23
S Methoden Problem mit NullPointerException Allgemeine Java-Themen 9
Javafan02 Problem mit if-clause Allgemeine Java-Themen 17
J Lombok Problem mit Konstruktoren bei Verberbung Allgemeine Java-Themen 1
kodela Event Handling Problem mit der Alt-Taste Allgemeine Java-Themen 16
W Threads Problem Allgemeine Java-Themen 15
D (Verständnis-)Problem mit Unterklasse Allgemeine Java-Themen 4
S Problem mit Generic bei unmodifiableCollection Allgemeine Java-Themen 4
S jserialcomm Problem Allgemeine Java-Themen 1
Flynn Thread-Problem... Allgemeine Java-Themen 2
J Generische Interface - Problem Allgemeine Java-Themen 3
G Problem beim GUI Allgemeine Java-Themen 9
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
T Problem mit externen Datenbankzugriff über SSH Tunnel Allgemeine Java-Themen 4
F Problem beim Einlesen einer Textdatei Allgemeine Java-Themen 12
S Java OpenOffice Problem mit Windows-Benutzerwechsel Allgemeine Java-Themen 19
K Threads RAM Problem Allgemeine Java-Themen 20
P Operatoren Problem mit Zähler in recursiver Schleife Allgemeine Java-Themen 2
C Int Problem Allgemeine Java-Themen 8
C J2V8 NodeJs Java Bride Problem und Frage!?!? Allgemeine Java-Themen 1
J Problem bei Hashmap Key-Abfrage Allgemeine Java-Themen 4
C Webseiten Programm problem Allgemeine Java-Themen 5
M LocalDate Problem Allgemeine Java-Themen 4
J "Problem Objektorientierung" Allgemeine Java-Themen 20
geekex Problem Meldung! Was tun?! Allgemeine Java-Themen 19
T Klassen Override Problem Allgemeine Java-Themen 7
L Unbekanntes Problem Allgemeine Java-Themen 1
FrittenFritze Problem mit einer JComboBox, Event temporär deaktivieren Allgemeine Java-Themen 11
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
F HTTPS Zertifikat Problem Allgemeine Java-Themen 3
M OpenCV KNearest Problem Allgemeine Java-Themen 0
Tommy Nightmare Project Euler: Problem 22 Allgemeine Java-Themen 2
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
P Eclipse Projekt anlegen macht Problem Allgemeine Java-Themen 1
RalleYTN META-INF/services Problem Allgemeine Java-Themen 3
F Java Mail Problem: Authentifizierung wird nicht immer mitgeschickt Allgemeine Java-Themen 1
I Problem beim Aufrufen, von Objektmethoden/ -variablen Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben