pitch

pitch — Trace la hauteur d'un signal.

Description

En utilisant les mêmes techniques que spectrum et specptrk, pitch trace la hauteur du signal sous la forme octave point décimal ainsi que l'amplitude en dB.

Syntaxe

koct, kamp pitch asig, iupdte, ilo, ihi, idbthresh [, ifrqs] [, iconf] \
      [, istrt] [, iocts] [, iq] [, inptls] [, irolloff] [, iskip]

Initialisation

iupdte -- longueur en secondes de la période de mise à jour des sorties.

ilo, ihi -- intervalle dans lequel la hauteur est détectée, exprimé en octave point décimal.

idbthresh -- amplitude, exprimée en décibels, nécessaire pour que la hauteur soit détectée. Une fois démarré, continue jusqu'à une diminution de 6 dB.

ifrqs (facultatif) -- nombre de divisions de l'octave. Vaut 12 par défaut et est limité à 120.

iconf (facultatif) -- nombre de conformations nécessaires pour un saut d'octave. Vaut 10 par défaut.

istrt (facultatif) -- hauteur initiale pour le détecteur. La valeur par défaut est (ilo + ihi)/2.

iocts (facultatif) -- nombre de décimations d'octave dans le spectre. Vaut 6 par défaut.

iq (facultatif) -- Q des filtres d'analyse. Vaut 10 par défaut.

inptls (facultatif) -- nombre d'harmoniques utilisés pour la concordance. Le temps de calcul augmente avec le nombre d'harmoniques. Vaut 4 par défaut.

irolloff (facultatif) -- roll-off d'amplitude pour l'ensemble de filtres exprimé en fraction par octave. Les valeurs doivent être positives. Vaut 0.6 par défaut.

iskip (facultatif) -- s'il est non nul, l'initialisation est ignorée. Vaut 0 par défaut.

Exécution

koct -- La sortie de hauteur, donnée dans le format octave point décimal.

kamp -- La sortie d'amplitude.

pitch analyse le signal d'entrée, asig, pour donner en sortie une paire hauteur/amplitude pour la fréquence la plus forte dans le signal. La valeur est mise à jour toutes les iupdte secondes.

Le nombre d'harmoniques et la fraction de roll-off pouvant affecter la détection de hauteur, il peut être nécessaire d'expérimenter. Les valeurs suggérées vont de 4 à 5 harmoniques avec un roll-off de 0.6 jusqu'à 10 à 12 harmonques avec un roll-off de 0.75 pour les timbres complexes ayant un fondamental faible.

Exemples

Voici un exemple de l'opcode pitch. Il utilise les fichiers pitch.csd et mary.wav.

Exemple 439. Exemple de l'opcode pitch.

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
; Audio out   Audio in    No messages
-odac           -iadc     -d     ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o pitch.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; Initialize the global variables.
sr = 44100
kr = 44100
ksmps = 1
nchnls = 1

; Instrument #1 - play an audio file without effects.
instr 1
  asig soundin "mary.wav"
  out asig
endin

; Instrument #2 - track the pitch of an audio file.
instr 2
  iupdte = 0.01
  ilo = 7
  ihi = 9
  idbthresh = 10
  ifrqs = 12
  iconf = 10
  istrt = 8

  asig soundin "mary.wav"

  ; Follow the audio file, get its pitch and amplitude.
  koct, kamp pitch asig, iupdte, ilo, ihi, idbthresh, ifrqs, iconf, istrt

  ; Re-synthesize the audio file with a different sounding waveform.
  kamp2 = kamp * 10
  kcps = cpsoct(koct)
  a1 oscil kamp2, kcps, 1

  out a1
endin


</CsInstruments>
<CsScore>

; Table #1: A different sounding waveform.
f 1 0 32768 11 7 3 .7

; Play Instrument #1, the audio file, for three seconds.
i 1 0 3
; Play Instrument #2, the "re-synthesized" waveform, for three seconds.
i 2 3 3
e


</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : John ffitch
Université de Bath, Codemist Ltd.
Bath, UK
Avril 1999

Exemple écrit par Kevin Conder.

Nouveau dans la version 3.54 de Csound.