pitch

pitch — Suit la hauteur d'un signal.

Description

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.

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 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>


Crédits

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

Nouveau dans la version 3.54 de Csound.