fluidEngine
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## fluidEngine

fluidEngine — Crée une instance de moteur fluidsynth.

## Syntaxe

    ienginenum fluidEngine [iReverbEnabled] [, iChorusEnabled] [,iNumChannels] [, iPolyphony]

## Description

Crée une instance de moteur fluidsynth, et retourne ienginenum pour identifier le moteur. ienginenum est passé à d'autres opcodes pour charger et jouer des SoundFonts et pour assembler le son généré.

## Initialisation

ienginenum -- numéro du moteur affecté par fluidEngine

iReverbEnabled -- fixé de manière facultative à 0 pour désactiver d'éventuels effets de réverbération dans les SoundFonts chargés.

iChorusEnabled -- fixé de manière facultative à 0 pour désactiver d'éventuels effets de chorus dans les SoundFonts chargés.

iNumChannels -- nombre de canaux à utiliser ; de 16 à 256, la valeur par défaut de Csound est 256 (la valeur par défaut de Fluidsynth est 16).

iPolyphony -- nombre de voix à jouer en parallèle ; de 16 à 4096, la valeur par défaut de Csound est 4096 (la valeur par défaut de Fluidsynth est 256). Note : ce n'est pas le nombre de notes jouées simultanément car une seule note peut utiliser plusieurs voix en fonction des zones d'instrument et de la vélocité et/ou du numéro de touche de la note jouée.

## Exemples

Voici un exemple des opcodes fluidsynth utilisant 2 moteurs. Il utilise les fichiers fluidEngine.csd et midichn_advanced.mid.

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

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

    ; LOAD SOUNDFONTS
    gienginenum1	fluidEngine
    gienginenum2	fluidEngine
    isfnum1	fluidLoad "sf_GMbank.sf2", gienginenum1, 1
                    ; Piano 2, program 1, channel 1
    		fluidProgramSelect	gienginenum1, 1, isfnum1, 0, 1
                    ; Piano 3, program 2, channel 2
    		fluidProgramSelect	gienginenum1, 2, isfnum1, 0, 2
    isfnum2	fluidLoad "19Trumpet.sf2", gienginenum2, 1
                    ; Trumpet, program 56, channel 3
    		fluidProgramSelect	gienginenum2, 3, isfnum2, 0, 56

    ;Look for midifile in folder manual/examples
    ;"midichn_advanced.mid" sends notes to the soundfonts

    instr 1 ; GM soundfont
      ; INITIALIZATION
    	mididefault	60, p3 ; Default duration of 60 -- overridden by score.
    	midinoteonkey	p4, p5 ; Channels MIDI input to pfields.
      ; Use channel assigned in fluidload.
      ichannel   = 1
      ikey       = p4
      ivelocity  = p5
    	fluidNote gienginenum1, ichannel, ikey, ivelocity
    endin

    instr 2 ; GM soundfont
      ; INITIALIZATION
             mididefault   60, p3 ; Default duration of 60 -- overridden by score.
             midinoteonkey p4, p5 ; Channels MIDI input to pfields.
      ; Use channel assigned in fluidload.
      ichannel   = 2
      ikey       = p4
      ivelocity  = p5
             fluidNote gienginenum1, ichannel, ikey, ivelocity
    endin

    instr 3 ; Trumpet
      ; INITIALIZATION
             mididefault   60, p3 ; Default duration of 60 -- overridden by score.
             midinoteonkey p4, p5 ; Channels MIDI input to pfields.
      ; Use channel assigned in fluidload.
      ichannel   = 3
      ikey       = p4
      ivelocity  = p5
             fluidNote gienginenum2, ichannel, ikey, ivelocity
    endin

    ; COLLECT AUDIO FROM ALL SOUNDFONTS

    instr 100 ; Fluidsynth output

      iamplitude1 = 7
      iamplitude2 = 7

    ; AUDIO
    aleft1, aright1 fluidOut   gienginenum1
    aleft2, aright2 fluidOut   gienginenum2
                    outs       (aleft1 * iamplitude1) + (aleft2 * iamplitude2),  \
                               (aright1 * iamplitude1) + (aright2 * iamplitude2)
    endin
    </CsInstruments>
    <CsScore>

    i 1 0 3  60  100
    i 2 1 3  60  100
    i 3 3 3  63  100
    i 100 0 10		;run for 10 seconds
    e
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

fluidNote, fluidLoad

Plus d'information sur soundfonts dans les Floss Manuals : http://en.flossmanuals.net/csound/ch048_d-reading-midi-files

D'autres informations sur soundfonts dans Wikipedia : http://en.wikipedia.org/wiki/Soundfont

## Crédits

Michael Gogins (gogins@pipeline.com), Steven Yi. Merci à Peter Hanappe pour Fluidsynth.

Les paramètres facultatifs iNumChannels et iPolyphony ont été ajoutés dans la version 5.07

Précédent | Niveau supérieur | Suivant
fluidControl | Sommaire | fluidLoad