fmbell

fmbell — Uses FM synthesis to create a tublar bell sound.

Description

Uses FM synthesis to create a tublar bell sound. It comes from a family of FM sounds, all using 4 basic oscillators and various architectures, as used in the TX81Z synthesizer.

Syntax

ares fmbell kamp, kfreq, kc1, kc2, kvdepth, kvrate[, ifn1, ifn2, ifn3, \
      ifn4, ivfn, isus]

Initialization

All these opcodes take 5 tables for initialization. The first 4 are the basic inputs and the last is the low frequency oscillator (LFO) used for vibrato. These all default to a siewave table.

The initial waves should be:

  • ifn1 -- sine wave

  • ifn2 -- sine wave

  • ifn3 -- sine wave

  • ifn4 -- sine wave

The optional argument isus controls how long the sound lasts, or how quickly it decays. It defaults to 4.

Performance

kamp -- Amplitude of note.

kfreq -- Frequency of note played.

kc1, kc2 -- Controls for the synthesizer:

  • kc1 -- Mod index 1

  • kc2 -- Crossfade of two outputs

  • Algorithm -- 5

kvdepth -- Vibrator depth

kvrate -- Vibrator rate

Examples

Here is an example of the fmbell opcode. It uses the file fmbell.csd.

Example 300. Example of the fmbell opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac     ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o fmbell.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32  
nchnls = 2
0dbfs  = 1

instr 1

kamp = p4
kfreq = 880
kc1 = p5
kc2 = p6
kvdepth = 0.005
kvrate = 6

asig fmbell kamp, kfreq, kc1, kc2, kvdepth, kvrate
     outs asig, asig
endin

instr 2

kamp = p4
kfreq = 880
kc1 = p5
kc2 = p6
kvdepth = 0.005
kvrate = 6

asig fmbell kamp, kfreq, kc1, kc2, kvdepth, kvrate, 1, 1, 1, 1, 1, p7
     outs asig, asig
endin

</CsInstruments>
<CsScore>
; sine wave.
f 1 0 32768 10 1

i 1 0 3 .2  5 5 
i 1 + 4 .3 .5 1
s
i 2 0 12 .2  5 5 16
i 2 + 12 .3 .5 1 12


e
</CsScore>
</CsoundSynthesizer>


See Also

fmb3, fmmetal, fmpercfl, fmrhode, fmwurlie

Credits

Author: John ffitch (after Perry Cook)
University of Bath, Codemist Ltd.
Bath, UK

New in Csound version 3.47

Optional argument new in 5.16

More optional argument new in 6.0