cvanal

cvanal — Convertit un fichier son en une trame de transformée de Fourier.

Description

Analyse de Fourier d'une réponse impulsionnelle pour l'opérateur convolve

Syntaxe

csound -U cvanal [options] nomfichier_entree nomfichier_sortie
cvanal [options] nomfichier_entree nomfichier_sortie

Initialisation

cvanal -- convertit un fichier son en une trame de transformée de Fourier. Le fichier de sortie peut être utilisé par l'opérateur convolve pour réaliser une Convolution Rapide entre un signal d'entrée et la réponse impulsionnelle originale. L'analyse est conditionnée par les options ci-dessous. Un espace est facultatif entre le drapeau et son argument.

-s srate -- taux d'échantillonnage du fichier audio d'entrée. Il remplacera la valeur srate de l'en-tête du fichier audio, qui s'applique autrement. Si aucun des deux n'est présent, la valeur par défaut est 10000.

-c canal -- numéro du canal à traiter. S'il est omis, tous les canaux sont traités par défaut. Si une valeur est donnée, seul le canal choisi sera traité.

-b début -- date du début (en secondes) du segment audio à analyser. La valeur par défaut est 0,0

-d durée -- durée (en secondes) du segment audio à analyser. La valeur par défaut de 0,0 signifie jusqu'à la fin du fichier.

-X -- écrire le fichier d'analyse dans un format indépendant de la machine.

Fichiers

Le fichier de sortie a un en-tête spécial convolve, contenant les détails du fichier source audio. Les données d'analyse sont stockées comme des nombres « virgule flottante », en forme rectangulaire (réel/imaginaire).

[Note] Note

Le fichier d'analyse n'est pas indépendant du système ! Assurez-vous que les données originales de la réponse impulsionnelle sont conservées. Si nécessaire, le fichier d'analyse pourra être recréé.

Exemples

cvanal unson fichiercv

analysera le fichier son "unson" pour produire le fichier "fichiercv" à utiliser avec convolve.

Pour utiliser des données qui ne sont pas déjà contenues dans un fichier son, un convertisseur de fichier son qui accepte des fichiers texte peut être utilisé pour créer un fichier audio standard, par exemple le format .DAT pour SOX. Ceci est utile pour implémenter des filtres RIF.

Voici un exemple de l'utilitaire cvanal. Il utilise le fichier cvanal.csd.

Exemple 1352. Exemple de l'utilitaire cvanal.

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   -m0  --limiter=.99 ;;;realtime audio out, with limiter protection
; For Non-realtime ouput leave only the line below:
; -o cvanal.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

; by Menno Knevel 2021

gilen  filelen "rv_stereo.wav"	    ; get length of impulse soundfile

; analyze sound file and output result to 3 convolve files
ires1 system_i 1,{{ cvanal rv_stereo.wav rv_stereo1.con }}                  ; default settings
ires2 system_i 1,{{ cvanal -d.15 rv_stereo.wav rv_stereo2.con }}            ; use only first portion
ires3 system_i 1,{{ cvanal -b.25 -d.001 rv_stereo.wav rv_stereo3.con }}    ; take very short portion from the end


instr 1 ; untreated signal
asig    diskin2   "beats.wav", 1
prints  "\n---***YOU NOW HEAR THE UNTREATED SOUND SAMPLE***---\n"
outs    asig, asig
endin

instr 2

prints  "\n---***YOU NOW HEAR THE RESULT OF THIS ANALYZED FILE:***---\n"
prints "--**used duration of impulse file = %5.3f seconds (total =%5.2f)**--\\n", p5, gilen

adry    diskin2 "beats.wav"                 ; input (dry) audio
awet1, awet2 convolve adry*.8, p4           ; stereo convolved (wet) audio
awet1  *=  p6                               ; scale amplitude of impulse sound, Left
awet2  *=  p6                               ; & Right channel
adrydel delay   adry, p5                    ; delay dry signal to align it with convolved signal
outs    (adrydel+awet1)*.8,(adrydel+awet2)*.8 ; mix wet & dry signals 
endin

</CsInstruments>
<CsScore>

i1 1 2          ; untreated signal

i2 4 3  "rv_stereo1.con"    0.39    .01	; use total impulse
i2 8 3  "rv_stereo2.con"    0.15    .01	; first portion of impulse
i2 12 3 "rv_stereo3.con"    0.001    1	; very short portion of impulse, starting from 0.25 sec, & scale amp
e
</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : Greg Sullivan

Basé sur l'algorithme donné dans Elements Of Computer Music, par F. Richard Moore.