src_conv

src_conv — Convertit le taux d'échantillonnage d'un fichier audio.

Description

Convertit le taux d'échantillonnage d'un fichier audio de Rin à Rout. Optionnellement le rapport (Rin / Rout peut varier linéairement dans le temps selon un ensemble de paires (temps, rapport) dans un fichier auxiliaire.

Syntaxe

src_conv [options] fichier_entree

Initialisation

Options :

  • -P num = rapport de transposition en hauteur (srate / r) [ne pas spécifier à la fois P et r]

  • -Q num = facteur de qualité (1, 2, 3, 4 ou 5 : par défaut = 3)

  • -i nomfic = fichier auxiliaire de points charnière (pas de point charnière par défaut, c'est-à-dire pas de changement de rapport)

  • -r num = taux d'échantillonnage en sortie (doit être spécifié si P est absent)

  • -o nomfic = nom du fichier son de sortie (par défaut : test.wav)

  • -A = crée un fichier son de sortie au format AIFF

  • -J = crée un fichier son de sortie au format IRCAM

  • -W = crée un fichier son de sortie au format WAV (par défaut à partir de la version 6.15 de Csound)

  • -h = pas d'en-tête dans le fichier son de sortie

  • -c = échantillons en caractères signés sur 8 bit

  • -a = échantillons alaw

  • -8 = échantillons en caractères non-signés sur 8 bit

  • -u = échantillons ulaw

  • -s = échantillons en entiers courts (16 bit) (par défaut)

  • -3 = échantillons sur 24 bit

  • -l = échantillons en entiers longs

  • -f = échantillons en virgule flottante

  • -r N = remplace le srate de l'orchestre

  • -K = ne génère pas de bloc de pics d'amplitude

  • -R = réécrit continuellement l'en-tête pendant l'écriture du fichier son (WAV/AIFF)

  • -H# = imprime une pulsation dans le style 1, 2 ou 3 à chaque écriture dans le fichier son

  • -N = notification (cloche système) quand le traitement est fini

  • -- nomfic = compte-rendu dans un fichier

Ce programme effectue une conversion arbitraire du taux d'échantillonnage en haute fidélité en utilisant la bibliothèque libsamplerate.

Les cinq niveaux de précision sont :

  • 1 : conversion linéraire. La qualité est médiocre mais la conversion est incroyablement rapide.
  • 2 : conversion avec maintien d'ordre zéro (la valeur interpolée est égale à la dernière valeur). La qualité est médiocre mais la conversion est incroyablement rapide.
  • 3 : c'est l'interpolateur à bande limitée le plus rapide et il a un rapport signal bruit de 97 dB et une bande passante de 80%.
  • 4 : un autre interpolateur à bande limitée ressemblant au précédent. Il a un rapport signal bruit de 97 dB et une bande passante de 90%. La vitesse de conversion est plus rapide que la suivante. Très rapide.
  • 5 : c'est un interpolateur à bande limitée dérivé de la fonction mathématique sinc et c'est le convertisseur basé sur sinc qui a la meilleure qualité, avec un rapport signal bruit de 97 dB dans le pire des cas et une bande passante de 97%.

Exemples

Voici un exemple de src_conv. Il utilise le fichier src_conv.csd.

Exemple 1358. Exemple de src_conv.

Voir les sections Audio en temps réel et Options de la ligne de commande pour plus d'information sur l'utilisation des options de la ligne de commande.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac   
; For Non-realtime ouput leave only the line below:
; -o src_conv.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 48000  ; sample rate of beats.wav = 44100
ksmps = 32  ; and will be resampled to 48000
nchnls = 2
0dbfs  = 1

; by Menno Knevel 2021

; resample in the highest qualty, name the new sample 'beats48.wav'
gires system_i 1,{{ src_conv -r48000 -Q5 beats.wav -o beats48.wav }}

instr 1
ires system_i 1,{{ sndinfo -i beats48.wav }} ; check sample rate
aout    diskin2 "beats48.wav", 1
outs    aout, aout  
endin

</CsInstruments>
<CsScore>
i1 0 2              

e
</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : John ffitch basé sur du code d'Erik de Castro Lopo.

Mai 2015