MP3 rückwärts abspielen

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Then
Beiträge: 247
Registriert: 06.09.2004 13:26
Wohnort: Siegen

MP3 rückwärts abspielen

Beitrag von Then »

Hallo, gibt es eine Möglichkeit ein MP3 File rückwärts abzuspielen ? Ich weiß, es gibt Programme dafür, aber ich suche eine Möglichkeit, das zu programmieren.

Mit MCIsendString_(... oder so ? Hat das schonmal jemand gemacht ??
PB 5.62 / Windows 11 64Bit (i5/32GB/240GB-SSD+3TB-HDD/1050GTX4GB) / 27" Multitouch Monitor

... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: MP3 rückwärts abspielen

Beitrag von ccode_new »

Hallo "Then"

ich kann nur das hier empfehlen.

http://sox.sourceforge.net/
http://sox.sourceforge.net/sox.html

Bsp: sox xxx.wav new_xx.wav reverse

Vielleicht bastele ich auch noch ein PB-Beispiel dazu.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
Then
Beiträge: 247
Registriert: 06.09.2004 13:26
Wohnort: Siegen

Re: MP3 rückwärts abspielen

Beitrag von Then »

Danke, leider ist das nur für wav. :(
PB 5.62 / Windows 11 64Bit (i5/32GB/240GB-SSD+3TB-HDD/1050GTX4GB) / 27" Multitouch Monitor

... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: MP3 rückwärts abspielen

Beitrag von ccode_new »

Nein es funktionieren auch mp3-Dateien, oder ogg, oder flac, ...

Hier ein Windows-Beispiel (new_update):

https://workupload.com/file/PBh6xbK

Viel Spaß beim Testen.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
udg
Beiträge: 560
Registriert: 20.06.2013 23:27

Re: MP3 rückwärts abspielen

Beitrag von udg »

Leider ist das auch wieder mitschleppen von dritt Programmen. Schade das so etwas nicht mit eigenen nativen Code geht.

hier wird PB ja als eine Art Batch missbraucht :D

Runprogram ....


:lurk:
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: MP3 rückwärts abspielen

Beitrag von ccode_new »

Man könnte sicherlich auch mit etwas Basteln die libsox direkt mit den internen Funktionen nutzen.

bass_fx.dll wäre z.B. auch noch eine Alternative.

Ansonsten hast du schon recht.

Wenn man sehr viel Zeit und Gehirnschmalz investiert könnte man vielleicht auch Purebasic-Intern eine Lösung programmieren.

Mp3 - Dateien kann man sowieso nicht in Echtzeit reversen.
(Weder mit sox noch anders. Die Mp3-Struktur macht da Probleme.)

Aber wenn man hier vorher "Speichermagic" betreibt könnte man da sicherlich auch eine Lösung finden.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
DarkSoul
Beiträge: 689
Registriert: 19.10.2006 12:51

Re: MP3 rückwärts abspielen

Beitrag von DarkSoul »

Leider ist das auch wieder mitschleppen von dritt Programmen. Schade das so etwas nicht mit eigenen nativen Code geht.
Das hat einen Grund: Don't reinvent the square wheel! :)

Entweder du bastelst dir einen MP3-Dekoder (die MP3-Patente sind ja zum Glück ausgelaufen), was zeitaufwändig und fehleranfällig ist. Du musst dich intensiv mit dem Aufbau einer MP3-Datei befassen, musst mit fehlerhaften MP3-Daten umgehen können usw.
Oder du verwendest eine bereits vorhandene, gut gepflegte und getestete Lib dafür, die du nur einbinden musst und die Funktionen dann sofort verwenden kannst.

Mögliche Vorgehendweise:
1. MP3 in einen Buffer dekodieren
2. Samplereihenfolge umkehren (das geht wiederrum mit Peek() und Poke())
3. WAV-Header mit passenden Werten vorschnallen und das ganze wiedergeben (geht auch mit PB-eigenen Funktionen)

Oder besser noch, das ganze als Stream: Die letzten paar MP3-Frames dekodieren, umkehren und wiedergeben. Während die Wiedergabe läuft, die nächsten Frames dekodieren usw. Also sozusagen rückwärts durchseeken und dekoden.

Dann muss nicht erst das ganze Stück in RAM geladen werden und die Rechenzeit zwischen "Musikstück soll rückwärts gespielt werden" und Wiedergabe beginnt wird drastisch verkürzt.

Welchen Zweck soll das eigentlich haben, eine MP3 rückwärts abzuspielen? MP3 ist eine psychoakustische Kompression, die sich Unzulänglichkeiten vom Gehör zunutze macht. Darunter auch, dass man einen leisen Ton nach einem lauten Ton nur bedingt wahrnimmt, da er sozusagen "im Schatten" des lauten Tons steht. Da steht zu vermuten, dass der MP3-Encoder den leisen Ton teilweise oder gänzlich ausgefiltert hat, um die vorgegebene Bitrate einhalten zu können. Das funktioniert beim Rückwärtsabspielen dann nicht mehr richtig, weil dieser Effekt hörbar werden würde, wenn der leise Ton durch die Umkehrung zuerst kommt. :wink:

PS: Die PB-Funktionen kommen auch aus Libs. Mit dem einzigen Unterschied, dass sie schon fertig eingebunden sind. Eine zusätzliche Lib vom Dritthersteller erweitert quasi den Funktionsumfang von PB.
Bild
Benutzeravatar
diceman
Beiträge: 347
Registriert: 06.07.2017 12:24
Kontaktdaten:

Re: MP3 rückwärts abspielen

Beitrag von diceman »

DarkSoul hat geschrieben:Welchen Zweck soll das eigentlich haben, eine MP3 rückwärts abzuspielen?
Vielleicht will er ein älteres Wesen oder einen Dämon beschwören ... /:->
Now these points of data make a beautiful line,
And we're out of Beta, we're releasing on time.
Antworten