doppler

doppler — Une méthode rapide et robuste d'approximation de propagation du son, produisant un effet Doppler convaincant sans résolution d'équations.

Description

Une méthode rapide et robuste d'approximation de propagation du son, produisant un effet Doppler convaincant sans résolution d'équations. La méthode calcule des décalages de fréquence basés sur la lecture d'une ligne à retard en entrée avec un retard calculé à partir de la distance entre la source et le microphone, et de la vitesse du son. Il faut une instance de l'opcode pour chaque dimension de l'espace dans lequel le son évolue. Si la source sonore se déplace à vitesse constante depuis l'avant du microphone jusqu'à l'arrière du microphone en passant par le microphone, la sortie sera transposée en fréquence à une fréquence constante au-dessus de la fréquence de la source durant l'approche de la source, puis basculera de manière discontinue sous la fréquence de la source à une fréquence constante comme la source s'éloigne du microphone. Si la source sonore passe à vitesse constante en un point situé sur un côté du microphone, la vitesse du changement de position ne sera pas constante et l'on entendra le décalage en fréquence typique de l'effet Doppler familier d'une sirène ou d'un moteur approchant et s'éloignant le long d'une route située sur le côté de l'auditeur.

Syntaxe

ashifted doppler asource, ksourceposition, kmicposition [, isoundspeed, ifiltercutoff]

Initialisation

isoundspeed (facultatif, 340.29 par défaut) -- Vitesse du son en mètres/seconde.

ifiltercutoff (facultatif, 6 par défaut) -- taux de mise à jour du filtre de lissage de la position, en Hz.

Exécution

asource -- Signal d'entrée de la source sonore.

ksourceposition -- Position de la source sonore en mètres. La distance entre la source et le micro ne doit pas changer plus vite qu'environ 3/4 de la vitesse du son.

kmicposition -- Position du microphone enregistreur en mètres. of the recording microphone in meters. La distance entre la source et le micro ne doit pas changer plus vite qu'environ 3/4 de la vitesse du son.

Exemples

Voici un exemple de l'opcode doppler. Il utilise le fichier doppler.csd.

Exemple 219. Exemple de l'opcode doppler.

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     ;;;RT audio out
;-iadc    ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o doppler.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 48000
ksmps = 128
nchnls = 2
0dbfs = 1

instr 1

iattack       init    0.05
irelease      init    0.05
isustain      init    p3
p3            init    iattack + isustain + irelease
kdamping      linseg  0.0, iattack, 1.0, isustain, 1.0, irelease, 0.0	
kmic          init    4
              ; Position envelope, with a changing rate of change of position.
;             transeg a   dur   ty  b      dur    ty  c    dur    ty d
kposition     transeg 4, p3*.4, 0, 120,   p3*.3, -3, 50,   p3*.3, 2, 4
ismoothinghz  init    6
ispeedofsound init    340.29
asignal       vco2    0.5, 110
aoutput       doppler asignal, kposition, kmic, ispeedofsound, ismoothinghz
              outs    aoutput*kdamping, aoutput * kdamping
endin

</CsInstruments>
<CsScore>

i1	0.0	20	
e1
</CsScore>
</CsoundSynthesizer>


Crédits

Auteur de l'algorithme : Peter Brinkmann
Auteur de l'opcode : Michael Gogins
Janvier 2010

Nouveau dans la version 5.11 de Csound.