mirror of
https://github.com/ZDoom/fluidsynth.git
synced 2024-12-01 00:21:14 +00:00
remove fluidmax and fluidsynth_jni plugins
This commit is contained in:
parent
16a112956e
commit
322bf38547
31 changed files with 0 additions and 4237 deletions
|
@ -1,11 +0,0 @@
|
|||
|
||||
This directory contains the projects that bind FluidSynth to a
|
||||
language or host application. The following projects are currently
|
||||
available:
|
||||
|
||||
fluidmax: Provides the fluidsynth~ external object for
|
||||
Max/MSP. Written by Norbert Schnell.
|
||||
|
||||
fluidsynth_jni: Provides a native interface for the Java
|
||||
language. Written by Peter Hanappe.
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
******************************************************************
|
||||
*
|
||||
* This is fluidsynth~,
|
||||
* a derivative for Max/MSP of the Fluid Synth soundfont synthesizer.
|
||||
*
|
||||
* Fluid Synth is written by Peter Hanappe et al.
|
||||
* See http://www.fluidsynth.org/.
|
||||
*
|
||||
* Max/MSP integration by Norbert Schnell, IRCAM - Centre Pompidou
|
||||
* Norbert.Schnell@ircam.fr
|
||||
*
|
||||
* Take a look here:
|
||||
* http://www.ircam.fr/equipes/temps-reel/maxmsp/fluidsynth.html
|
||||
*
|
||||
_____________________________________________________________________
|
||||
LICENSE
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
See file COPYING.LIB in the CVS root directory for further information on licensing terms.
|
||||
|
||||
This program 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
_____________________________________________________________________
|
||||
SYSTEM REQUIREMENTS
|
||||
|
||||
This version of fluidsynth~ was initially created and tested using Max/MSP 4.3 on Mac 10.3 and should work on all following versions of Max/MSP and Mac OS.
|
||||
|
||||
_____________________________________________________________________
|
||||
RELASE NOTES for version 01/2009 (release 13)
|
||||
|
||||
- adapted to current FluidSynth code base (after years without activity)
|
||||
- no new features or relevant changes!
|
||||
|
||||
_____________________________________________________________________
|
||||
RELASE NOTES up to version 10/2005 (release 10, 11 and 12)
|
||||
|
||||
- added micro-tuning methods (to be added to help patch)
|
||||
- fixed bug restricting argument of tuning-octave message to int (11)
|
||||
- fixed voice stealing (12)
|
||||
|
||||
_____________________________________________________________________
|
||||
RELASE NOTES up to version 09/2004 (release 7 to 9)
|
||||
|
||||
- bug fix: now polyphony and # of midi channel arguments take effect (release 9)
|
||||
- added message resample permitting to chose resampling interpolation method (release 8)
|
||||
- added names (= file name without path and postfix) for soundfonts (7)
|
||||
- fixed bug of crash for "info channels" in case of channel(s) without defined preset
|
||||
- dropped Mac OS 9 version
|
||||
- extended help patch
|
||||
|
||||
_____________________________________________________________________
|
||||
RELASE NOTES of version 04/2004 (release 6)
|
||||
|
||||
- fixed several bugs of the initial release (especially related to the translation of paths
|
||||
- introduced names for soundfonts (without path and .sf2 postfix)
|
||||
- introduced a message "info" in order to query the current state of tuning-octave
|
||||
|
||||
_____________________________________________________________________
|
||||
SVN DIRECTORY
|
||||
|
||||
svn repository: https://resonance.org/svn/fluidsynth/trunk/fluidsynth
|
||||
Max/MSP implementation directory: bindings/fluidmax
|
||||
|
||||
The fluidsynth directory in the fluidmax directory contains only a version.h which is just added for the case that the version.h file in the fluidsynth checkout is not (auto-)"maked" or generated otherwise.
|
||||
|
||||
For now the file fluid_sys.c is not included to the CW project. Instead there is a file called fluidmax_fakefuns.c implementing some necessary functions.
|
||||
|
||||
_____________________________________________________________________
|
||||
KNOWN BUGS:
|
||||
|
||||
_____________________________________________________________________
|
||||
TODO
|
||||
- implement log function properly
|
|
@ -1,339 +0,0 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 42;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
3B1863D00B2DACF200083EB3 /* fluidmax_fakefuns.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863CE0B2DACF200083EB3 /* fluidmax_fakefuns.c */; };
|
||||
3B1863D10B2DACF200083EB3 /* fluidmax.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863CF0B2DACF200083EB3 /* fluidmax.c */; };
|
||||
3B1863E20B2DAD7800083EB3 /* fluid_chan.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863D30B2DAD7800083EB3 /* fluid_chan.c */; };
|
||||
3B1863E30B2DAD7800083EB3 /* fluid_chorus.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863D40B2DAD7800083EB3 /* fluid_chorus.c */; };
|
||||
3B1863E40B2DAD7800083EB3 /* fluid_conv.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863D50B2DAD7800083EB3 /* fluid_conv.c */; };
|
||||
3B1863E50B2DAD7800083EB3 /* fluid_defsfont.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863D60B2DAD7800083EB3 /* fluid_defsfont.c */; };
|
||||
3B1863E60B2DAD7800083EB3 /* fluid_gen.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863D70B2DAD7800083EB3 /* fluid_gen.c */; };
|
||||
3B1863E70B2DAD7800083EB3 /* fluid_hash.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863D80B2DAD7800083EB3 /* fluid_hash.c */; };
|
||||
3B1863E80B2DAD7800083EB3 /* fluid_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863D90B2DAD7800083EB3 /* fluid_list.c */; };
|
||||
3B1863E90B2DAD7800083EB3 /* fluid_mod.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863DA0B2DAD7800083EB3 /* fluid_mod.c */; };
|
||||
3B1863EA0B2DAD7800083EB3 /* fluid_ramsfont.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863DB0B2DAD7800083EB3 /* fluid_ramsfont.c */; };
|
||||
3B1863EB0B2DAD7800083EB3 /* fluid_rev.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863DC0B2DAD7800083EB3 /* fluid_rev.c */; };
|
||||
3B1863EC0B2DAD7800083EB3 /* fluid_settings.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863DD0B2DAD7800083EB3 /* fluid_settings.c */; };
|
||||
3B1863EE0B2DAD7800083EB3 /* fluid_synth.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863DF0B2DAD7800083EB3 /* fluid_synth.c */; };
|
||||
3B1863EF0B2DAD7800083EB3 /* fluid_tuning.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863E00B2DAD7800083EB3 /* fluid_tuning.c */; };
|
||||
3B1863F00B2DAD7800083EB3 /* fluid_voice.c in Sources */ = {isa = PBXBuildFile; fileRef = 3B1863E10B2DAD7800083EB3 /* fluid_voice.c */; };
|
||||
3BC6778E0ADB9F2E0064088F /* MaxAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BC6778C0ADB9F2E0064088F /* MaxAPI.framework */; };
|
||||
3BC6778F0ADB9F2E0064088F /* MaxAudioAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BC6778D0ADB9F2E0064088F /* MaxAudioAPI.framework */; };
|
||||
5CA4036E0F1F689D0054E6B0 /* fluid_dsp_float.c in Sources */ = {isa = PBXBuildFile; fileRef = 5CA4036D0F1F689D0054E6B0 /* fluid_dsp_float.c */; };
|
||||
8D01CCCE0486CAD60068D4B7 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
|
||||
3B1863CE0B2DACF200083EB3 /* fluidmax_fakefuns.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluidmax_fakefuns.c; path = bindings/fluidmax/fluidmax_fakefuns.c; sourceTree = "<group>"; };
|
||||
3B1863CF0B2DACF200083EB3 /* fluidmax.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluidmax.c; path = bindings/fluidmax/fluidmax.c; sourceTree = "<group>"; };
|
||||
3B1863D30B2DAD7800083EB3 /* fluid_chan.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_chan.c; path = ../../../../src/fluid_chan.c; sourceTree = SOURCE_ROOT; };
|
||||
3B1863D40B2DAD7800083EB3 /* fluid_chorus.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_chorus.c; path = ../../../../src/fluid_chorus.c; sourceTree = SOURCE_ROOT; };
|
||||
3B1863D50B2DAD7800083EB3 /* fluid_conv.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_conv.c; path = ../../../../src/fluid_conv.c; sourceTree = SOURCE_ROOT; };
|
||||
3B1863D60B2DAD7800083EB3 /* fluid_defsfont.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_defsfont.c; path = ../../../../src/fluid_defsfont.c; sourceTree = SOURCE_ROOT; };
|
||||
3B1863D70B2DAD7800083EB3 /* fluid_gen.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_gen.c; path = ../../../../src/fluid_gen.c; sourceTree = SOURCE_ROOT; };
|
||||
3B1863D80B2DAD7800083EB3 /* fluid_hash.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_hash.c; path = ../../../../src/fluid_hash.c; sourceTree = SOURCE_ROOT; };
|
||||
3B1863D90B2DAD7800083EB3 /* fluid_list.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_list.c; path = ../../../../src/fluid_list.c; sourceTree = SOURCE_ROOT; };
|
||||
3B1863DA0B2DAD7800083EB3 /* fluid_mod.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_mod.c; path = ../../../../src/fluid_mod.c; sourceTree = SOURCE_ROOT; };
|
||||
3B1863DB0B2DAD7800083EB3 /* fluid_ramsfont.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_ramsfont.c; path = ../../../../src/fluid_ramsfont.c; sourceTree = SOURCE_ROOT; };
|
||||
3B1863DC0B2DAD7800083EB3 /* fluid_rev.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_rev.c; path = ../../../../src/fluid_rev.c; sourceTree = SOURCE_ROOT; };
|
||||
3B1863DD0B2DAD7800083EB3 /* fluid_settings.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_settings.c; path = ../../../../src/fluid_settings.c; sourceTree = SOURCE_ROOT; };
|
||||
3B1863DF0B2DAD7800083EB3 /* fluid_synth.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_synth.c; path = ../../../../src/fluid_synth.c; sourceTree = SOURCE_ROOT; };
|
||||
3B1863E00B2DAD7800083EB3 /* fluid_tuning.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_tuning.c; path = ../../../../src/fluid_tuning.c; sourceTree = SOURCE_ROOT; };
|
||||
3B1863E10B2DAD7800083EB3 /* fluid_voice.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = fluid_voice.c; path = ../../../../src/fluid_voice.c; sourceTree = SOURCE_ROOT; };
|
||||
3BC6778C0ADB9F2E0064088F /* MaxAPI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MaxAPI.framework; path = /Library/Frameworks/MaxAPI.framework; sourceTree = "<absolute>"; };
|
||||
3BC6778D0ADB9F2E0064088F /* MaxAudioAPI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MaxAudioAPI.framework; path = /Library/Frameworks/MaxAudioAPI.framework; sourceTree = "<absolute>"; };
|
||||
5CA4036D0F1F689D0054E6B0 /* fluid_dsp_float.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fluid_dsp_float.c; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* fluidsynth~.mxo */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "fluidsynth~.mxo"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D01CCCE0486CAD60068D4B7 /* Carbon.framework in Frameworks */,
|
||||
3BC6778E0ADB9F2E0064088F /* MaxAPI.framework in Frameworks */,
|
||||
3BC6778F0ADB9F2E0064088F /* MaxAudioAPI.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
089C166AFE841209C02AAC07 /* yin */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Sources */,
|
||||
089C1671FE841209C02AAC07 /* Frameworks */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = yin;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C1671FE841209C02AAC07 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3BC6778C0ADB9F2E0064088F /* MaxAPI.framework */,
|
||||
3BC6778D0ADB9F2E0064088F /* MaxAudioAPI.framework */,
|
||||
08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB77ADFE841716C02AAC07 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3B1863D20B2DACFC00083EB3 /* fluidsynth */,
|
||||
3B1863CE0B2DACF200083EB3 /* fluidmax_fakefuns.c */,
|
||||
3B1863CF0B2DACF200083EB3 /* fluidmax.c */,
|
||||
);
|
||||
name = Sources;
|
||||
path = ../../../..;
|
||||
sourceTree = SOURCE_ROOT;
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* fluidsynth~.mxo */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3B1863D20B2DACFC00083EB3 /* fluidsynth */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3B1863D30B2DAD7800083EB3 /* fluid_chan.c */,
|
||||
3B1863D40B2DAD7800083EB3 /* fluid_chorus.c */,
|
||||
3B1863D50B2DAD7800083EB3 /* fluid_conv.c */,
|
||||
3B1863D60B2DAD7800083EB3 /* fluid_defsfont.c */,
|
||||
3B1863D70B2DAD7800083EB3 /* fluid_gen.c */,
|
||||
3B1863D80B2DAD7800083EB3 /* fluid_hash.c */,
|
||||
3B1863D90B2DAD7800083EB3 /* fluid_list.c */,
|
||||
3B1863DA0B2DAD7800083EB3 /* fluid_mod.c */,
|
||||
3B1863DB0B2DAD7800083EB3 /* fluid_ramsfont.c */,
|
||||
3B1863DC0B2DAD7800083EB3 /* fluid_rev.c */,
|
||||
3B1863DD0B2DAD7800083EB3 /* fluid_settings.c */,
|
||||
3B1863DF0B2DAD7800083EB3 /* fluid_synth.c */,
|
||||
3B1863E00B2DAD7800083EB3 /* fluid_tuning.c */,
|
||||
3B1863E10B2DAD7800083EB3 /* fluid_voice.c */,
|
||||
5CA4036D0F1F689D0054E6B0 /* fluid_dsp_float.c */,
|
||||
);
|
||||
name = fluidsynth;
|
||||
path = src;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* fluidsynth~ */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 4FADC23308B4156C00ABE55E /* Build configuration list for PBXNativeTarget "fluidsynth~" */;
|
||||
buildPhases = (
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
3BC677940ADB9F6C0064088F /* ShellScript */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = "fluidsynth~";
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = yin;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* fluidsynth~.mxo */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = 4FADC23708B4156C00ABE55E /* Build configuration list for PBXProject "fluidmax" */;
|
||||
compatibilityVersion = "Xcode 2.4";
|
||||
hasScannedForEncodings = 1;
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* yin */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* fluidsynth~ */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
3BC677940ADB9F6C0064088F /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "NAME=$WRAPPER_NAME\nDEST=$PROJECT_DIR/$EXTERNALS_DIR\nORIG=$TARGET_BUILD_DIR/$NAME\nPROD=$DEST/$NAME\n\n# set bundle bit for mxo's (on some installations, they show up as directories)\n/Developer/Tools/SetFile -a B $ORIG\n\nif test -d \"$PROD\"; then\n\trm -f -r \"$PROD\"\nfi\ncp -R $ORIG $DEST\n\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
3B1863D00B2DACF200083EB3 /* fluidmax_fakefuns.c in Sources */,
|
||||
3B1863D10B2DACF200083EB3 /* fluidmax.c in Sources */,
|
||||
3B1863E20B2DAD7800083EB3 /* fluid_chan.c in Sources */,
|
||||
3B1863E30B2DAD7800083EB3 /* fluid_chorus.c in Sources */,
|
||||
3B1863E40B2DAD7800083EB3 /* fluid_conv.c in Sources */,
|
||||
3B1863E50B2DAD7800083EB3 /* fluid_defsfont.c in Sources */,
|
||||
3B1863E60B2DAD7800083EB3 /* fluid_gen.c in Sources */,
|
||||
3B1863E70B2DAD7800083EB3 /* fluid_hash.c in Sources */,
|
||||
3B1863E80B2DAD7800083EB3 /* fluid_list.c in Sources */,
|
||||
3B1863E90B2DAD7800083EB3 /* fluid_mod.c in Sources */,
|
||||
3B1863EA0B2DAD7800083EB3 /* fluid_ramsfont.c in Sources */,
|
||||
3B1863EB0B2DAD7800083EB3 /* fluid_rev.c in Sources */,
|
||||
3B1863EC0B2DAD7800083EB3 /* fluid_settings.c in Sources */,
|
||||
3B1863EE0B2DAD7800083EB3 /* fluid_synth.c in Sources */,
|
||||
3B1863EF0B2DAD7800083EB3 /* fluid_tuning.c in Sources */,
|
||||
3B1863F00B2DAD7800083EB3 /* fluid_voice.c in Sources */,
|
||||
5CA4036E0F1F689D0054E6B0 /* fluid_dsp_float.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
4FADC23408B4156C00ABE55E /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
COPY_PHASE_STRIP = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
/System/Library/Frameworks,
|
||||
/Library/Frameworks,
|
||||
);
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "/Library/Frameworks/MaxAPI.framework/Versions/A/Headers/macho-prefix.h";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = FLUIDMAX;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
../..,
|
||||
../../../../src,
|
||||
../../../../include/,
|
||||
/Library/Frameworks/MaxAPI.framework/Versions/A/Headers,
|
||||
/Library/Frameworks/MaxAudioAPI.framework/Versions/A/Headers,
|
||||
);
|
||||
INFOPLIST_FILE = maxternal.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Bundles";
|
||||
PRODUCT_NAME = "fluidsynth~";
|
||||
WRAPPER_EXTENSION = mxo;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
4FADC23508B4156C00ABE55E /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
);
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
/System/Library/Frameworks,
|
||||
/Library/Frameworks,
|
||||
);
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "/Library/Frameworks/MaxAPI.framework/Versions/A/Headers/macho-prefix.h";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = FLUIDMAX;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
../..,
|
||||
../../../../src,
|
||||
../../../../include/,
|
||||
/Library/Frameworks/MaxAPI.framework/Versions/A/Headers,
|
||||
/Library/Frameworks/MaxAudioAPI.framework/Versions/A/Headers,
|
||||
);
|
||||
INFOPLIST_FILE = maxternal.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Bundles";
|
||||
PRODUCT_NAME = "fluidsynth~";
|
||||
WRAPPER_EXTENSION = mxo;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
4FADC23808B4156C00ABE55E /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
EXTERNALS_DIR = ../..;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
/System/Library/Frameworks,
|
||||
/Library/Frameworks,
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
HAVE_STRING_H,
|
||||
HAVE_STDLIB_H,
|
||||
HAVE_STDIO_H,
|
||||
HAVE_MATH_H,
|
||||
HAVE_STDARG_H,
|
||||
WORDS_BIGENDIAN,
|
||||
);
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
PREBINDING = NO;
|
||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
4FADC23908B4156C00ABE55E /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
);
|
||||
EXTERNALS_DIR = ../..;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
/System/Library/Frameworks,
|
||||
/Library/Frameworks,
|
||||
);
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
PREBINDING = NO;
|
||||
SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
4FADC23308B4156C00ABE55E /* Build configuration list for PBXNativeTarget "fluidsynth~" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
4FADC23408B4156C00ABE55E /* Debug */,
|
||||
4FADC23508B4156C00ABE55E /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
4FADC23708B4156C00ABE55E /* Build configuration list for PBXProject "fluidmax" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
4FADC23808B4156C00ABE55E /* Debug */,
|
||||
4FADC23908B4156C00ABE55E /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>iLaX</string>
|
||||
</dict>
|
||||
</plist>
|
|
@ -1,6 +0,0 @@
|
|||
;fluidsynth.def
|
||||
|
||||
LIBRARY fluidsynth~.mxe
|
||||
EXPORTS
|
||||
|
||||
main
|
|
@ -1,19 +0,0 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fluidsynth", "fluidsynth.vcproj", "{73069FC3-D989-47DB-B15F-625703EED4DA}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{73069FC3-D989-47DB-B15F-625703EED4DA}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{73069FC3-D989-47DB-B15F-625703EED4DA}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{73069FC3-D989-47DB-B15F-625703EED4DA}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{73069FC3-D989-47DB-B15F-625703EED4DA}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
Binary file not shown.
|
@ -1,324 +0,0 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8,00"
|
||||
Name="fluidsynth"
|
||||
ProjectGUID="{73069FC3-D989-47DB-B15F-625703EED4DA}"
|
||||
RootNamespace="yin"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
GenerateTypeLibrary="false"
|
||||
TypeLibraryName=""
|
||||
HeaderFileName=""
|
||||
DLLDataFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""..\..\..\..\..\MaxWinSDK\c74support\msp-includes";"..\..\..\..\..\MaxWinSDK\c74support\max-includes";..\..;..\..\..\..\src;..\..\..\..\include"
|
||||
PreprocessorDefinitions="WIN_VERSION;WIN32;_DEBUG;_WINDOWS;_USRDLL;WIN_EXT_VERSION;FLUIDSYNTH_DLL_EXPORTS;FLUIDSYNTH_SEQ_DLL_EXPORTS;_CRT_SECURE_NO_DEPRECATE"
|
||||
MinimalRebuild="true"
|
||||
ExceptionHandling="1"
|
||||
BasicRuntimeChecks="0"
|
||||
RuntimeLibrary="3"
|
||||
StructMemberAlignment="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
UsePrecompiledHeader="0"
|
||||
PrecompiledHeaderThrough="ext.h"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
DebugInformationFormat="3"
|
||||
CompileAs="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
UseLibraryDependencyInputs="false"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies=" MaxAPI.lib MaxAudio.lib"
|
||||
ShowProgress="0"
|
||||
OutputFile="fluidsynth~.mxe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""..\..\..\..\..\MaxWinSDK\c74support\msp-includes\";"..\..\..\..\..\MaxWinSDK\c74support\max-includes\""
|
||||
IgnoreAllDefaultLibraries="false"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
ModuleDefinitionFile=".\fluidsynth.def"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy "$(TargetPath)" "C:\Program Files\Fichiers communs\Cycling '74\externals\"
copy "$(TargetPath)" "C:\Program Files\Cycling '74\MaxMSP 4.6\Cycling '74\externals\"
"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
MkTypLibCompatible="true"
|
||||
SuppressStartupBanner="true"
|
||||
TargetEnvironment="1"
|
||||
GenerateTypeLibrary="false"
|
||||
TypeLibraryName=""
|
||||
HeaderFileName=""
|
||||
DLLDataFileName=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="3"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories=""..\..\..\..\..\MaxWinSDK\c74support\msp-includes";"..\..\..\..\..\MaxWinSDK\c74support\max-includes";..\..;..\..\..\..\src;..\..\..\..\include"
|
||||
PreprocessorDefinitions="WIN_VERSION;WIN32;NDEBUG;_WINDOWS;_USRDLL;WIN_EXT_VERSION;FLUIDSYNTH_DLL_EXPORTS;FLUIDSYNTH_SEQ_DLL_EXPORTS;_CRT_SECURE_NO_DEPRECATE"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="0"
|
||||
RuntimeLibrary="2"
|
||||
StructMemberAlignment="2"
|
||||
BufferSecurityCheck="false"
|
||||
EnableFunctionLevelLinking="false"
|
||||
UsePrecompiledHeader="0"
|
||||
PrecompiledHeaderThrough="ext.h"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="true"
|
||||
CompileAs="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalOptions="/MACHINE:I386"
|
||||
AdditionalDependencies="MaxAPI.lib MaxAudio.lib"
|
||||
OutputFile="fluidsynth~.mxe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
AdditionalLibraryDirectories=""..\..\..\..\..\MaxWinSDK\c74support\msp-includes\";"..\..\..\..\..\MaxWinSDK\c74support\max-includes\""
|
||||
IgnoreAllDefaultLibraries="false"
|
||||
ModuleDefinitionFile=".\fluidsynth.def"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
CommandLine="copy "$(TargetPath)" "C:\Program Files\Fichiers communs\Cycling '74\externals\maxternals\"
copy "$(TargetPath)" "C:\Program Files\Cycling '74\MaxMSP 4.6\Cycling '74\externals\maxternals\"
"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\fluidmax.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\fluidmax_fakefuns.c"
|
||||
>
|
||||
</File>
|
||||
<Filter
|
||||
Name="fluidsynth"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_chan.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_chorus.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_conv.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_defsfont.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_gen.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_hash.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_list.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_mod.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_ramsfont.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_rev.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_settings.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_strtok.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_synth.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_tuning.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\..\..\src\fluid_voice.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl"
|
||||
>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\fluidsynth.def"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
|
@ -1,12 +0,0 @@
|
|||
#define HAVE_STRING_H 1
|
||||
#define HAVE_STDLIB_H 1
|
||||
#define HAVE_STDIO_H 1
|
||||
#define HAVE_MATH_H 1
|
||||
#define HAVE_STDARG_H 1
|
||||
|
||||
#if defined(__POWERPC__)
|
||||
#define WORDS_BIGENDIAN 1
|
||||
#endif
|
||||
|
||||
#define STDIN_FILENO 0
|
||||
#define STDOUT_FILENO 1
|
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
@ -1,260 +0,0 @@
|
|||
/***************************************************************************************
|
||||
*
|
||||
* fluidsynth~
|
||||
*
|
||||
* Fluid Synth soundfont synthesizer for Max/MSP.
|
||||
*
|
||||
* Fluid Synth is written by Peter Hanappe et al.
|
||||
* see http://www.fluidsynth.org/
|
||||
*
|
||||
* Max/MSP integration by Norbert Schnell ATR IRCAM - Centre Pompidou
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* See file COPYING.LIB for further informations on licensing terms.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
/*
|
||||
* This file contains the (mostly empty) implementation of some functions without
|
||||
* which Fluidsynth wouldn't compile.
|
||||
*
|
||||
* The Max/MSP version of FluidSynth tries to link only with a minimum of needed
|
||||
* files. Some of the linked files depend on functions that are not necessary
|
||||
* and that are implemnted in files we don't want to include. So, alternate or empty
|
||||
* implemntations of these functions are provided here.
|
||||
*
|
||||
*/
|
||||
#include "ftmax.h"
|
||||
#include "fluidsynth.h"
|
||||
#include "fluidsynth_priv.h"
|
||||
#include "fluid_settings.h"
|
||||
|
||||
unsigned int
|
||||
fluid_curtime()
|
||||
{
|
||||
return (unsigned int)gettime();
|
||||
}
|
||||
|
||||
double
|
||||
fluid_utime(void)
|
||||
{
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
typedef void fluid_timer_t;
|
||||
typedef int(*fluid_timer_callback_t)(void *data, unsigned int msec);
|
||||
|
||||
fluid_timer_t *
|
||||
new_fluid_timer(int msec, fluid_timer_callback_t callback, void *data, int new_thread, int auto_destroy)
|
||||
{
|
||||
/* just call it right away */
|
||||
(*callback)(data, msec);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void
|
||||
fluid_sys_config()
|
||||
{
|
||||
}
|
||||
|
||||
char *
|
||||
fluid_error()
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* This code is (unelegantly) copied from fluid_sys.c since other parts of fluid_sys.c
|
||||
* that we don't need here depend on many other things that we don't want here. */
|
||||
char *
|
||||
fluid_strtok(char **str, char *delim)
|
||||
{
|
||||
char *s, *d, *token;
|
||||
char c;
|
||||
|
||||
if(str == NULL || delim == NULL || !*delim)
|
||||
{
|
||||
FLUID_LOG(FLUID_ERR, "Null pointer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
s = *str;
|
||||
|
||||
if(!s)
|
||||
{
|
||||
return NULL; /* str points to a NULL pointer? (tokenize already ended) */
|
||||
}
|
||||
|
||||
/* skip delimiter chars at beginning of token */
|
||||
do
|
||||
{
|
||||
c = *s;
|
||||
|
||||
if(!c) /* end of source string? */
|
||||
{
|
||||
*str = NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for(d = delim; *d; d++) /* is source char a token char? */
|
||||
{
|
||||
if(c == *d) /* token char match? */
|
||||
{
|
||||
s++; /* advance to next source char */
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
while(*d); /* while token char match */
|
||||
|
||||
token = s; /* start of token found */
|
||||
|
||||
/* search for next token char or end of source string */
|
||||
for(s = s + 1; *s; s++)
|
||||
{
|
||||
c = *s;
|
||||
|
||||
for(d = delim; *d; d++) /* is source char a token char? */
|
||||
{
|
||||
if(c == *d) /* token char match? */
|
||||
{
|
||||
*s = '\0'; /* overwrite token char with zero byte to terminate token */
|
||||
*str = s + 1; /* update str to point to beginning of next token */
|
||||
return token;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* we get here only if source string ended */
|
||||
*str = NULL;
|
||||
return token;
|
||||
}
|
||||
|
||||
int
|
||||
fluid_log(int level, char *fmt, ...)
|
||||
{
|
||||
char buf[1024];
|
||||
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
vsprintf(buf, fmt, args);
|
||||
va_end(args);
|
||||
|
||||
if((level > 0) && (level < LAST_LOG_LEVEL))
|
||||
{
|
||||
post("fluidsynth~ core (level %d): %s", level, buf);
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
void
|
||||
fluid_shell_settings(fluid_settings_t *settings)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
fluid_audio_driver_settings(fluid_settings_t *settings)
|
||||
{
|
||||
fluid_settings_register_str(settings, "audio.driver", "", 0, NULL, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
fluid_midi_driver_settings(fluid_settings_t *settings)
|
||||
{
|
||||
fluid_settings_register_str(settings, "midi.driver", "", 0, NULL, NULL);
|
||||
}
|
||||
|
||||
int fluid_midi_event_get_type(fluid_midi_event_t *evt)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fluid_midi_event_set_type(fluid_midi_event_t *evt, int type)
|
||||
{
|
||||
return FLUID_OK;
|
||||
}
|
||||
|
||||
int fluid_midi_event_get_channel(fluid_midi_event_t *evt)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fluid_midi_event_set_channel(fluid_midi_event_t *evt, int chan)
|
||||
{
|
||||
return FLUID_OK;
|
||||
}
|
||||
|
||||
int fluid_midi_event_get_key(fluid_midi_event_t *evt)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fluid_midi_event_set_key(fluid_midi_event_t *evt, int v)
|
||||
{
|
||||
return FLUID_OK;
|
||||
}
|
||||
|
||||
int fluid_midi_event_get_velocity(fluid_midi_event_t *evt)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fluid_midi_event_set_velocity(fluid_midi_event_t *evt, int v)
|
||||
{
|
||||
return FLUID_OK;
|
||||
}
|
||||
|
||||
int fluid_midi_event_get_control(fluid_midi_event_t *evt)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fluid_midi_event_set_control(fluid_midi_event_t *evt, int v)
|
||||
{
|
||||
return FLUID_OK;
|
||||
}
|
||||
|
||||
int fluid_midi_event_get_value(fluid_midi_event_t *evt)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fluid_midi_event_set_value(fluid_midi_event_t *evt, int v)
|
||||
{
|
||||
return FLUID_OK;
|
||||
}
|
||||
|
||||
int fluid_midi_event_get_program(fluid_midi_event_t *evt)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fluid_midi_event_set_program(fluid_midi_event_t *evt, int val)
|
||||
{
|
||||
return FLUID_OK;
|
||||
}
|
||||
|
||||
int fluid_midi_event_get_pitch(fluid_midi_event_t *evt)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fluid_midi_event_set_pitch(fluid_midi_event_t *evt, int val)
|
||||
{
|
||||
return FLUID_OK;
|
||||
}
|
||||
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 20 KiB |
|
@ -1,44 +0,0 @@
|
|||
/* 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
|
||||
|
||||
#define FLUIDSYNTH_VERSION "1.0.3"
|
||||
#define FLUIDSYNTH_VERSION_MAJOR 1
|
||||
#define FLUIDSYNTH_VERSION_MINOR 0
|
||||
#define FLUIDSYNTH_VERSION_MICRO 3
|
||||
|
||||
|
||||
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 */
|
Binary file not shown.
|
@ -1,76 +0,0 @@
|
|||
/***************************************************************************************
|
||||
*
|
||||
* Copyright (C) 2004 by IRCAM-Centre Georges Pompidou, Paris, France.
|
||||
* Author: Norbert.Schnell@ircam.fr
|
||||
*
|
||||
* FTS -> MAX/MSP utilities
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2.1
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* See file COPYING.LIB for further informations on licensing terms.
|
||||
*
|
||||
* This program 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
*/
|
||||
#ifndef _FTMAX_H_
|
||||
#define _FTMAX_H_
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifndef MAGIC
|
||||
#include "ext.h"
|
||||
#include "z_dsp.h"
|
||||
#endif
|
||||
|
||||
#define ftm_malloc(s) NewPtr(s)
|
||||
#define ftmax_realloc NO_realloc
|
||||
#define ftmax_free(p) DisposePtr((char *)(p))
|
||||
|
||||
#define restrict
|
||||
|
||||
#define M_TWOPI 6.283185308
|
||||
//#define M_PI 3.141592654
|
||||
|
||||
#define ftmax_object_t t_object
|
||||
#define ftmax_dsp_object_t t_pxobject
|
||||
|
||||
typedef t_atom ftmax_atom_t;
|
||||
typedef t_symbol *ftmax_symbol_t;
|
||||
typedef t_messlist ftmax_class_t;
|
||||
typedef method ftmax_method_t;
|
||||
|
||||
#define ftmax_is_int(a) ((a)->a_type == A_LONG)
|
||||
#define ftmax_is_float(a) ((a)->a_type == A_FLOAT)
|
||||
#define ftmax_is_number(a) ((a)->a_type == A_LONG || (a)->a_type == A_FLOAT)
|
||||
#define ftmax_is_symbol(a) ((a)->a_type == A_SYM)
|
||||
|
||||
#define ftmax_get_int(a) ((a)->a_w.w_long)
|
||||
#define ftmax_get_float(a) ((a)->a_w.w_float)
|
||||
#define ftmax_get_number_int(a) (((a)->a_type == A_LONG)? ((a)->a_w.w_long): (int)((a)->a_w.w_float))
|
||||
#define ftmax_get_number_float(a) (((a)->a_type == A_FLOAT)? (double)((a)->a_w.w_float): (double)((a)->a_w.w_long))
|
||||
#define ftmax_get_symbol(a) ((a)->a_w.w_sym)
|
||||
|
||||
#define ftmax_set_int(a, v) ((a)->a_type = A_LONG, (a)->a_w.w_long = (v))
|
||||
#define ftmax_set_float(a, v) ((a)->a_type = A_FLOAT, (a)->a_w.w_float = (v))
|
||||
#define ftmax_set_symbol(a, v) ((a)->a_type = A_SYM, (a)->a_w.w_sym = (v))
|
||||
|
||||
#define ftmax_symbol_name(s) ((s)->s_name)
|
||||
|
||||
#define ftmax_new_symbol(s) gensym(s)
|
||||
|
||||
extern void ftmax_class_message_varargs(ftmax_class_t *cl, ftmax_symbol_t sym, void *method);
|
||||
|
||||
#endif
|
|
@ -1,10 +0,0 @@
|
|||
|
||||
FluidSynth_JNI
|
||||
--------------
|
||||
|
||||
This directory contains a VC++ project, Java classes, and some C++
|
||||
files to use FluidSynth from within Java. This project was written
|
||||
rather quickly and for a specific use. Is not intended to be complete
|
||||
but may be useful as a starting point for complete Java interface.
|
||||
|
||||
[Peter Hanappe]
|
|
@ -1,115 +0,0 @@
|
|||
# Microsoft Developer Studio Project File - Name="fluidsynth_jni" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
|
||||
|
||||
CFG=fluidsynth_jni - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "fluidsynth_jni.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "fluidsynth_jni.mak" CFG="fluidsynth_jni - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "fluidsynth_jni - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE "fluidsynth_jni - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "fluidsynth_jni - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FLUIDSYNTH_JNI_EXPORTS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "include" /I "C:\Program Files\Java\j2re1.4.0_03\include" /I "C:\Program Files\Java\j2re1.4.0_03\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FLUIDSYNTH_JNI_EXPORTS" /YX /FD /c
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x40c /d "NDEBUG"
|
||||
# ADD RSC /l 0x40c /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
|
||||
# ADD LINK32 fluidsynth.lib libsndfile.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /libpath:"lib"
|
||||
|
||||
!ELSEIF "$(CFG)" == "fluidsynth_jni - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FLUIDSYNTH_JNI_EXPORTS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "include" /I "C:\Program Files\WebGain\VCafe\Java2\include" /I "C:\Program Files\WebGain\VCafe\Java2\include\win32" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FLUIDSYNTH_JNI_EXPORTS" /YX /FD /GZ /c
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x40c /d "_DEBUG"
|
||||
# ADD RSC /l 0x40c /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 fluidsynth_debug.lib libsndfile.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"fluidsynth_jni.dll" /pdbtype:sept /libpath:"lib"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "fluidsynth_jni - Win32 Release"
|
||||
# Name "fluidsynth_jni - Win32 Debug"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\src\fluidsynth_jni.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\src\fluidsynth_jni.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\src\fluidsynth_Sample.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\src\fluidsynth_Sample.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\src\fluidsynth_Synth.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\src\fluidsynth_Synth.h
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
|
@ -1,29 +0,0 @@
|
|||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "fluidsynth_jni"=".\fluidsynth_jni.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
|
@ -1,436 +0,0 @@
|
|||
/*
|
||||
** Copyright (C) 1999-2003 Erik de Castro Lopo <erikd@zip.com.au>
|
||||
**
|
||||
** This program 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 program 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 program; if not, write to the Free Software
|
||||
** Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
/*
|
||||
** sndfile.h -- system-wide definitions
|
||||
**
|
||||
** API documentation is in the doc/ directory of the source code tarball
|
||||
** and at http://www.zip.com.au/~erikd/libsndfile/api.html.
|
||||
*/
|
||||
|
||||
#ifndef SNDFILE_H
|
||||
#define SNDFILE_H
|
||||
|
||||
/* This is the version 1.0.X header file. */
|
||||
#define SNDFILE_1
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/* For the Metrowerks CodeWarrior Pro Compiler (mainly MacOS) */
|
||||
|
||||
#if (defined (__MWERKS__))
|
||||
#include <unix.h>
|
||||
#else
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/* The following file types can be read and written.
|
||||
** A file type would consist of a major type (ie SF_FORMAT_WAV) bitwise
|
||||
** ORed with a minor type (ie SF_FORMAT_PCM). SF_FORMAT_TYPEMASK and
|
||||
** SF_FORMAT_SUBMASK can be used to separate the major and minor file
|
||||
** types.
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
/* Major formats. */
|
||||
SF_FORMAT_WAV = 0x010000, /* Microsoft WAV format (little endian). */
|
||||
SF_FORMAT_AIFF = 0x020000, /* Apple/SGI AIFF format (big endian). */
|
||||
SF_FORMAT_AU = 0x030000, /* Sun/NeXT AU format (big endian). */
|
||||
SF_FORMAT_RAW = 0x040000, /* RAW PCM data. */
|
||||
SF_FORMAT_PAF = 0x050000, /* Ensoniq PARIS file format. */
|
||||
SF_FORMAT_SVX = 0x060000, /* Amiga IFF / SVX8 / SV16 format. */
|
||||
SF_FORMAT_NIST = 0x070000, /* Sphere NIST format. */
|
||||
SF_FORMAT_VOC = 0x080000, /* VOC files. */
|
||||
SF_FORMAT_IRCAM = 0x0A0000, /* Berkeley/IRCAM/CARL */
|
||||
SF_FORMAT_W64 = 0x0B0000, /* Sonic Foundry's 64 bit RIFF/WAV */
|
||||
SF_FORMAT_MAT4 = 0x0C0000, /* Matlab (tm) V4.2 / GNU Octave 2.0 */
|
||||
SF_FORMAT_MAT5 = 0x0D0000, /* Matlab (tm) V5.0 / GNU Octave 2.1 */
|
||||
SF_FORMAT_PVF = 0x0E0000, /* Portable Voice Format */
|
||||
SF_FORMAT_XI = 0x0F0000, /* Fasttracker 2 Extended Instrument */
|
||||
SF_FORMAT_HTK = 0x100000, /* HMM Tool Kit format */
|
||||
|
||||
/* Subtypes from here on. */
|
||||
|
||||
SF_FORMAT_PCM_S8 = 0x0001, /* Signed 8 bit data */
|
||||
SF_FORMAT_PCM_16 = 0x0002, /* Signed 16 bit data */
|
||||
SF_FORMAT_PCM_24 = 0x0003, /* Signed 24 bit data */
|
||||
SF_FORMAT_PCM_32 = 0x0004, /* Signed 32 bit data */
|
||||
|
||||
SF_FORMAT_PCM_U8 = 0x0005, /* Unsigned 8 bit data (WAV and RAW only) */
|
||||
|
||||
SF_FORMAT_FLOAT = 0x0006, /* 32 bit float data */
|
||||
SF_FORMAT_DOUBLE = 0x0007, /* 64 bit float data */
|
||||
|
||||
SF_FORMAT_ULAW = 0x0010, /* U-Law encoded. */
|
||||
SF_FORMAT_ALAW = 0x0011, /* A-Law encoded. */
|
||||
SF_FORMAT_IMA_ADPCM = 0x0012, /* IMA ADPCM. */
|
||||
SF_FORMAT_MS_ADPCM = 0x0013, /* Microsoft ADPCM. */
|
||||
|
||||
SF_FORMAT_GSM610 = 0x0020, /* GSM 6.10 encoding. */
|
||||
SF_FORMAT_VOX_ADPCM = 0x0021, /* OKI / Dialogix ADPCM */
|
||||
|
||||
SF_FORMAT_G721_32 = 0x0030, /* 32kbs G721 ADPCM encoding. */
|
||||
SF_FORMAT_G723_24 = 0x0031, /* 24kbs G723 ADPCM encoding. */
|
||||
SF_FORMAT_G723_40 = 0x0032, /* 40kbs G723 ADPCM encoding. */
|
||||
|
||||
SF_FORMAT_DWVW_12 = 0x0040, /* 12 bit Delta Width Variable Word encoding. */
|
||||
SF_FORMAT_DWVW_16 = 0x0041, /* 16 bit Delta Width Variable Word encoding. */
|
||||
SF_FORMAT_DWVW_24 = 0x0042, /* 24 bit Delta Width Variable Word encoding. */
|
||||
SF_FORMAT_DWVW_N = 0x0043, /* N bit Delta Width Variable Word encoding. */
|
||||
|
||||
SF_FORMAT_DPCM_8 = 0x0050, /* 8 bit differential PCM (XI only) */
|
||||
SF_FORMAT_DPCM_16 = 0x0051, /* 16 bit differential PCM (XI only) */
|
||||
|
||||
|
||||
/* Endian-ness options. */
|
||||
|
||||
SF_ENDIAN_FILE = 0x00000000, /* Default file endian-ness. */
|
||||
SF_ENDIAN_LITTLE = 0x10000000, /* Force little endian-ness. */
|
||||
SF_ENDIAN_BIG = 0x20000000, /* Force big endian-ness. */
|
||||
SF_ENDIAN_CPU = 0x30000000, /* Force CPU endian-ness. */
|
||||
|
||||
SF_FORMAT_SUBMASK = 0x0000FFFF,
|
||||
SF_FORMAT_TYPEMASK = 0x0FFF0000,
|
||||
SF_FORMAT_ENDMASK = 0x30000000
|
||||
} ;
|
||||
|
||||
/*
|
||||
** The following are the valid command numbers for the sf_command()
|
||||
** interface. The use of these commands is documented in the file
|
||||
** command.html in the doc directory of the source code distribution.
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
SFC_GET_LIB_VERSION = 0x1000,
|
||||
SFC_GET_LOG_INFO = 0x1001,
|
||||
|
||||
SFC_GET_NORM_DOUBLE = 0x1010,
|
||||
SFC_GET_NORM_FLOAT = 0x1011,
|
||||
SFC_SET_NORM_DOUBLE = 0x1012,
|
||||
SFC_SET_NORM_FLOAT = 0x1013,
|
||||
|
||||
SFC_GET_SIMPLE_FORMAT_COUNT = 0x1020,
|
||||
SFC_GET_SIMPLE_FORMAT = 0x1021,
|
||||
|
||||
SFC_GET_FORMAT_INFO = 0x1028,
|
||||
|
||||
SFC_GET_FORMAT_MAJOR_COUNT = 0x1030,
|
||||
SFC_GET_FORMAT_MAJOR = 0x1031,
|
||||
SFC_GET_FORMAT_SUBTYPE_COUNT = 0x1032,
|
||||
SFC_GET_FORMAT_SUBTYPE = 0x1033,
|
||||
|
||||
SFC_CALC_SIGNAL_MAX = 0x1040,
|
||||
SFC_CALC_NORM_SIGNAL_MAX = 0x1041,
|
||||
SFC_CALC_MAX_ALL_CHANNELS = 0x1042,
|
||||
SFC_CALC_NORM_MAX_ALL_CHANNELS = 0x1043,
|
||||
|
||||
SFC_SET_ADD_PEAK_CHUNK = 0x1050,
|
||||
|
||||
SFC_UPDATE_HEADER_NOW = 0x1060,
|
||||
SFC_SET_UPDATE_HEADER_AUTO = 0x1061,
|
||||
|
||||
SFC_FILE_TRUNCATE = 0x1080,
|
||||
|
||||
SFC_SET_RAW_START_OFFSET = 0x1090,
|
||||
|
||||
SFC_SET_DITHER_ON_WRITE = 0x10A0,
|
||||
SFC_SET_DITHER_ON_READ = 0x10A1,
|
||||
|
||||
SFC_GET_DITHER_INFO_COUNT = 0x10A2,
|
||||
SFC_GET_DITHER_INFO = 0x10A3,
|
||||
|
||||
SFC_GET_EMBED_FILE_INFO = 0x10B0,
|
||||
|
||||
/* Following commands for testing only. */
|
||||
SFC_TEST_IEEE_FLOAT_REPLACE = 0x6001,
|
||||
|
||||
/*
|
||||
** SFC_SET_ADD_* values are deprecated and will disappear at some
|
||||
** time in the future. They are guaranteed to be here up to and
|
||||
** including version 1.0.8 to avoid breakage of existng software.
|
||||
** They currently do nothing and will continue to do nothing.
|
||||
*/
|
||||
SFC_SET_ADD_DITHER_ON_WRITE = 0x1070,
|
||||
SFC_SET_ADD_DITHER_ON_READ = 0x1071
|
||||
} ;
|
||||
|
||||
|
||||
/*
|
||||
** String types that can be set and read from files. Not all file types
|
||||
** support this and even the file types which support one, may not support
|
||||
** all string types.
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
SF_STR_TITLE = 0x01,
|
||||
SF_STR_COPYRIGHT = 0x02,
|
||||
SF_STR_SOFTWARE = 0x03,
|
||||
SF_STR_ARTIST = 0x04,
|
||||
SF_STR_COMMENT = 0x05,
|
||||
SF_STR_DATE = 0x06
|
||||
} ;
|
||||
|
||||
enum
|
||||
{
|
||||
/* True and false */
|
||||
SF_FALSE = 0,
|
||||
SF_TRUE = 1,
|
||||
|
||||
/* Modes for opening files. */
|
||||
SFM_READ = 0x10,
|
||||
SFM_WRITE = 0x20,
|
||||
SFM_RDWR = 0x30
|
||||
} ;
|
||||
|
||||
/* Pubic error values. These are guaranteed to remain unchanged for the duration
|
||||
** of the library major version number.
|
||||
** There are also a large number of private error numbers which are internal to
|
||||
** the library which can change at any time.
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
SF_ERR_NO_ERROR = 0,
|
||||
SF_ERR_UNRECOGNISED_FORMAT = 1,
|
||||
SF_ERR_SYSTEM = 2
|
||||
} ;
|
||||
|
||||
/* A SNDFILE* pointer can be passed around much like stdio.h's FILE* pointer. */
|
||||
|
||||
typedef void SNDFILE ;
|
||||
|
||||
typedef __int64 sf_count_t ;
|
||||
|
||||
/* A pointer to a SF_INFO structure is passed to sf_open_read () and filled in.
|
||||
** On write, the SF_INFO structure is filled in by the user and passed into
|
||||
** sf_open_write ().
|
||||
*/
|
||||
|
||||
struct SF_INFO
|
||||
{
|
||||
sf_count_t frames ; /* Used to be called samples. Changed to avoid confusion. */
|
||||
int samplerate ;
|
||||
int channels ;
|
||||
int format ;
|
||||
int sections ;
|
||||
int seekable ;
|
||||
} ;
|
||||
|
||||
typedef struct SF_INFO SF_INFO ;
|
||||
|
||||
/* The SF_FORMAT_INFO struct is used to retrieve information about the sound
|
||||
** file formats libsndfile supports using the sf_command () interface.
|
||||
**
|
||||
** Using this interface will allow applications to support new file formats
|
||||
** and encoding types when libsndfile is upgraded, without requiring
|
||||
** re-compilation of the application.
|
||||
**
|
||||
** Please consult the libsndfile documentation (particularly the information
|
||||
** on the sf_command () interface) for examples of its use.
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int format ;
|
||||
const char *name ;
|
||||
const char *extension ;
|
||||
} SF_FORMAT_INFO ;
|
||||
|
||||
/*
|
||||
** Enums and typedefs for adding dither on read and write.
|
||||
** See the html documentation for sf_command(), SFC_SET_DITHER_ON_WRITE
|
||||
** and SFC_SET_DITHER_ON_READ.
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
SFD_DEFAULT_LEVEL = 0,
|
||||
SFD_CUSTOM_LEVEL = 0x40000000,
|
||||
|
||||
SFD_NO_DITHER = 500,
|
||||
SFD_WHITE = 501,
|
||||
SFD_TRIANGULAR_PDF = 502
|
||||
} ;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int type ;
|
||||
double level ;
|
||||
const char *name ;
|
||||
} SF_DITHER_INFO ;
|
||||
|
||||
/* Struct used to retrieve information about a file embedded within a
|
||||
** larger file. See SF_GET_EMBED_FILE_INFO.
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
sf_count_t offset ;
|
||||
sf_count_t length ;
|
||||
} SF_EMBED_FILE_INFO ;
|
||||
|
||||
|
||||
/* Open the specified file for read, write or both. On error, this will
|
||||
** return a NULL pointer. To find the error number, pass a NULL SNDFILE
|
||||
** to sf_perror () or sf_error_str ().
|
||||
** All calls to sf_open() should be matched with a call to sf_close().
|
||||
*/
|
||||
|
||||
SNDFILE *sf_open(const char *path, int mode, SF_INFO *sfinfo) ;
|
||||
|
||||
/* Use the existing file descriptor to create a SNDFILE object. If close_desc
|
||||
** is TRUE, the file descriptor will be closed when sf_close() is called. If
|
||||
** it is FALSE, the descritor will not be closed.
|
||||
** When passed a descriptor like this, the library will assume that the start
|
||||
** of file header is at the current file offset. This allows sound files within
|
||||
** larger container files to be read and/or written.
|
||||
** On error, this will return a NULL pointer. To find the error number, pass a
|
||||
** NULL SNDFILE to sf_perror () or sf_error_str ().
|
||||
** All calls to sf_open_fd() should be matched with a call to sf_close().
|
||||
|
||||
*/
|
||||
|
||||
SNDFILE *sf_open_fd(int fd, int mode, SF_INFO *sfinfo, int close_desc) ;
|
||||
|
||||
/* sf_error () returns a error number which can be translated to a text
|
||||
** string using sf_error_number().
|
||||
*/
|
||||
|
||||
int sf_error(SNDFILE *sndfile) ;
|
||||
|
||||
/* sf_strerror () returns to the caller a pointer to the current error message for
|
||||
** the given SNDFILE.
|
||||
*/
|
||||
|
||||
const char *sf_strerror(SNDFILE *sndfile) ;
|
||||
|
||||
/* sf_error_number () allows the retrieval of the error string for each internal
|
||||
** error number.
|
||||
**
|
||||
*/
|
||||
|
||||
const char *sf_error_number(int errnum) ;
|
||||
|
||||
/* The following three error functions are deprecated but they will remain in the
|
||||
** library for the forseeable future. The function sf_strerror() should be used
|
||||
** in their place.
|
||||
*/
|
||||
|
||||
int sf_perror(SNDFILE *sndfile) ;
|
||||
int sf_error_str(SNDFILE *sndfile, char *str, size_t len) ;
|
||||
|
||||
|
||||
/* Return TRUE if fields of the SF_INFO struct are a valid combination of values. */
|
||||
|
||||
int sf_command(SNDFILE *sndfile, int command, void *data, int datasize) ;
|
||||
|
||||
/* Return TRUE if fields of the SF_INFO struct are a valid combination of values. */
|
||||
|
||||
int sf_format_check(const SF_INFO *info) ;
|
||||
|
||||
/* Seek within the waveform data chunk of the SNDFILE. sf_seek () uses
|
||||
** the same values for whence (SEEK_SET, SEEK_CUR and SEEK_END) as
|
||||
** stdio.h function fseek ().
|
||||
** An offset of zero with whence set to SEEK_SET will position the
|
||||
** read / write pointer to the first data sample.
|
||||
** On success sf_seek returns the current position in (multi-channel)
|
||||
** samples from the start of the file.
|
||||
** Please see the libsndfile documentation for moving the read pointer
|
||||
** separately from the write pointer on files open in mode SFM_RDWR.
|
||||
** On error all of these functions return -1.
|
||||
*/
|
||||
|
||||
sf_count_t sf_seek(SNDFILE *sndfile, sf_count_t frames, int whence) ;
|
||||
|
||||
/* Functions for retrieving and setting string data within sound files.
|
||||
** Not all file types support this features; AIFF and WAV do. For both
|
||||
** functions, the str_type parameter must be one of the SF_STR_* values
|
||||
** defined above.
|
||||
** On error, sf_set_string() returns non-zero while sf_get_string()
|
||||
** returns NULL.
|
||||
*/
|
||||
|
||||
int sf_set_string(SNDFILE *sndfile, int str_type, const char *str) ;
|
||||
|
||||
const char *sf_get_string(SNDFILE *sndfile, int str_type) ;
|
||||
|
||||
/* Functions for reading/writing the waveform data of a sound file.
|
||||
*/
|
||||
|
||||
sf_count_t sf_read_raw(SNDFILE *sndfile, void *ptr, sf_count_t bytes) ;
|
||||
sf_count_t sf_write_raw(SNDFILE *sndfile, void *ptr, sf_count_t bytes) ;
|
||||
|
||||
/* Functions for reading and writing the data chunk in terms of frames.
|
||||
** The number of items actually read/written = frames * number of channels.
|
||||
** sf_xxxx_raw read/writes the raw data bytes from/to the file
|
||||
** sf_xxxx_short passes data in the native short format
|
||||
** sf_xxxx_int passes data in the native int format
|
||||
** sf_xxxx_float passes data in the native float format
|
||||
** sf_xxxx_double passes data in the native double format
|
||||
** All of these read/write function return number of frames read/written.
|
||||
*/
|
||||
|
||||
sf_count_t sf_readf_short(SNDFILE *sndfile, short *ptr, sf_count_t frames) ;
|
||||
sf_count_t sf_writef_short(SNDFILE *sndfile, short *ptr, sf_count_t frames) ;
|
||||
|
||||
sf_count_t sf_readf_int(SNDFILE *sndfile, int *ptr, sf_count_t frames) ;
|
||||
sf_count_t sf_writef_int(SNDFILE *sndfile, int *ptr, sf_count_t frames) ;
|
||||
|
||||
sf_count_t sf_readf_float(SNDFILE *sndfile, float *ptr, sf_count_t frames) ;
|
||||
sf_count_t sf_writef_float(SNDFILE *sndfile, float *ptr, sf_count_t frames) ;
|
||||
|
||||
sf_count_t sf_readf_double(SNDFILE *sndfile, double *ptr, sf_count_t frames) ;
|
||||
sf_count_t sf_writef_double(SNDFILE *sndfile, double *ptr, sf_count_t frames) ;
|
||||
|
||||
/* Functions for reading and writing the data chunk in terms of items.
|
||||
** Otherwise similar to above.
|
||||
** All of these read/write function return number of items read/written.
|
||||
*/
|
||||
|
||||
sf_count_t sf_read_short(SNDFILE *sndfile, short *ptr, sf_count_t items) ;
|
||||
sf_count_t sf_write_short(SNDFILE *sndfile, short *ptr, sf_count_t items) ;
|
||||
|
||||
sf_count_t sf_read_int(SNDFILE *sndfile, int *ptr, sf_count_t items) ;
|
||||
sf_count_t sf_write_int(SNDFILE *sndfile, int *ptr, sf_count_t items) ;
|
||||
|
||||
sf_count_t sf_read_float(SNDFILE *sndfile, float *ptr, sf_count_t items) ;
|
||||
sf_count_t sf_write_float(SNDFILE *sndfile, float *ptr, sf_count_t items) ;
|
||||
|
||||
sf_count_t sf_read_double(SNDFILE *sndfile, double *ptr, sf_count_t items) ;
|
||||
sf_count_t sf_write_double(SNDFILE *sndfile, double *ptr, sf_count_t items) ;
|
||||
|
||||
/* Close the SNDFILE and clean up all memory allocations associated with this
|
||||
** file.
|
||||
** Returns 0 on success, or an error number.
|
||||
*/
|
||||
|
||||
int sf_close(SNDFILE *sndfile) ;
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* SNDFILE_H */
|
|
@ -1,8 +0,0 @@
|
|||
package fluidsynth;
|
||||
|
||||
public class FluidException extends Exception
|
||||
{
|
||||
public FluidException(String what) {
|
||||
super(what);
|
||||
}
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
package fluidsynth;
|
||||
|
||||
public class Sample
|
||||
{
|
||||
protected int sampleNum = -1;
|
||||
protected int rootkey;
|
||||
protected String filename;
|
||||
|
||||
public Sample(String filename, int rootkey) throws FluidException {
|
||||
sampleNum = newSample(filename, rootkey);
|
||||
if (sampleNum < 0) {
|
||||
throw new FluidException("Failed to load the sample (err=" + sampleNum + ")");
|
||||
}
|
||||
this.filename = filename;
|
||||
this.rootkey = rootkey;
|
||||
}
|
||||
|
||||
protected void finalize() {
|
||||
if (sampleNum >= 0) {
|
||||
deleteSample(sampleNum);
|
||||
sampleNum = -1;
|
||||
}
|
||||
}
|
||||
|
||||
public int getRootKey() {
|
||||
return rootkey;
|
||||
}
|
||||
|
||||
public String getFileName() {
|
||||
return filename;
|
||||
}
|
||||
|
||||
int getSampleNum() {
|
||||
return sampleNum;
|
||||
}
|
||||
|
||||
protected native int newSample(String filename, int rootkey);
|
||||
protected native void deleteSample(int sampleNum);
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
package fluidsynth;
|
||||
|
||||
public class Synth
|
||||
{
|
||||
protected int synth = -1;
|
||||
|
||||
static {
|
||||
System.loadLibrary("fluidsynth_jni");
|
||||
}
|
||||
|
||||
public Synth() throws FluidException {
|
||||
synth = newSynth();
|
||||
if (synth < 0) {
|
||||
throw new FluidException("Low-level initialization of the synthesizer failed");
|
||||
}
|
||||
}
|
||||
|
||||
protected void finalize() {
|
||||
if (synth >= 0) {
|
||||
deleteSynth(synth);
|
||||
synth = -1;
|
||||
}
|
||||
}
|
||||
|
||||
public void add(Sample sample, int bank, int preset, int lokey, int hikey) throws FluidException {
|
||||
if (add(synth, sample.getSampleNum(), bank, preset, lokey, hikey) != 0) {
|
||||
throw new FluidException("Failed to add the sample");
|
||||
}
|
||||
}
|
||||
|
||||
public void remove(Sample sample, int bank, int preset) throws FluidException {
|
||||
if (remove(synth, sample.getSampleNum(), bank, preset) != 0) {
|
||||
throw new FluidException("Failed to remove the sample");
|
||||
}
|
||||
}
|
||||
|
||||
public void loadSoundFont(String filename) throws FluidException {
|
||||
if (loadSoundFont(synth, filename) != 0) {
|
||||
throw new FluidException("Failed to load the SoundFont");
|
||||
}
|
||||
}
|
||||
|
||||
protected native int newSynth();
|
||||
protected native void deleteSynth(int synth);
|
||||
protected native int add(int synth, int sample, int bank,
|
||||
int preset, int lokey, int hikey);
|
||||
protected native int remove(int synth, int sample, int bank, int preset);
|
||||
protected native int loadSoundFont(int synth, String filename);
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
package fluidsynth;
|
||||
import java.io.*;
|
||||
|
||||
public class Test
|
||||
{
|
||||
static public void main(String[] argv) throws Exception {
|
||||
try{
|
||||
Synth synth = new Synth();
|
||||
synth.add(new Sample("[accord guitar].wav", 55), 0, 0, 50,58);
|
||||
|
||||
synth.add(new Sample("cabrel.wav_14.wav", 60), 0, 0, 59,59);
|
||||
synth.add(new Sample("cabrel.wav_16.wav", 60), 0, 0, 60,60);
|
||||
synth.add(new Sample("cabrel.wav_15.wav", 62), 0, 0, 61, 61);
|
||||
synth.add(new Sample("cabrel.wav_17.wav", 62), 0, 0, 62, 62);
|
||||
synth.add(new Sample("[TIR].wav", 64), 0, 0, 63,63);
|
||||
synth.add(new Sample("cabrel.wav_18.wav", 64), 0, 0, 64,64);
|
||||
synth.add(new Sample("cabrel.wav_5.wav", 64), 0, 0, 65,65);
|
||||
synth.add(new Sample("cabrel.wav_7.wav", 64), 0, 0, 66,66);
|
||||
synth.add(new Sample("cabrel.wav_8.wav", 64), 0, 0, 67,67);
|
||||
synth.add(new Sample("cabrel.wav_19.wav", 64), 0, 0, 68,68);
|
||||
synth.add(new Sample("cabrel.wav_9.wav", 65), 0, 0, 69,69);
|
||||
synth.add(new Sample("cabrel.wav_10.wav", 67), 0, 0, 70, 70);
|
||||
synth.add(new Sample("cabrel.wav_11.wav", 69), 0, 0, 71, 71);
|
||||
|
||||
|
||||
waitCR();
|
||||
}catch(Exception e){System.out.println(e);waitCR();}
|
||||
}
|
||||
|
||||
public static void waitCR() {
|
||||
System.out.println ("Appuyez sur CR ...");
|
||||
try {System.in.read();}
|
||||
catch (IOException e) {System.out.println(e);}
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
|
@ -1,17 +0,0 @@
|
|||
#include "fluidsynth_Sample.h"
|
||||
#include "fluidsynth_jni.h"
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_fluidsynth_Sample_newSample(JNIEnv *env, jobject obj, jstring filename, jint rootkey)
|
||||
{
|
||||
const char *cfilename = env->GetStringUTFChars(filename, 0);
|
||||
int err = fluid_jni_new_sample(cfilename, rootkey);
|
||||
env->ReleaseStringUTFChars(filename, cfilename);
|
||||
return err;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_fluidsynth_Sample_deleteSample(JNIEnv *env, jobject obj, jint samplenum)
|
||||
{
|
||||
fluid_jni_delete_sample(samplenum);
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
/* DO NOT EDIT THIS FILE - it is machine generated */
|
||||
#include <jni.h>
|
||||
/* Header for class fluidsynth_Sample */
|
||||
|
||||
#ifndef _Included_fluidsynth_Sample
|
||||
#define _Included_fluidsynth_Sample
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/*
|
||||
* Class: fluidsynth_Sample
|
||||
* Method: newSample
|
||||
* Signature: (Ljava/lang/String;I)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_fluidsynth_Sample_newSample
|
||||
(JNIEnv *, jobject, jstring, jint);
|
||||
|
||||
/*
|
||||
* Class: fluidsynth_Sample
|
||||
* Method: deleteSample
|
||||
* Signature: (I)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_fluidsynth_Sample_deleteSample
|
||||
(JNIEnv *, jobject, jint);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
|
@ -1,38 +0,0 @@
|
|||
#include "fluidsynth_Synth.h"
|
||||
#include "fluidsynth_jni.h"
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_fluidsynth_Synth_newSynth(JNIEnv *env, jobject obj)
|
||||
{
|
||||
return fluid_jni_new_synth();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_fluidsynth_Synth_deleteSynth(JNIEnv *env, jobject obj, jint synth)
|
||||
{
|
||||
fluid_jni_delete_synth(synth);
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_fluidsynth_Synth_add(JNIEnv *env, jobject obj, jint synth, jint samplenum,
|
||||
jint bank, jint preset, jint lokey, jint hikey)
|
||||
{
|
||||
return fluid_jni_add(samplenum, bank, preset, lokey, hikey);
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_fluidsynth_Synth_remove(JNIEnv *env, jobject obj, jint synth,
|
||||
jint samplenum, jint bank, jint preset)
|
||||
{
|
||||
return fluid_jni_remove(samplenum, bank, preset);
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_fluidsynth_Synth_loadSoundFont(JNIEnv *env, jobject obj, jint synth, jstring filename)
|
||||
{
|
||||
const char *cfilename = env->GetStringUTFChars(filename, 0);
|
||||
int err = fluid_jni_sfload(cfilename);
|
||||
env->ReleaseStringUTFChars(filename, cfilename);
|
||||
return err;
|
||||
}
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
/* DO NOT EDIT THIS FILE - it is machine generated */
|
||||
#include <jni.h>
|
||||
/* Header for class fluidsynth_Synth */
|
||||
|
||||
#ifndef _Included_fluidsynth_Synth
|
||||
#define _Included_fluidsynth_Synth
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/*
|
||||
* Class: fluidsynth_Synth
|
||||
* Method: newSynth
|
||||
* Signature: ()I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_fluidsynth_Synth_newSynth
|
||||
(JNIEnv *, jobject);
|
||||
|
||||
/*
|
||||
* Class: fluidsynth_Synth
|
||||
* Method: deleteSynth
|
||||
* Signature: (I)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL Java_fluidsynth_Synth_deleteSynth
|
||||
(JNIEnv *, jobject, jint);
|
||||
|
||||
/*
|
||||
* Class: fluidsynth_Synth
|
||||
* Method: add
|
||||
* Signature: (IIIIII)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_fluidsynth_Synth_add
|
||||
(JNIEnv *, jobject, jint, jint, jint, jint, jint, jint);
|
||||
|
||||
/*
|
||||
* Class: fluidsynth_Synth
|
||||
* Method: remove
|
||||
* Signature: (IIII)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_fluidsynth_Synth_remove
|
||||
(JNIEnv *, jobject, jint, jint, jint, jint);
|
||||
|
||||
JNIEXPORT jint JNICALL Java_fluidsynth_Synth_loadSoundFont
|
||||
(JNIEnv *env, jobject obj, jint synth, jstring filename);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
|
@ -1,334 +0,0 @@
|
|||
#include <sndfile.h>
|
||||
#include "fluidsynth_jni.h"
|
||||
|
||||
const int fluid_jni_maxsamples = 1024;
|
||||
|
||||
static int _initialized = 0;
|
||||
static fluid_settings_t *_settings = 0;
|
||||
static fluid_synth_t *_synth = 0;
|
||||
static fluid_audio_driver_t *_adriver = 0;
|
||||
static fluid_midi_driver_t *_mdriver = 0;
|
||||
static fluid_sfont_t *_sfloader = 0;
|
||||
static fluid_sample_t *_sample[fluid_jni_maxsamples];
|
||||
|
||||
|
||||
|
||||
void fluid_jni_init()
|
||||
{
|
||||
if(_initialized == 0)
|
||||
{
|
||||
_initialized++;
|
||||
|
||||
for(int i = 0; i < fluid_jni_maxsamples; i++)
|
||||
{
|
||||
_sample[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int fluid_jni_new_synth()
|
||||
{
|
||||
if(_synth != 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
fluid_jni_init();
|
||||
|
||||
_settings = new_fluid_settings();
|
||||
|
||||
if(_settings == 0)
|
||||
{
|
||||
goto error_recovery;
|
||||
}
|
||||
|
||||
fluid_settings_setstr(_settings, "midi.driver", "midishare");
|
||||
|
||||
_synth = new_fluid_synth(_settings);
|
||||
|
||||
if(_synth == 0)
|
||||
{
|
||||
goto error_recovery;
|
||||
}
|
||||
|
||||
_adriver = new_fluid_audio_driver(_settings, _synth);
|
||||
|
||||
if(_adriver == 0)
|
||||
{
|
||||
goto error_recovery;
|
||||
}
|
||||
|
||||
_mdriver = new_fluid_midi_driver(_settings, fluid_synth_handle_midi_event, _synth);
|
||||
|
||||
if(_mdriver == 0)
|
||||
{
|
||||
goto error_recovery;
|
||||
}
|
||||
|
||||
|
||||
_sfloader = fluid_ramsfont_create_sfont();
|
||||
|
||||
if(_sfloader == 0)
|
||||
{
|
||||
goto error_recovery;
|
||||
}
|
||||
|
||||
fluid_ramsfont_set_name((fluid_ramsfont_t *) _sfloader->data, "Tada");
|
||||
|
||||
fluid_synth_add_sfont(_synth, _sfloader);
|
||||
|
||||
return 0;
|
||||
|
||||
error_recovery:
|
||||
fluid_jni_delete_synth(0);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
int fluid_jni_delete_synth(int num)
|
||||
{
|
||||
if(_mdriver)
|
||||
{
|
||||
|
||||
delete_fluid_midi_driver(_mdriver);
|
||||
|
||||
_mdriver = 0;
|
||||
}
|
||||
|
||||
if(_adriver)
|
||||
{
|
||||
|
||||
delete_fluid_audio_driver(_adriver);
|
||||
|
||||
_adriver = 0;
|
||||
}
|
||||
|
||||
if(_synth)
|
||||
{
|
||||
|
||||
delete_fluid_synth(_synth);
|
||||
|
||||
_synth = 0;
|
||||
}
|
||||
|
||||
if(_settings)
|
||||
{
|
||||
delete_fluid_settings(_settings);
|
||||
_settings = 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fluid_jni_sfload(const char *filename)
|
||||
{
|
||||
if(_synth == 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
fluid_synth_sfload(_synth, filename, 1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fluid_jni_add(int samplenum, int bank, int preset, int lokey, int hikey)
|
||||
{
|
||||
if(_synth == 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
if(_sfloader == 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
fluid_sample_t *sample = fluid_jni_get_sample(samplenum);
|
||||
|
||||
if(sample == 0)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(fluid_ramsfont_add_izone((fluid_ramsfont_t *) _sfloader->data, bank,
|
||||
preset, sample, lokey, hikey) != 0)
|
||||
{
|
||||
|
||||
|
||||
return -3;
|
||||
}
|
||||
|
||||
|
||||
|
||||
fluid_synth_program_select(_synth, 0, _sfloader->id, bank, preset);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fluid_jni_remove(int samplenum, int bank, int preset)
|
||||
{
|
||||
if(_synth == 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
fluid_sample_t *sample = fluid_jni_get_sample(samplenum);
|
||||
|
||||
if(sample == 0)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
|
||||
if(fluid_ramsfont_remove_izone((fluid_ramsfont_t *) _sfloader->data,
|
||||
bank, preset, sample) != 0)
|
||||
{
|
||||
return -3;
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fluid_jni_get_sample_num()
|
||||
{
|
||||
for(int i = 0; i < fluid_jni_maxsamples; i++)
|
||||
{
|
||||
if(_sample[i] == 0)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
int fluid_jni_new_sample(const char *filename, int rootkey)
|
||||
{
|
||||
SF_INFO sfinfo;
|
||||
SNDFILE *sndfile = 0;
|
||||
fluid_sample_t *sample = 0;
|
||||
short *data = 0;
|
||||
sf_count_t count;
|
||||
int err;
|
||||
|
||||
int num = fluid_jni_get_sample_num();
|
||||
|
||||
if(num < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
sndfile = sf_open(filename, SFM_READ, &sfinfo) ;
|
||||
|
||||
if(sndfile == 0)
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
|
||||
//printf("fluid_jni_new_sample: channels=%i, srate=%i, frames=%i\n",
|
||||
// sfinfo.channels, sfinfo.samplerate, sfinfo.frames);
|
||||
|
||||
|
||||
if(sfinfo.channels != 1)
|
||||
{
|
||||
err = -3;
|
||||
goto error_recovery;
|
||||
}
|
||||
|
||||
if(sfinfo.samplerate != 44100)
|
||||
{
|
||||
err = -4;
|
||||
goto error_recovery;
|
||||
}
|
||||
|
||||
sample = new_fluid_ramsample();
|
||||
|
||||
if(sample == 0)
|
||||
{
|
||||
err = -5;
|
||||
goto error_recovery;
|
||||
}
|
||||
|
||||
data = new short[sfinfo.frames];
|
||||
|
||||
if(data == 0)
|
||||
{
|
||||
err = -6;
|
||||
goto error_recovery;
|
||||
}
|
||||
|
||||
// printf("fluid_jni_new_sample 2\n");
|
||||
|
||||
count = sf_readf_short(sndfile, data, sfinfo.frames);
|
||||
|
||||
if(count != sfinfo.frames)
|
||||
{
|
||||
err = -7;
|
||||
goto error_recovery;
|
||||
}
|
||||
|
||||
//printf("fluid_jni_new_sample 3\n");
|
||||
|
||||
if(fluid_sample_set_sound_data(sample, data, sfinfo.frames, 1, rootkey) != 0)
|
||||
{
|
||||
err = -8;
|
||||
goto error_recovery;
|
||||
}
|
||||
|
||||
//printf("fluid_jni_new_sample 4: sample=%p\n", sample);
|
||||
|
||||
_sample[num] = sample;
|
||||
|
||||
sf_close(sndfile);
|
||||
delete data;
|
||||
|
||||
return num;
|
||||
|
||||
error_recovery:
|
||||
|
||||
if(sndfile)
|
||||
{
|
||||
sf_close(sndfile);
|
||||
}
|
||||
|
||||
if(sample)
|
||||
{
|
||||
delete_fluid_ramsample(sample);
|
||||
}
|
||||
|
||||
if(data)
|
||||
{
|
||||
delete data;
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
fluid_sample_t *fluid_jni_get_sample(int num)
|
||||
{
|
||||
if((num >= 0)
|
||||
&& (num < fluid_jni_maxsamples)
|
||||
&& (_sample[num] != 0))
|
||||
{
|
||||
return _sample[num];
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fluid_jni_delete_sample(int num)
|
||||
{
|
||||
if((num >= 0)
|
||||
&& (num < fluid_jni_maxsamples)
|
||||
&& (_sample[num] != 0))
|
||||
{
|
||||
delete_fluid_ramsample(_sample[num]);
|
||||
_sample[num] = 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
|
||||
#ifndef _FLUID_JNI_H
|
||||
#define _FLUID_JNI_H
|
||||
|
||||
#include <fluidsynth.h>
|
||||
|
||||
int fluid_jni_new_synth(void);
|
||||
int fluid_jni_delete_synth(int num);
|
||||
int fluid_jni_add(int samplenum, int bank, int preset, int lokey, int hikey);
|
||||
int fluid_jni_remove(int samplenum, int bank, int preset);
|
||||
int fluid_jni_sfload(const char *filename);
|
||||
|
||||
int fluid_jni_new_sample(const char *filename, int rootkey);
|
||||
int fluid_jni_delete_sample(int num);
|
||||
int fluid_jni_get_sample_num(void);
|
||||
fluid_sample_t *fluid_jni_get_sample(int num);
|
||||
|
||||
#endif /* _FLUID_JNI_H */
|
Loading…
Reference in a new issue