buzz — La sortie est un ensemble de partiels sinus en relation harmonique.
ifn -- numéro de la table d'une fonction stockée contenant une onde sinus. Une grande table d'au moins 8192 points est recommandée.
iphs (facultatif, par défaut 0) -- phase initiale de la fréquence fondamentale, exprimée comme une fraction d'une période (0 à 1). Avec une valeur négative l'initialisation de la phase sera ignorée. La valeur par défaut est zéro.
xamp -- amplitude
xcps -- fréquence en cycles par seconde
Les unités buzz génèrent un ensemble additif de partiels cosinus en relation harmonique de fréquence fondamentale xcps, et dont les amplitudes sont pondérées de telle façon que la crête de leur somme égale xamp. Le choix et l'importance des partiels sont déterminés par les paramètres de contrôle suivants :
knh -- nombre total d'harmoniques demandés. Nouveau dans la version 3.57 de Csound, knh vaut un par défaut. Si knh est négatif, sa valeur absolue est utilisée.
buzz et gbuzz sont utiles comme sources de son complexe dans la synthèse soustractive. buzz est un cas particulier du plus général gbuzz dans lequel klh = kmul = 1 ; il produit ainsi un ensemble de knh harmoniques de même importance, commençant avec le fondamental. (C'est un train d'impulsions à bande de fréquence limitée ; si les partiels vont jusqu'à la fréquence de Nyquist, c'est-à-dire knh = int (sr / 2 / fréq. fondamentale), le résultat est un train d'impulsions réelles d'amplitude xamp.)
Bien que l'on puisse faire varier knh durant l'exécution, sa valeur interne est nécessairement un entier ce qui peut provoquer des « pops » dûs à des discontinuités dans la sortie. buzz peut être modulé en amplitude et/ou en fréquence soit par des signaux de contrôle soit par des signaux audio.
Nota Bene : cette unité a son pendant avec GEN11, dans lequel le même ensemble de cosinus peut être stocké dans une table de fonction qui sera lue par un oscillateur. Bien que plus efficace en termes de calcul, le train d'impulsions stocké a un contenu spectral fixe, non variable dans le temps comme celui décrit ci-dessus.
Voici un exemple de l'opcode buzz. Il utilise le fichier buzz.csd.
Exemple 115. Exemple de l'opcode buzz.
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 buzz.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 kcps = 110 ifn = 1 knh line p4, p3, p5 asig buzz 1, kcps, knh, ifn outs asig, asig endin </CsInstruments> <CsScore> ;sine wave. f 1 0 16384 10 1 i 1 0 3 20 20 i 1 + 3 3 3 i 1 + 3 10 1 e </CsScore> </CsoundSynthesizer>