Audiodateien programmiertechnisch in Lautstärke und Tonhöhe verändern

mr b

Mitglied
ahoi,
Vorwort:
ich habe vor ein Programm zu schreiben, mit welchem man innerhalb einer Audio-Datei ab einer vorbestimmten Position für eine bestimmte Zeitspanne (sollte möglich sein als minimal wie auch sehr gross definiert zu werden) die Lautstärke zu verringer oder anzuheben (wieder von minimal bis sehr stark) oder die Tonhöhe zu verringer bzw. anzuheben (auch wieder von minimal bis sehr stark). Oder beides. Nach der Veränderung sollte es möglich sein, die veränderte Audio-Datei abzuspeichern. So das die Änderungen in der abgespeicherten Version "hart-kodiert" sind bzw. fest verankert sind. Also nicht via Tag-Information.

Da ich noch ganz am Anfang meines Projektes stehe, stellt sich mir vorerst einmal die Frage: Welche Programmiersprache und auch welches Audioformat sich für mein Vorhaben am besten eignet.
Bzgl. der Audioformate bin ich recht frei in der Wahl. Wer da also eins empfehlen kann, egal welches, immer nur raus damit:D
In sachen Programmiersprachen würde ich natürlich gerne eine Sprache nutzen, in der ich mich bereits grundlegend auskenne.
Favorisiert wären deshalb: C, Objekt Pascal (Delphi 7) oder Java
Da ich mich jedoch noch nie mit der programmiertechnischen Seite der Audioverarbeitung wie .bearbeitung befasst habe, würde ich bei triftigen Gründen mich auch in eine neue Programmiersprache einfinden wollen ;)

Die Frage:
Worum ich Euch nun bitten würde, mir hier vielleicht einmal Eure Empfehlungen nieder zu schreiben. Gerne auch mit der ein oder anderen Begründung oder Verweisen zu Informationsquellen bzgl. Audioverarbeitung mit jeglicher Programmiersprache.
Wenn jmd. hat, wuerde ich mich auch sehr über Quellcoden zu dem Thema freuen, mit dem ich ein wenig rumexperimentieren kann ;)
Ich freue mich auf Antwort.

Grüße

b
 
Logischerweise ist eine WAV/AIF Datei am Einfachsten. Da hast Du neben dem Header
die reinen Bit-Daten, die auch so behandelt werden können. Bei einer Lautstärkeminderung
muss man dann ja nur noch zB (16Bitraus)=(16BitRein)*Faktor setzen. Tonhöhenänderung
muss über einen Pitch-Shift realisiert werden, arbeitet grundsätzlich auf Basis des Doppler-
Effekts. Langsamer abspielen hiesse ja leider auch den Datenstrom aus seiner Sync zu
heben, ergo 48KHz halb so schnell abgespielt ist dann nur noch 24KHz, dann müsste
man die Zwischendaten auffüllen, um wieder auf 48KHz zu kommen. Kann zu hässlichen
Artefakten führen.

Vielleicht lohnt es sich, die Sache auf Basis der VST-SDK zu schreiben. Dann
bräuchte man ja noch einen VST-Host... Naja.. Erstmal viel Erfolg.

mfg chmee
 
Zuletzt bearbeitet:
Zurück