fmbell
Prev | Orchestra Opcodes and Operators | Next

## 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. The last table should usually be a sine wave.

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 269. 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, 1, 1, 1, 1, 1
         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
    i 2 8 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

Prev | Up | Next
fmb3 | Home | fmmetal