Reproduction de sons échantillonnés

Les opcodes qui implémentent la reproduction de sons échantillonnés (samples) et les boucles sont :

Voir aussi la section Entrée de Signal pour d'autres types d'entrées sonores.

Soundfonts

A partir de la version 4.07, Csound supporte le format de fichier d'échantillons de SoundFont2. SoundFont2 (ou SF2) est un standard très répandu qui permet l'encodage de banques de sons basés sur des forme d'onde dans un fichier binaire. Afin de comprendre l'utilisation de ces opcodes, l'utilisateur doit avoir une certaine connaissance du format SF2, dont une brève description suit ci-dessous.

Le format SF2 comprend des objets générateurs et modulateurs. Tous les opcodes actuels de Csound concernant SF2 ne supportent que la fonction générateur.

Il y a plusieurs niveaux de générateurs ayant une structure hiérarchique. Le type de générateur le plus basique est un échantillon. Les échantillons peuvent être bouclés ou non, et sont associés avec un numéro de note MIDI, appelé la touche de base. Lorsqu'un échantillon est associé avec un intervalle de numéros de note MIDI, un intervalle de vélocités, une transposition (accord grossier et fin), une échelle d'accord et un facteur de pondération de niveau, l'échantillon et ses associations forment un « split ». Un ensemble de splits, associé à un nom, font un « instrument ». Lorsqu'un instrument est associé à un intervalle de touches, un intervalle de vélocités, un facteur de pondération de niveau et une transposition, l'instrument est ses associations forment un « layer ». Un ensemble de layers, associé à un nom, font un « preset ». Les presets sont normalement la structure finale de génération de son prête à l'usage. Ils génèrent du son selon les réglages de leurs composants des niveaux inférieurs.

Les données d'échantillon ainsi que les données de structure sont inclus dans le même fichier binaire SF2. Un seul fichier SF2 peut contenir au maximum 128 banques de 128 programmes de preset, soit un total de 16384 presets dans un fichier SF2. Le nombre maximum de layers, instruments, splits et échantillons n'est pas défini et se trouve sans doute limité par la mémoire de l'ordinateur.

On peut voir et éditer les SoundFonts avec des programmes comme Polyphone (GPL3, https://www.polyphone-soundfonts.com/) ou Swami (GPL2, http://www.swamiproject.org/).

Opcodes Fluid

La famille des opcodes fluid encapsule le lecteur SoundFont 2 de Peter Hannape, FluidSynth : fluidEngine pour instancier un moteur FluidSynth, fluidSetInterpMethod pour fixer la méthode d'interpolation d'un canal dans un moteur FluidSynth, fluidLoad pour charger des SoundFonts, fluidProgramSelect pour assigner des presets d'un SoundFont à un canal MIDI d'un moteur FluidSynth, fluidNote pour jouer une note sur un canal MIDI d'un moteur FluidSynth, fluidCCi pour envoyer un message de contrôleur au temps-i sur un canal MIDI d'un moteur FluidSynth, fluidCCk pour envoyer un message de contrôleur au taux k sur un canal MIDI d'un moteur FluidSynth. fluidControl pour jouer et contrôler les Soundfonts chargés (en utilisant des messages MIDI 'bruts'), fluidOut pour recevoir de l'audio depuis un seul moteur FluidSynth, et fluidAllOut pour recevoir de l'audio depuis tous les moteurs FluidSynth.

Opcodes Soundfont "originaux"

Ces opcodes peuvent aussi employer des soundfonts pour générer du son. sfplay, etc. ont été créés dans un but -- accéder aux instruments et aux échantillons dans les SoundFonts. Les opcodes fluid ont été créés dans un autre but -- utiliser les SoundFonts plus ou moins comme ils ont été conçus, c'est-à-dire en utilisant des mappages de clavier, des couches, un traitement interne, etc.