- int effects_channels; /**< the number of effects channels (>= 2) */
- int state; /**< the synthesizer state */
- unsigned int ticks_since_start; /**< the number of audio samples since the start */
- unsigned int start; /**< the start in msec, as returned by system clock */
- fluid_overflow_prio_t overflow; /**< parameters for overflow priority (aka voice-stealing) */
-
- fluid_list_t *loaders; /**< the SoundFont loaders */
- fluid_list_t *sfont_info; /**< List of fluid_sfont_info_t for each loaded SoundFont (remains until SoundFont is unloaded) */
- fluid_hashtable_t *sfont_hash; /**< Hash of fluid_sfont_t->fluid_sfont_info_t (remains until SoundFont is deleted) */
- unsigned int sfont_id; /**< Incrementing ID assigned to each loaded SoundFont */
-
- float gain; /**< master gain */
- fluid_channel_t** channel; /**< the channels */
- int nvoice; /**< the length of the synthesis process array (max polyphony allowed) */
- fluid_voice_t** voice; /**< the synthesis voices */
- int active_voice_count; /**< count of active voices */
- unsigned int noteid; /**< the id is incremented for every new note. it's used for noteoff's */
- unsigned int storeid;
- fluid_rvoice_eventhandler_t* eventhandler;
-
- float reverb_roomsize; /**< Shadow of reverb roomsize */
- float reverb_damping; /**< Shadow of reverb damping */
- float reverb_width; /**< Shadow of reverb width */
- float reverb_level; /**< Shadow of reverb level */
-
- int chorus_nr; /**< Shadow of chorus number */
- float chorus_level; /**< Shadow of chorus level */
- float chorus_speed; /**< Shadow of chorus speed */
- float chorus_depth; /**< Shadow of chorus depth */
- int chorus_type; /**< Shadow of chorus type */
-
- int cur; /**< the current sample in the audio buffers to be output */
- int curmax; /**< current amount of samples present in the audio buffers */
- int dither_index; /**< current index in random dither value buffer: fluid_synth_(write_s16|dither_s16) */
-
- char outbuf[256]; /**< buffer for message output */
- float cpu_load; /**< CPU load in percent (CPU time required / audio synthesized time * 100) */
-
- fluid_tuning_t*** tuning; /**< 128 banks of 128 programs for the tunings */
- fluid_private_t tuning_iter; /**< Tuning iterators per each thread */
-
- fluid_midi_router_t* midi_router; /**< The midi router. Could be done nicer. */
- fluid_sample_timer_t* sample_timers; /**< List of timers triggered before a block is processed */
- unsigned int min_note_length_ticks; /**< If note-offs are triggered just after a note-on, they will be delayed */
-
- int cores; /**< Number of CPU cores (1 by default) */
+ int effects_channels; /**< the number of effects channels (>= 2) */
+ int effects_groups; /**< the number of effects units (>= 1) */
+ int state; /**< the synthesizer state */
+ fluid_atomic_uint_t ticks_since_start; /**< the number of audio samples since the start */
+ unsigned int start; /**< the start in msec, as returned by system clock */
+ fluid_overflow_prio_t overflow; /**< parameters for overflow priority (aka voice-stealing) */
+
+ fluid_list_t *loaders; /**< the SoundFont loaders */
+ fluid_list_t *sfont; /**< List of fluid_sfont_info_t for each loaded SoundFont (remains until SoundFont is unloaded) */
+ int sfont_id; /**< Incrementing ID assigned to each loaded SoundFont */
+
+ float gain; /**< master gain */
+ fluid_channel_t **channel; /**< the channels */
+ int nvoice; /**< the length of the synthesis process array (max polyphony allowed) */
+ fluid_voice_t **voice; /**< the synthesis voices */
+ int active_voice_count; /**< count of active voices */
+ unsigned int noteid; /**< the id is incremented for every new note. it's used for noteoff's */
+ unsigned int storeid;
+ int fromkey_portamento; /**< fromkey portamento */
+ fluid_rvoice_eventhandler_t *eventhandler;
+
+ double reverb_roomsize; /**< Shadow of reverb roomsize */
+ double reverb_damping; /**< Shadow of reverb damping */
+ double reverb_width; /**< Shadow of reverb width */
+ double reverb_level; /**< Shadow of reverb level */
+
+ int chorus_nr; /**< Shadow of chorus number */
+ double chorus_level; /**< Shadow of chorus level */
+ double chorus_speed; /**< Shadow of chorus speed */
+ double chorus_depth; /**< Shadow of chorus depth */
+ int chorus_type; /**< Shadow of chorus type */
+
+ int cur; /**< the current sample in the audio buffers to be output */
+ int curmax; /**< current amount of samples present in the audio buffers */
+ int dither_index; /**< current index in random dither value buffer: fluid_synth_(write_s16|dither_s16) */
+
+ fluid_atomic_float_t cpu_load; /**< CPU load in percent (CPU time required / audio synthesized time * 100) */
+
+ fluid_tuning_t ***tuning; /**< 128 banks of 128 programs for the tunings */
+ fluid_private_t tuning_iter; /**< Tuning iterators per each thread */
+
+ fluid_sample_timer_t *sample_timers; /**< List of timers triggered before a block is processed */
+ unsigned int min_note_length_ticks; /**< If note-offs are triggered just after a note-on, they will be delayed */
+
+ int cores; /**< Number of CPU cores (1 by default) */
+
+ fluid_mod_t *default_mod; /**< the (dynamic) list of default modulators */