Eigene Sounddateien schreiben

centrax

Mitglied
Hallo Forum,

habe schon ein ähnliches Problem gehabt, habe mich jetzt aber der Materie mehr genähert.

Ich möchte in einem JAVA-Programm folgendes machen:
Ich will eigene Sound-Dateien (.wav) schreiben. Und zwar habe ich eine beliebige Anzahl an bereits vorhandenen .wav-Dateien, und will diese jetzt sozusagen in einer Datei (nacheinander gereiht) speichern.

Java:
AudioInputStream[] zuVerkettendeStreams;

Die Klasse AudioSystem bieten mir die Möglichkeit, über die Methode write(...) einen AudioInputStream zu speichern.

Mein Problem ist jetzt:
Wie bekomme ich die Daten aus meinen zu verkettenden Streams gebündelt in einen eigenen AudioInputStream? Oder muss ich das anders machen?

Freue mich über jede Hilfe.

Liebe Grüße,
centrax
 

centrax

Mitglied
Danke!

Das ist klasse, genau das was ich gesucht habe!
Hätte man nach "join" oder "concat" suchen sollen...

Aber jetzt gibt es noch ein zweites Problem:

Ich werde die Files nicht nur als InputStream brauchen...

Ich möchte über eine SourceDataLine die Informationen des data-chunk einlesen (also die Byte-Arrays, die die Samples beinhalten) und verändern.

Ich habe also jetzt Byte-Arrays von WAV-Dateien, die ich leicht abändere. Und diese WAV-Dateien möchte ich jetzt abgeändert neu speichern. Kann ich das auch machen, ohne das ganze selbst im WAV-Format zu speichern?
 

Marco13

Top Contributor
Wenn du wirklich nur die Rohen Daten lesen und schreiben willst, mit sowas wie
Java:
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte buffer[] = new byte[8192];
        int readBytes = 0;
        while((readBytes = inputStream.read(buffer, 0, buffer.length)) > 0)
        {
            baos.write(buffer, 0, readBytes);
        }
        baos.flush();
        byte data[] = baos.toByteArray();
Dann data ändern, und analog dazu wieder rausschreiben.
 

centrax

Mitglied
Das wäre schon möglich, aber ich muss ja mehr aufschreiben, als die Byte-Arrays. Es soll ja eine WAV-Datei werden, und da sind die ersten Stellen erst Info, wie Sampling-Rate/-Länge etc.
Das würde bei der Methode fehlen...
 

Marco13

Top Contributor
Mit dem Code wird der gesamte Inhalt der Datei gelesen - ob und inwieweit sich das von dem unterscheidet, was du ändern willst (oder ob es mehr ist, als du ändern willst, kannst oder solltest) weiß ich nicht - das hängt mit dem genauen Forma von WAV-Dateien zusammen (das ich nicht kenne).
 

centrax

Mitglied
Ich will an Sounddateien folgendes ändern:

- Länge
- Lautstärke
- Frequenzen

Ich glaube nicht, dass das dann so einfach über einen ByteArrayOutputStream funktioniert...
 

Marco13

Top Contributor
Die Länge kann man ja kaum ändern, ohne den eigentlichen Inhalt zu verändern. Die Lautstärke könnte noch relativ leicht sein, ich hatte mal irgendwann mit sampled sound rumprobiert, und ich meine, das wäre nur eine Multiplikation aller Werte in irgendeinem (byte?)-Array gewesen. Aber vor allem sowas wie die Änderung der Frequenzen ist wohl nicht trivial. Sorry, aber konkretere Hinweise als den Verweis auf Overview of the Sampled Package (The Java™ Tutorials > Sound) kann ich da spontan auch nicht geben (unter "Processing Audio with Controls" steht dort zumindest was zur Lautstärke)
 

centrax

Mitglied
Leider ist das nicht das, wonach ich Suche.

Mit Controls ändert man ja nicht die Sounddatei an sich, sondern wie sie abgespielt wird. Ich möchte wirklich die Sounddatei an sich ändern und die geänderte Datei dann speichern.

Ich muss - so wie es aussieht - wirklich ganz roh mit den Byte-Arrays arbeiten, weil die Sound-API von Java da nichts zur Verfügung stellt. Und diese Byte-Array-Daten muss ich dann in eine funktionstüchtige WAV-Datei speichern.
Und dafür habe ich keinen Ansatz... ???:L
 

Ralph-Uwe

Bekanntes Mitglied
Nabend,

schau Dir mal das .wav Format an:
RIFF WAVE ? Wikipedia

Der Dateikopf einer Wavedatei ist 44Byte groß und beinhaltet alle Informationen, die zum
Abspielen notwendig sind.
Danach folgt der Datenteil.

Lies die Dateiköpfe der Dateien aus, speichere die Datenteile hintereinander und
stelle einen geänderten Dateikopf voran.

Wenn alle Wavedateien gleich aufgenommen sind, sollte das funktionieren, wenn nicht
müssten die einzelnen Wavedateien auf einen "gemeinsamen Nenner" gebracht werden.

Ich hoffe, dass hilft Dir weiter!

Gruß
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Eigene Datenstruktur um eine Menge zu speichern Allgemeine Java-Themen 3
_user_q Was brauche ich, um eine eigene "Search for updates"-Funktion einzubauen? Allgemeine Java-Themen 1
pizza_dox_9999 Wie füge ich eine "eigene" ScriptEngine dem ScriptEngineManager? Allgemeine Java-Themen 3
E Input/Output Eigene Datei mit java öffnen Allgemeine Java-Themen 9
missy72 Klassen Eigene Klasse MessageWindow ähnlich der Alert Klasse Allgemeine Java-Themen 2
J Eigene Api erstellen und dann auch verwenden - Ordnerstruktur Allgemeine Java-Themen 1
RalleYTN Eigene ScriptEngine? Allgemeine Java-Themen 14
L Eigene Dependency Injections definieren? Allgemeine Java-Themen 4
K Eigene API erstellen? Allgemeine Java-Themen 13
T Best Practice Eigene GUI programmieren | MouseMotion Detection Allgemeine Java-Themen 3
M Eigene forEach()-Methode funktioniert nicht. Allgemeine Java-Themen 2
J eigene Java Bibliothek Allgemeine Java-Themen 2
M Output einer anderen/externen .jar in eigene JTextArea Allgemeine Java-Themen 4
B Klassen Eigene Klasse als Array benutzen Allgemeine Java-Themen 3
D Eigene/r Collection/Container Allgemeine Java-Themen 3
F Eigene .jar mit anderer .jar öffnen Allgemeine Java-Themen 7
X Eigene Annotation - mit Bedingung für ganze Klassen oder Methoden Allgemeine Java-Themen 2
H Best Practice Ideensuche: Flexibel hinzufügbare eigene Parser Allgemeine Java-Themen 6
T OOP Die eigene Bruchklasse Allgemeine Java-Themen 11
P Eigene Exception Klasse Allgemeine Java-Themen 7
J Java - Eigene DLL importieren Allgemeine Java-Themen 25
B JTable eigene Daten Add Methode Allgemeine Java-Themen 2
S OOP Problembereichsmodell: Bestehende Framework Klasse in eigene Klassenstruktur einbinden Allgemeine Java-Themen 9
E Eigene Exception Klasse erstellen Allgemeine Java-Themen 3
S Methoden Eigene Klasse als Rückgabewert Allgemeine Java-Themen 6
S eigene regEx schreiben Allgemeine Java-Themen 4
O Collections Eigene Methodenzusicherung bei Collections als Parameter Allgemeine Java-Themen 2
M Eigene Klasse verschlüsselt in Datei speichern Allgemeine Java-Themen 13
N Geodaten für eigene Routenplanung Allgemeine Java-Themen 5
M Problem beim schreiben einer eigene generische Klasse Hashtable Allgemeine Java-Themen 11
M Problem beim schreiben einer eigene generische Klasse LinkedList Allgemeine Java-Themen 34
M Best Practices Exception Handling für eigene library Allgemeine Java-Themen 8
M Eigene Factory Klasse Allgemeine Java-Themen 21
M eigene Klasse durch Composition mit java.io.File erweitern Allgemeine Java-Themen 3
S eigene Update Funktion Allgemeine Java-Themen 5
H2SO3- getMethods(): eigene methoden rausfinden Allgemeine Java-Themen 4
C eine eigene Javadoc erstelen Allgemeine Java-Themen 3
Kr0e Eigene RMI Implementierung Allgemeine Java-Themen 3
S Eigene Bibliothek Allgemeine Java-Themen 2
M Eigene Dateiendung? Allgemeine Java-Themen 3
M Plugins für eigene Programme Allgemeine Java-Themen 3
S Eigene Events feuern Allgemeine Java-Themen 3
S Instanz in einer Klasse erstellen, und dem Konstruktor die eigene Klasse mitgeben Allgemeine Java-Themen 4
A Eigene Java Plugins entwickeln - wie optimal? Allgemeine Java-Themen 14
R Eigene ArrayList vom Typ Short, Integer oder Double Allgemeine Java-Themen 4
U Eigene "Dining Philosopher" Interpretation weckt Philos nie auf Allgemeine Java-Themen 2
0x7F800000 Wovon eigene Events für spezialisierte JComponents ableiten? Allgemeine Java-Themen 2
SuperSeppel13 Packete der Java Bibliothek ins eigene Prjekt integrieren Allgemeine Java-Themen 4
P Eigene Klasse kopieren die auf sich selbst refferenziert Allgemeine Java-Themen 8
G Umgebungsvariabeln auslesen (Path, Temp, oder eigene) Allgemeine Java-Themen 2
T Eigene PID ermitteln! Allgemeine Java-Themen 3
D Icon für eigene Dateiendung Allgemeine Java-Themen 7
G Eigene "Speicherverwaltung" Allgemeine Java-Themen 5
H eigene Annotations Allgemeine Java-Themen 2
S eigene Klasse die JButton extended - als Liste! Allgemeine Java-Themen 6
D Performance: ArrayList vs. Array vs. "Eigene Liste&quot Allgemeine Java-Themen 8
A Eigene Wrapper-Klassen Allgemeine Java-Themen 2
J Kann eigene Klasse nicht ermitteln Allgemeine Java-Themen 4
M Wann verwendet man PropertyChangedEvents, wann eigene? Allgemeine Java-Themen 3
J OpenOffice.org Events in eigene Anwendung umleiten Allgemeine Java-Themen 4
U eigene Datenstruktur ArrayList<String> nach Object [][ Allgemeine Java-Themen 2
N Observer/Observable der JAVA-API od. eigene Implementierung Allgemeine Java-Themen 2
B eigene Klassen verkaufen Allgemeine Java-Themen 2
W eigene event-Klasse, event posten Allgemeine Java-Themen 2
reibi Eigene exception mit feld "serialVersionUID" Allgemeine Java-Themen 3
M Eigene .jar in anderes Programm importieren[eclipse] Allgemeine Java-Themen 6
T Eigene Libary Allgemeine Java-Themen 6
E Eigene Exception Allgemeine Java-Themen 11
Q Bibliotheken mit ins eigene Jar aufnehmen Allgemeine Java-Themen 4
M Eigene Exception Klasse Allgemeine Java-Themen 4
M eigene Objekte vergleichen Allgemeine Java-Themen 6
K log4j - eigene Info-Ausgaben Allgemeine Java-Themen 5
G Performance JDOM - DOM - eigene HashMap (SAX) Allgemeine Java-Themen 2
G JWindow verschieben bei mousedragged auf eigene titelleiste Allgemeine Java-Themen 3
N Methoden in eigene Dateien auslagern? Allgemeine Java-Themen 10
B Eigene Datentypen Allgemeine Java-Themen 5
G Brauche hilfe bei JMF: Wie eigene Streaming Data Source! Allgemeine Java-Themen 4
G eigene klassen die ein jar verwenden als neues jar erstellen Allgemeine Java-Themen 4
O Externe Jars in eigene JAr packen in Eclipse Allgemeine Java-Themen 5
R Updateprozedur ü. Internet fürs eigene Programm? Allgemeine Java-Themen 24
G eigene uhrzeit in einer java applikation führen Allgemeine Java-Themen 19
R Eigene Konfigurationsdatei für größere Projekte. Allgemeine Java-Themen 4
J Eigene Callback Methode? Allgemeine Java-Themen 3
S eigene evetns erstellen Allgemeine Java-Themen 5
K eigene GUI Komponente wird nicht angezeigt Allgemeine Java-Themen 3
D Eigene Classes aus anderen .java-Dateien Allgemeine Java-Themen 2
G Eigene PrintService Implementierung. Allgemeine Java-Themen 5
C Die Konsole ins eigene Programm einbauen Allgemeine Java-Themen 5
B Datentypen JMF: Player LinkedList sinnvoll? ca 30 kurze Sounddateien Allgemeine Java-Themen 3
C Sounddateien verketten Allgemeine Java-Themen 4
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
Calli11 Was muss ich hier in die Main schreiben, damit das Programm ausgeführt wird? Allgemeine Java-Themen 4
_user_q Eingegebenen Text wiederholt schreiben lassen Allgemeine Java-Themen 9
_user_q JavaFX Robot alle Unicode-Zeichen schreiben lassen können Allgemeine Java-Themen 12
curranux Ausgabe als Textdatei schreiben. Allgemeine Java-Themen 2
B Wie kann ich mein 8 Klassen Gebilde objektorientierter schreiben? Allgemeine Java-Themen 114
Y Wie sinnvolle unit tests schreiben Allgemeine Java-Themen 29
O Test schreiben mit Äquivalenzklassen (Aufgabe Prüfung) Allgemeine Java-Themen 9
S Programm schreiben, das mir aufgrund von Schlagwörtern, die ich im Internet suche, relevante Themen sofort anzeigt. Allgemeine Java-Themen 1
H In jar Resources schreiben? Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben