change XCode headers and linkage to use project-local lib and include
This commit is contained in:
		
							
								
								
									
										118
									
								
								Builds/MacOSX/include/fluidsynth.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								Builds/MacOSX/include/fluidsynth.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,118 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BUILD_SHARED_LIBS 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (BUILD_SHARED_LIBS == 0)
 | 
				
			||||||
 | 
					    #define FLUIDSYNTH_API // building static lib? no visibility control then
 | 
				
			||||||
 | 
					#elif defined(WIN32)
 | 
				
			||||||
 | 
					    #if defined(FLUIDSYNTH_NOT_A_DLL)
 | 
				
			||||||
 | 
					        #define FLUIDSYNTH_API
 | 
				
			||||||
 | 
					    #elif defined(FLUIDSYNTH_DLL_EXPORTS)
 | 
				
			||||||
 | 
					        #define FLUIDSYNTH_API __declspec(dllexport)
 | 
				
			||||||
 | 
					    #else
 | 
				
			||||||
 | 
					        #define FLUIDSYNTH_API __declspec(dllimport)
 | 
				
			||||||
 | 
					    #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#elif defined(MACOS9)
 | 
				
			||||||
 | 
					#define FLUIDSYNTH_API __declspec(export)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#elif defined(__GNUC__)
 | 
				
			||||||
 | 
					#define FLUIDSYNTH_API __attribute__ ((visibility ("default")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define FLUIDSYNTH_API
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__GNUC__) || defined(__clang__)
 | 
				
			||||||
 | 
					#    define FLUID_DEPRECATED __attribute__((deprecated))
 | 
				
			||||||
 | 
					#elif defined(_MSC_VER) && _MSC_VER > 1200
 | 
				
			||||||
 | 
					#    define FLUID_DEPRECATED __declspec(deprecated)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#    define FLUID_DEPRECATED
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file fluidsynth.h
 | 
				
			||||||
 | 
					 * @brief FluidSynth is a real-time synthesizer designed for SoundFont(R) files.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This is the header of the fluidsynth library and contains the
 | 
				
			||||||
 | 
					 * synthesizer's public API.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Depending on how you want to use or extend the synthesizer you
 | 
				
			||||||
 | 
					 * will need different API functions. You probably do not need all
 | 
				
			||||||
 | 
					 * of them. Here is what you might want to do:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * - Embedded synthesizer: create a new synthesizer and send MIDI
 | 
				
			||||||
 | 
					 *   events to it. The sound goes directly to the audio output of
 | 
				
			||||||
 | 
					 *   your system.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * - Plugin synthesizer: create a synthesizer and send MIDI events
 | 
				
			||||||
 | 
					 *   but pull the audio back into your application.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * - SoundFont plugin: create a new type of "SoundFont" and allow
 | 
				
			||||||
 | 
					 *   the synthesizer to load your type of SoundFonts.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * - MIDI input: Create a MIDI handler to read the MIDI input on your
 | 
				
			||||||
 | 
					 *   machine and send the MIDI events directly to the synthesizer.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * - MIDI files: Open MIDI files and send the MIDI events to the
 | 
				
			||||||
 | 
					 *   synthesizer.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * - Command lines: You can send textual commands to the synthesizer.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * SoundFont(R) is a registered trademark of E-mu Systems, Inc.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "fluidsynth/types.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/settings.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/synth.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/shell.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/sfont.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/ramsfont.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/audio.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/event.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/midi.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/seq.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/seqbind.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/log.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/misc.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/mod.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/gen.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/voice.h"
 | 
				
			||||||
 | 
					#include "fluidsynth/version.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_H */
 | 
				
			||||||
							
								
								
									
										78
									
								
								Builds/MacOSX/include/fluidsynth/audio.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								Builds/MacOSX/include/fluidsynth/audio.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_AUDIO_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_AUDIO_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file audio.h
 | 
				
			||||||
 | 
					 * @brief Functions for audio driver output.
 | 
				
			||||||
 | 
					 * @defgroup AudioFunctions Functions for audio output
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Defines functions for creating audio driver output.  Use
 | 
				
			||||||
 | 
					 * new_fluid_audio_driver() to create a new audio driver for a given synth
 | 
				
			||||||
 | 
					 * and configuration settings.  The function new_fluid_audio_driver2() can be
 | 
				
			||||||
 | 
					 * used if custom audio processing is desired before the audio is sent to the
 | 
				
			||||||
 | 
					 * audio driver (although it is not as efficient).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @sa @ref CreatingAudioDriver
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Callback function type used with new_fluid_audio_driver2() to allow for
 | 
				
			||||||
 | 
					 * custom user audio processing before the audio is sent to the driver.  This
 | 
				
			||||||
 | 
					 * function is responsible for rendering the audio to the buffers.
 | 
				
			||||||
 | 
					 * @param data The user data parameter as passed to new_fluid_audio_driver2().
 | 
				
			||||||
 | 
					 * @param len Length of the audio in frames.
 | 
				
			||||||
 | 
					 * @param nin Count of buffers in 'in'
 | 
				
			||||||
 | 
					 * @param in Not used currently
 | 
				
			||||||
 | 
					 * @param nout Count of arrays in 'out' (i.e., channel count)
 | 
				
			||||||
 | 
					 * @param out Output buffers, one for each channel
 | 
				
			||||||
 | 
					 * @return Should return 0 on success, non-zero if an error occured.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef int (*fluid_audio_func_t)(void* data, int len,
 | 
				
			||||||
 | 
									 int nin, float** in,
 | 
				
			||||||
 | 
									 int nout, float** out);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_audio_driver_t* new_fluid_audio_driver(fluid_settings_t* settings,
 | 
				
			||||||
 | 
												 fluid_synth_t* synth);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_audio_driver_t* new_fluid_audio_driver2(fluid_settings_t* settings,
 | 
				
			||||||
 | 
												  fluid_audio_func_t func,
 | 
				
			||||||
 | 
												  void* data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void delete_fluid_audio_driver(fluid_audio_driver_t* driver);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_file_renderer_t *new_fluid_file_renderer(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_file_renderer_process_block(fluid_file_renderer_t* dev);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void delete_fluid_file_renderer(fluid_file_renderer_t* dev);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_file_set_encoding_quality(fluid_file_renderer_t* dev, double q);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_audio_driver_register(const char** adrivers);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_AUDIO_H */
 | 
				
			||||||
							
								
								
									
										135
									
								
								Builds/MacOSX/include/fluidsynth/event.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								Builds/MacOSX/include/fluidsynth/event.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,135 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_EVENT_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_EVENT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file event.h
 | 
				
			||||||
 | 
					 * @brief Sequencer event functions and defines.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Functions and constants for creating/processing sequencer events.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Sequencer event type enumeration.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					enum fluid_seq_event_type {
 | 
				
			||||||
 | 
					  FLUID_SEQ_NOTE = 0,		/**< Note event with duration */
 | 
				
			||||||
 | 
					  FLUID_SEQ_NOTEON,		/**< Note on event */
 | 
				
			||||||
 | 
					  FLUID_SEQ_NOTEOFF,		/**< Note off event */
 | 
				
			||||||
 | 
					  FLUID_SEQ_ALLSOUNDSOFF,	/**< All sounds off event */
 | 
				
			||||||
 | 
					  FLUID_SEQ_ALLNOTESOFF,	/**< All notes off event */
 | 
				
			||||||
 | 
					  FLUID_SEQ_BANKSELECT,		/**< Bank select message */
 | 
				
			||||||
 | 
					  FLUID_SEQ_PROGRAMCHANGE,	/**< Program change message */
 | 
				
			||||||
 | 
					  FLUID_SEQ_PROGRAMSELECT,	/**< Program select message (DOCME) */
 | 
				
			||||||
 | 
					  FLUID_SEQ_PITCHBEND,		/**< Pitch bend message */
 | 
				
			||||||
 | 
					  FLUID_SEQ_PITCHWHEELSENS,	/**< Pitch wheel sensitivity set message @since 1.1.0 was mispelled previously */
 | 
				
			||||||
 | 
					  FLUID_SEQ_MODULATION,		/**< Modulation controller event */
 | 
				
			||||||
 | 
					  FLUID_SEQ_SUSTAIN,		/**< Sustain controller event */
 | 
				
			||||||
 | 
					  FLUID_SEQ_CONTROLCHANGE,	/**< MIDI control change event */
 | 
				
			||||||
 | 
					  FLUID_SEQ_PAN,		/**< Stereo pan set event */
 | 
				
			||||||
 | 
					  FLUID_SEQ_VOLUME,		/**< Volume set event */
 | 
				
			||||||
 | 
					  FLUID_SEQ_REVERBSEND,		/**< Reverb send set event */
 | 
				
			||||||
 | 
					  FLUID_SEQ_CHORUSSEND,		/**< Chorus send set event */
 | 
				
			||||||
 | 
					  FLUID_SEQ_TIMER,		/**< Timer event (useful for giving a callback at a certain time) */
 | 
				
			||||||
 | 
					  FLUID_SEQ_ANYCONTROLCHANGE,	/**< Any control change message (only internally used for remove_events) */
 | 
				
			||||||
 | 
					  FLUID_SEQ_CHANNELPRESSURE,    /**< Channel aftertouch event @since 1.1.0 */
 | 
				
			||||||
 | 
					  FLUID_SEQ_SYSTEMRESET,        /**< System reset event @since 1.1.0 */
 | 
				
			||||||
 | 
					  FLUID_SEQ_UNREGISTERING,      /**< Called when a sequencer client is being unregistered. @since 1.1.0 */
 | 
				
			||||||
 | 
					  FLUID_SEQ_LASTEVENT		/**< Defines the count of event enums @deprecated As of 1.1.7 this enum value is deprecated and will be removed in a future release, because it prevents adding new enum values without breaking ABI compatibility. */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FLUID_SEQ_PITCHWHHELSENS        FLUID_SEQ_PITCHWHEELSENS        /**< Old deprecated misspelling of #FLUID_SEQ_PITCHWHEELSENS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Event alloc/free */
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_event_t* new_fluid_event(void);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void delete_fluid_event(fluid_event_t* evt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Initializing events */
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_set_source(fluid_event_t* evt, fluid_seq_id_t src);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_set_dest(fluid_event_t* evt, fluid_seq_id_t dest);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Timer events */
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_timer(fluid_event_t* evt, void* data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Note events */
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_note(fluid_event_t* evt, int channel, 
 | 
				
			||||||
 | 
									   short key, short vel, 
 | 
				
			||||||
 | 
									   unsigned int duration);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_noteon(fluid_event_t* evt, int channel, short key, short vel);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_noteoff(fluid_event_t* evt, int channel, short key);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_all_sounds_off(fluid_event_t* evt, int channel);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_all_notes_off(fluid_event_t* evt, int channel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Instrument selection */
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_bank_select(fluid_event_t* evt, int channel, short bank_num);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_program_change(fluid_event_t* evt, int channel, short preset_num);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_program_select(fluid_event_t* evt, int channel, unsigned int sfont_id, short bank_num, short preset_num);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Real-time generic instrument controllers */
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					void fluid_event_control_change(fluid_event_t* evt, int channel, short control, short val);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Real-time instrument controllers shortcuts */
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_pitch_bend(fluid_event_t* evt, int channel, int val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_pitch_wheelsens(fluid_event_t* evt, int channel, short val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_modulation(fluid_event_t* evt, int channel, short val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_sustain(fluid_event_t* evt, int channel, short val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_pan(fluid_event_t* evt, int channel, short val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_volume(fluid_event_t* evt, int channel, short val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_reverb_send(fluid_event_t* evt, int channel, short val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_chorus_send(fluid_event_t* evt, int channel, short val);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_channel_pressure(fluid_event_t* evt, int channel, short val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_system_reset(fluid_event_t* evt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Only for removing events */
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_any_control_change(fluid_event_t* evt, int channel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Only when unregistering clients */
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_event_unregistering(fluid_event_t* evt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Accessing event data */
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_event_get_type(fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_seq_id_t fluid_event_get_source(fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_seq_id_t fluid_event_get_dest(fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_event_get_channel(fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API short fluid_event_get_key(fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API short fluid_event_get_velocity(fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API short fluid_event_get_control(fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API short fluid_event_get_value(fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API short fluid_event_get_program(fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void* fluid_event_get_data(fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API unsigned int fluid_event_get_duration(fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API short fluid_event_get_bank(fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_event_get_pitch(fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API unsigned int fluid_event_get_sfont_id(fluid_event_t* evt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_EVENT_H */
 | 
				
			||||||
							
								
								
									
										135
									
								
								Builds/MacOSX/include/fluidsynth/gen.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								Builds/MacOSX/include/fluidsynth/gen.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,135 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_GEN_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_GEN_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file gen.h
 | 
				
			||||||
 | 
					 * @brief Functions and defines for SoundFont generator effects.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Generator (effect) numbers (Soundfont 2.01 specifications section 8.1.3)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					enum fluid_gen_type {
 | 
				
			||||||
 | 
					  GEN_STARTADDROFS,		/**< Sample start address offset (0-32767) */
 | 
				
			||||||
 | 
					  GEN_ENDADDROFS,		/**< Sample end address offset (-32767-0) */
 | 
				
			||||||
 | 
					  GEN_STARTLOOPADDROFS,		/**< Sample loop start address offset (-32767-32767) */
 | 
				
			||||||
 | 
					  GEN_ENDLOOPADDROFS,		/**< Sample loop end address offset (-32767-32767) */
 | 
				
			||||||
 | 
					  GEN_STARTADDRCOARSEOFS,	/**< Sample start address coarse offset (X 32768) */
 | 
				
			||||||
 | 
					  GEN_MODLFOTOPITCH,		/**< Modulation LFO to pitch */
 | 
				
			||||||
 | 
					  GEN_VIBLFOTOPITCH,		/**< Vibrato LFO to pitch */
 | 
				
			||||||
 | 
					  GEN_MODENVTOPITCH,		/**< Modulation envelope to pitch */
 | 
				
			||||||
 | 
					  GEN_FILTERFC,			/**< Filter cutoff */
 | 
				
			||||||
 | 
					  GEN_FILTERQ,			/**< Filter Q */
 | 
				
			||||||
 | 
					  GEN_MODLFOTOFILTERFC,		/**< Modulation LFO to filter cutoff */
 | 
				
			||||||
 | 
					  GEN_MODENVTOFILTERFC,		/**< Modulation envelope to filter cutoff */
 | 
				
			||||||
 | 
					  GEN_ENDADDRCOARSEOFS,		/**< Sample end address coarse offset (X 32768) */
 | 
				
			||||||
 | 
					  GEN_MODLFOTOVOL,		/**< Modulation LFO to volume */
 | 
				
			||||||
 | 
					  GEN_UNUSED1,			/**< Unused */
 | 
				
			||||||
 | 
					  GEN_CHORUSSEND,		/**< Chorus send amount */
 | 
				
			||||||
 | 
					  GEN_REVERBSEND,		/**< Reverb send amount */
 | 
				
			||||||
 | 
					  GEN_PAN,			/**< Stereo panning */
 | 
				
			||||||
 | 
					  GEN_UNUSED2,			/**< Unused */
 | 
				
			||||||
 | 
					  GEN_UNUSED3,			/**< Unused */
 | 
				
			||||||
 | 
					  GEN_UNUSED4,			/**< Unused */
 | 
				
			||||||
 | 
					  GEN_MODLFODELAY,		/**< Modulation LFO delay */
 | 
				
			||||||
 | 
					  GEN_MODLFOFREQ,		/**< Modulation LFO frequency */
 | 
				
			||||||
 | 
					  GEN_VIBLFODELAY,		/**< Vibrato LFO delay */
 | 
				
			||||||
 | 
					  GEN_VIBLFOFREQ,		/**< Vibrato LFO frequency */
 | 
				
			||||||
 | 
					  GEN_MODENVDELAY,		/**< Modulation envelope delay */
 | 
				
			||||||
 | 
					  GEN_MODENVATTACK,		/**< Modulation envelope attack */
 | 
				
			||||||
 | 
					  GEN_MODENVHOLD,		/**< Modulation envelope hold */
 | 
				
			||||||
 | 
					  GEN_MODENVDECAY,		/**< Modulation envelope decay */
 | 
				
			||||||
 | 
					  GEN_MODENVSUSTAIN,		/**< Modulation envelope sustain */
 | 
				
			||||||
 | 
					  GEN_MODENVRELEASE,		/**< Modulation envelope release */
 | 
				
			||||||
 | 
					  GEN_KEYTOMODENVHOLD,		/**< Key to modulation envelope hold */
 | 
				
			||||||
 | 
					  GEN_KEYTOMODENVDECAY,		/**< Key to modulation envelope decay */
 | 
				
			||||||
 | 
					  GEN_VOLENVDELAY,		/**< Volume envelope delay */
 | 
				
			||||||
 | 
					  GEN_VOLENVATTACK,		/**< Volume envelope attack */
 | 
				
			||||||
 | 
					  GEN_VOLENVHOLD,		/**< Volume envelope hold */
 | 
				
			||||||
 | 
					  GEN_VOLENVDECAY,		/**< Volume envelope decay */
 | 
				
			||||||
 | 
					  GEN_VOLENVSUSTAIN,		/**< Volume envelope sustain */
 | 
				
			||||||
 | 
					  GEN_VOLENVRELEASE,		/**< Volume envelope release */
 | 
				
			||||||
 | 
					  GEN_KEYTOVOLENVHOLD,		/**< Key to volume envelope hold */
 | 
				
			||||||
 | 
					  GEN_KEYTOVOLENVDECAY,		/**< Key to volume envelope decay */
 | 
				
			||||||
 | 
					  GEN_INSTRUMENT,		/**< Instrument ID (shouldn't be set by user) */
 | 
				
			||||||
 | 
					  GEN_RESERVED1,		/**< Reserved */
 | 
				
			||||||
 | 
					  GEN_KEYRANGE,			/**< MIDI note range */
 | 
				
			||||||
 | 
					  GEN_VELRANGE,			/**< MIDI velocity range */
 | 
				
			||||||
 | 
					  GEN_STARTLOOPADDRCOARSEOFS,	/**< Sample start loop address coarse offset (X 32768) */
 | 
				
			||||||
 | 
					  GEN_KEYNUM,			/**< Fixed MIDI note number */
 | 
				
			||||||
 | 
					  GEN_VELOCITY,			/**< Fixed MIDI velocity value */
 | 
				
			||||||
 | 
					  GEN_ATTENUATION,		/**< Initial volume attenuation */
 | 
				
			||||||
 | 
					  GEN_RESERVED2,		/**< Reserved */
 | 
				
			||||||
 | 
					  GEN_ENDLOOPADDRCOARSEOFS,	/**< Sample end loop address coarse offset (X 32768) */
 | 
				
			||||||
 | 
					  GEN_COARSETUNE,		/**< Coarse tuning */
 | 
				
			||||||
 | 
					  GEN_FINETUNE,			/**< Fine tuning */
 | 
				
			||||||
 | 
					  GEN_SAMPLEID,			/**< Sample ID (shouldn't be set by user) */
 | 
				
			||||||
 | 
					  GEN_SAMPLEMODE,		/**< Sample mode flags */
 | 
				
			||||||
 | 
					  GEN_RESERVED3,		/**< Reserved */
 | 
				
			||||||
 | 
					  GEN_SCALETUNE,		/**< Scale tuning */
 | 
				
			||||||
 | 
					  GEN_EXCLUSIVECLASS,		/**< Exclusive class number */
 | 
				
			||||||
 | 
					  GEN_OVERRIDEROOTKEY,		/**< Sample root note override */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* the initial pitch is not a "standard" generator. It is not
 | 
				
			||||||
 | 
					   * mentioned in the list of generator in the SF2 specifications. It
 | 
				
			||||||
 | 
					   * is used, however, as the destination for the default pitch wheel
 | 
				
			||||||
 | 
					   * modulator. */
 | 
				
			||||||
 | 
					  GEN_PITCH,			/**< Pitch (NOTE: Not a real SoundFont generator) */
 | 
				
			||||||
 | 
					  GEN_LAST			/**< Value defines the count of generators (#fluid_gen_type) @deprecated As of 1.1.7 this enum value is deprecated and will be removed in a future release, because it prevents adding new enum values without breaking ABI compatibility. */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * SoundFont generator structure.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef struct _fluid_gen_t
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  unsigned char flags; /**< Is the generator set or not (#fluid_gen_flags) */
 | 
				
			||||||
 | 
					  double val;          /**< The nominal value */
 | 
				
			||||||
 | 
					  double mod;          /**< Change by modulators */
 | 
				
			||||||
 | 
					  double nrpn;         /**< Change by NRPN messages */
 | 
				
			||||||
 | 
					} fluid_gen_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Enum value for 'flags' field of #fluid_gen_t (not really flags).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					enum fluid_gen_flags
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  GEN_UNUSED,		/**< Generator value is not set */
 | 
				
			||||||
 | 
					  GEN_SET,		/**< Generator value is set */
 | 
				
			||||||
 | 
					  GEN_ABS_NRPN		/**< Generator is an absolute value */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API FLUID_DEPRECATED int fluid_gen_set_default_values(fluid_gen_t* gen);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_GEN_H */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										84
									
								
								Builds/MacOSX/include/fluidsynth/log.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								Builds/MacOSX/include/fluidsynth/log.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,84 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_LOG_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_LOG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file log.h
 | 
				
			||||||
 | 
					 * @brief Logging interface
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The default logging function of the fluidsynth prints its messages
 | 
				
			||||||
 | 
					 * to the stderr. The synthesizer uses five level of messages: #FLUID_PANIC,
 | 
				
			||||||
 | 
					 * #FLUID_ERR, #FLUID_WARN, #FLUID_INFO, and #FLUID_DBG.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * A client application can install a new log function to handle the
 | 
				
			||||||
 | 
					 * messages differently. In the following example, the application
 | 
				
			||||||
 | 
					 * sets a callback function to display #FLUID_PANIC messages in a dialog,
 | 
				
			||||||
 | 
					 * and ignores all other messages by setting the log function to
 | 
				
			||||||
 | 
					 * NULL:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @code
 | 
				
			||||||
 | 
					 *   fluid_set_log_function(FLUID_PANIC, show_dialog, (void*) root_window);
 | 
				
			||||||
 | 
					 *   fluid_set_log_function(FLUID_ERR, NULL, NULL);
 | 
				
			||||||
 | 
					 *   fluid_set_log_function(FLUID_WARN, NULL, NULL);
 | 
				
			||||||
 | 
					 *   fluid_set_log_function(FLUID_DBG, NULL, NULL);
 | 
				
			||||||
 | 
					 * @endcode
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * FluidSynth log levels.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					enum fluid_log_level { 
 | 
				
			||||||
 | 
					  FLUID_PANIC,   /**< The synth can't function correctly any more */
 | 
				
			||||||
 | 
					  FLUID_ERR,     /**< Serious error occurred */
 | 
				
			||||||
 | 
					  FLUID_WARN,    /**< Warning */
 | 
				
			||||||
 | 
					  FLUID_INFO,    /**< Verbose informational messages */
 | 
				
			||||||
 | 
					  FLUID_DBG,     /**< Debugging messages */
 | 
				
			||||||
 | 
					  LAST_LOG_LEVEL /**< @deprecated As of 1.1.7 this enum value is deprecated and will be removed in a future release, because it prevents adding new enum values without breaking ABI compatibility. */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Log function handler callback type used by fluid_set_log_function().
 | 
				
			||||||
 | 
					 * @param level Log level (#fluid_log_level)
 | 
				
			||||||
 | 
					 * @param message Log message text
 | 
				
			||||||
 | 
					 * @param data User data pointer supplied to fluid_set_log_function().
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef void (*fluid_log_function_t)(int level, char* message, void* data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					fluid_log_function_t fluid_set_log_function(int level, fluid_log_function_t fun, void* data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_default_log_function(int level, char* message, void* data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_log(int level, const char *fmt, ...);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_LOG_H */
 | 
				
			||||||
							
								
								
									
										148
									
								
								Builds/MacOSX/include/fluidsynth/midi.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										148
									
								
								Builds/MacOSX/include/fluidsynth/midi.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,148 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_MIDI_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_MIDI_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file midi.h
 | 
				
			||||||
 | 
					 * @brief Functions for MIDI events, drivers and MIDI file playback.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_midi_event_t* new_fluid_midi_event(void);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int delete_fluid_midi_event(fluid_midi_event_t* event);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_set_type(fluid_midi_event_t* evt, int type);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_get_type(fluid_midi_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_set_channel(fluid_midi_event_t* evt, int chan);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_get_channel(fluid_midi_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_get_key(fluid_midi_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_set_key(fluid_midi_event_t* evt, int key);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_get_velocity(fluid_midi_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_set_velocity(fluid_midi_event_t* evt, int vel);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_get_control(fluid_midi_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_set_control(fluid_midi_event_t* evt, int ctrl);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_get_value(fluid_midi_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_set_value(fluid_midi_event_t* evt, int val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_get_program(fluid_midi_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_set_program(fluid_midi_event_t* evt, int val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_get_pitch(fluid_midi_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_set_pitch(fluid_midi_event_t* evt, int val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_event_set_sysex(fluid_midi_event_t* evt, void *data,
 | 
				
			||||||
 | 
					                                              int size, int dynamic);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * MIDI router rule type.
 | 
				
			||||||
 | 
					 * @since 1.1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef enum
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  FLUID_MIDI_ROUTER_RULE_NOTE,                  /**< MIDI note rule */
 | 
				
			||||||
 | 
					  FLUID_MIDI_ROUTER_RULE_CC,                    /**< MIDI controller rule */
 | 
				
			||||||
 | 
					  FLUID_MIDI_ROUTER_RULE_PROG_CHANGE,           /**< MIDI program change rule */
 | 
				
			||||||
 | 
					  FLUID_MIDI_ROUTER_RULE_PITCH_BEND,            /**< MIDI pitch bend rule */
 | 
				
			||||||
 | 
					  FLUID_MIDI_ROUTER_RULE_CHANNEL_PRESSURE,      /**< MIDI channel pressure rule */
 | 
				
			||||||
 | 
					  FLUID_MIDI_ROUTER_RULE_KEY_PRESSURE,          /**< MIDI key pressure rule */
 | 
				
			||||||
 | 
					  FLUID_MIDI_ROUTER_RULE_COUNT                  /**< Total count of rule types */
 | 
				
			||||||
 | 
					} fluid_midi_router_rule_type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Generic callback function for MIDI events.
 | 
				
			||||||
 | 
					 * @param data User defined data pointer
 | 
				
			||||||
 | 
					 * @param event The MIDI event
 | 
				
			||||||
 | 
					 * @return Should return #FLUID_OK on success, #FLUID_FAILED otherwise
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Will be used between
 | 
				
			||||||
 | 
					 * - MIDI driver and MIDI router
 | 
				
			||||||
 | 
					 * - MIDI router and synth
 | 
				
			||||||
 | 
					 * to communicate events.
 | 
				
			||||||
 | 
					 * In the not-so-far future...
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef int (*handle_midi_event_func_t)(void* data, fluid_midi_event_t* event);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_midi_router_t* new_fluid_midi_router(fluid_settings_t* settings,
 | 
				
			||||||
 | 
											       handle_midi_event_func_t handler, 
 | 
				
			||||||
 | 
											       void* event_handler_data); 
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int delete_fluid_midi_router(fluid_midi_router_t* handler); 
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_router_set_default_rules (fluid_midi_router_t *router);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_router_clear_rules (fluid_midi_router_t *router);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_router_add_rule (fluid_midi_router_t *router,
 | 
				
			||||||
 | 
					                                               fluid_midi_router_rule_t *rule, int type);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_midi_router_rule_t *new_fluid_midi_router_rule (void);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void delete_fluid_midi_router_rule (fluid_midi_router_rule_t *rule);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_midi_router_rule_set_chan (fluid_midi_router_rule_t *rule,
 | 
				
			||||||
 | 
					                                                     int min, int max, float mul, int add);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_midi_router_rule_set_param1 (fluid_midi_router_rule_t *rule,
 | 
				
			||||||
 | 
					                                                       int min, int max, float mul, int add);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_midi_router_rule_set_param2 (fluid_midi_router_rule_t *rule,
 | 
				
			||||||
 | 
					                                                       int min, int max, float mul, int add);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_router_handle_midi_event(void* data, fluid_midi_event_t* event);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_dump_prerouter(void* data, fluid_midi_event_t* event); 
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_midi_dump_postrouter(void* data, fluid_midi_event_t* event); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					fluid_midi_driver_t* new_fluid_midi_driver(fluid_settings_t* settings, 
 | 
				
			||||||
 | 
										 handle_midi_event_func_t handler, 
 | 
				
			||||||
 | 
										 void* event_handler_data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void delete_fluid_midi_driver(fluid_midi_driver_t* driver);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * MIDI player status enum.
 | 
				
			||||||
 | 
					 * @since 1.1.0
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					enum fluid_player_status
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  FLUID_PLAYER_READY,           /**< Player is ready */
 | 
				
			||||||
 | 
					  FLUID_PLAYER_PLAYING,         /**< Player is currently playing */
 | 
				
			||||||
 | 
					  FLUID_PLAYER_DONE             /**< Player is finished playing */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_player_t* new_fluid_player(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int delete_fluid_player(fluid_player_t* player);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_add(fluid_player_t* player, const char *midifile);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_add_mem(fluid_player_t* player, const void *buffer, size_t len);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_play(fluid_player_t* player);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_stop(fluid_player_t* player);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_join(fluid_player_t* player);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_set_loop(fluid_player_t* player, int loop);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_set_midi_tempo(fluid_player_t* player, int tempo);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_set_bpm(fluid_player_t* player, int bpm);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_set_playback_callback(fluid_player_t* player, handle_midi_event_func_t handler, void* handler_data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_get_status(fluid_player_t* player);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_get_current_tick(fluid_player_t * player);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_get_total_ticks(fluid_player_t * player);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_get_bpm(fluid_player_t * player);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_player_get_midi_tempo(fluid_player_t * player);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_MIDI_H */
 | 
				
			||||||
							
								
								
									
										77
									
								
								Builds/MacOSX/include/fluidsynth/misc.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								Builds/MacOSX/include/fluidsynth/misc.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,77 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_MISC_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_MISC_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file misc.h
 | 
				
			||||||
 | 
					 * @brief Miscellaneous utility functions and defines
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Value that indicates success, used by most libfluidsynth functions.
 | 
				
			||||||
 | 
					 * @since 1.1.0
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * NOTE: This was not publicly defined prior to libfluidsynth 1.1.0.  When
 | 
				
			||||||
 | 
					 * writing code which should also be compatible with older versions, something
 | 
				
			||||||
 | 
					 * like the following can be used:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @code
 | 
				
			||||||
 | 
					 *   #include <fluidsynth.h>
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *   #ifndef FLUID_OK
 | 
				
			||||||
 | 
					 *   #define FLUID_OK      (0)
 | 
				
			||||||
 | 
					 *   #define FLUID_FAILED  (-1)
 | 
				
			||||||
 | 
					 *   #endif
 | 
				
			||||||
 | 
					 * @endcode
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define FLUID_OK        (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Value that indicates failure, used by most libfluidsynth functions.
 | 
				
			||||||
 | 
					 * @since 1.1.0
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * NOTE: See #FLUID_OK for more details.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define FLUID_FAILED    (-1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_is_soundfont (const char *filename);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_is_midifile (const char *filename);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef WIN32
 | 
				
			||||||
 | 
					FLUIDSYNTH_API FLUID_DEPRECATED void* fluid_get_hinstance(void);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API FLUID_DEPRECATED void fluid_set_hinstance(void* hinstance);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_MISC_H */
 | 
				
			||||||
							
								
								
									
										114
									
								
								Builds/MacOSX/include/fluidsynth/mod.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								Builds/MacOSX/include/fluidsynth/mod.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,114 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_MOD_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_MOD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file mod.h
 | 
				
			||||||
 | 
					 * @brief SoundFont modulator functions and constants.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FLUID_NUM_MOD           64      /**< Maximum number of modulators in a voice */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Modulator structure.  See SoundFont 2.04 PDF section 8.2.
 | 
				
			||||||
 | 
					 * 
 | 
				
			||||||
 | 
					 * @deprecated To be removed from the public API.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					struct _fluid_mod_t
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  unsigned char dest;           /**< Destination generator to control */
 | 
				
			||||||
 | 
					  unsigned char src1;           /**< Source controller 1 */
 | 
				
			||||||
 | 
					  unsigned char flags1;         /**< Source controller 1 flags */
 | 
				
			||||||
 | 
					  unsigned char src2;           /**< Source controller 2 */
 | 
				
			||||||
 | 
					  unsigned char flags2;         /**< Source controller 2 flags */
 | 
				
			||||||
 | 
					  double amount;                /**< Multiplier amount */
 | 
				
			||||||
 | 
					  /* The 'next' field allows to link modulators into a list.  It is
 | 
				
			||||||
 | 
					   * not used in fluid_voice.c, there each voice allocates memory for a
 | 
				
			||||||
 | 
					   * fixed number of modulators.  Since there may be a huge number of
 | 
				
			||||||
 | 
					   * different zones, this is more efficient.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  fluid_mod_t * next;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Flags defining the polarity, mapping function and type of a modulator source.
 | 
				
			||||||
 | 
					 * Compare with SoundFont 2.04 PDF section 8.2.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Note: Bit values do not correspond to the SoundFont spec!  Also note that
 | 
				
			||||||
 | 
					 * #FLUID_MOD_GC and #FLUID_MOD_CC are in the flags field instead of the source field.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					enum fluid_mod_flags
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  FLUID_MOD_POSITIVE = 0,       /**< Mapping function is positive */
 | 
				
			||||||
 | 
					  FLUID_MOD_NEGATIVE = 1,       /**< Mapping function is negative */
 | 
				
			||||||
 | 
					  FLUID_MOD_UNIPOLAR = 0,       /**< Mapping function is unipolar */
 | 
				
			||||||
 | 
					  FLUID_MOD_BIPOLAR = 2,        /**< Mapping function is bipolar */
 | 
				
			||||||
 | 
					  FLUID_MOD_LINEAR = 0,         /**< Linear mapping function */
 | 
				
			||||||
 | 
					  FLUID_MOD_CONCAVE = 4,        /**< Concave mapping function */
 | 
				
			||||||
 | 
					  FLUID_MOD_CONVEX = 8,         /**< Convex mapping function */
 | 
				
			||||||
 | 
					  FLUID_MOD_SWITCH = 12,        /**< Switch (on/off) mapping function */
 | 
				
			||||||
 | 
					  FLUID_MOD_GC = 0,             /**< General controller source type (#fluid_mod_src) */
 | 
				
			||||||
 | 
					  FLUID_MOD_CC = 16             /**< MIDI CC controller (source will be a MIDI CC number) */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * General controller (if #FLUID_MOD_GC in flags).  This
 | 
				
			||||||
 | 
					 * corresponds to SoundFont 2.04 PDF section 8.2.1
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					enum fluid_mod_src
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  FLUID_MOD_NONE = 0,                   /**< No source controller */
 | 
				
			||||||
 | 
					  FLUID_MOD_VELOCITY = 2,               /**< MIDI note-on velocity */
 | 
				
			||||||
 | 
					  FLUID_MOD_KEY = 3,                    /**< MIDI note-on note number */
 | 
				
			||||||
 | 
					  FLUID_MOD_KEYPRESSURE = 10,           /**< MIDI key pressure */
 | 
				
			||||||
 | 
					  FLUID_MOD_CHANNELPRESSURE = 13,       /**< MIDI channel pressure */
 | 
				
			||||||
 | 
					  FLUID_MOD_PITCHWHEEL = 14,            /**< Pitch wheel */
 | 
				
			||||||
 | 
					  FLUID_MOD_PITCHWHEELSENS = 16         /**< Pitch wheel sensitivity */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_mod_t* fluid_mod_new(void);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_mod_delete(fluid_mod_t * mod);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_mod_set_source1(fluid_mod_t* mod, int src, int flags); 
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_mod_set_source2(fluid_mod_t* mod, int src, int flags); 
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_mod_set_dest(fluid_mod_t* mod, int dst); 
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_mod_set_amount(fluid_mod_t* mod, double amount); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_mod_get_source1(fluid_mod_t* mod);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_mod_get_flags1(fluid_mod_t* mod);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_mod_get_source2(fluid_mod_t* mod);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_mod_get_flags2(fluid_mod_t* mod);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_mod_get_dest(fluid_mod_t* mod);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API double fluid_mod_get_amount(fluid_mod_t* mod);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_mod_test_identity(fluid_mod_t * mod1, fluid_mod_t * mod2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_MOD_H */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										72
									
								
								Builds/MacOSX/include/fluidsynth/ramsfont.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								Builds/MacOSX/include/fluidsynth/ramsfont.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,72 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* RAM SoundFonts: October 2002 - Antoine Schmitt */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_RAMSFONT_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_RAMSFONT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file ramsfont.h
 | 
				
			||||||
 | 
					 * @brief API for creating and managing SoundFont instruments in RAM.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * RAM SoundFonts live in ram. The samples are loaded from files
 | 
				
			||||||
 | 
					 * or from RAM.  A minimal API manages a soundFont structure,
 | 
				
			||||||
 | 
					 * with presets, each preset having only one preset-zone, which
 | 
				
			||||||
 | 
					 * instrument has potentially many instrument-zones.  No global
 | 
				
			||||||
 | 
					 * zones, and nor generator nor modulator other than the default
 | 
				
			||||||
 | 
					 * ones are permitted.  This may be extensible in the future.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_sfont_t* fluid_ramsfont_create_sfont(void);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_ramsfont_set_name(fluid_ramsfont_t* sfont, const char *name);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					int fluid_ramsfont_add_izone(fluid_ramsfont_t* sfont,
 | 
				
			||||||
 | 
									unsigned int bank, unsigned int num, fluid_sample_t* sample,
 | 
				
			||||||
 | 
									int lokey, int hikey);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_ramsfont_remove_izone(fluid_ramsfont_t* sfont,
 | 
				
			||||||
 | 
									unsigned int bank, unsigned int num, fluid_sample_t* sample);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_ramsfont_izone_set_gen(fluid_ramsfont_t* sfont,
 | 
				
			||||||
 | 
									unsigned int bank, unsigned int num, fluid_sample_t* sample,
 | 
				
			||||||
 | 
									int gen_type, float value);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_ramsfont_izone_set_loop(fluid_ramsfont_t* sfont,
 | 
				
			||||||
 | 
									unsigned int bank, unsigned int num, fluid_sample_t* sample,
 | 
				
			||||||
 | 
									int on, float loopstart, float loopend);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_sample_t* new_fluid_ramsample(void);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int delete_fluid_ramsample(fluid_sample_t* sample);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_sample_set_name(fluid_sample_t* sample, const char *name);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					int fluid_sample_set_sound_data(fluid_sample_t* sample, short *data, 
 | 
				
			||||||
 | 
								       unsigned int nbframes, short copy_data, int rootkey);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_RAMSFONT_H */
 | 
				
			||||||
							
								
								
									
										79
									
								
								Builds/MacOSX/include/fluidsynth/seq.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								Builds/MacOSX/include/fluidsynth/seq.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,79 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_SEQ_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_SEQ_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file seq.h
 | 
				
			||||||
 | 
					 * @brief MIDI event sequencer.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Event callback prototype for destination clients.
 | 
				
			||||||
 | 
					 * @param time Current sequencer tick value (see fluid_sequencer_get_tick()).
 | 
				
			||||||
 | 
					 * @param event The event being received
 | 
				
			||||||
 | 
					 * @param seq The sequencer instance
 | 
				
			||||||
 | 
					 * @param data User defined data registered with the client
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef void (*fluid_event_callback_t)(unsigned int time, fluid_event_t* event, 
 | 
				
			||||||
 | 
									      fluid_sequencer_t* seq, void* data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_sequencer_t* new_fluid_sequencer(void);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_sequencer_t* new_fluid_sequencer2(int use_system_timer);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void delete_fluid_sequencer(fluid_sequencer_t* seq);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_sequencer_get_use_system_timer(fluid_sequencer_t* seq);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					fluid_seq_id_t fluid_sequencer_register_client(fluid_sequencer_t* seq, const char *name, 
 | 
				
			||||||
 | 
									     fluid_event_callback_t callback, void* data);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_sequencer_unregister_client(fluid_sequencer_t* seq, fluid_seq_id_t id);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_sequencer_count_clients(fluid_sequencer_t* seq);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_seq_id_t fluid_sequencer_get_client_id(fluid_sequencer_t* seq, int index);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API char* fluid_sequencer_get_client_name(fluid_sequencer_t* seq, int id);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_sequencer_client_is_dest(fluid_sequencer_t* seq, int id);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_sequencer_process(fluid_sequencer_t* seq, unsigned int msec);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_sequencer_send_now(fluid_sequencer_t* seq, fluid_event_t* evt);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					int fluid_sequencer_send_at(fluid_sequencer_t* seq, fluid_event_t* evt, 
 | 
				
			||||||
 | 
								   unsigned int time, int absolute);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					void fluid_sequencer_remove_events(fluid_sequencer_t* seq, fluid_seq_id_t source, fluid_seq_id_t dest, int type);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API unsigned int fluid_sequencer_get_tick(fluid_sequencer_t* seq);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_sequencer_set_time_scale(fluid_sequencer_t* seq, double scale);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API double fluid_sequencer_get_time_scale(fluid_sequencer_t* seq);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Compile in internal traceing functions
 | 
				
			||||||
 | 
					#define FLUID_SEQ_WITH_TRACE 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if FLUID_SEQ_WITH_TRACE
 | 
				
			||||||
 | 
					FLUIDSYNTH_API char * fluid_seq_gettrace(fluid_sequencer_t* seq);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_seq_cleartrace(fluid_sequencer_t* seq);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_SEQ_H */
 | 
				
			||||||
							
								
								
									
										45
									
								
								Builds/MacOSX/include/fluidsynth/seqbind.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								Builds/MacOSX/include/fluidsynth/seqbind.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_SEQBIND_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_SEQBIND_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "seq.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file seqbind.h
 | 
				
			||||||
 | 
					 * @brief Functions for binding sequencer objects to other subsystems.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					fluid_seq_id_t fluid_sequencer_register_fluidsynth(fluid_sequencer_t* seq, fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int
 | 
				
			||||||
 | 
					fluid_sequencer_add_midi_event_to_buffer(void* data, fluid_midi_event_t* event);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_SEQBIND_H */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										220
									
								
								Builds/MacOSX/include/fluidsynth/settings.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										220
									
								
								Builds/MacOSX/include/fluidsynth/settings.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,220 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_SETTINGS_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_SETTINGS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file settings.h
 | 
				
			||||||
 | 
					 * @brief Synthesizer settings
 | 
				
			||||||
 | 
					 * @defgroup SettingsFunctions Functions for settings management
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * To create a synthesizer object you will have to specify its
 | 
				
			||||||
 | 
					 * settings. These settings are stored in a fluid_settings_t object.
 | 
				
			||||||
 | 
					 * @code
 | 
				
			||||||
 | 
					 *     void
 | 
				
			||||||
 | 
					 *     my_synthesizer ()
 | 
				
			||||||
 | 
					 *     {
 | 
				
			||||||
 | 
					 *       fluid_settings_t *settings;
 | 
				
			||||||
 | 
					 *       fluid_synth_t *synth;
 | 
				
			||||||
 | 
					 *       fluid_audio_driver_t *adriver;
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *       settings = new_fluid_settings ();
 | 
				
			||||||
 | 
					 *       fluid_settings_setstr(settings, "audio.driver", "alsa");
 | 
				
			||||||
 | 
					 *       // ... change settings ...
 | 
				
			||||||
 | 
					 *       synth = new_fluid_synth (settings);
 | 
				
			||||||
 | 
					 *       adriver = new_fluid_audio_driver (settings, synth);
 | 
				
			||||||
 | 
					 *       // ...
 | 
				
			||||||
 | 
					 *     }
 | 
				
			||||||
 | 
					 * @endcode
 | 
				
			||||||
 | 
					 * @sa @ref CreatingSettings
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Hint FLUID_HINT_BOUNDED_BELOW indicates that the LowerBound field
 | 
				
			||||||
 | 
					 * of the FLUID_PortRangeHint should be considered meaningful. The
 | 
				
			||||||
 | 
					 * value in this field should be considered the (inclusive) lower
 | 
				
			||||||
 | 
					 * bound of the valid range. If FLUID_HINT_SAMPLE_RATE is also
 | 
				
			||||||
 | 
					 * specified then the value of LowerBound should be multiplied by the
 | 
				
			||||||
 | 
					 * sample rate.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define FLUID_HINT_BOUNDED_BELOW   0x1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** Hint FLUID_HINT_BOUNDED_ABOVE indicates that the UpperBound field
 | 
				
			||||||
 | 
					   of the FLUID_PortRangeHint should be considered meaningful. The
 | 
				
			||||||
 | 
					   value in this field should be considered the (inclusive) upper
 | 
				
			||||||
 | 
					   bound of the valid range. If FLUID_HINT_SAMPLE_RATE is also
 | 
				
			||||||
 | 
					   specified then the value of UpperBound should be multiplied by the
 | 
				
			||||||
 | 
					   sample rate. */
 | 
				
			||||||
 | 
					#define FLUID_HINT_BOUNDED_ABOVE   0x2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Hint FLUID_HINT_TOGGLED indicates that the data item should be
 | 
				
			||||||
 | 
					 * considered a Boolean toggle. Data less than or equal to zero should
 | 
				
			||||||
 | 
					 * be considered `off' or `false,' and data above zero should be
 | 
				
			||||||
 | 
					 * considered `on' or `true.' FLUID_HINT_TOGGLED may not be used in
 | 
				
			||||||
 | 
					 * conjunction with any other hint.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define FLUID_HINT_TOGGLED         0x4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Hint FLUID_HINT_SAMPLE_RATE indicates that any bounds specified
 | 
				
			||||||
 | 
					 * should be interpreted as multiples of the sample rate. For
 | 
				
			||||||
 | 
					 * instance, a frequency range from 0Hz to the Nyquist frequency (half
 | 
				
			||||||
 | 
					 * the sample rate) could be requested by this hint in conjunction
 | 
				
			||||||
 | 
					 * with LowerBound = 0 and UpperBound = 0.5. Hosts that support bounds
 | 
				
			||||||
 | 
					 * at all must support this hint to retain meaning.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define FLUID_HINT_SAMPLE_RATE     0x8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Hint FLUID_HINT_LOGARITHMIC indicates that it is likely that the
 | 
				
			||||||
 | 
					 * user will find it more intuitive to view values using a logarithmic
 | 
				
			||||||
 | 
					 * scale. This is particularly useful for frequencies and gains.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define FLUID_HINT_LOGARITHMIC     0x10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Hint FLUID_HINT_INTEGER indicates that a user interface would
 | 
				
			||||||
 | 
					 * probably wish to provide a stepped control taking only integer
 | 
				
			||||||
 | 
					 * values.
 | 
				
			||||||
 | 
					 * @deprecated
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * As there is an integer setting type, this hint is not used.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define FLUID_HINT_INTEGER         0x20
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FLUID_HINT_FILENAME        0x01         /**< String setting is a file name */
 | 
				
			||||||
 | 
					#define FLUID_HINT_OPTIONLIST      0x02         /**< Setting is a list of string options */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Settings type
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Each setting has a defined type: numeric (double), integer, string or a
 | 
				
			||||||
 | 
					 * set of values. The type of each setting can be retrieved using the
 | 
				
			||||||
 | 
					 * function fluid_settings_get_type()
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					enum fluid_types_enum {
 | 
				
			||||||
 | 
					  FLUID_NO_TYPE = -1, /**< Undefined type */
 | 
				
			||||||
 | 
					  FLUID_NUM_TYPE,     /**< Numeric (double) */
 | 
				
			||||||
 | 
					  FLUID_INT_TYPE,     /**< Integer */
 | 
				
			||||||
 | 
					  FLUID_STR_TYPE,     /**< String */
 | 
				
			||||||
 | 
					  FLUID_SET_TYPE      /**< Set of values */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_settings_t* new_fluid_settings(void);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void delete_fluid_settings(fluid_settings_t* settings);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_settings_get_type(fluid_settings_t* settings, const char *name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_settings_get_hints(fluid_settings_t* settings, const char *name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_settings_is_realtime(fluid_settings_t* settings, const char *name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_settings_setstr(fluid_settings_t* settings, const char *name, const char *str);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_settings_copystr(fluid_settings_t* settings, const char *name, char *str, int len);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_settings_dupstr(fluid_settings_t* settings, const char *name, char** str);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					FLUID_DEPRECATED
 | 
				
			||||||
 | 
					int fluid_settings_getstr(fluid_settings_t* settings, const char *name, char** str);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					char* fluid_settings_getstr_default(fluid_settings_t* settings, const char *name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_settings_str_equal(fluid_settings_t* settings, const char *name, const char *value);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_settings_setnum(fluid_settings_t* settings, const char *name, double val);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_settings_getnum(fluid_settings_t* settings, const char *name, double* val);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					double fluid_settings_getnum_default(fluid_settings_t* settings, const char *name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					void fluid_settings_getnum_range(fluid_settings_t* settings, const char *name,
 | 
				
			||||||
 | 
									double* min, double* max);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_settings_setint(fluid_settings_t* settings, const char *name, int val);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_settings_getint(fluid_settings_t* settings, const char *name, int* val);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_settings_getint_default(fluid_settings_t* settings, const char *name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					void fluid_settings_getint_range(fluid_settings_t* settings, const char *name,
 | 
				
			||||||
 | 
									int* min, int* max);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Callback function type used with fluid_settings_foreach_option()
 | 
				
			||||||
 | 
					 * @param data User defined data pointer
 | 
				
			||||||
 | 
					 * @param name Setting name
 | 
				
			||||||
 | 
					 * @param option A string option for this setting (iterates through the list)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef void (*fluid_settings_foreach_option_t)(void *data, char *name, char *option);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					void fluid_settings_foreach_option(fluid_settings_t* settings,
 | 
				
			||||||
 | 
									  const char* name, void* data,
 | 
				
			||||||
 | 
									  fluid_settings_foreach_option_t func);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_settings_option_count (fluid_settings_t* settings, const char* name);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API char *fluid_settings_option_concat (fluid_settings_t* settings,
 | 
				
			||||||
 | 
					                                                   const char* name,
 | 
				
			||||||
 | 
					                                                   const char* separator);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Callback function type used with fluid_settings_foreach()
 | 
				
			||||||
 | 
					 * @param data User defined data pointer
 | 
				
			||||||
 | 
					 * @param name Setting name
 | 
				
			||||||
 | 
					 * @param type Setting type (#fluid_types_enum)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef void (*fluid_settings_foreach_t)(void *data, char *name, int type);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					void fluid_settings_foreach(fluid_settings_t* settings, void* data,
 | 
				
			||||||
 | 
								   fluid_settings_foreach_t func);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_SETTINGS_H */
 | 
				
			||||||
							
								
								
									
										282
									
								
								Builds/MacOSX/include/fluidsynth/sfont.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										282
									
								
								Builds/MacOSX/include/fluidsynth/sfont.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,282 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_SFONT_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_SFONT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file sfont.h
 | 
				
			||||||
 | 
					 * @brief SoundFont plugins
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * It is possible to add new SoundFont loaders to the
 | 
				
			||||||
 | 
					 * synthesizer. The API uses a couple of "interfaces" (structures
 | 
				
			||||||
 | 
					 * with callback functions): #fluid_sfloader_t, #fluid_sfont_t, and
 | 
				
			||||||
 | 
					 * #fluid_preset_t.  This API allows for virtual SoundFont files to be loaded
 | 
				
			||||||
 | 
					 * and synthesized, which may not actually be SoundFont files, as long as they
 | 
				
			||||||
 | 
					 * can be represented by the SoundFont synthesis model.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * To add a new SoundFont loader to the synthesizer, call
 | 
				
			||||||
 | 
					 * fluid_synth_add_sfloader() and pass a pointer to an
 | 
				
			||||||
 | 
					 * fluid_sfloader_t structure. The important callback function in
 | 
				
			||||||
 | 
					 * this structure is "load", which should try to load a file and
 | 
				
			||||||
 | 
					 * returns a #fluid_sfont_t structure, or NULL if it fails.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The #fluid_sfont_t structure contains a callback to obtain the
 | 
				
			||||||
 | 
					 * name of the SoundFont. It contains two functions to iterate
 | 
				
			||||||
 | 
					 * though the contained presets, and one function to obtain a
 | 
				
			||||||
 | 
					 * preset corresponding to a bank and preset number. This
 | 
				
			||||||
 | 
					 * function should return a #fluid_preset_t structure.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The #fluid_preset_t structure contains some functions to obtain
 | 
				
			||||||
 | 
					 * information from the preset (name, bank, number). The most
 | 
				
			||||||
 | 
					 * important callback is the noteon function. The noteon function
 | 
				
			||||||
 | 
					 * should call fluid_synth_alloc_voice() for every sample that has
 | 
				
			||||||
 | 
					 * to be played. fluid_synth_alloc_voice() expects a pointer to a
 | 
				
			||||||
 | 
					 * #fluid_sample_t structure and returns a pointer to the opaque
 | 
				
			||||||
 | 
					 * #fluid_voice_t structure. To set or increment the values of a
 | 
				
			||||||
 | 
					 * generator, use fluid_voice_gen_set() or fluid_voice_gen_incr(). When you are
 | 
				
			||||||
 | 
					 * finished initializing the voice call fluid_voice_start() to
 | 
				
			||||||
 | 
					 * start playing the synthesis voice.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Some notification enums for presets and samples.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					enum {
 | 
				
			||||||
 | 
					  FLUID_PRESET_SELECTED,                /**< Preset selected notify */
 | 
				
			||||||
 | 
					  FLUID_PRESET_UNSELECTED,              /**< Preset unselected notify */
 | 
				
			||||||
 | 
					  FLUID_SAMPLE_DONE                     /**< Sample no longer needed notify */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * SoundFont loader structure.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					struct _fluid_sfloader_t {
 | 
				
			||||||
 | 
					  void* data;           /**< User defined data pointer used by _fluid_sfloader_t::load() */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * The free method should free the memory allocated for the loader in
 | 
				
			||||||
 | 
					   * addition to any private data.
 | 
				
			||||||
 | 
					   * @param loader SoundFont loader
 | 
				
			||||||
 | 
					   * @return Should return 0 if no error occured, non-zero otherwise
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  int (*free)(fluid_sfloader_t* loader);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Method to load an instrument file (does not actually need to be a real file name,
 | 
				
			||||||
 | 
					   * could be another type of string identifier that the \a loader understands).
 | 
				
			||||||
 | 
					   * @param loader SoundFont loader
 | 
				
			||||||
 | 
					   * @param filename File name or other string identifier
 | 
				
			||||||
 | 
					   * @return The loaded instrument file (SoundFont) or NULL if an error occured.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  fluid_sfont_t* (*load)(fluid_sfloader_t* loader, const char* filename);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Virtual SoundFont instance structure.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					struct _fluid_sfont_t {
 | 
				
			||||||
 | 
					  void* data;           /**< User defined data */
 | 
				
			||||||
 | 
					  unsigned int id;      /**< SoundFont ID */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Method to free a virtual SoundFont bank.
 | 
				
			||||||
 | 
					   * @param sfont Virtual SoundFont to free.
 | 
				
			||||||
 | 
					   * @return Should return 0 when it was able to free all resources or non-zero
 | 
				
			||||||
 | 
					   *   if some of the samples could not be freed because they are still in use,
 | 
				
			||||||
 | 
					   *   in which case the free will be tried again later, until success.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  int (*free)(fluid_sfont_t* sfont);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Method to return the name of a virtual SoundFont.
 | 
				
			||||||
 | 
					   * @param sfont Virtual SoundFont
 | 
				
			||||||
 | 
					   * @return The name of the virtual SoundFont.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  char* (*get_name)(fluid_sfont_t* sfont);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Get a virtual SoundFont preset by bank and program numbers.
 | 
				
			||||||
 | 
					   * @param sfont Virtual SoundFont
 | 
				
			||||||
 | 
					   * @param bank MIDI bank number (0-16383)
 | 
				
			||||||
 | 
					   * @param prenum MIDI preset number (0-127)
 | 
				
			||||||
 | 
					   * @return Should return an allocated virtual preset or NULL if it could not
 | 
				
			||||||
 | 
					   *   be found.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  fluid_preset_t* (*get_preset)(fluid_sfont_t* sfont, unsigned int bank, unsigned int prenum);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Start virtual SoundFont preset iteration method.
 | 
				
			||||||
 | 
					   * @param sfont Virtual SoundFont
 | 
				
			||||||
 | 
					   *
 | 
				
			||||||
 | 
					   * Starts/re-starts virtual preset iteration in a SoundFont.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  void (*iteration_start)(fluid_sfont_t* sfont);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Virtual SoundFont preset iteration function.
 | 
				
			||||||
 | 
					   * @param sfont Virtual SoundFont
 | 
				
			||||||
 | 
					   * @param preset Caller supplied preset to fill in with current preset information
 | 
				
			||||||
 | 
					   * @return 0 when no more presets are available, 1 otherwise
 | 
				
			||||||
 | 
					   *
 | 
				
			||||||
 | 
					   * Should store preset information to the caller supplied \a preset structure
 | 
				
			||||||
 | 
					   * and advance the internal iteration state to the next preset for subsequent
 | 
				
			||||||
 | 
					   * calls.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  int (*iteration_next)(fluid_sfont_t* sfont, fluid_preset_t* preset);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define fluid_sfont_get_id(_sf) ((_sf)->id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Virtual SoundFont preset.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					struct _fluid_preset_t {
 | 
				
			||||||
 | 
					  void* data;                                   /**< User supplied data */
 | 
				
			||||||
 | 
					  fluid_sfont_t* sfont;                         /**< Parent virtual SoundFont */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Method to free a virtual SoundFont preset.
 | 
				
			||||||
 | 
					   * @param preset Virtual SoundFont preset
 | 
				
			||||||
 | 
					   * @return Should return 0
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  int (*free)(fluid_preset_t* preset);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Method to get a virtual SoundFont preset name.
 | 
				
			||||||
 | 
					   * @param preset Virtual SoundFont preset
 | 
				
			||||||
 | 
					   * @return Should return the name of the preset.  The returned string must be
 | 
				
			||||||
 | 
					   *   valid for the duration of the virtual preset (or the duration of the
 | 
				
			||||||
 | 
					   *   SoundFont, in the case of preset iteration).
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  char* (*get_name)(fluid_preset_t* preset);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Method to get a virtual SoundFont preset MIDI bank number.
 | 
				
			||||||
 | 
					   * @param preset Virtual SoundFont preset
 | 
				
			||||||
 | 
					   * @param return The bank number of the preset
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  int (*get_banknum)(fluid_preset_t* preset);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Method to get a virtual SoundFont preset MIDI program number.
 | 
				
			||||||
 | 
					   * @param preset Virtual SoundFont preset
 | 
				
			||||||
 | 
					   * @param return The program number of the preset
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  int (*get_num)(fluid_preset_t* preset);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Method to handle a noteon event (synthesize the instrument).
 | 
				
			||||||
 | 
					   * @param preset Virtual SoundFont preset
 | 
				
			||||||
 | 
					   * @param synth Synthesizer instance
 | 
				
			||||||
 | 
					   * @param chan MIDI channel number of the note on event
 | 
				
			||||||
 | 
					   * @param key MIDI note number (0-127)
 | 
				
			||||||
 | 
					   * @param vel MIDI velocity (0-127)
 | 
				
			||||||
 | 
					   * @return #FLUID_OK on success (0) or #FLUID_FAILED (-1) otherwise
 | 
				
			||||||
 | 
					   *
 | 
				
			||||||
 | 
					   * This method may be called from within synthesis context and therefore
 | 
				
			||||||
 | 
					   * should be as efficient as possible and not perform any operations considered
 | 
				
			||||||
 | 
					   * bad for realtime audio output (memory allocations and other OS calls).
 | 
				
			||||||
 | 
					   *
 | 
				
			||||||
 | 
					   * Call fluid_synth_alloc_voice() for every sample that has
 | 
				
			||||||
 | 
					   * to be played. fluid_synth_alloc_voice() expects a pointer to a
 | 
				
			||||||
 | 
					   * #fluid_sample_t structure and returns a pointer to the opaque
 | 
				
			||||||
 | 
					   * #fluid_voice_t structure. To set or increment the values of a
 | 
				
			||||||
 | 
					   * generator, use fluid_voice_gen_set() or fluid_voice_gen_incr(). When you are
 | 
				
			||||||
 | 
					   * finished initializing the voice call fluid_voice_start() to
 | 
				
			||||||
 | 
					   * start playing the synthesis voice.  Starting with FluidSynth 1.1.0 all voices
 | 
				
			||||||
 | 
					   * created will be started at the same time.
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  int (*noteon)(fluid_preset_t* preset, fluid_synth_t* synth, int chan, int key, int vel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Virtual SoundFont preset notify method.
 | 
				
			||||||
 | 
					   * @param preset Virtual SoundFont preset
 | 
				
			||||||
 | 
					   * @param reason #FLUID_PRESET_SELECTED or #FLUID_PRESET_UNSELECTED
 | 
				
			||||||
 | 
					   * @param chan MIDI channel number
 | 
				
			||||||
 | 
					   * @return Should return #FLUID_OK
 | 
				
			||||||
 | 
					   *
 | 
				
			||||||
 | 
					   * Implement this optional method if the preset needs to be notified about
 | 
				
			||||||
 | 
					   * preset select and unselect events.
 | 
				
			||||||
 | 
					   *
 | 
				
			||||||
 | 
					   * This method may be called from within synthesis context and therefore
 | 
				
			||||||
 | 
					   * should be as efficient as possible and not perform any operations considered
 | 
				
			||||||
 | 
					   * bad for realtime audio output (memory allocations and other OS calls).
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  int (*notify)(fluid_preset_t* preset, int reason, int chan);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Virtual SoundFont sample.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					struct _fluid_sample_t
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  char name[21];                /**< Sample name */
 | 
				
			||||||
 | 
					  unsigned int start;           /**< Start index */
 | 
				
			||||||
 | 
					  unsigned int end;	        /**< End index, index of last valid sample point (contrary to SF spec) */
 | 
				
			||||||
 | 
					  unsigned int loopstart;       /**< Loop start index */
 | 
				
			||||||
 | 
					  unsigned int loopend;         /**< Loop end index, first point following the loop (superimposed on loopstart) */
 | 
				
			||||||
 | 
					  unsigned int samplerate;      /**< Sample rate */
 | 
				
			||||||
 | 
					  int origpitch;                /**< Original pitch (MIDI note number, 0-127) */
 | 
				
			||||||
 | 
					  int pitchadj;                 /**< Fine pitch adjustment (+/- 99 cents) */
 | 
				
			||||||
 | 
					  int sampletype;               /**< Values: #FLUID_SAMPLETYPE_MONO, FLUID_SAMPLETYPE_RIGHT, FLUID_SAMPLETYPE_LEFT, FLUID_SAMPLETYPE_ROM */
 | 
				
			||||||
 | 
					  int valid;                    /**< Should be TRUE if sample data is valid, FALSE otherwise (in which case it will not be synthesized) */
 | 
				
			||||||
 | 
					  short* data;                  /**< Pointer to the sample's data */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int amplitude_that_reaches_noise_floor_is_valid;      /**< Indicates if \a amplitude_that_reaches_noise_floor is valid (TRUE), set to FALSE initially to calculate. */
 | 
				
			||||||
 | 
					  double amplitude_that_reaches_noise_floor;            /**< The amplitude at which the sample's loop will be below the noise floor.  For voice off optimization, calculated automatically. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  unsigned int refcount;        /**< Count of voices using this sample (use #fluid_sample_refcount to access this field) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Implement this function to receive notification when sample is no longer used.
 | 
				
			||||||
 | 
					   * @param sample Virtual SoundFont sample
 | 
				
			||||||
 | 
					   * @param reason #FLUID_SAMPLE_DONE only currently
 | 
				
			||||||
 | 
					   * @return Should return #FLUID_OK
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  int (*notify)(fluid_sample_t* sample, int reason);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void* userdata;       /**< User defined data */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define fluid_sample_refcount(_sample) ((_sample)->refcount)    /**< Get the reference count of a sample.  Should only be called from within synthesis context (noteon method for example) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FLUID_SAMPLETYPE_MONO	1       /**< Flag for #fluid_sample_t \a sampletype field for mono samples */
 | 
				
			||||||
 | 
					#define FLUID_SAMPLETYPE_RIGHT	2       /**< Flag for #fluid_sample_t \a sampletype field for right samples of a stereo pair */
 | 
				
			||||||
 | 
					#define FLUID_SAMPLETYPE_LEFT	4       /**< Flag for #fluid_sample_t \a sampletype field for left samples of a stereo pair */
 | 
				
			||||||
 | 
					#define FLUID_SAMPLETYPE_LINKED	8       /**< Flag for #fluid_sample_t \a sampletype field, not used currently */
 | 
				
			||||||
 | 
					#define FLUID_SAMPLETYPE_OGG_VORBIS	0x10 /**< Flag for #fluid_sample_t \a sampletype field for Ogg Vorbis compressed samples @since 1.1.7 */
 | 
				
			||||||
 | 
					#define FLUID_SAMPLETYPE_ROM	0x8000  /**< Flag for #fluid_sample_t \a sampletype field, ROM sample, causes sample to be ignored */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_SFONT_H */
 | 
				
			||||||
							
								
								
									
										131
									
								
								Builds/MacOSX/include/fluidsynth/shell.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								Builds/MacOSX/include/fluidsynth/shell.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,131 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_SHELL_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_SHELL_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file shell.h
 | 
				
			||||||
 | 
					 * @brief Command shell interface
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The shell interface allows you to send simple textual commands to
 | 
				
			||||||
 | 
					 * the synthesizer, to parse a command file, or to read commands
 | 
				
			||||||
 | 
					 * from the stdin or other input streams.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_istream_t fluid_get_stdin(void);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_ostream_t fluid_get_stdout(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API char* fluid_get_userconf(char* buf, int len);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API char* fluid_get_sysconf(char* buf, int len);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Command handler function prototype.
 | 
				
			||||||
 | 
					 * @param data User defined data
 | 
				
			||||||
 | 
					 * @param ac Argument count
 | 
				
			||||||
 | 
					 * @param av Array of string arguments
 | 
				
			||||||
 | 
					 * @param out Output stream to send response to
 | 
				
			||||||
 | 
					 * @return Should return #FLUID_OK on success, #FLUID_FAILED otherwise
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef int (*fluid_cmd_func_t)(void* data, int ac, char** av, fluid_ostream_t out);  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Shell command information structure.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  char* name;                           /**< The name of the command, as typed in the shell */
 | 
				
			||||||
 | 
					  char* topic;                          /**< The help topic group of this command */ 
 | 
				
			||||||
 | 
					  fluid_cmd_func_t handler;             /**< Pointer to the handler for this command */
 | 
				
			||||||
 | 
					  void* data;                           /**< User data passed to the handler */
 | 
				
			||||||
 | 
					  char* help;                           /**< A help string */
 | 
				
			||||||
 | 
					} fluid_cmd_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The command handler */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					fluid_cmd_handler_t* new_fluid_cmd_handler(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					void delete_fluid_cmd_handler(fluid_cmd_handler_t* handler);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					void fluid_cmd_handler_set_synth(fluid_cmd_handler_t* handler, fluid_synth_t* synth);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					int fluid_cmd_handler_register(fluid_cmd_handler_t* handler, fluid_cmd_t* cmd);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					int fluid_cmd_handler_unregister(fluid_cmd_handler_t* handler, const char *cmd);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Command function */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					int fluid_command(fluid_cmd_handler_t* handler, const char *cmd, fluid_ostream_t out);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					int fluid_source(fluid_cmd_handler_t* handler, const char *filename);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					void fluid_usershell(fluid_settings_t* settings, fluid_cmd_handler_t* handler);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Shell */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					fluid_shell_t* new_fluid_shell(fluid_settings_t* settings, fluid_cmd_handler_t* handler,
 | 
				
			||||||
 | 
								     fluid_istream_t in, fluid_ostream_t out, int thread);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void delete_fluid_shell(fluid_shell_t* shell);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TCP/IP server */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Callback function which is executed for new server connections.
 | 
				
			||||||
 | 
					 * @param data User defined data supplied in call to new_fluid_server()
 | 
				
			||||||
 | 
					 * @param addr The IP address of the client (can be NULL)
 | 
				
			||||||
 | 
					 * @return Should return a new command handler for the connection (new_fluid_cmd_handler()).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef fluid_cmd_handler_t* (*fluid_server_newclient_func_t)(void* data, char* addr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					fluid_server_t* new_fluid_server(fluid_settings_t* settings, 
 | 
				
			||||||
 | 
								       fluid_server_newclient_func_t func,
 | 
				
			||||||
 | 
								       void* data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void delete_fluid_server(fluid_server_t* server);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_server_join(fluid_server_t* server);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_SHELL_H */
 | 
				
			||||||
							
								
								
									
										327
									
								
								Builds/MacOSX/include/fluidsynth/synth.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										327
									
								
								Builds/MacOSX/include/fluidsynth/synth.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,327 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_SYNTH_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_SYNTH_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file synth.h
 | 
				
			||||||
 | 
					 * @brief Embeddable SoundFont synthesizer
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You create a new synthesizer with new_fluid_synth() and you destroy
 | 
				
			||||||
 | 
					 * if with delete_fluid_synth(). Use the settings structure to specify
 | 
				
			||||||
 | 
					 * the synthesizer characteristics. 
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You have to load a SoundFont in order to hear any sound. For that
 | 
				
			||||||
 | 
					 * you use the fluid_synth_sfload() function.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You can use the audio driver functions described below to open
 | 
				
			||||||
 | 
					 * the audio device and create a background audio thread.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * The API for sending MIDI events is probably what you expect:
 | 
				
			||||||
 | 
					 * fluid_synth_noteon(), fluid_synth_noteoff(), ...
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FLUID_SYNTH_CHANNEL_INFO_NAME_SIZE   32    /**< Length of channel info name field (including zero terminator) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Channel information structure for fluid_synth_get_channel_info().
 | 
				
			||||||
 | 
					 * @since 1.1.1
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					struct _fluid_synth_channel_info_t
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int assigned : 1;     /**< TRUE if a preset is assigned, FALSE otherwise */
 | 
				
			||||||
 | 
					  /* Reserved flag bits (at the least 31) */
 | 
				
			||||||
 | 
					  int sfont_id;         /**< ID of parent SoundFont */
 | 
				
			||||||
 | 
					  int bank;             /**< MIDI bank number (0-16383) */
 | 
				
			||||||
 | 
					  int program;          /**< MIDI program number (0-127) */
 | 
				
			||||||
 | 
					  char name[FLUID_SYNTH_CHANNEL_INFO_NAME_SIZE];     /**< Channel preset name */
 | 
				
			||||||
 | 
					  char reserved[32];    /**< Reserved data for future expansion */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_synth_t* new_fluid_synth(fluid_settings_t* settings);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int delete_fluid_synth(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_settings_t* fluid_synth_get_settings(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* MIDI channel messages */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_noteon(fluid_synth_t* synth, int chan, int key, int vel);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_noteoff(fluid_synth_t* synth, int chan, int key);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_cc(fluid_synth_t* synth, int chan, int ctrl, int val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_get_cc(fluid_synth_t* synth, int chan, int ctrl, int* pval);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_sysex(fluid_synth_t *synth, const char *data, int len,
 | 
				
			||||||
 | 
					                                     char *response, int *response_len, int *handled, int dryrun);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_pitch_bend(fluid_synth_t* synth, int chan, int val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_get_pitch_bend(fluid_synth_t* synth, int chan, int* ppitch_bend);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_pitch_wheel_sens(fluid_synth_t* synth, int chan, int val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_get_pitch_wheel_sens(fluid_synth_t* synth, int chan, int* pval);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_program_change(fluid_synth_t* synth, int chan, int program);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_channel_pressure(fluid_synth_t* synth, int chan, int val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_bank_select(fluid_synth_t* synth, int chan, unsigned int bank);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_sfont_select(fluid_synth_t* synth, int chan, unsigned int sfont_id);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_synth_program_select(fluid_synth_t* synth, int chan, unsigned int sfont_id,
 | 
				
			||||||
 | 
					                               unsigned int bank_num, unsigned int preset_num);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int
 | 
				
			||||||
 | 
					fluid_synth_program_select_by_sfont_name (fluid_synth_t* synth, int chan,
 | 
				
			||||||
 | 
					                                          const char *sfont_name, unsigned int bank_num,
 | 
				
			||||||
 | 
					                                          unsigned int preset_num);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					int fluid_synth_get_program(fluid_synth_t* synth, int chan, unsigned int* sfont_id, 
 | 
				
			||||||
 | 
					                            unsigned int* bank_num, unsigned int* preset_num);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_unset_program (fluid_synth_t *synth, int chan);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					FLUID_DEPRECATED 
 | 
				
			||||||
 | 
					int fluid_synth_get_channel_info (fluid_synth_t *synth, int chan, fluid_synth_channel_info_t *info);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_program_reset(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_system_reset(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_all_notes_off(fluid_synth_t* synth, int chan);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_all_sounds_off(fluid_synth_t* synth, int chan);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * The midi channel type used by fluid_synth_set_channel_type()
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					enum fluid_midi_channel_type
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  CHANNEL_TYPE_MELODIC = 0, /**< Melodic midi channel */
 | 
				
			||||||
 | 
					  CHANNEL_TYPE_DRUM = 1 /**< Drum midi channel */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_set_channel_type(fluid_synth_t* synth, int chan, int type);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Low level access */
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_preset_t* fluid_synth_get_channel_preset(fluid_synth_t* synth, int chan);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_start(fluid_synth_t* synth, unsigned int id, 
 | 
				
			||||||
 | 
									     fluid_preset_t* preset, int audio_chan, 
 | 
				
			||||||
 | 
									     int midi_chan, int key, int vel);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_stop(fluid_synth_t* synth, unsigned int id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* SoundFont management */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					int fluid_synth_sfload(fluid_synth_t* synth, const char* filename, int reset_presets);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_sfreload(fluid_synth_t* synth, unsigned int id);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_sfunload(fluid_synth_t* synth, unsigned int id, int reset_presets);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_add_sfont(fluid_synth_t* synth, fluid_sfont_t* sfont);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_synth_remove_sfont(fluid_synth_t* synth, fluid_sfont_t* sfont);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_sfcount(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_sfont_t* fluid_synth_get_sfont(fluid_synth_t* synth, unsigned int num);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_sfont_t* fluid_synth_get_sfont_by_id(fluid_synth_t* synth, unsigned int id);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_sfont_t *fluid_synth_get_sfont_by_name (fluid_synth_t* synth,
 | 
				
			||||||
 | 
					                                                             const char *name);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_set_bank_offset(fluid_synth_t* synth, int sfont_id, int offset);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_get_bank_offset(fluid_synth_t* synth, int sfont_id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Reverb  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_synth_set_reverb(fluid_synth_t* synth, double roomsize, 
 | 
				
			||||||
 | 
										   double damping, double width, double level);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_synth_set_reverb_on(fluid_synth_t* synth, int on);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API double fluid_synth_get_reverb_roomsize(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API double fluid_synth_get_reverb_damp(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API double fluid_synth_get_reverb_level(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API double fluid_synth_get_reverb_width(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FLUID_REVERB_DEFAULT_ROOMSIZE 0.2f      /**< Default reverb room size */
 | 
				
			||||||
 | 
					#define FLUID_REVERB_DEFAULT_DAMP 0.0f          /**< Default reverb damping */
 | 
				
			||||||
 | 
					#define FLUID_REVERB_DEFAULT_WIDTH 0.5f         /**< Default reverb width */
 | 
				
			||||||
 | 
					#define FLUID_REVERB_DEFAULT_LEVEL 0.9f         /**< Default reverb level */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Chorus */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Chorus modulation waveform type.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					enum fluid_chorus_mod {
 | 
				
			||||||
 | 
					  FLUID_CHORUS_MOD_SINE = 0,            /**< Sine wave chorus modulation */
 | 
				
			||||||
 | 
					  FLUID_CHORUS_MOD_TRIANGLE = 1         /**< Triangle wave chorus modulation */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_synth_set_chorus(fluid_synth_t* synth, int nr, double level, 
 | 
				
			||||||
 | 
										 double speed, double depth_ms, int type);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_synth_set_chorus_on(fluid_synth_t* synth, int on);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_get_chorus_nr(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API double fluid_synth_get_chorus_level(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API double fluid_synth_get_chorus_speed_Hz(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API double fluid_synth_get_chorus_depth_ms(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_get_chorus_type(fluid_synth_t* synth); /* see fluid_chorus_mod */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FLUID_CHORUS_DEFAULT_N 3                                /**< Default chorus voice count */
 | 
				
			||||||
 | 
					#define FLUID_CHORUS_DEFAULT_LEVEL 2.0f                         /**< Default chorus level */
 | 
				
			||||||
 | 
					#define FLUID_CHORUS_DEFAULT_SPEED 0.3f                         /**< Default chorus speed */
 | 
				
			||||||
 | 
					#define FLUID_CHORUS_DEFAULT_DEPTH 8.0f                         /**< Default chorus depth */
 | 
				
			||||||
 | 
					#define FLUID_CHORUS_DEFAULT_TYPE FLUID_CHORUS_MOD_SINE         /**< Default chorus waveform type */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Audio and MIDI channels */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_count_midi_channels(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_count_audio_channels(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_count_audio_groups(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_count_effects_channels(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Synthesis parameters */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_synth_set_sample_rate(fluid_synth_t* synth, float sample_rate);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_synth_set_gain(fluid_synth_t* synth, float gain);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API float fluid_synth_get_gain(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_set_polyphony(fluid_synth_t* synth, int polyphony);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_get_polyphony(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_get_active_voice_count(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_get_internal_bufsize(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					int fluid_synth_set_interp_method(fluid_synth_t* synth, int chan, int interp_method);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Synthesis interpolation method.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					enum fluid_interp {
 | 
				
			||||||
 | 
					  FLUID_INTERP_NONE = 0,        /**< No interpolation: Fastest, but questionable audio quality */
 | 
				
			||||||
 | 
					  FLUID_INTERP_LINEAR = 1,      /**< Straight-line interpolation: A bit slower, reasonable audio quality */
 | 
				
			||||||
 | 
					  FLUID_INTERP_4THORDER = 4,    /**< Fourth-order interpolation, good quality, the default */
 | 
				
			||||||
 | 
					  FLUID_INTERP_7THORDER = 7     /**< Seventh-order interpolation */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FLUID_INTERP_DEFAULT    FLUID_INTERP_4THORDER   /**< Default interpolation method from #fluid_interp. */
 | 
				
			||||||
 | 
					#define FLUID_INTERP_HIGHEST    FLUID_INTERP_7THORDER   /**< Highest interpolation method from #fluid_interp. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Generator interface */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					int fluid_synth_set_gen(fluid_synth_t* synth, int chan, int param, float value);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					FLUID_DEPRECATED
 | 
				
			||||||
 | 
					int fluid_synth_set_gen2 (fluid_synth_t* synth, int chan,
 | 
				
			||||||
 | 
					                                         int param, float value,
 | 
				
			||||||
 | 
					                                         int absolute, int normalized);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API float fluid_synth_get_gen(fluid_synth_t* synth, int chan, int param);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Tuning */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					FLUID_DEPRECATED 
 | 
				
			||||||
 | 
					int fluid_synth_create_key_tuning(fluid_synth_t* synth, int bank, int prog,
 | 
				
			||||||
 | 
									  const char* name, const double* pitch);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_synth_activate_key_tuning(fluid_synth_t* synth, int bank, int prog,
 | 
				
			||||||
 | 
					                                    const char* name, const double* pitch, int apply);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					FLUID_DEPRECATED 
 | 
				
			||||||
 | 
					int fluid_synth_create_octave_tuning(fluid_synth_t* synth, int bank, int prog,
 | 
				
			||||||
 | 
					                                     const char* name, const double* pitch);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_synth_activate_octave_tuning(fluid_synth_t* synth, int bank, int prog,
 | 
				
			||||||
 | 
					                                       const char* name, const double* pitch, int apply);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					int fluid_synth_tune_notes(fluid_synth_t* synth, int bank, int prog,
 | 
				
			||||||
 | 
								   int len, const int *keys, const double* pitch, int apply);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					FLUID_DEPRECATED 
 | 
				
			||||||
 | 
					int fluid_synth_select_tuning(fluid_synth_t* synth, int chan, int bank, int prog);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_synth_activate_tuning(fluid_synth_t* synth, int chan, int bank, int prog,
 | 
				
			||||||
 | 
					                                int apply);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					FLUID_DEPRECATED 
 | 
				
			||||||
 | 
					int fluid_synth_reset_tuning(fluid_synth_t* synth, int chan);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API
 | 
				
			||||||
 | 
					int fluid_synth_deactivate_tuning(fluid_synth_t* synth, int chan, int apply);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_synth_tuning_iteration_start(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					int fluid_synth_tuning_iteration_next(fluid_synth_t* synth, int* bank, int* prog);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_tuning_dump(fluid_synth_t* synth, int bank, int prog, 
 | 
				
			||||||
 | 
										   char* name, int len, double* pitch);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Misc */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API double fluid_synth_get_cpu_load(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API char* fluid_synth_error(fluid_synth_t* synth);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Synthesizer plugin
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * To create a synthesizer plugin, create the synthesizer as
 | 
				
			||||||
 | 
					 * explained above. Once the synthesizer is created you can call
 | 
				
			||||||
 | 
					 * any of the functions below to get the audio. 
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_write_s16(fluid_synth_t* synth, int len, 
 | 
				
			||||||
 | 
									       void* lout, int loff, int lincr, 
 | 
				
			||||||
 | 
									       void* rout, int roff, int rincr);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_write_float(fluid_synth_t* synth, int len, 
 | 
				
			||||||
 | 
										 void* lout, int loff, int lincr, 
 | 
				
			||||||
 | 
										 void* rout, int roff, int rincr);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_nwrite_float(fluid_synth_t* synth, int len, 
 | 
				
			||||||
 | 
										  float** left, float** right, 
 | 
				
			||||||
 | 
										  float** fx_left, float** fx_right);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_process(fluid_synth_t* synth, int len,
 | 
				
			||||||
 | 
									     int nin, float** in, 
 | 
				
			||||||
 | 
									     int nout, float** out);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Type definition of the synthesizer's audio callback function.
 | 
				
			||||||
 | 
					 * @param synth FluidSynth instance
 | 
				
			||||||
 | 
					 * @param len Count of audio frames to synthesize
 | 
				
			||||||
 | 
					 * @param out1 Array to store left channel of audio to
 | 
				
			||||||
 | 
					 * @param loff Offset index in 'out1' for first sample
 | 
				
			||||||
 | 
					 * @param lincr Increment between samples stored to 'out1'
 | 
				
			||||||
 | 
					 * @param out2 Array to store right channel of audio to
 | 
				
			||||||
 | 
					 * @param roff Offset index in 'out2' for first sample
 | 
				
			||||||
 | 
					 * @param rincr Increment between samples stored to 'out2'
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef int (*fluid_audio_callback_t)(fluid_synth_t* synth, int len, 
 | 
				
			||||||
 | 
									     void* out1, int loff, int lincr, 
 | 
				
			||||||
 | 
									     void* out2, int roff, int rincr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Synthesizer's interface to handle SoundFont loaders */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_synth_add_sfloader(fluid_synth_t* synth, fluid_sfloader_t* loader);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API fluid_voice_t* fluid_synth_alloc_voice(fluid_synth_t* synth, fluid_sample_t* sample,
 | 
				
			||||||
 | 
					                                                      int channum, int key, int vel);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_synth_start_voice(fluid_synth_t* synth, fluid_voice_t* voice);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_synth_get_voicelist(fluid_synth_t* synth,
 | 
				
			||||||
 | 
					                                              fluid_voice_t* buf[], int bufsize, int ID);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_synth_handle_midi_event(void* data, fluid_midi_event_t* event);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API 
 | 
				
			||||||
 | 
					FLUID_DEPRECATED 
 | 
				
			||||||
 | 
					void fluid_synth_set_midi_router(fluid_synth_t* synth, fluid_midi_router_t* router);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_SYNTH_H */
 | 
				
			||||||
							
								
								
									
										69
									
								
								Builds/MacOSX/include/fluidsynth/types.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								Builds/MacOSX/include/fluidsynth/types.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,69 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_TYPES_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_TYPES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file types.h
 | 
				
			||||||
 | 
					 * @brief Type declarations
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct _fluid_hashtable_t fluid_settings_t;             /**< Configuration settings instance */
 | 
				
			||||||
 | 
					typedef struct _fluid_synth_t fluid_synth_t;                    /**< Synthesizer instance */
 | 
				
			||||||
 | 
					typedef struct _fluid_synth_channel_info_t fluid_synth_channel_info_t;  /**< SoundFont channel info */
 | 
				
			||||||
 | 
					typedef struct _fluid_voice_t fluid_voice_t;                    /**< Synthesis voice instance */
 | 
				
			||||||
 | 
					typedef struct _fluid_sfloader_t fluid_sfloader_t;              /**< SoundFont loader plugin */
 | 
				
			||||||
 | 
					typedef struct _fluid_sfont_t fluid_sfont_t;                    /**< SoundFont */
 | 
				
			||||||
 | 
					typedef struct _fluid_preset_t fluid_preset_t;                  /**< SoundFont preset */
 | 
				
			||||||
 | 
					typedef struct _fluid_sample_t fluid_sample_t;                  /**< SoundFont sample */
 | 
				
			||||||
 | 
					typedef struct _fluid_mod_t fluid_mod_t;                        /**< SoundFont modulator */
 | 
				
			||||||
 | 
					typedef struct _fluid_audio_driver_t fluid_audio_driver_t;      /**< Audio driver instance */
 | 
				
			||||||
 | 
					typedef struct _fluid_file_renderer_t fluid_file_renderer_t;    /**< Audio file renderer instance */
 | 
				
			||||||
 | 
					typedef struct _fluid_player_t fluid_player_t;                  /**< MIDI player instance */
 | 
				
			||||||
 | 
					typedef struct _fluid_midi_event_t fluid_midi_event_t;          /**< MIDI event */
 | 
				
			||||||
 | 
					typedef struct _fluid_midi_driver_t fluid_midi_driver_t;        /**< MIDI driver instance */
 | 
				
			||||||
 | 
					typedef struct _fluid_midi_router_t fluid_midi_router_t;        /**< MIDI router instance */
 | 
				
			||||||
 | 
					typedef struct _fluid_midi_router_rule_t fluid_midi_router_rule_t;      /**< MIDI router rule */
 | 
				
			||||||
 | 
					typedef struct _fluid_hashtable_t fluid_cmd_handler_t;          /**< Command handler */
 | 
				
			||||||
 | 
					typedef struct _fluid_shell_t fluid_shell_t;                    /**< Command shell */
 | 
				
			||||||
 | 
					typedef struct _fluid_server_t fluid_server_t;                  /**< TCP/IP shell server instance */
 | 
				
			||||||
 | 
					typedef struct _fluid_event_t fluid_event_t;                    /**< Sequencer event */
 | 
				
			||||||
 | 
					typedef struct _fluid_sequencer_t fluid_sequencer_t;            /**< Sequencer instance */
 | 
				
			||||||
 | 
					typedef struct _fluid_ramsfont_t fluid_ramsfont_t;              /**< RAM SoundFont */
 | 
				
			||||||
 | 
					typedef struct _fluid_rampreset_t fluid_rampreset_t;            /**< RAM SoundFont preset */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef int fluid_istream_t;    /**< Input stream descriptor */
 | 
				
			||||||
 | 
					typedef int fluid_ostream_t;    /**< Output stream descriptor */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef short fluid_seq_id_t; /**< Unique client IDs used by the sequencer and #fluid_event_t, obtained by fluid_sequencer_register_client() and fluid_sequencer_register_fluidsynth() */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_TYPES_H */
 | 
				
			||||||
							
								
								
									
										47
									
								
								Builds/MacOSX/include/fluidsynth/version.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								Builds/MacOSX/include/fluidsynth/version.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_VERSION_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_VERSION_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file version.h
 | 
				
			||||||
 | 
					 * @brief Library version functions and defines
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FLUIDSYNTH_VERSION       "1.1.11"           /**< String constant of libfluidsynth version. */
 | 
				
			||||||
 | 
					#define FLUIDSYNTH_VERSION_MAJOR 1     /**< libfluidsynth major version integer constant. */
 | 
				
			||||||
 | 
					#define FLUIDSYNTH_VERSION_MINOR 1     /**< libfluidsynth minor version integer constant. */
 | 
				
			||||||
 | 
					#define FLUIDSYNTH_VERSION_MICRO 11     /**< libfluidsynth micro version integer constant. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_version(int *major, int *minor, int *micro);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API char* fluid_version_str(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_VERSION_H */
 | 
				
			||||||
							
								
								
									
										72
									
								
								Builds/MacOSX/include/fluidsynth/voice.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								Builds/MacOSX/include/fluidsynth/voice.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,72 @@
 | 
				
			|||||||
 | 
					/* FluidSynth - A Software Synthesizer
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (C) 2003  Peter Hanappe and others.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is free software; you can redistribute it and/or
 | 
				
			||||||
 | 
					 * modify it under the terms of the GNU Lesser General Public License
 | 
				
			||||||
 | 
					 * as published by the Free Software Foundation; either version 2.1 of
 | 
				
			||||||
 | 
					 * the License, or (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This library is distributed in the hope that it will be useful, but
 | 
				
			||||||
 | 
					 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
				
			||||||
 | 
					 * Lesser General Public License for more details.
 | 
				
			||||||
 | 
					 *  
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU Lesser General Public
 | 
				
			||||||
 | 
					 * License along with this library; if not, write to the Free
 | 
				
			||||||
 | 
					 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 | 
				
			||||||
 | 
					 * 02110-1301, USA
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FLUIDSYNTH_VOICE_H
 | 
				
			||||||
 | 
					#define _FLUIDSYNTH_VOICE_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @file voice.h
 | 
				
			||||||
 | 
					 * @brief Synthesis voice manipulation functions.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The interface to the synthesizer's voices.
 | 
				
			||||||
 | 
					 * Examples on using them can be found in fluid_defsfont.c.
 | 
				
			||||||
 | 
					 * Most of these functions should only be called from within synthesis context,
 | 
				
			||||||
 | 
					 * such as the SoundFont loader's noteon method.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_voice_update_param(fluid_voice_t* voice, int gen); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Enum used with fluid_voice_add_mod() to specify how to handle duplicate modulators.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					enum fluid_voice_add_mod {
 | 
				
			||||||
 | 
					  FLUID_VOICE_OVERWRITE,        /**< Overwrite any existing matching modulator */
 | 
				
			||||||
 | 
					  FLUID_VOICE_ADD,              /**< Add (sum) modulator amounts */
 | 
				
			||||||
 | 
					  FLUID_VOICE_DEFAULT           /**< For default modulators only, no need to check for duplicates */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_voice_add_mod(fluid_voice_t* voice, fluid_mod_t* mod, int mode);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_voice_gen_set(fluid_voice_t* voice, int gen, float val);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API float fluid_voice_gen_get(fluid_voice_t* voice, int gen);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API void fluid_voice_gen_incr(fluid_voice_t* voice, int gen, float val);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FLUIDSYNTH_API unsigned int fluid_voice_get_id(const fluid_voice_t* voice);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_voice_is_playing(const fluid_voice_t* voice);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_voice_is_on(const fluid_voice_t* voice);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_voice_is_sustained(const fluid_voice_t* voice);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_voice_is_sostenuto(const fluid_voice_t* voice);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_voice_get_channel(const fluid_voice_t* voice);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_voice_get_actual_key(const fluid_voice_t* voice);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_voice_get_key(const fluid_voice_t* voice);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_voice_get_actual_velocity(const fluid_voice_t* voice);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_voice_get_velocity(const fluid_voice_t* voice);
 | 
				
			||||||
 | 
					FLUIDSYNTH_API int fluid_voice_optimize_sample(fluid_sample_t* s);       
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _FLUIDSYNTH_VOICE_H */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1051,17 +1051,14 @@
 | 
				
			|||||||
					"~/SDKs/VST_SDK/VST3_SDK",
 | 
										"~/SDKs/VST_SDK/VST3_SDK",
 | 
				
			||||||
					../../JuceLibraryCode,
 | 
										../../JuceLibraryCode,
 | 
				
			||||||
					/Applications/JUCE/modules,
 | 
										/Applications/JUCE/modules,
 | 
				
			||||||
					/usr/local/include,
 | 
					 | 
				
			||||||
					/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
										/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
				
			||||||
					"$(inherited)",
 | 
										"$(inherited)",
 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
				INSTALL_PATH = "@executable_path/../Frameworks";
 | 
									INSTALL_PATH = "@executable_path/../Frameworks";
 | 
				
			||||||
 | 
									LD_RUNPATH_SEARCH_PATHS = "@loader_path/..";
 | 
				
			||||||
				MACOSX_DEPLOYMENT_TARGET = 10.11;
 | 
									MACOSX_DEPLOYMENT_TARGET = 10.11;
 | 
				
			||||||
				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
 | 
									MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
 | 
				
			||||||
				OTHER_LDFLAGS = (
 | 
									OTHER_LDFLAGS = "$(inherited)";
 | 
				
			||||||
					"-L/usr/local/lib",
 | 
					 | 
				
			||||||
					"-lfluidsynth",
 | 
					 | 
				
			||||||
				);
 | 
					 | 
				
			||||||
				PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
									PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
				
			||||||
				SDKROOT_ppc = macosx10.5;
 | 
									SDKROOT_ppc = macosx10.5;
 | 
				
			||||||
				USE_HEADERMAP = NO;
 | 
									USE_HEADERMAP = NO;
 | 
				
			||||||
@ -1104,7 +1101,12 @@
 | 
				
			|||||||
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
 | 
									GCC_WARN_UNINITIALIZED_AUTOS = YES;
 | 
				
			||||||
				GCC_WARN_UNUSED_FUNCTION = YES;
 | 
									GCC_WARN_UNUSED_FUNCTION = YES;
 | 
				
			||||||
				GCC_WARN_UNUSED_VARIABLE = YES;
 | 
									GCC_WARN_UNUSED_VARIABLE = YES;
 | 
				
			||||||
 | 
									HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/include";
 | 
				
			||||||
				ONLY_ACTIVE_ARCH = YES;
 | 
									ONLY_ACTIVE_ARCH = YES;
 | 
				
			||||||
 | 
									OTHER_LDFLAGS = (
 | 
				
			||||||
 | 
										"-L$(PROJECT_DIR)/lib_relinked",
 | 
				
			||||||
 | 
										"-lfluidsynth",
 | 
				
			||||||
 | 
									);
 | 
				
			||||||
				PRODUCT_NAME = juicysfplugin;
 | 
									PRODUCT_NAME = juicysfplugin;
 | 
				
			||||||
				WARNING_CFLAGS = "-Wreorder";
 | 
									WARNING_CFLAGS = "-Wreorder";
 | 
				
			||||||
				ZERO_LINK = NO;
 | 
									ZERO_LINK = NO;
 | 
				
			||||||
@ -1143,7 +1145,6 @@
 | 
				
			|||||||
					"~/SDKs/VST_SDK/VST3_SDK",
 | 
										"~/SDKs/VST_SDK/VST3_SDK",
 | 
				
			||||||
					../../JuceLibraryCode,
 | 
										../../JuceLibraryCode,
 | 
				
			||||||
					/Applications/JUCE/modules,
 | 
										/Applications/JUCE/modules,
 | 
				
			||||||
					/usr/local/include,
 | 
					 | 
				
			||||||
					/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
										/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
				
			||||||
					"$(inherited)",
 | 
										"$(inherited)",
 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
@ -1156,8 +1157,7 @@
 | 
				
			|||||||
				OTHER_LDFLAGS = (
 | 
									OTHER_LDFLAGS = (
 | 
				
			||||||
					"-bundle",
 | 
										"-bundle",
 | 
				
			||||||
					"-ljuicysfplugin",
 | 
										"-ljuicysfplugin",
 | 
				
			||||||
					"-L/usr/local/lib",
 | 
										"$(inherited)",
 | 
				
			||||||
					"-lfluidsynth",
 | 
					 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
				PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
									PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
				
			||||||
				SDKROOT_ppc = macosx10.5;
 | 
									SDKROOT_ppc = macosx10.5;
 | 
				
			||||||
@ -1198,7 +1198,6 @@
 | 
				
			|||||||
					"~/SDKs/VST_SDK/VST3_SDK",
 | 
										"~/SDKs/VST_SDK/VST3_SDK",
 | 
				
			||||||
					../../JuceLibraryCode,
 | 
										../../JuceLibraryCode,
 | 
				
			||||||
					/Applications/JUCE/modules,
 | 
										/Applications/JUCE/modules,
 | 
				
			||||||
					/usr/local/include,
 | 
					 | 
				
			||||||
					/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
										/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
				
			||||||
					"$(inherited)",
 | 
										"$(inherited)",
 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
@ -1211,8 +1210,7 @@
 | 
				
			|||||||
				OTHER_LDFLAGS = (
 | 
									OTHER_LDFLAGS = (
 | 
				
			||||||
					"-bundle",
 | 
										"-bundle",
 | 
				
			||||||
					"-ljuicysfplugin",
 | 
										"-ljuicysfplugin",
 | 
				
			||||||
					"-L/usr/local/lib",
 | 
										"$(inherited)",
 | 
				
			||||||
					"-lfluidsynth",
 | 
					 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
				OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\"";
 | 
									OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\"";
 | 
				
			||||||
				PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
									PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
				
			||||||
@ -1255,7 +1253,6 @@
 | 
				
			|||||||
					"~/SDKs/VST_SDK/VST3_SDK",
 | 
										"~/SDKs/VST_SDK/VST3_SDK",
 | 
				
			||||||
					../../JuceLibraryCode,
 | 
										../../JuceLibraryCode,
 | 
				
			||||||
					/Applications/JUCE/modules,
 | 
										/Applications/JUCE/modules,
 | 
				
			||||||
					/usr/local/include,
 | 
					 | 
				
			||||||
					/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
										/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
				
			||||||
					"$(inherited)",
 | 
										"$(inherited)",
 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
@ -1269,8 +1266,7 @@
 | 
				
			|||||||
				OTHER_LDFLAGS = (
 | 
									OTHER_LDFLAGS = (
 | 
				
			||||||
					"-bundle",
 | 
										"-bundle",
 | 
				
			||||||
					"-ljuicysfplugin",
 | 
										"-ljuicysfplugin",
 | 
				
			||||||
					"-L/usr/local/lib",
 | 
										"$(inherited)",
 | 
				
			||||||
					"-lfluidsynth",
 | 
					 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
				OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\"";
 | 
									OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Extras/CoreAudio/AudioUnits/AUPublic/AUBase\"";
 | 
				
			||||||
				PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
									PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
				
			||||||
@ -1309,7 +1305,6 @@
 | 
				
			|||||||
					"~/SDKs/VST_SDK/VST3_SDK",
 | 
										"~/SDKs/VST_SDK/VST3_SDK",
 | 
				
			||||||
					../../JuceLibraryCode,
 | 
										../../JuceLibraryCode,
 | 
				
			||||||
					/Applications/JUCE/modules,
 | 
										/Applications/JUCE/modules,
 | 
				
			||||||
					/usr/local/include,
 | 
					 | 
				
			||||||
					/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
										/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
				
			||||||
					"$(inherited)",
 | 
										"$(inherited)",
 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
@ -1319,8 +1314,7 @@
 | 
				
			|||||||
				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
 | 
									MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
 | 
				
			||||||
				OTHER_LDFLAGS = (
 | 
									OTHER_LDFLAGS = (
 | 
				
			||||||
					"-ljuicysfplugin",
 | 
										"-ljuicysfplugin",
 | 
				
			||||||
					"-L/usr/local/lib",
 | 
										"$(inherited)",
 | 
				
			||||||
					"-lfluidsynth",
 | 
					 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
				PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
									PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
				
			||||||
				SDKROOT_ppc = macosx10.5;
 | 
									SDKROOT_ppc = macosx10.5;
 | 
				
			||||||
@ -1363,6 +1357,11 @@
 | 
				
			|||||||
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
 | 
									GCC_WARN_UNINITIALIZED_AUTOS = YES;
 | 
				
			||||||
				GCC_WARN_UNUSED_FUNCTION = YES;
 | 
									GCC_WARN_UNUSED_FUNCTION = YES;
 | 
				
			||||||
				GCC_WARN_UNUSED_VARIABLE = YES;
 | 
									GCC_WARN_UNUSED_VARIABLE = YES;
 | 
				
			||||||
 | 
									HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/include";
 | 
				
			||||||
 | 
									OTHER_LDFLAGS = (
 | 
				
			||||||
 | 
										"-L$(PROJECT_DIR)/lib_relinked",
 | 
				
			||||||
 | 
										"-lfluidsynth",
 | 
				
			||||||
 | 
									);
 | 
				
			||||||
				PRODUCT_NAME = juicysfplugin;
 | 
									PRODUCT_NAME = juicysfplugin;
 | 
				
			||||||
				WARNING_CFLAGS = "-Wreorder";
 | 
									WARNING_CFLAGS = "-Wreorder";
 | 
				
			||||||
				ZERO_LINK = NO;
 | 
									ZERO_LINK = NO;
 | 
				
			||||||
@ -1414,18 +1413,15 @@
 | 
				
			|||||||
					"~/SDKs/VST_SDK/VST3_SDK",
 | 
										"~/SDKs/VST_SDK/VST3_SDK",
 | 
				
			||||||
					../../JuceLibraryCode,
 | 
										../../JuceLibraryCode,
 | 
				
			||||||
					/Applications/JUCE/modules,
 | 
										/Applications/JUCE/modules,
 | 
				
			||||||
					/usr/local/include,
 | 
					 | 
				
			||||||
					/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
										/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
				
			||||||
					"$(inherited)",
 | 
										"$(inherited)",
 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
				INSTALL_PATH = "@executable_path/../Frameworks";
 | 
									INSTALL_PATH = "@executable_path/../Frameworks";
 | 
				
			||||||
 | 
									LD_RUNPATH_SEARCH_PATHS = "@loader_path/..";
 | 
				
			||||||
				LLVM_LTO = YES;
 | 
									LLVM_LTO = YES;
 | 
				
			||||||
				MACOSX_DEPLOYMENT_TARGET = 10.11;
 | 
									MACOSX_DEPLOYMENT_TARGET = 10.11;
 | 
				
			||||||
				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
 | 
									MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
 | 
				
			||||||
				OTHER_LDFLAGS = (
 | 
									OTHER_LDFLAGS = "$(inherited)";
 | 
				
			||||||
					"-L/usr/local/lib",
 | 
					 | 
				
			||||||
					"-lfluidsynth",
 | 
					 | 
				
			||||||
				);
 | 
					 | 
				
			||||||
				PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
									PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
				
			||||||
				SDKROOT_ppc = macosx10.5;
 | 
									SDKROOT_ppc = macosx10.5;
 | 
				
			||||||
				USE_HEADERMAP = NO;
 | 
									USE_HEADERMAP = NO;
 | 
				
			||||||
@ -1465,7 +1461,6 @@
 | 
				
			|||||||
					"~/SDKs/VST_SDK/VST3_SDK",
 | 
										"~/SDKs/VST_SDK/VST3_SDK",
 | 
				
			||||||
					../../JuceLibraryCode,
 | 
										../../JuceLibraryCode,
 | 
				
			||||||
					/Applications/JUCE/modules,
 | 
										/Applications/JUCE/modules,
 | 
				
			||||||
					/usr/local/include,
 | 
					 | 
				
			||||||
					/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
										/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
				
			||||||
					"$(inherited)",
 | 
										"$(inherited)",
 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
@ -1479,8 +1474,7 @@
 | 
				
			|||||||
				OTHER_LDFLAGS = (
 | 
									OTHER_LDFLAGS = (
 | 
				
			||||||
					"-bundle",
 | 
										"-bundle",
 | 
				
			||||||
					"-ljuicysfplugin",
 | 
										"-ljuicysfplugin",
 | 
				
			||||||
					"-L/usr/local/lib",
 | 
										"$(inherited)",
 | 
				
			||||||
					"-lfluidsynth",
 | 
					 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
				PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
									PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
				
			||||||
				SDKROOT_ppc = macosx10.5;
 | 
									SDKROOT_ppc = macosx10.5;
 | 
				
			||||||
@ -1522,7 +1516,6 @@
 | 
				
			|||||||
					"~/SDKs/VST_SDK/VST3_SDK",
 | 
										"~/SDKs/VST_SDK/VST3_SDK",
 | 
				
			||||||
					../../JuceLibraryCode,
 | 
										../../JuceLibraryCode,
 | 
				
			||||||
					/Applications/JUCE/modules,
 | 
										/Applications/JUCE/modules,
 | 
				
			||||||
					/usr/local/include,
 | 
					 | 
				
			||||||
					/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
										/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
				
			||||||
					"$(inherited)",
 | 
										"$(inherited)",
 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
@ -1536,8 +1529,7 @@
 | 
				
			|||||||
				OTHER_LDFLAGS = (
 | 
									OTHER_LDFLAGS = (
 | 
				
			||||||
					"-bundle",
 | 
										"-bundle",
 | 
				
			||||||
					"-ljuicysfplugin",
 | 
										"-ljuicysfplugin",
 | 
				
			||||||
					"-L/usr/local/lib",
 | 
										"$(inherited)",
 | 
				
			||||||
					"-lfluidsynth",
 | 
					 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
				PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
									PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
				
			||||||
				SDKROOT_ppc = macosx10.5;
 | 
									SDKROOT_ppc = macosx10.5;
 | 
				
			||||||
@ -1578,7 +1570,6 @@
 | 
				
			|||||||
					"~/SDKs/VST_SDK/VST3_SDK",
 | 
										"~/SDKs/VST_SDK/VST3_SDK",
 | 
				
			||||||
					../../JuceLibraryCode,
 | 
										../../JuceLibraryCode,
 | 
				
			||||||
					/Applications/JUCE/modules,
 | 
										/Applications/JUCE/modules,
 | 
				
			||||||
					/usr/local/include,
 | 
					 | 
				
			||||||
					/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
										/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
				
			||||||
					"$(inherited)",
 | 
										"$(inherited)",
 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
@ -1589,8 +1580,7 @@
 | 
				
			|||||||
				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
 | 
									MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
 | 
				
			||||||
				OTHER_LDFLAGS = (
 | 
									OTHER_LDFLAGS = (
 | 
				
			||||||
					"-ljuicysfplugin",
 | 
										"-ljuicysfplugin",
 | 
				
			||||||
					"-L/usr/local/lib",
 | 
										"$(inherited)",
 | 
				
			||||||
					"-lfluidsynth",
 | 
					 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
				PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin.juicysfpluginAUv3;
 | 
									PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin.juicysfpluginAUv3;
 | 
				
			||||||
				SDKROOT_ppc = macosx10.5;
 | 
									SDKROOT_ppc = macosx10.5;
 | 
				
			||||||
@ -1628,7 +1618,6 @@
 | 
				
			|||||||
					"~/SDKs/VST_SDK/VST3_SDK",
 | 
										"~/SDKs/VST_SDK/VST3_SDK",
 | 
				
			||||||
					../../JuceLibraryCode,
 | 
										../../JuceLibraryCode,
 | 
				
			||||||
					/Applications/JUCE/modules,
 | 
										/Applications/JUCE/modules,
 | 
				
			||||||
					/usr/local/include,
 | 
					 | 
				
			||||||
					/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
										/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
				
			||||||
					"$(inherited)",
 | 
										"$(inherited)",
 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
@ -1639,8 +1628,7 @@
 | 
				
			|||||||
				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
 | 
									MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
 | 
				
			||||||
				OTHER_LDFLAGS = (
 | 
									OTHER_LDFLAGS = (
 | 
				
			||||||
					"-ljuicysfplugin",
 | 
										"-ljuicysfplugin",
 | 
				
			||||||
					"-L/usr/local/lib",
 | 
										"$(inherited)",
 | 
				
			||||||
					"-lfluidsynth",
 | 
					 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
				PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
									PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
				
			||||||
				SDKROOT_ppc = macosx10.5;
 | 
									SDKROOT_ppc = macosx10.5;
 | 
				
			||||||
@ -1680,7 +1668,6 @@
 | 
				
			|||||||
					"~/SDKs/VST_SDK/VST3_SDK",
 | 
										"~/SDKs/VST_SDK/VST3_SDK",
 | 
				
			||||||
					../../JuceLibraryCode,
 | 
										../../JuceLibraryCode,
 | 
				
			||||||
					/Applications/JUCE/modules,
 | 
										/Applications/JUCE/modules,
 | 
				
			||||||
					/usr/local/include,
 | 
					 | 
				
			||||||
					/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
										/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
				
			||||||
					"$(inherited)",
 | 
										"$(inherited)",
 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
@ -1693,8 +1680,7 @@
 | 
				
			|||||||
				OTHER_LDFLAGS = (
 | 
									OTHER_LDFLAGS = (
 | 
				
			||||||
					"-bundle",
 | 
										"-bundle",
 | 
				
			||||||
					"-ljuicysfplugin",
 | 
										"-ljuicysfplugin",
 | 
				
			||||||
					"-L/usr/local/lib",
 | 
										"$(inherited)",
 | 
				
			||||||
					"-lfluidsynth",
 | 
					 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
				PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
									PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin;
 | 
				
			||||||
				SDKROOT_ppc = macosx10.5;
 | 
									SDKROOT_ppc = macosx10.5;
 | 
				
			||||||
@ -1734,7 +1720,6 @@
 | 
				
			|||||||
					"~/SDKs/VST_SDK/VST3_SDK",
 | 
										"~/SDKs/VST_SDK/VST3_SDK",
 | 
				
			||||||
					../../JuceLibraryCode,
 | 
										../../JuceLibraryCode,
 | 
				
			||||||
					/Applications/JUCE/modules,
 | 
										/Applications/JUCE/modules,
 | 
				
			||||||
					/usr/local/include,
 | 
					 | 
				
			||||||
					/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
										/Applications/JUCE/modules/juce_audio_plugin_client,
 | 
				
			||||||
					"$(inherited)",
 | 
										"$(inherited)",
 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
@ -1744,8 +1729,7 @@
 | 
				
			|||||||
				MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
 | 
									MACOSX_DEPLOYMENT_TARGET_ppc = 10.4;
 | 
				
			||||||
				OTHER_LDFLAGS = (
 | 
									OTHER_LDFLAGS = (
 | 
				
			||||||
					"-ljuicysfplugin",
 | 
										"-ljuicysfplugin",
 | 
				
			||||||
					"-L/usr/local/lib",
 | 
										"$(inherited)",
 | 
				
			||||||
					"-lfluidsynth",
 | 
					 | 
				
			||||||
				);
 | 
									);
 | 
				
			||||||
				PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin.juicysfpluginAUv3;
 | 
									PRODUCT_BUNDLE_IDENTIFIER = uk.co.birchlabs.juicysfplugin.juicysfpluginAUv3;
 | 
				
			||||||
				SDKROOT_ppc = macosx10.5;
 | 
									SDKROOT_ppc = macosx10.5;
 | 
				
			||||||
 | 
				
			|||||||
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user