Hallo in die Runde der DSPler
Ich habe mit Sox, und Frank's brandneuem resample_soxr sowie seinem bereits gut etablierten volrace etwas "agility" gemacht. Dazu habe ich im Sinne eines Stresstests eine Hindernispipe geskriptet, die es in der realen Audio-Welt sinnvollerweise sicherlich so nicht geben sollte:
Einlesen der Datei (16/44.1, resp. 24/96) (cptoshm/shmcat)->
Umwandeln nach 64Bit float (sox) ->
Pegel -6dB (sox/volrace) ->
Pegel -80db resp. -140dB (sox/volrace) ->
Samplerate 44.1kHz resp. 96kHz nach 192kHz (sox/resample_soxr) ->
Samplerate 192kHz nach 88.2kHz (sox/resample_soxr) ->
Samplerate 88.2kHz nach 44.1 kHz (sox/resample_soxr) ->
Pegel +80dB resp. +140dB (sox/volrace) ->
Samplerate 44.1kHz nach 192kHz (sox/resample_soxr) ->
Samplerate 192kHz nach 88.2kHz (sox/resample_soxr) ->
Samplerate 88.2kHz nach 44.1kHz resp. 96kHz (sox/resample_soxr) ->
Pegel +5.99dB (sox/volrace) ->
Umwandeln nach 16Bit resp. 32Bit signed integer, im Fall von 16Bit mit oder ohne Dither (sox) ->
Ausgabe in Datei (16/44 oder 32/96) (sox mit derselben Instanz wie im letzten Schritt)
Soweit der (absurde?) Hindernislauf, einmal sequentiell alles mittels sox (im Falle von up-/downsampling mit den Parametern -v -I), ein andermal alles mit den Programmen von Frank durchzuspielen.
Resultate:
1644 -> 1644 mittels sox:

Kurven 1-4: Kein Dither im letzten Bearbeitungsschritt (64Bit -> 16Bit)
Kurven 5/6 (gr/sw) Dither und Noise Shaping im letzten Bearbeitungsschritt (64Bit -> 16Bit)
1644 -> 1644 mittels volrace/resample_soxr:

Kurven 1-4: Kein Dither im letzten Bearbeitungsschritt (64Bit -> 16Bit)
Kurven 5/6 (gr/sw) Dither und Noise Shaping im letzten Bearbeitungsschritt (64Bit -> 16Bit)
2496 -> 3296 mittels sox:

2496 -> 3296 mittels volrace/resample_soxr:

Die resultierenden wav's wurden in Acourate eingelesen
Kurven 1/2 (rot/gn), 3/4 (br/bl) und 5/6 (gr/sw) stellen jeweils beide Kanäle (L/R) derselben Verarbeitung dar. Die Kanäle L (Kurven 1, 3 und 5) sind direkt dargestellt, die Kanäle R (Kurven 2, 4 und 6) wurden nachträglich zur Darstellung mittels einer Kaiser (240dB) - Funktion gefenstert.
Fazit:
Die Programme von Frank schöpfen die Möglichkeiten der DSP voll aus. Super. Das ist eine Premiere in der Linux-Audiowelt, dass auf derart einfache Art und Weise theoretisch bestmögliches Digitalaudio zur Verfügung gestellt wird.
Begeisterte, anerkennende und 64-bittig-frankldankende Grüsse
Simon