Classes and Structures
Class: SYNTHESIZER (AUDIO-RENDERER)
A SoundFont synthesizer. This class is not actually exported from the
CL-MELTYSYNTHpackage since it is intended to be opaque. Instances of this class should always be created using the generic functionMAKE-SYNTHESIZER.Note that this class does not provide thread safety. If you wish to send notes and render the waveform in separate threads, you must ensure that the related methods/functions will not be called simultaneously.
Available slot readers (these must be set using the
SYNTHESIZER-SETTINGSclass):
SYNTH-MAXIMUM-POLYPHONYsynthesizer -> t/max-polyphonySYNTH-EFFECTSsynthesizer -> t/effect-listSYNTH-INTERPOLATION-MODEsynthesizer -> t/interpolation-modeSYNTH-REVERB-TYPEsynthesizer -> t/reverb-typeSYNTH-REVERB-UNITsynthesizer -> (or null schroeder-reverb zita-reverb)SYNTH-REVERB-SENDsynthesizer -> t/channel-effect-sendSYNTH-CHORUS-SENDsynthesizer -> t/channel-effect-sendSYNTH-INST-REVERB-OVERRIDEsynthesizer -> (or null t/instrument-overrideSYNTH-INST-CHORUS-OVERRIDEsynthesizer -> (or null t/instrument-overrideAvailable slot accessors are:
SYNTH-MAIN-VOLUMEsynthesizer -> t/main-volume(SETF SYNTH-MAIN-VOLUME)t/main-volume synthesizer
Class: SYNTHESIZER-SETTINGS
This class is used to set various parameters of the
SYNTHESIZERclass. Instances of this class should always be created using theMAKE-SYNTHESIZER-SETTINGSfunction.Available slot accessors (all
SETF-able) are:
SYNTH-SETTING-SAMPLE-RATEsynthesizer-settings -> t/sample-rateSYNTH-SETTING-MAX-POLYPHONYsynthesizer-settings -> t/max-polyphonySYNTH-SETTING-EFFECTSsynthesizer-settings -> t/effect-listSYNTH-SETTING-REVERB-SENDsynthesizer-settings -> t/channel-effect-sendSYNTH-SETTING-CHORUS-SENDsynthesizer-settings -> t/channel-effect-sendSYNTH-SETTING-INST-REVERB-OVERRIDEsynthesizer-settings -> t/instrument-overrideSYNTH-SETTING-INST-CHORUS-OVERRIDEsynthesizer-settings -> t/instrument-overrideSYNTH-SETTING-ENABLE-PRESET-REMAPPING-Psynthesizer-settings -> booleanSYNTH-SETTING-INTERPOLATION-MODEsynthesizer-settings -> t/interpolation-modeSYNTH-SETTING-REVERB-TYPEsynthesizer-settings -> t/reverb-typeSYNTH-SETTING-MAIN-VOLUMEsynthesizer-settings -> t/main-volume
Function: MAKE-SYNTHESIZER-SETTINGS &key lots of keywords -> synthesizer-settings
Used to construct a
SYNTHESIZER-SETTINGSinstance. All slots can be set using this function, which will be checked for valid values.
Generic Function: MAKE-SYNTHESIZER [soundfont] [settings] -> synthesizer
Creates a new
SYNTHESIZERinstance and initializes it with the given settings.
SOUNDFONTcan be either aSTRING,PATHNAME, or aSOUNDFONTinstance.
SETTINGScan be one of the following:
- An integer specifying the sample rate
- A
SYNTHESIZER-SETTINGSinstance containing settings for the new synthesizer
Function: SYNTH-PROCESS-MIDI-MESSAGE synthesizer (unsigned-byte 8) (unsigned-byte 8) (unsigned-byte 8) (unsigned-byte 8)
Processes a MIDI message with the given synthesizer.
Function SYNTH-NOTE-OFF synthesizer (unsigned-byte 8) fixnum
Stops a note on the given channel.
Function SYNTH-NOTE-ON synthesizer (unsigned-byte 8) (unsigned-byte 8) (unsigned-byte 8)
Starts playing a note on the given channel with the given velocity.
Function SYNTH-NOTE-OFF-ALL synthesizer [immediate?] &optional [channel]
Stops all notes that are currently playing. If
IMMEDIATE?is truthy, then notes will stop immediately without processing their release envelopes. A specific channel (an(UNSIGNED-BYTE 8)) can optionally be specified, otherwise this operates on all channels.
Function SYNTH-RESET-ALL-CONTROLLERS synthesizer &optional [channel]
Resets all of the controllers. If a channel is specified (an
(UNSIGNED-BYTE 8)), then the controllers are only reset on that channel, otherwise they are reset on all of them.
Function SYNTH-RESET synthesizer
Resets the synthesizer. This resets all voices, all channels, and (when enabled) mutes the chorus and reverb. This also resets the default channel reverb/chorus values to the value returned by
SYNTH-REVERB-SENDandSYNTH-CHORUS-SEND.