pitch — Suit la hauteur d'un signal.
En utilisant les mêmes techniques que spectrum et specptrk, pitch suit la hauteur du signal sous la forme octave point décimal ainsi que l'amplitude en dB.
koct, kamp pitch asig, iupdte, ilo, ihi, idbthresh [, ifrqs] [, iconf] \
[, istrt] [, iocts] [, iq] [, inptls] [, irolloff] [, iskip]
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.
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.
Voici un exemple de l'opcode pitch. Il utilise le fichier pitch.csd.
Exemple 762. 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 -odac ;;;realtime audio out ;-iadc ;;;uncomment -iadc if real audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o pitch.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 ; by Menno Knevel 2022 instr 1 ;clean audio asig soundin p4 outs asig, asig endin instr 2 ;use pitch iupdte = 0.001 ;high definition ilo = 6 ihi = 10 idbthresh = 10 ifrqs = 12 iconf = 10 istrt = 8 Sfile = p4 asig soundin Sfile koct, kamp pitch asig, iupdte, ilo, ihi, idbthresh, ifrqs, iconf, istrt kamp = kamp*.00004 ;lower volume kcps = cpsoct(koct) asig poscil kamp, kcps, 1 ;re-synthesize with sawtooth printf "now %s is used...\n\n", 1, Sfile outs asig, asig endin </CsInstruments> <CsScore> f1 0 16384 10 1 0.5 0.3 0.25 0.2 0.167 0.14 0.125 .111 ;sawtooth i 1 0 3 "fox.wav" i 2 3 3 "fox.wav" i 1 6 4 "singFemale.aif" i 2 10 4 "singFemale.aif" i 1 15 2 "drumsMlp.wav" i 2 17 2 "drumsMlp.wav" e </CsScore> </CsoundSynthesizer>