Changes

Version 1.6 (13 October 2015)
- made 64bit compatible
- changed how to get input and output buffers
- many other changes

Version 1.5 (7 March 2008)
- added TFPTime record
- added Color field in TNoteParams, change in FHD_NoteOff
- added FPD_Transport and FPD_MIDIIn plugin dispatcher codes
- added FHD_SetUID, FHD_GetMixingTime, FHD_GetPlaybackTime, FHD_GetSelTime, FHD_GetTimeMul, FHD_Captionize, FHD_SendSysEx, FHD_LoadAudioClip, FHD_LoadInChannel and FHD_ShowInBrowser host dispatcher codes
- added GenericTransport (.pas/.h) with FPT transport type constants

Version 1.4.3 (16 April 2007)
- made C++ examples compile again

Version 1.4.2 (28 February 2007)
- added FPF_IsDelphi and FPF_CantSmartDisable plugin flags
- added FPV_GetVelocity, FPV_GetRelVelocity, FPV_GetRelTime and FPV_SetLinkVelocity
- added new NumChans and Format fields to TSampleInfo
- added LockMix_Shared/UnlockMix_Shared methods to TFruityPlugHost
- added FPD_SetFocus dispatcher code
- added FHD_EditSample, FHD_SetThreadSafe and FHD_SmartDisable host dispatcher codes
- added ProgPath member to TDelphiFruityPlug/TCPPFruityPlug
- some small updates to the documentation

Version 1.4.1 (5 December 2005)
- added VolumeToVelocity and VolumeToMIDIVelocity utility functions

Version 1.4 (17 November 2004)
- new voice parameter definitions
- added TSampleRegion record
- added NumRegions, NumBeats and Tempo fields in TSampleInfo record
- renamed TLevelParams to TLevelParams_Old, TVoiceParams to TVoiceParams_Old
- added new TLevelParams record with all floating point fields
- added new TVoiceParams record with the new TLevelParams fields
- added doc for the threads that functions can be called from
- renamed ComputeLRVol to ComputeLRVol_Old in TFruityPlugHost class
- added TFruityPlugHost functions SuspendOutput, ResumeOutput, GetSampleRegion, ComputeLRVol, LockPlugin and UnlockPlugin
- added FPF_NewVoiceParams plugin flag, changed definition for FPF_TypeFullGen and FPF_Type_HybridGen to include it by default
- added FPD_SetSamplesPerTick and FPD_SetIdleTime plugin dispatcher id's
- added FPV_Retrigger, FPV_GetLength and FPV_GetColor voice events
- added FHD_PackDataFile, FHD_GetProgPath, FHD_SetLatency and FHD_CallDownloader host dispatcher id's
- added FHLS_NoResampling sample loading flag
- added NPF_UseSelection flag for TNotesParams

Version 1.3.7b (23 April 2004)
- fix: removed references to alltools.pas and soundprocs.pas from fp_delphiplug.pas

Version 1.3.7 (26 February 2004)
- fix: The ProcessEvent method of TFruityPlugHost wasn't declared _stdcall in fp_plugclass.h

Version 1.3.6 (16 February 2004)
- some documentation changes
- increased number of temp buffers to 4

Version 1.3.5 (23 May 2003)
- some small changes to the documentation
- added a new example (Sine) to demonstrate how to use per-voice level and pan

Version 1.3.4 (5 May 2003)
- fixed the explanation of the processmode constants (there was no mention of hermite interpolation)

Version 1.3.3 (28 April 2003)
- added FHD_GetInstance, FHD_KillIntCtrl and FHD_SetNumParams opcodes
- added function GetMixBuffer, GetInsBuffer and PromptEdit to TFruityPlugHost class

Version 1.3.2 (10 August 2002)
- changed FHD_NoteNamesChanged to FHD_NamesChanged

Version 1.3.1 (17 July 2002)
- small bugfix in TDelphiFruityPlug

Version 1.3 (14 July 2002)
- added FPF_WantFitTime and FPD_SetFitTime
- PlugHost is now a member of TDelphiFruityPlug/TCPPFruityPlug instead of a global variable. The constructor of TDelphiFruityPlug/TCPPFruityPlug has changed to reflect this (HostTag and PlugHost are now set in this constructor). This means that old plugin projects will need some changes before they will compile with this new sdk.

Version 1.2.4 (10 June 2002)
- added Internal Controller example

Version 1.2.3 (31 May 2002)
- added FHD_OnHint_Direct and FHD_SetNewColor host dispatcher codes
- added DistWave_32FM to TPlugHost
- removed MixingTick and MIDITick members from TPlugHost

Version 1.2.2 (14 December 2001)
- updated the documentation a bit

Version 1.2.1 (12 November 2001)
- new opcodes : FPD_LoadFile, FHD_MsgBox, FHD_NoteOn and FHD_NoteOff

Version 1.2 (10 August 2001)
- new TSampleInfo structure
- new method MsgIn for TFruityPlug
- new methods GetSendBuffer, PlugMsg_Delayed, PlugMsg_Kill and GetSampleInfo in TFruityPlugHost
- FPF_UseChanSample is now called FPF_GetChanCustomShape
- new plugin flags FPF_CanSend, FPF_MsgOut, FPF_HybridCanRelease and FPF_GetChanSample
- FPD_SetCustomWaveTable is now called FPD_ChanSampleChanged
- new dispatcher flags FPD_SetInternalParam and FPD_SetNumSends
- PM_HQ is now called PM_HQ_Realtime
- new processing mode flags PM_HQ_NonRealtime, PM_IsRendering and PM_IPMask
- new ProcessParam flag REC_PlugReserved
- new sample loading flag FHLS_GetName

Version 1.1 (20 July 2001)
- (!) the constant CurrentVersion is now 1 instead of 0
- added a new popup menu system (see FHD_GetParamMenuEntry)
- added FPD_CollectFile
- added FHLS_ForceReload flag for LoadSample

Version 1.0.1 (11 July 2001)
- added the possibility to add notes to the piano roll
- added FHD_LocateDataFile opcode
- the function TranslateMidi in FP_Extra now uses 64bit integer arguments
- added OnControllerChanged method to TFruityPlugHost
- added new member NumOutCtrls to TFruityPlugInfo
- added FPN_OutCtrl
- replaced FPF_EventController by FPF_WantNewTick. This is now supported by Fruityloops.
- recompiled the example dlls
- made the destructor of TFruityPlug virtual in the C++ version. Otherwise the destructor of the derived class wouldn't get called.

Version 1.0 (18 May 2001)
- FPSetup now also recognizes the special subdir Fruity. Anything in that one will be copied to a relative path under the FL dir
- added time information, through the new opcodes FPD_SetEnabled, FPD_SetPlaying, FPD_SongPosChanged, FPD_SetTimeSig and FHD_TicksToTime, and the host methods GetSongMixingTime, GetSongMixingTime_A and GetSongPlayingTime.

Version 0.9 beta (19 April 2001)
- new FL 3.1.1 opcode : FHLS_ShowDialog
- new FL 3.1.1 functions in TFruityPlugHost : LoadSample, GetSampleData and CloseSample
- new FL 3.1.1 datatype : TSampleHandle
- new flags and opcodes : FPD_SetCustomWaveTable, FHD_WantIdle, FHD_SelectChanSample, FHD_LocateDataFile)

version 0.8 beta (21 December 2000)
- corrected the documentation on ProcessParam
- the implementation of FPE_MIDI_Vol has changed
- new host dispatcher opcodes : FHD_ActivateMIDI, FHD_WantMIDITick, FHD_WantMIDIInput and FHD_KillAutomation
- new member function for TFruityPlug : MIDIIn()
- the plugin flag FPF_MidiTick has been removed
- new plugin flag : FPF_DemoVersion

version 0.7 beta (30 November 2000)
- 3 new constants : FPD_UseVoiceLevels, FPN_VoiceLevel and FPN_VoiceLevelHint. If your full generator uses the cutoff and res voice parameters, you need to respond to FPD_UseVoiceLevels in the dispatcher !
- the FRes field of TLevelParams is now in the range 0..1 instead of 0..80
- added rendering helper functions (AddWave_32FM_32FS_Ramp and stereo version) and TempBuffers to TFruityPlugHost

version 0.6 beta (1 November 2000)
- the Osc3 examples now also take the pan setting into account when rendering the voices
- moved some stuff from FP_Def to the new FP_Extra (.pas/.h)
- moved TranslateMidi function from TDelphiFruityPlug / TCPPFruityPlug to FP_Extra (.pas/.cpp)
- there's a new record / struct in FP_Def called TMIDIOutMsg
- the declaration of the MidiOut function of TFruityPlug has changed
- new functions in TFruityPlugHost
- the FPE_Tempo event has changed
- new events : FPE_MaxPoly, FPE_MIDI_Pan and FPE_MIDI_Vol
- new dispatcher message : FPD_KillAVoice
- new host dispatcher message : FHD_NoteNamesChanged
- the Voice_Kill method of TFruityPlugHost has a new parameter (KillHandle)

version 0.5 beta (30 August 2000)
- solved the Osc3 problem, that caused other channels to go mute when Osc3 was playing
- made the Osc3 examples process their own (simple) envelope, so they're now more like full generators
- changes to the Osc3 documentation, slight changes to the rest of the docs

version 0.4 beta (29 August 2000)
- improved documentation
- included compiled example dlls
- removed all assembly in the examples (not in the sdk itself)
- the Visual C++ examples now compile and work (don't ask how)

version 0.3 beta (10 August 2000)
- Getting Started section of documentation completed
- FP_CPlug.h compiles in Visual C++ (but still no fully working VC++ example)
- PlugPath variable holds the correct path in C++Builder (and also in VC++ I think)
- the Osc3 example is now a full generator (uses Gen_Render) instead of a hybrid generator
- there's now also a "template" example, that contains extensive comments to explain how to create a plugin from scratch (apart from the editor stuff as that's too compiler dependant)

version 0.2 beta (6 August 2000)
- completer documentation
- new effect example (FruityGain)
- somewhat changed declarations (FP_Plug .pas/.h)
- more constants (and combinations of constants)

version 0.1 beta (20 July 2000)
- initial version