iOS versions of BASS and the BASSDSD/FLAC/MIDI/OPUS/WV/mix add-ons are available here: www.un4seen.com/stuff/bass24-ios.zip (updated: 26 Jan '17)
The BASSenc and BASSenc_OGG/OPUS add-ons are available here: www.un4seen.com/stuff/bassenc24-ios.zip (updated: 26 Jan '17)
The headers and documentation can be taken from the packages on the BASS page. The examples haven't been ported yet, but the BASS calls will be the same as on other platforms. If anyone would like to port any of the examples, that would be very welcome
These add-ons are also available: www.un4seen.com/stuff/bass_ape-ios.zip www.un4seen.com/stuff/bass_mpc-ios.zip www.un4seen.com/stuff/bass_tta-ios.zip www.un4seen.com/stuff/tags-ios.zip www.un4seen.com/files/z/0/bass_fx24-ios.zip
Note that BASS and the add-ons are provided as static libraries, because dynamic libraries aren't allowed on the iPhone. Both "device" (armv6/armv7/armv7s/arm64) and "simulator" (i386/x86_64) builds are supported (the linker will extract the appropriate code from the libraries). To include BASS in your project, the LIBBASS.A file should be added to the "Link Binary With Libraries" branch. You will also need to add the following frameworks to the project: AudioToolbox, SystemConfiguration, CFNetwork, Accelerate, CoreMIDI (if using BASSMIDI). The "Other Linker Flags" setting should also include "-lstdc++" when using BASS_FX or BASS_APE.
An "mp3-free" version (using the OS's MP3 decoder) is also included. Note that requires iOS 3 or above; it will run on earlier versions but MP3 support won't be available.
The plugin system is supported, but a little differently due to the lack of dynamic libraries. For example, if you want to load BASSFLAC and BASSWV as plugins, you can do so like this (after adding LIBBASSFLAC.A and LIBBASSWV.A to your project)...
extern void BASSFLACplugin, BASSWVplugin;
There are also a few iOS-specific "audio session" BASS_SetConfig/Ptr options...
BASS_CONFIG_IOS_MIXAUDIO can be set to a combination of the following flags/bits: 1 = allow other audio to mix with the app's audio (enables kAudioSessionProperty_OverrideCategoryMixWithOthers), 2 = also "duck" the other audio (enables kAudioSessionProperty_OtherMixableAudioShouldDuck), 4 = use the "ambient" category (enables kAudioSessionCategory_SoloAmbientSound/AmbientSound instead of kAudioSessionCategory_MediaPlayback). The default setting is 1.
BASS_CONFIG_IOS_SPEAKER, when set to 1, sends the output to the speaker instead of the receiver (enables kAudioSessionProperty_OverrideCategoryDefaultToSpeaker). The default setting is 0 (off).
BASS_CONFIG_IOS_NOCATEGORY, when set to 1, disables BASS's audio session category management so that the app can handle that itself. The BASS_CONFIG_IOS_MIXAUDIO/SPEAKER and BASS_CONFIG_DEV_BUFFER settings will have no effect in that case.
BASS_CONFIG_IOS_NOTIFY can be used to set a callback function (IOSNOTIFYPROC) to receive interruption notifications from BASS's AudioSessionInterruptionListener.
When using AAC encoding (via BASS_Encode_StartCA), BASS_CONFIG_IOS_MIXAUDIO needs to be set to 0.
Support for use with .Net is included in the BASS.Net package.
Note: The output volume level was 6dB lower than on other platforms prior to version 220.127.116.11. If upgrading from an older version and you find that the level is now higher than wanted, the BASS_CONFIG_GVOL config options can be used to compensate.