#include "common.h"
#define LSCP_TIMEOUT_MSECS 500 |
int lscp_add_channel | ( | lscp_client_t * | pClient | ) |
Adding a new sampler channel: ADD CHANNEL
pClient | Pointer to client instance structure. |
int lscp_add_midi_instrument_map | ( | lscp_client_t * | pClient, | |
const char * | pszMapName | |||
) |
Create a new MIDI instrument map: ADD MIDI_INSTRUMENT_MAP [<name>]
pClient | Pointer to client instance structure. | |
pszMapName | MIDI instrument map name (optional) |
lscp_status_t lscp_clear_midi_instruments | ( | lscp_client_t * | pClient, | |
int | iMidiMap | |||
) |
Clear the MIDI instrumnet map: CLEAR MIDI_INSTRUMENTS ALL|<midi-map>
pClient | Pointer to client instance structure. | |
iMidiMap | MIDI instrument map number, or LSCP_MIDI_MAP_ALL . |
const char* lscp_client_build | ( | void | ) |
Retrieve the current client library build timestamp string.
lscp_client_t* lscp_client_create | ( | const char * | pszHost, | |
int | iPort, | |||
lscp_client_proc_t | pfnCallback, | |||
void * | pvData | |||
) |
Create a client instance, estabilishing a connection to a server hostname, which must be listening on the given port. A client callback function is also supplied for server notification event handling.
pszHost | Hostname of the linuxsampler listening server. | |
iPort | Port number of the linuxsampler listening server. | |
pfnCallback | Callback function to receive event notifications. | |
pvData | User context opaque data, that will be passed to the callback function. |
lscp_status_t lscp_client_destroy | ( | lscp_client_t * | pClient | ) |
Terminate and destroy a client instance.
pClient | Pointer to client instance structure. |
int lscp_client_get_errno | ( | lscp_client_t * | pClient | ) |
Get the last error/warning number received.
pClient | Pointer to client instance structure. |
lscp_event_t lscp_client_get_events | ( | lscp_client_t * | pClient | ) |
Getting current subscribed events.
pClient | Pointer to client instance structure. |
const char* lscp_client_get_result | ( | lscp_client_t * | pClient | ) |
Get the last received result string. In case of error or warning, this is the text of the error or warning message issued.
pClient | Pointer to client instance structure. |
int lscp_client_get_timeout | ( | lscp_client_t * | pClient | ) |
Get the client transaction timeout interval.
pClient | Pointer to client instance structure. |
lscp_status_t lscp_client_join | ( | lscp_client_t * | pClient | ) |
Wait for a client instance to terminate graciously.
pClient | Pointer to client instance structure. |
const char* lscp_client_package | ( | void | ) |
Retrieve the current client library version string.
lscp_status_t lscp_client_query | ( | lscp_client_t * | pClient, | |
const char * | pszQuery | |||
) |
Submit a command query line string to the server. The query string must be cr/lf and null terminated. Besides the return code, the specific server response to the command request is made available by the lscp_client_get_result and lscp_client_get_errno function calls.
pClient | Pointer to client instance structure. | |
pszQuery | Command request line to be sent to server, must be cr/lf and null terminated. |
lscp_status_t lscp_client_set_timeout | ( | lscp_client_t * | pClient, | |
int | iTimeout | |||
) |
Set the client transaction timeout interval.
pClient | Pointer to client instance structure. | |
iTimeout | Transaction timeout in milliseconds. |
lscp_status_t lscp_client_subscribe | ( | lscp_client_t * | pClient, | |
lscp_event_t | events | |||
) |
Register frontend for receiving event messages: SUBSCRIBE CHANNEL_COUNT | VOICE_COUNT | STREAM_COUNT | BUFFER_FILL | CHANNEL_INFO | TOTAL_VOICE_COUNT | AUDIO_OUTPUT_DEVICE_COUNT | AUDIO_OUTPUT_DEVICE_INFO | MIDI_INPUT_DEVICE_COUNT | MIDI_INPUT_DEVICE_INFO | MIDI_INSTRUMENT_MAP_COUNT | MIDI_INSTRUMENT_MAP_INFO | MIDI_INSTRUMENT_COUNT | MIDI_INSTRUMENT_INFO | MISCELLANEOUS
pClient | Pointer to client instance structure. | |
events | Bit-wise OR'ed event flags to subscribe. |
lscp_status_t lscp_client_unsubscribe | ( | lscp_client_t * | pClient, | |
lscp_event_t | events | |||
) |
Deregister frontend from receiving UDP event messages anymore: UNSUBSCRIBE CHANNEL_COUNT | VOICE_COUNT | STREAM_COUNT | BUFFER_FILL | CHANNEL_INFO | TOTAL_VOICE_COUNT | AUDIO_OUTPUT_DEVICE_COUNT | AUDIO_OUTPUT_DEVICE_INFO | MIDI_INPUT_DEVICE_COUNT | MIDI_INPUT_DEVICE_INFO | MIDI_INSTRUMENT_MAP_COUNT | MIDI_INSTRUMENT_MAP_INFO | MIDI_INSTRUMENT_COUNT | MIDI_INSTRUMENT_INFO | MISCELLANEOUS
pClient | Pointer to client instance structure. | |
events | Bit-wise OR'ed event flags to unsubscribe. |
const char* lscp_client_version | ( | void | ) |
Retrieve the current client library version string.
int lscp_create_fxsend | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iMidiController, | |||
const char * | pszFxName | |||
) |
Add an effect send to a sampler channel: CREATE FX_SEND <sampler-channel> <midi-ctrl> [<name>]
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iMidiController | MIDI controller used to alter the effect, usually a number between 0 and 127. | |
pszName | Optional name for the effect send entity, does not have to be unique. |
lscp_status_t lscp_destroy_fxsend | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iFxSend | |||
) |
Remove an effect send from a sampler channel: DESTROY FX_SEND <sampler-channel> <fx-send-id>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iFxSend | Effect send number. |
lscp_status_t lscp_edit_channel_instrument | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel | |||
) |
Open an instrument editor application for the instrument on the given sampler channel: EDIT CHANNEL INSTRUMENT <sampler-channel>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler Channel. |
int lscp_get_available_engines | ( | lscp_client_t * | pClient | ) |
Getting all available engines count: GET AVAILABLE_ENGINES
pClient | Pointer to client instance structure. |
lscp_buffer_fill_t* lscp_get_channel_buffer_fill | ( | lscp_client_t * | pClient, | |
lscp_usage_t | usage_type, | |||
int | iSamplerChannel | |||
) |
Current fill state of disk stream buffers: GET CHANNEL BUFFER_FILL {BYTES|PERCENTAGE} <sampler-channel>
pClient | Pointer to client instance structure. | |
usage_type | Usage type to be returned, either LSCP_USAGE_BYTES, or LSCP_USAGE_PERCENTAGE. | |
iSamplerChannel | Sampler channel number. |
lscp_channel_info_t* lscp_get_channel_info | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel | |||
) |
Getting sampler channel informations: GET CHANNEL INFO <sampler-channel>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. |
int lscp_get_channel_stream_count | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel | |||
) |
Current number of active disk streams: GET CHANNEL STREAM_COUNT <sampler-channel>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. |
int lscp_get_channel_stream_usage | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel | |||
) |
Current least usage of active disk streams.
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. |
int lscp_get_channel_voice_count | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel | |||
) |
Current number of active voices: GET CHANNEL VOICE_COUNT <sampler-channel>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. |
int lscp_get_channels | ( | lscp_client_t * | pClient | ) |
Current number of sampler channels: GET CHANNELS
pClient | Pointer to client instance structure. |
lscp_engine_info_t* lscp_get_engine_info | ( | lscp_client_t * | pClient, | |
const char * | pszEngineName | |||
) |
Getting information about an engine. GET ENGINE INFO <engine-name>
pClient | Pointer to client instance structure. | |
pszEngineName | Engine name. |
lscp_fxsend_info_t* lscp_get_fxsend_info | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iFxSend | |||
) |
Getting effect send information GET FX_SEND INFO <sampler-channel> <fx-send-id>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iFxSend | Effect send number. |
int lscp_get_fxsends | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel | |||
) |
Get amount of effect sends on a sampler channel: GET FX_SENDS <sampler-channel>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. |
lscp_midi_instrument_info_t* lscp_get_midi_instrument_info | ( | lscp_client_t * | pClient, | |
lscp_midi_instrument_t * | pMidiInstr | |||
) |
Getting information about a MIDI instrument map entry: GET MIDI_INSTRUMENT INFO <midi-map> <midi-bank> <midi-prog>
pClient | Pointer to client instance structure. | |
pMidiInstr | MIDI instrument bank and program parameter key. |
const char* lscp_get_midi_instrument_map_name | ( | lscp_client_t * | pClient, | |
int | iMidiMap | |||
) |
Getting a MIDI instrument map name: GET MIDI_INSTRUMENT_MAP INFO <midi-map>
pClient | Pointer to client instance structure. | |
iMidiMap | MIDI instrument map number. |
int lscp_get_midi_instrument_maps | ( | lscp_client_t * | pClient | ) |
Get amount of existing MIDI instrument maps: GET MIDI_INSTRUMENT_MAPS
pClient | Pointer to client instance structure. |
int lscp_get_midi_instruments | ( | lscp_client_t * | pClient, | |
int | iMidiMap | |||
) |
Get the total count of MIDI instrument map entries: GET MIDI_INSTRUMENTS ALL|<midi-map>
pClient | Pointer to client instance structure. | |
iMidiMap | MIDI instrument map number, or LSCP_MIDI_MAP_ALL . |
lscp_server_info_t* lscp_get_server_info | ( | lscp_client_t * | pClient | ) |
Getting information about the server. GET SERVER INFO
pClient | Pointer to client instance structure. |
int lscp_get_total_voice_count | ( | lscp_client_t * | pClient | ) |
Current total number of active voices: GET TOTAL_VOICE_COUNT
pClient | Pointer to client instance structure. |
int lscp_get_total_voice_count_max | ( | lscp_client_t * | pClient | ) |
Maximum amount of active voices: GET TOTAL_VOICE_COUNT_MAX
pClient | Pointer to client instance structure. |
float lscp_get_volume | ( | lscp_client_t * | pClient | ) |
Get global volume attenuation: GET VOLUME
pClient | Pointer to client instance structure. |
const char** lscp_list_available_engines | ( | lscp_client_t * | pClient | ) |
Getting all available engines: LIST AVAILABLE_ENGINES
pClient | Pointer to client instance structure. |
int* lscp_list_channels | ( | lscp_client_t * | pClient | ) |
List current sampler channels number identifiers: LIST CHANNELS
pClient | Pointer to client instance structure. |
int* lscp_list_fxsends | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel | |||
) |
List all effect sends on a sampler channel: LIST FX_SENDS <sampler-channel>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. |
int* lscp_list_midi_instrument_maps | ( | lscp_client_t * | pClient | ) |
Getting all created MIDI instrument maps: LIST MIDI_INSTRUMENT_MAPS
pClient | Pointer to client instance structure. |
lscp_midi_instrument_t* lscp_list_midi_instruments | ( | lscp_client_t * | pClient, | |
int | iMidiMap | |||
) |
Getting indeces of all MIDI instrument map entries: LIST MIDI_INSTRUMENTS ALL|<midi-map>
pClient | Pointer to client instance structure. | |
iMidiMap | MIDI instrument map number, or LSCP_MIDI_MAP_ALL . |
lscp_status_t lscp_load_engine | ( | lscp_client_t * | pClient, | |
const char * | pszEngineName, | |||
int | iSamplerChannel | |||
) |
Loading a sampler engine: LOAD ENGINE <engine-name> <sampler-channel>
pClient | Pointer to client instance structure. | |
pszEngineName | Engine name. | |
iSamplerChannel | Sampler channel number. |
lscp_status_t lscp_load_instrument | ( | lscp_client_t * | pClient, | |
const char * | pszFileName, | |||
int | iInstrIndex, | |||
int | iSamplerChannel | |||
) |
Loading an instrument: LOAD INSTRUMENT <filename> <instr-index> <sampler-channel>
pClient | Pointer to client instance structure. | |
pszFileName | Instrument file name. | |
iInstrIndex | Instrument index number. | |
iSamplerChannel | Sampler Channel. |
lscp_status_t lscp_load_instrument_non_modal | ( | lscp_client_t * | pClient, | |
const char * | pszFileName, | |||
int | iInstrIndex, | |||
int | iSamplerChannel | |||
) |
Loading an instrument in the background (non modal): LOAD INSTRUMENT NON_MODAL <filename> <instr-index> <sampler-channel>
pClient | Pointer to client instance structure. | |
pszFileName | Instrument file name. | |
iInstrIndex | Instrument index number. | |
iSamplerChannel | Sampler Channel. |
lscp_status_t lscp_map_midi_instrument | ( | lscp_client_t * | pClient, | |
lscp_midi_instrument_t * | pMidiInstr, | |||
const char * | pszEngineName, | |||
const char * | pszFileName, | |||
int | iInstrIndex, | |||
float | fVolume, | |||
lscp_load_mode_t | load_mode, | |||
const char * | pszName | |||
) |
Create or replace a MIDI instrumnet map entry: MAP MIDI_INSTRUMENT <midi-map> <midi-bank> <midi-prog> <engine-name> <filename> <instr-index> <volume> [<load-mode> [<name>]}
pClient | Pointer to client instance structure. | |
pMidiInstr | MIDI instrument bank and program parameter key. | |
pszEngineName | Engine name. | |
pszFileName | Instrument file name. | |
iInstrIndex | Instrument index number. | |
fVolume | Reflects the master volume of the instrument as a positive floating point number, where a value less than 1.0 for attenuation, and greater than 1.0 for amplification. | |
load_mode | Instrument load life-time strategy, either LSCP_LOAD_DEFAULT, or LSCP_LOAD_ON_DEMAND, or LSCP_LOAD_ON_DEMAND_HOLD, or LSCP_LOAD_PERSISTENT. | |
pszName | Instrument custom name for the map entry (optional). |
lscp_status_t lscp_remove_channel | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel | |||
) |
Removing a sampler channel: REMOVE CHANNEL <sampler-channel>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. |
lscp_status_t lscp_remove_midi_instrument_map | ( | lscp_client_t * | pClient, | |
int | iMidiMap | |||
) |
Delete one particular or all MIDI instrument maps: REMOVE MIDI_INSTRUMENT_MAP <midi-map>
pClient | Pointer to client instance structure. | |
iMidiMap | MIDI instrument map number. |
lscp_status_t lscp_reset_channel | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel | |||
) |
Resetting a sampler channel: RESET CHANNEL <sampler-channel>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. |
lscp_status_t lscp_reset_sampler | ( | lscp_client_t * | pClient | ) |
Resetting the sampler: RESET
pClient | Pointer to client instance structure. |
lscp_status_t lscp_set_channel_audio_channel | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iAudioOut, | |||
int | iAudioIn | |||
) |
Setting audio output channel: SET CHANNEL AUDIO_OUTPUT_CHANNEL <sampler-channel> <audio-output-chan> <audio-input-chan>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iAudioOut | Audio output device channel to be routed from. | |
iAudioIn | Audio output device channel to be routed into. |
lscp_status_t lscp_set_channel_audio_device | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iAudioDevice | |||
) |
Setting audio output device: SET CHANNEL AUDIO_OUTPUT_DEVICE <sampler-channel> <device-id>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iAudioDevice | Audio output device number identifier. |
lscp_status_t lscp_set_channel_audio_type | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
const char * | pszAudioDriver | |||
) |
Setting audio output type: SET CHANNEL AUDIO_OUTPUT_TYPE <sampler-channel> <audio-output-type>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
pszAudioDriver | Audio output driver type (e.g. "ALSA" or "JACK"). |
lscp_status_t lscp_set_channel_midi_channel | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iMidiChannel | |||
) |
Setting MIDI input channel: SET CHANNEL MIDI_INPUT_CHANNEL <sampler-channel> <midi-input-chan>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iMidiChannel | MIDI channel address number to listen (0-15) or LSCP_MIDI_CHANNEL_ALL (16) to listen on all channels. |
lscp_status_t lscp_set_channel_midi_device | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iMidiDevice | |||
) |
Setting MIDI input device: SET CHANNEL MIDI_INPUT_DEVICE <sampler-channel> <device-id>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iMidiDevice | MIDI input device number identifier. |
lscp_status_t lscp_set_channel_midi_map | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iMidiMap | |||
) |
Setting MIDI instrument map: SET CHANNEL MIDI_INSTRUMENT_MAP <sampler-channel> <midi-map>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iMidiMap | MIDI instrument map number, or either LSCP_MIDI_MAP_NONE or LSCP_MIDI_MAP_DEFAULT . |
lscp_status_t lscp_set_channel_midi_port | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iMidiPort | |||
) |
Setting MIDI input port: SET CHANNEL MIDI_INPUT_PORT <sampler-channel> <midi-input-port>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iMidiPort | MIDI input driver virtual port number. |
lscp_status_t lscp_set_channel_midi_type | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
const char * | pszMidiDriver | |||
) |
Setting MIDI input type: SET CHANNEL MIDI_INPUT_TYPE <sampler-channel> <midi-input-type>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
pszMidiDriver | MIDI input driver type (e.g. "ALSA"). |
lscp_status_t lscp_set_channel_mute | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iMute | |||
) |
Muting a sampler channel: SET CHANNEL MUTE <sampler-channel> <mute>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iMute | Sampler channel mute state as a boolean value, either 1 (one) to mute the channel or 0 (zero) to unmute the channel. |
lscp_status_t lscp_set_channel_solo | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iSolo | |||
) |
Soloing a sampler channel: SET CHANNEL SOLO <sampler-channel> <solo>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iSolo | Sampler channel solo state as a boolean value, either 1 (one) to solo the channel or 0 (zero) to unsolo the channel. |
lscp_status_t lscp_set_channel_volume | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
float | fVolume | |||
) |
Setting channel volume: SET CHANNEL VOLUME <sampler-channel> <volume>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
fVolume | Sampler channel volume as a positive floating point number, where a value less than 1.0 for attenuation, and greater than 1.0 for amplification. |
lscp_status_t lscp_set_fxsend_audio_channel | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iFxSend, | |||
int | iAudioSrc, | |||
int | iAudioDst | |||
) |
Alter effect send's audio routing: SET FX_SEND AUDIO_OUTPUT_CHANNEL <sampler-chan> <fx-send-id> <audio-src> <audio-dst>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iFxSend | Effect send number. | |
iAudioSrc | Audio output device channel to be routed from. | |
iAudioDst | Audio output device channel to be routed into. |
lscp_status_t lscp_set_fxsend_level | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iFxSend, | |||
float | fLevel | |||
) |
Alter effect send's audio level: SET FX_SEND LEVEL <sampler-chan> <fx-send-id> <level>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iFxSend | Effect send number. | |
fLevel | Effect send volume level. |
lscp_status_t lscp_set_fxsend_midi_controller | ( | lscp_client_t * | pClient, | |
int | iSamplerChannel, | |||
int | iFxSend, | |||
int | iMidiController | |||
) |
Alter effect send's MIDI controller: SET FX_SEND MIDI_CONTROLLER <sampler-chan> <fx-send-id> <midi-ctrl>
pClient | Pointer to client instance structure. | |
iSamplerChannel | Sampler channel number. | |
iFxSend | Effect send number. | |
iMidiController | MIDI controller used to alter the effect, usually a number between 0 and 127. |
lscp_status_t lscp_set_midi_instrument_map_name | ( | lscp_client_t * | pClient, | |
int | iMidiMap, | |||
const char * | pszMapName | |||
) |
Renaming a MIDI instrument map: SET MIDI_INSTRUMENT_MAP NAME <midi-map> <map-name>
pClient | Pointer to client instance structure. | |
iMidiMap | MIDI instrument map number. | |
pszMapName | MIDI instrument map name. |
lscp_status_t lscp_set_volume | ( | lscp_client_t * | pClient, | |
float | fVolume | |||
) |
Setting global volume attenuation: SET VOLUME <volume>
pClient | Pointer to client instance structure. | |
fVolume | Global volume parameter as positive floating point value usually be in the range between 0.0 and 1.0, that is for attenuating the overall volume. |
lscp_status_t lscp_unmap_midi_instrument | ( | lscp_client_t * | pClient, | |
lscp_midi_instrument_t * | pMidiInstr | |||
) |
Remove an entry from the MIDI instrument map: UNMAP MIDI_INSTRUMENT <midi-map> <midi-bank> <midi-prog>
pClient | Pointer to client instance structure. | |
pMidiInstr | MIDI instrument bank and program parameter key. |