C ABI (language bindings)#
libYSE ships a flat extern "C" API alongside the C++ one, folded into the
same shared library by the YSE_BUILD_C_API=ON CMake option (default on).
It exists so language bindings — Dart FFI, Python ctypes, etc. — can consume
libyse.dll / libyse.so without C++ ABI compatibility.
Single entry point:
#include "yse_c/yse_all.h"
This umbrella header pulls in every subsystem header below.
Conventions#
Borrowed singletons (system, listener) are obtained via getters and must not be destroyed by the caller.
Owned objects (sound, channel, reverb, patcher, device-setup, …) are created with
yse_<type>_create*and released withyse_<type>_destroy.destroyis always safe to call withNULL.Callback typedefs are marked
YSE_C_CALLBACKand run on engine-managed threads (often the audio thread). They must not block, allocate, or call back into the engine.All functions return either
void, anint(0 = success, non-zero = error code), or an owned/borrowed handle. Pointer parameters are documented asIN/OUTin the header.
Umbrella header#
System and listener#
Functions
-
YseStatus yse_system_open_device(YseSystem *sys, const YseDeviceSetup *setup, YseChannelType layout)#
-
void yse_system_underwater_fx(YseSystem *sys, const YseChannel *target)#
Typedefs
-
typedef struct YseListener YseListener#
Functions
-
YseListener *yse_listener_get(void)#
-
void yse_listener_set_pos(YseListener *l, const yse_pos_t *p)#
-
yse_pos_t yse_listener_get_pos(YseListener *l)#
-
yse_pos_t yse_listener_get_vel(YseListener *l)#
-
yse_pos_t yse_listener_get_forward(YseListener *l)#
-
yse_pos_t yse_listener_get_upward(YseListener *l)#
-
void yse_listener_set_orient(YseListener *l, const yse_pos_t *forward, const yse_pos_t *up)#
Sound objects, channels, and reverb#
Typedefs
-
typedef struct YseChannel YseChannel
-
typedef struct YseDspBuffer YseDspBuffer#
-
typedef struct YseDspObject YseDspObject#
-
typedef struct YsePatcher YsePatcher#
Functions
-
YseStatus yse_sound_load_file(YseSound *s, const char *filename, YseChannel *ch, int loop, float volume, int streaming)#
-
YseStatus yse_sound_load_buffer(YseSound *s, YseDspBuffer *buf, YseChannel *ch, int loop, float volume)#
-
YseStatus yse_sound_load_patcher(YseSound *s, YsePatcher *patch, YseChannel *ch, float volume)#
-
void yse_sound_move_to(YseSound *s, YseChannel *target)#
-
void yse_sound_set_dsp(YseSound *s, YseDspObject *dsp)#
-
YseDspObject *yse_sound_get_dsp(YseSound *s)#
Functions
-
YseChannel *yse_channel_master(void)#
-
YseChannel *yse_channel_fx(void)#
-
YseChannel *yse_channel_music(void)#
-
YseChannel *yse_channel_ambient(void)#
-
YseChannel *yse_channel_voice(void)#
-
YseChannel *yse_channel_gui(void)#
-
YseChannel *yse_channel_create(const char *name, YseChannel *parent)#
-
YseChannel *yse_channel_create_with_sends(const char *name, YseChannel *parent, int send_slots)#
-
void yse_channel_destroy(YseChannel *ch)#
-
YseChannel *yse_channel_create_return(const char *name, int send_slots)#
-
int yse_channel_is_return(YseChannel *ch)#
-
void yse_channel_send(YseChannel *ch, int slot, YseChannel *return_bus, float level, int pre_fader)#
-
void yse_channel_set_send_level(YseChannel *ch, int slot, float level)#
-
void yse_channel_clear_send(YseChannel *ch, int slot)#
-
float yse_channel_get_send_level(YseChannel *ch, int slot)#
-
void yse_channel_set_dsp(YseChannel *ch, YseDspObject *dsp)#
-
YseDspObject *yse_channel_get_dsp(YseChannel *ch)#
-
void yse_channel_set_volume(YseChannel *ch, float value)#
-
float yse_channel_get_volume(YseChannel *ch)#
-
void yse_channel_move_to(YseChannel *ch, YseChannel *parent)#
-
void yse_channel_attach_reverb(YseChannel *ch)#
-
void yse_channel_set_virtual(YseChannel *ch, int value)#
-
int yse_channel_get_virtual(YseChannel *ch)#
-
int yse_channel_is_valid(YseChannel *ch)#
-
const char *yse_channel_get_name(YseChannel *ch)#
-
int yse_channel_get_num_outputs(YseChannel *ch)#
-
float yse_channel_get_peak_linear_pre(YseChannel *ch)#
-
float yse_channel_get_peak_linear_post(YseChannel *ch)#
-
float yse_channel_get_peak_db_pre(YseChannel *ch)#
-
float yse_channel_get_peak_db_post(YseChannel *ch)#
-
float yse_channel_get_peak_linear_pre_output(YseChannel *ch, int output_idx)#
-
float yse_channel_get_peak_linear_post_output(YseChannel *ch, int output_idx)#
-
float yse_channel_get_peak_db_pre_output(YseChannel *ch, int output_idx)#
-
float yse_channel_get_peak_db_post_output(YseChannel *ch, int output_idx)#
Typedefs
-
typedef struct YseReverb YseReverb
Functions
-
void yse_reverb_set_preset(YseReverb *rev, YseReverbPreset preset)#
Audio device#
Functions
-
YseDeviceSetup *yse_device_setup_create(void)#
-
void yse_device_setup_destroy(YseDeviceSetup *setup)#
-
void yse_device_setup_set_input(YseDeviceSetup *setup, const YseDevice *dev)#
-
void yse_device_setup_set_output(YseDeviceSetup *setup, const YseDevice *dev)#
-
void yse_device_setup_set_sample_rate(YseDeviceSetup *setup, double value)#
-
void yse_device_setup_set_buffer_size(YseDeviceSetup *setup, int value)#
DSP and patcher#
Typedefs
-
typedef struct YseDspBuffer YseDspBuffer
Functions
-
YseDspBuffer *yse_dsp_buffer_create(unsigned int length, unsigned int overflow)#
-
YseDspBuffer *yse_dsp_drawable_buffer_create(unsigned int length, unsigned int overflow)#
-
YseDspBuffer *yse_dsp_file_buffer_create(unsigned int length, unsigned int overflow)#
-
YseDspBuffer *yse_dsp_wavetable_create(unsigned int length)#
-
void yse_dsp_buffer_destroy(YseDspBuffer *buf)#
-
unsigned int yse_dsp_buffer_length(YseDspBuffer *buf)#
-
unsigned int yse_dsp_buffer_length_ms(YseDspBuffer *buf)#
-
float yse_dsp_buffer_length_sec(YseDspBuffer *buf)#
-
int yse_dsp_buffer_is_silent(YseDspBuffer *buf)#
-
float yse_dsp_buffer_max_value(YseDspBuffer *buf)#
-
float yse_dsp_buffer_get_back(YseDspBuffer *buf)#
-
float yse_dsp_buffer_sample_rate_adjustment(YseDspBuffer *buf)#
-
void yse_dsp_buffer_set_sample_rate_adjustment(YseDspBuffer *buf, float v)#
-
void yse_dsp_buffer_resize(YseDspBuffer *buf, unsigned int length, float value)#
-
unsigned int yse_dsp_buffer_read(YseDspBuffer *buf, unsigned int offset, float *out, unsigned int count)#
-
unsigned int yse_dsp_buffer_write(YseDspBuffer *buf, unsigned int offset, const float *in, unsigned int count)#
-
void yse_dsp_buffer_fill(YseDspBuffer *buf, float value)#
-
void yse_dsp_buffer_add_scalar(YseDspBuffer *buf, float value)#
-
void yse_dsp_buffer_mul_scalar(YseDspBuffer *buf, float value)#
-
YseStatus yse_dsp_buffer_draw_line(YseDspBuffer *buf, unsigned int start, unsigned int stop, float start_value, float stop_value)#
-
YseStatus yse_dsp_buffer_draw_flat(YseDspBuffer *buf, unsigned int start, unsigned int stop, float value)#
-
YseStatus yse_dsp_buffer_load_file(YseDspBuffer *buf, const char *filename, unsigned int channel)#
-
YseStatus yse_dsp_buffer_save_file(YseDspBuffer *buf, const char *filename)#
-
YseStatus yse_dsp_wavetable_create_saw(YseDspBuffer *buf, int harmonics, int length)#
-
YseStatus yse_dsp_wavetable_create_square(YseDspBuffer *buf, int harmonics, int length)#
-
YseStatus yse_dsp_wavetable_create_triangle(YseDspBuffer *buf, int harmonics, int length)#
Typedefs
-
typedef struct YseDspObject YseDspObject
-
typedef struct YsePatcher YsePatcher
-
typedef struct YseReverbPresetValues YseReverbPresetValues#
Functions
-
YseDspObject *yse_dsp_lowpass_create(void)#
-
YseDspObject *yse_dsp_highpass_create(void)#
-
YseDspObject *yse_dsp_bandpass_create(void)#
-
YseDspObject *yse_dsp_sweep_create(YseDspSweepShape shape)#
-
YseDspObject *yse_dsp_basic_delay_create(void)#
-
YseDspObject *yse_dsp_lowpass_delay_create(void)#
-
YseDspObject *yse_dsp_highpass_delay_create(void)#
-
YseDspObject *yse_dsp_phaser_create(void)#
-
YseDspObject *yse_dsp_ring_modulator_create(void)#
-
YseDspObject *yse_dsp_difference_create(void)#
-
YseDspObject *yse_dsp_granulator_create(unsigned int pool_size, unsigned int max_grains)#
-
YseDspObject *yse_dsp_feedback_delay_create(void)#
-
YseDspObject *yse_dsp_chorus_create(void)#
-
YseDspObject *yse_dsp_plate_reverb_create(void)#
-
YseDspObject *yse_dsp_eq_create(void)#
-
YseDspObject *yse_dsp_compressor_create(void)#
-
YseDspObject *yse_dsp_morphing_reverb_create(void)#
-
YseDspObject *yse_dsp_patcher_insert_create(YsePatcher *patcher)#
-
void yse_dsp_object_destroy(YseDspObject *obj)#
-
void yse_dsp_object_set_bypass(YseDspObject *obj, int on)#
-
int yse_dsp_object_get_bypass(YseDspObject *obj)#
-
void yse_dsp_object_set_impact(YseDspObject *obj, float value)#
-
float yse_dsp_object_get_impact(YseDspObject *obj)#
-
void yse_dsp_object_set_lfo_type(YseDspObject *obj, YseLfoType type)#
-
YseLfoType yse_dsp_object_get_lfo_type(YseDspObject *obj)#
-
void yse_dsp_object_set_lfo_frequency(YseDspObject *obj, float value)#
-
float yse_dsp_object_get_lfo_frequency(YseDspObject *obj)#
-
void yse_dsp_object_link(YseDspObject *head, YseDspObject *next)#
-
void yse_dsp_lowpass_set_frequency(YseDspObject *obj, float hz)#
-
float yse_dsp_lowpass_get_frequency(YseDspObject *obj)#
-
void yse_dsp_highpass_set_frequency(YseDspObject *obj, float hz)#
-
float yse_dsp_highpass_get_frequency(YseDspObject *obj)#
-
void yse_dsp_bandpass_set_frequency(YseDspObject *obj, float hz)#
-
float yse_dsp_bandpass_get_frequency(YseDspObject *obj)#
-
void yse_dsp_bandpass_set_q(YseDspObject *obj, float q)#
-
float yse_dsp_bandpass_get_q(YseDspObject *obj)#
-
void yse_dsp_sweep_set_speed(YseDspObject *obj, float hz)#
-
float yse_dsp_sweep_get_speed(YseDspObject *obj)#
-
void yse_dsp_sweep_set_depth(YseDspObject *obj, int v0_to_100)#
-
int yse_dsp_sweep_get_depth(YseDspObject *obj)#
-
void yse_dsp_sweep_set_frequency(YseDspObject *obj, int v0_to_100)#
-
int yse_dsp_sweep_get_frequency(YseDspObject *obj)#
-
void yse_dsp_basic_delay_set_tap(YseDspObject *obj, YseDspDelayTap tap, float time_ms, float gain)#
-
float yse_dsp_basic_delay_get_time(YseDspObject *obj, YseDspDelayTap tap)#
-
float yse_dsp_basic_delay_get_gain(YseDspObject *obj, YseDspDelayTap tap)#
-
void yse_dsp_lowpass_delay_set_frequency(YseDspObject *obj, float hz)#
-
float yse_dsp_lowpass_delay_get_frequency(YseDspObject *obj)#
-
void yse_dsp_highpass_delay_set_frequency(YseDspObject *obj, float hz)#
-
float yse_dsp_highpass_delay_get_frequency(YseDspObject *obj)#
-
void yse_dsp_phaser_set_frequency(YseDspObject *obj, float hz)#
-
float yse_dsp_phaser_get_frequency(YseDspObject *obj)#
-
void yse_dsp_phaser_set_range(YseDspObject *obj, float value)#
-
float yse_dsp_phaser_get_range(YseDspObject *obj)#
-
void yse_dsp_ring_modulator_set_frequency(YseDspObject *obj, float hz)#
-
float yse_dsp_ring_modulator_get_frequency(YseDspObject *obj)#
-
void yse_dsp_difference_set_frequency(YseDspObject *obj, float hz)#
-
float yse_dsp_difference_get_frequency(YseDspObject *obj)#
-
void yse_dsp_difference_set_amplitude(YseDspObject *obj, float value)#
-
float yse_dsp_difference_get_amplitude(YseDspObject *obj)#
-
void yse_dsp_granulator_set_grain_frequency(YseDspObject *obj, unsigned int per_second)#
-
unsigned int yse_dsp_granulator_get_grain_frequency(YseDspObject *obj)#
-
void yse_dsp_granulator_set_grain_length(YseDspObject *obj, unsigned int samples, unsigned int random_samples)#
-
unsigned int yse_dsp_granulator_get_grain_length(YseDspObject *obj)#
-
void yse_dsp_granulator_set_grain_transpose(YseDspObject *obj, float pitch, float random)#
-
float yse_dsp_granulator_get_grain_transpose(YseDspObject *obj)#
-
void yse_dsp_granulator_set_gain(YseDspObject *obj, float value)#
-
float yse_dsp_granulator_get_gain(YseDspObject *obj)#
-
void yse_dsp_feedback_delay_set_time(YseDspObject *obj, float ms)#
-
float yse_dsp_feedback_delay_get_time(YseDspObject *obj)#
-
void yse_dsp_feedback_delay_set_feedback(YseDspObject *obj, float amount)#
-
float yse_dsp_feedback_delay_get_feedback(YseDspObject *obj)#
-
void yse_dsp_feedback_delay_set_damping(YseDspObject *obj, float hz)#
-
float yse_dsp_feedback_delay_get_damping(YseDspObject *obj)#
-
void yse_dsp_feedback_delay_set_crossfeed(YseDspObject *obj, float amount)#
-
float yse_dsp_feedback_delay_get_crossfeed(YseDspObject *obj)#
-
void yse_dsp_chorus_set_mode(YseDspObject *obj, YseChorusMode mode)#
-
YseChorusMode yse_dsp_chorus_get_mode(YseDspObject *obj)#
-
void yse_dsp_chorus_set_rate(YseDspObject *obj, float hz)#
-
float yse_dsp_chorus_get_rate(YseDspObject *obj)#
-
void yse_dsp_chorus_set_depth(YseDspObject *obj, float value)#
-
float yse_dsp_chorus_get_depth(YseDspObject *obj)#
-
void yse_dsp_chorus_set_feedback(YseDspObject *obj, float value)#
-
float yse_dsp_chorus_get_feedback(YseDspObject *obj)#
-
void yse_dsp_chorus_set_spread(YseDspObject *obj, float value)#
-
float yse_dsp_chorus_get_spread(YseDspObject *obj)#
-
void yse_dsp_plate_reverb_set_decay(YseDspObject *obj, float value)#
-
float yse_dsp_plate_reverb_get_decay(YseDspObject *obj)#
-
void yse_dsp_plate_reverb_set_damping(YseDspObject *obj, float hz)#
-
float yse_dsp_plate_reverb_get_damping(YseDspObject *obj)#
-
void yse_dsp_plate_reverb_set_predelay(YseDspObject *obj, float ms)#
-
float yse_dsp_plate_reverb_get_predelay(YseDspObject *obj)#
-
void yse_dsp_eq_set_frequency(YseDspObject *obj, YseEqBand band, float hz)#
-
float yse_dsp_eq_get_frequency(YseDspObject *obj, YseEqBand band)#
-
void yse_dsp_eq_set_gain(YseDspObject *obj, YseEqBand band, float db)#
-
float yse_dsp_eq_get_gain(YseDspObject *obj, YseEqBand band)#
-
void yse_dsp_eq_set_q(YseDspObject *obj, YseEqBand band, float value)#
-
float yse_dsp_eq_get_q(YseDspObject *obj, YseEqBand band)#
-
void yse_dsp_compressor_set_detector(YseDspObject *obj, YseCompressorDetector mode)#
-
YseCompressorDetector yse_dsp_compressor_get_detector(YseDspObject *obj)#
-
void yse_dsp_compressor_set_threshold(YseDspObject *obj, float db)#
-
float yse_dsp_compressor_get_threshold(YseDspObject *obj)#
-
void yse_dsp_compressor_set_ratio(YseDspObject *obj, float value)#
-
float yse_dsp_compressor_get_ratio(YseDspObject *obj)#
-
void yse_dsp_compressor_set_attack(YseDspObject *obj, float ms)#
-
float yse_dsp_compressor_get_attack(YseDspObject *obj)#
-
void yse_dsp_compressor_set_release(YseDspObject *obj, float ms)#
-
float yse_dsp_compressor_get_release(YseDspObject *obj)#
-
void yse_dsp_compressor_set_makeup(YseDspObject *obj, float db)#
-
float yse_dsp_compressor_get_makeup(YseDspObject *obj)#
-
float yse_dsp_compressor_get_gain_reduction_db(YseDspObject *obj)#
-
void yse_dsp_morphing_reverb_set_preset_a(YseDspObject *obj, YseReverbPreset preset)#
-
void yse_dsp_morphing_reverb_set_preset_b(YseDspObject *obj, YseReverbPreset preset)#
-
void yse_dsp_morphing_reverb_set_preset_a_values(YseDspObject *obj, const YseReverbPresetValues *values)#
-
void yse_dsp_morphing_reverb_set_preset_b_values(YseDspObject *obj, const YseReverbPresetValues *values)#
-
void yse_dsp_morphing_reverb_get_preset_a(YseDspObject *obj, YseReverbPresetValues *out)#
-
void yse_dsp_morphing_reverb_get_preset_b(YseDspObject *obj, YseReverbPresetValues *out)#
-
void yse_dsp_morphing_reverb_set_morph(YseDspObject *obj, float value)#
-
float yse_dsp_morphing_reverb_get_morph(YseDspObject *obj)#
-
struct YseReverbPresetValues
Functions
-
YsePatcher *yse_patcher_create(void)#
-
void yse_patcher_destroy(YsePatcher *p)#
-
void yse_patcher_init(YsePatcher *p, int main_outputs)#
-
YsePHandle *yse_patcher_create_object(YsePatcher *p, const char *type, const char *args)#
-
void yse_patcher_delete_object(YsePatcher *p, YsePHandle *obj)#
-
void yse_patcher_clear(YsePatcher *p)#
-
void yse_patcher_connect(YsePatcher *p, YsePHandle *from, int outlet, YsePHandle *to, int inlet)#
-
void yse_patcher_disconnect(YsePatcher *p, YsePHandle *from, int outlet, YsePHandle *to, int inlet)#
-
int yse_patcher_is_valid_object(const char *type)#
-
size_t yse_patcher_dump_json(YsePatcher *p, char *buf, size_t cap)#
-
void yse_patcher_parse_json(YsePatcher *p, const char *content)#
-
unsigned int yse_patcher_objects(YsePatcher *p)#
-
YsePHandle *yse_patcher_get_handle_from_list(YsePatcher *p, unsigned int idx)#
-
YsePHandle *yse_patcher_get_handle_from_id(YsePatcher *p, unsigned int id)#
-
int yse_patcher_pass_bang(YsePatcher *p, const char *to)#
-
int yse_patcher_pass_int(YsePatcher *p, int value, const char *to)#
-
int yse_patcher_pass_float(YsePatcher *p, float value, const char *to)#
-
int yse_patcher_pass_string(YsePatcher *p, const char *value, const char *to)#
-
size_t yse_phandle_get_type(YsePHandle *h, char *buf, size_t cap)#
-
size_t yse_phandle_get_name(YsePHandle *h, char *buf, size_t cap)#
-
size_t yse_phandle_get_params(YsePHandle *h, char *buf, size_t cap)#
-
size_t yse_phandle_get_gui_value(YsePHandle *h, char *buf, size_t cap)#
-
size_t yse_phandle_get_gui_property(YsePHandle *h, const char *key, char *buf, size_t cap)#
-
void yse_phandle_set_gui_property(YsePHandle *h, const char *key, const char *value)#
-
void yse_phandle_set_bang(YsePHandle *h, unsigned int inlet)#
-
void yse_phandle_set_int(YsePHandle *h, unsigned int inlet, int value)#
-
void yse_phandle_set_float(YsePHandle *h, unsigned int inlet, float value)#
-
void yse_phandle_set_list(YsePHandle *h, unsigned int inlet, const char *value)#
-
void yse_phandle_set_params(YsePHandle *h, const char *args)#
-
int yse_phandle_get_inputs(YsePHandle *h)#
-
int yse_phandle_get_outputs(YsePHandle *h)#
-
int yse_phandle_is_dsp_input(YsePHandle *h, unsigned int inlet)#
-
YseOutType yse_phandle_output_data_type(YsePHandle *h, unsigned int pin)#
-
unsigned int yse_phandle_get_id(YsePHandle *h)#
-
unsigned int yse_phandle_get_connections(YsePHandle *h, unsigned int outlet)#
-
unsigned int yse_phandle_get_connection_target(YsePHandle *h, unsigned int outlet, unsigned int connection)#
-
unsigned int yse_phandle_get_connection_target_inlet(YsePHandle *h, unsigned int outlet, unsigned int connection)#
-
int yse_patcher_get_type_count(void)#
-
const char *yse_patcher_get_type_name(int index)#
-
const char *yse_patcher_get_type_description(const char *type_name)#
-
YsePCategory yse_patcher_get_type_category(const char *type_name)#
-
int yse_patcher_get_type_is_dsp(const char *type_name)#
-
int yse_patcher_get_inlet_count(const char *type_name)#
-
void yse_patcher_get_inlet_info(const char *type_name, int idx, const char **label, const char **doc, const char **range, unsigned int *accepts_bitmask)#
-
int yse_patcher_get_outlet_count(const char *type_name)#
-
void yse_patcher_get_outlet_info(const char *type_name, int idx, const char **label, const char **doc, const char **range, YseOutType *type)#
-
int yse_patcher_get_param_count(const char *type_name)#
-
void yse_patcher_get_param_info(const char *type_name, int idx, const char **name, const char **doc, const char **default_value, const char **range)#
-
char *yse_patcher_get_metadata_json(void)#
-
void yse_free_string(char *s)#
Synth and instruments#
Typedefs
-
typedef struct YseSound YseSound
-
typedef struct YseChannel YseChannel
-
typedef void (*YseSynthNoteCallback)(int note_on, float *note_number, float *velocity)#
-
typedef struct YseSynthPositionParams YseSynthPositionParams#
Functions
-
YseStatus yse_synth_add_voices_sine(YseSynth *h, int num_voices, int channel, int lowest_note, int highest_note, float attack, float decay, float sustain, float release)#
-
YseStatus yse_synth_add_voices_sampler(YseSynth *h, YseSfzInstrument *instrument, int num_voices, int channel, int lowest_note, int highest_note)#
-
YseStatus yse_synth_add_voices_va(YseSynth *h, int num_voices, int channel, int lowest_note, int highest_note)#
-
YseStatus yse_synth_add_voices_fm(YseSynth *h, int num_voices, int channel, int lowest_note, int highest_note)#
-
void yse_synth_va_set_osc_wave(YseSynth *h, int osc, YseVaWaveform wave)#
-
void yse_synth_va_set_lfo_type(YseSynth *h, YseLfoType type)#
-
YseStatus yse_synth_fm_set_patch(YseSynth *h, YseDx7Bank *bank, int index)#
-
void yse_synth_set_note_callback(YseSynth *h, YseSynthNoteCallback cb)#
-
YseStatus yse_synth_attach_to_sound(YseSynth *h, YseSound *sound, YseChannel *channel, float volume)#
-
YseStatus yse_synth_set_position_handler(YseSynth *h, YseSynthPositionHandler kind, const YseSynthPositionParams *params)#
-
struct YseSynthPositionParams
Typedefs
-
typedef struct YseSfzInstrument YseSfzInstrument#
-
typedef struct YseDx7Bank YseDx7Bank#
-
typedef struct YseSamplerConfig YseSamplerConfig#
Functions
-
YseSfzInstrument *yse_sfz_load(const char *path)#
-
YseSfzInstrument *yse_sfz_load_config(const YseSamplerConfig *cfg)#
-
int yse_sfz_is_valid(YseSfzInstrument *h)#
-
void yse_sfz_destroy(YseSfzInstrument *h)#
-
YseDx7Bank *yse_dx7_import_sysex(const char *path)#
-
int yse_dx7_get_patch_count(YseDx7Bank *h)#
-
size_t yse_dx7_get_patch_name(YseDx7Bank *h, int index, char *buf, size_t cap)#
-
void yse_dx7_destroy(YseDx7Bank *h)#
-
struct YseSamplerConfig
MIDI and music#
Typedefs
-
typedef struct YseMidiFile YseMidiFile#
-
typedef struct YseMidiOut YseMidiOut#
-
typedef struct YseMidiNote YseMidiNote#
-
typedef struct YseSynth YseSynth
-
typedef void (*YseMidiInRawCallback)(double timestamp_sec, unsigned char *bytes, size_t len, void *user_data)#
-
typedef void (*YseMidiInParsedCallback)(double timestamp_sec, unsigned char status, unsigned char channel, unsigned char data1, unsigned char data2, void *user_data)#
Functions
-
YseMidiFile *yse_midi_file_create(void)#
-
void yse_midi_file_destroy(YseMidiFile *f)#
-
YseStatus yse_midi_file_load(YseMidiFile *f, const char *filename)#
-
void yse_midi_file_play(YseMidiFile *f)#
-
void yse_midi_file_pause(YseMidiFile *f)#
-
void yse_midi_file_stop(YseMidiFile *f)#
-
void yse_midi_file_connect_synth(YseMidiFile *f, YseSynth *synth)#
-
void yse_midi_file_disconnect_synth(YseMidiFile *f, YseSynth *synth)#
-
YseMidiOut *yse_midi_out_create(void)#
-
void yse_midi_out_destroy(YseMidiOut *m)#
-
void yse_midi_out_open(YseMidiOut *m, unsigned int port)#
-
void yse_midi_out_note_on(YseMidiOut *m, int channel, int pitch, int velocity)#
-
void yse_midi_out_note_off(YseMidiOut *m, int channel, int pitch, int velocity)#
-
void yse_midi_out_poly_pressure(YseMidiOut *m, int channel, int pitch, int value)#
-
void yse_midi_out_channel_pressure(YseMidiOut *m, int channel, int value)#
-
void yse_midi_out_program_change(YseMidiOut *m, int channel, int value)#
-
void yse_midi_out_control_change(YseMidiOut *m, int channel, int controller, int value)#
-
void yse_midi_out_all_notes_off_channel(YseMidiOut *m, int channel)#
-
void yse_midi_out_all_notes_off(YseMidiOut *m)#
-
void yse_midi_out_reset_channel(YseMidiOut *m, int channel)#
-
void yse_midi_out_reset(YseMidiOut *m)#
-
void yse_midi_out_local_control(YseMidiOut *m, int on)#
-
void yse_midi_out_omni(YseMidiOut *m, int on)#
-
void yse_midi_out_poly(YseMidiOut *m, int on)#
-
void yse_midi_out_raw3(YseMidiOut *m, unsigned char a, unsigned char b, unsigned char c)#
-
void yse_midi_in_set_raw_callback(YseMidiIn *m, YseMidiInRawCallback cb, void *user_data)#
-
void yse_midi_in_set_parsed_callback(YseMidiIn *m, YseMidiInParsedCallback cb, void *user_data)#
-
void yse_midi_in_free_message(unsigned char *bytes)#
-
YseMidiNote *yse_midi_note_create(unsigned char note, unsigned int velocity)#
-
void yse_midi_note_destroy(YseMidiNote *n)#
-
void yse_midi_note_set_note(YseMidiNote *n, unsigned char note)#
-
unsigned char yse_midi_note_get_note(YseMidiNote *n)#
-
void yse_midi_note_set_velocity(YseMidiNote *n, unsigned char velocity)#
-
unsigned char yse_midi_note_get_velocity(YseMidiNote *n)#
Typedefs
-
typedef struct YseSynth YseSynth
Functions
Clip transport#
Beat-timed note clips dispatched from the audio thread against a domain clock, targeting internal synths or an external MIDI-out port.
Typedefs
-
typedef struct YseSynth YseSynth
-
typedef struct YseMidiOut YseMidiOut
-
typedef struct YseClipEvent YseClipEvent#
Functions
-
void yse_clip_set_events(YseClip *c, const YseClipEvent *events, size_t count)#
-
void yse_clip_connect_midi_out(YseClip *c, YseMidiOut *m)#
-
void yse_clip_disconnect_midi_out(YseClip *c, YseMidiOut *m)#
-
struct YseClipEvent
Live coding: scripting and bus tap#
The embedded-Python live-coding surface (YSE_ENABLE_PYTHON builds; the
symbols exist in every build) and the host bus tap, which subscribes the
host to a bus-address prefix and delivers (address, value) frames on the
thread that drives yse_system_update().
Typedefs
-
typedef void (*yse_script_error_cb)(const char *traceback_utf8, void *userdata)#
Functions
-
int yse_python_enabled(void)#
-
void yse_run_script(const char *src)#
-
void yse_set_script_error_callback(yse_script_error_cb cb, void *userdata)#
Typedefs
-
typedef enum YseBusValueKind YseBusValueKind
-
typedef void (*yse_bus_tap_cb)(const char *address, YseBusValueKind kind, int i, float f, const char *str, const float *list, size_t list_len, void *user_data)#
Enums
Functions
-
YseBusTap *yse_bus_tap_create(const char *prefix, yse_bus_tap_cb cb, void *user_data)#
Logging and buffer I/O#
Functions
-
void yse_log_set_level(YseLog *log, YseErrorLevel level)#
-
YseErrorLevel yse_log_get_level(YseLog *log)#
-
void yse_log_set_callback(YseLog *log, YseLogCallback cb, void *user_data)#
-
void yse_log_free_message(char *msg)#
Typedefs
-
typedef struct YseBufferIO YseBufferIO#
Functions
-
YseBufferIO *yse_buffer_io_create(int store_copy)#
-
void yse_buffer_io_destroy(YseBufferIO *io)#
-
void yse_buffer_io_set_active(YseBufferIO *io, int on)#
-
int yse_buffer_io_get_active(YseBufferIO *io)#
-
int yse_buffer_io_name_exists(YseBufferIO *io, const char *id)#
-
int yse_buffer_io_add(YseBufferIO *io, const char *id, char *buffer, int length)#
-
int yse_buffer_io_remove_by_name(YseBufferIO *io, const char *id)#
Common types and enums#
Enums
-
enum YseStatus#
Values:
-
enumerator YSE_OK#
-
enumerator YSE_ERR_GENERIC#
-
enumerator YSE_ERR_NOT_INITIALIZED#
-
enumerator YSE_ERR_INVALID_HANDLE#
-
enumerator YSE_ERR_INVALID_ARGUMENT#
-
enumerator YSE_ERR_FILE_NOT_FOUND#
-
enumerator YSE_ERR_AUDIO_DEVICE#
-
enumerator YSE_ERR_MIDI#
-
enumerator YSE_ERR_EXCEPTION#
-
enumerator YSE_OK#
Functions
-
const char *yse_version(void)#
-
const char *yse_last_error(void)#
-
void yse_clear_last_error(void)#
-
struct yse_pos_t
Typedefs
-
typedef enum YseChannelType YseChannelType
-
typedef enum YseErrorLevel YseErrorLevel
-
typedef enum YseOutType YseOutType
-
typedef enum YseLfoType YseLfoType
-
typedef enum YseVaWaveform YseVaWaveform
-
typedef enum YseDspSweepShape YseDspSweepShape
-
typedef enum YseDspDelayTap YseDspDelayTap
-
typedef enum YseChorusMode YseChorusMode
-
typedef enum YseEqBand YseEqBand
-
typedef enum YseCompressorDetector YseCompressorDetector
-
typedef enum YsePCategory YsePCategory
-
typedef enum YseInletAccepts YseInletAccepts
-
typedef enum YseSynthPositionHandler YseSynthPositionHandler
-
typedef enum YseSynthHandlerParam YseSynthHandlerParam
-
typedef enum YseReverbPreset YseReverbPreset
Enums
-
enum YseChannelType#
Values:
-
enumerator YSE_CT_AUTO#
-
enumerator YSE_CT_MONO#
-
enumerator YSE_CT_STEREO#
-
enumerator YSE_CT_QUAD#
-
enumerator YSE_CT_51#
-
enumerator YSE_CT_51SIDE#
-
enumerator YSE_CT_61#
-
enumerator YSE_CT_71#
-
enumerator YSE_CT_CUSTOM#
-
enumerator YSE_CT_AUTO#
-
enum YseErrorLevel#
Values:
-
enumerator YSE_EL_NONE#
-
enumerator YSE_EL_ERROR#
-
enumerator YSE_EL_WARNING#
-
enumerator YSE_EL_DEBUG#
-
enumerator YSE_EL_NONE#
-
enum YseOutType#
Values:
-
enumerator YSE_OUT_INVALID#
-
enumerator YSE_OUT_BANG#
-
enumerator YSE_OUT_FLOAT#
-
enumerator YSE_OUT_INT#
-
enumerator YSE_OUT_BUFFER#
-
enumerator YSE_OUT_LIST#
-
enumerator YSE_OUT_ANY#
-
enumerator YSE_OUT_INVALID#
-
enum YseLfoType#
Values:
-
enumerator YSE_LFO_NONE#
-
enumerator YSE_LFO_SAW#
-
enumerator YSE_LFO_SAW_REVERSED#
-
enumerator YSE_LFO_TRIANGLE#
-
enumerator YSE_LFO_SINE#
-
enumerator YSE_LFO_SQUARE#
-
enumerator YSE_LFO_RANDOM#
-
enumerator YSE_LFO_NONE#
-
enum YseVaWaveform#
Values:
-
enumerator YSE_VA_SAW#
-
enumerator YSE_VA_PULSE#
-
enumerator YSE_VA_TRIANGLE#
-
enumerator YSE_VA_SINE#
-
enumerator YSE_VA_NOISE#
-
enumerator YSE_VA_WAVETABLE#
-
enumerator YSE_VA_SAW#
-
enum YseDspSweepShape#
Values:
-
enumerator YSE_SWEEP_TRIANGLE#
-
enumerator YSE_SWEEP_SAW#
-
enumerator YSE_SWEEP_SQUARE#
-
enumerator YSE_SWEEP_TRIANGLE#
-
enum YseDspDelayTap#
Values:
-
enumerator YSE_DELAY_TAP_FIRST#
-
enumerator YSE_DELAY_TAP_SECOND#
-
enumerator YSE_DELAY_TAP_THIRD#
-
enumerator YSE_DELAY_TAP_FIRST#
-
enum YseEqBand#
Values:
-
enumerator YSE_EQ_LOW_SHELF#
-
enumerator YSE_EQ_PEAK_1#
-
enumerator YSE_EQ_PEAK_2#
-
enumerator YSE_EQ_HIGH_SHELF#
-
enumerator YSE_EQ_BAND_COUNT#
-
enumerator YSE_EQ_LOW_SHELF#
-
enum YseCompressorDetector#
Values:
-
enumerator YSE_COMPRESSOR_DETECT_PEAK#
-
enumerator YSE_COMPRESSOR_DETECT_RMS#
-
enumerator YSE_COMPRESSOR_DETECT_PEAK#
-
enum YsePCategory#
Values:
-
enumerator YSE_PCAT_UNSET#
-
enumerator YSE_PCAT_OSC#
-
enumerator YSE_PCAT_FILTER#
-
enumerator YSE_PCAT_MATH#
-
enumerator YSE_PCAT_GENERIC#
-
enumerator YSE_PCAT_GUI#
-
enumerator YSE_PCAT_TIME#
-
enumerator YSE_PCAT_MIDI#
-
enumerator YSE_PCAT_UNSET#
-
enum YseInletAccepts#
Values:
-
enumerator YSE_IN_ACCEPTS_BUFFER#
-
enumerator YSE_IN_ACCEPTS_FLOAT#
-
enumerator YSE_IN_ACCEPTS_INT#
-
enumerator YSE_IN_ACCEPTS_BANG#
-
enumerator YSE_IN_ACCEPTS_LIST#
-
enumerator YSE_IN_ACCEPTS_BUFFER#
-
enum YseSynthPositionHandler#
Values:
-
enumerator YSE_POSITION_HANDLER_STATIC#
-
enumerator YSE_POSITION_HANDLER_RANDOM_SPREAD#
-
enumerator YSE_POSITION_HANDLER_ORBIT#
-
enumerator YSE_POSITION_HANDLER_COUNT#
-
enumerator YSE_POSITION_HANDLER_STATIC#
-
enum YseSynthHandlerParam#
Values:
-
enumerator YSE_HANDLER_PARAM_CENTER_X#
-
enumerator YSE_HANDLER_PARAM_CENTER_Y#
-
enumerator YSE_HANDLER_PARAM_CENTER_Z#
-
enumerator YSE_HANDLER_PARAM_CENTER_X#
-
enum YseReverbPreset#
Values:
-
enumerator YSE_REVERB_OFF#
-
enumerator YSE_REVERB_GENERIC#
-
enumerator YSE_REVERB_PADDED#
-
enumerator YSE_REVERB_ROOM#
-
enumerator YSE_REVERB_BATHROOM#
-
enumerator YSE_REVERB_STONEROOM#
-
enumerator YSE_REVERB_LARGEROOM#
-
enumerator YSE_REVERB_HALL#
-
enumerator YSE_REVERB_CAVE#
-
enumerator YSE_REVERB_SEWERPIPE#
-
enumerator YSE_REVERB_UNDERWATER#
-
enumerator YSE_REVERB_OFF#