scanhammer — Copie d'une table vers une autre avec contrôle du gain.
C'est une variante de tablecopy, qui copie d'une table vers une autre, à partir de ipos, et avec un contrôle du gain. Le nombre de points copiés est déterminé par la longueur de la source. Les autres points ne sont pas changés. On peut utiliser cet opcode pour « frapper » une corde dans le code de synthèse par balayage.
isrc -- table de fonction source.
idst -- table de fonction destination.
ipos -- position de départ (en points).
imult -- multiplicateur du gain. S'il vaut 0, les valeurs ne seront pas modifiées.
Voici un exemple de l'opcode scanhammer. Il utilise le fichier scanhammer.csd.
Exemple 931. Exemple de l'opcode scanhammer.
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 --limiter=0.9 ;;;realtime audio out and limiter ;-iadc ;;;uncomment -iadc if realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o scanhammer.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 ; by Menno Knevel 2021 instr 1 initial ftgen 1, 0, p5, 10, 1 ; initial position = sine wave imass ftgen 2, 0, p5, -7, .1, p5, 1 ; masses istiff ftgen 3, 0, p5, -7, 0, p5*.3, 0.8*p5, p5*.7, 0 ; stiffness idamp ftgen 4, 0, p5, -7, 1, p5, 1 ; damping ivelo ftgen 5, 0, p5, -7, 0, p5, 0.5 ; initial velocity iamp = .20 ipch = cpsmidinn(p4) scanhammer 1, 1, 0, p6 ; scale initial position wave asig3 scantable iamp, ipch, 1, 2, 3, 4, 5 ; set ftables in motion asig foscili iamp, ipch, 1.414, .03, 1, 1 ; but use FM sound, with slow vibrato asig butlp asig, 2000 ; lowpass filter asig dcblock asig outs asig, asig endin </CsInstruments> <CsScore> s ; note size hit i1 0 10 50 128 2 ; hit very hard i1 11 10 50 . 1 ; hit normally i1 22 10 50 . .3 ; hit soft s i1 1 10 50 32 2 ; different table size i1 12 10 50 . 1 i1 23 20 50 . .3 e </CsScore> </CsoundSynthesizer>