CHANGELOG ========= 2018 : v0.23 BUG FIX: SE command 7 was not correctly supporting new freq format BUG FIX: Various mod effects not properly supporting new freq format BUG FIX: When DSP is stopped pad buttons became fixed, now cleared BUG FIX: DSP copy loop was 1 long too many ;) Optimisations to frequency calculation code, less CPU intensive and smaller Optimisations to FineTune calculations removing a 4K LUT, improving speed of FT calculations, and reducing the size of the SE footprint, as well as reducing the amount of access required to Main RAM for FineTuned samples. Added a Status Register U235SE_status_reg and equates Included ELF object format version of the Sound Engine binary. Stop Voice command now has an option to stop sample at the end of the sample, this is useful for stopping a looped sample once it has reached it's natural end. This may be after the defined loop end (REND). Voice Status register U235SE_voice_status added, indicates the current sample playing state of all voices. If a voice is processing a sample then it's bit will be set, otherwise cleared. ------------------------------------------------------------------------------ 2018-12-13 : v0.22 BUG FIX: Finetune values were not being used for module instruments, this has now been fixed BUG FIX: u235se.inc file had the wrong values for some of the pad numerical representations. BUG FIX: When using modinit to start a new module, the playback position would continue from the same place as the previous mod, also possibly at the wrong speed, depending on the previous mod. Now correctly resets mod playback position and speed BUG FIX: Notes in octave 8 were being missed, adjusted range of playback frequencies. When submitting a frequency to SE, it should be half of the desired frequency. Sound Engine command 15 has been added, this will fully stop the DSP from running, allowing the user to load new code into the DSP as required. Thanks to Shamus for the help modinitpos function added, this allows you to specify a start position within the module that is being initialised using D0 modinit and modinitpos are both now considered deprecated, please start using U235SE_modinit and U235SE_modinitpos instead ------------------------------------------------------------------------------ 2014-02-17 : v0.21 NEW FEATURE: Joypad reading is now handled by the SoundEngine. Status of pad1 & pad2 can now be easily read via 2 longs Support for Protracker effects Fine-slide Up and Down (E1x & E2x) added Significant improvements to manual ------------------------------------------------------------------------------ 2013-07-13 : v0.20 Minor typo's corrected in manual. Slight restructure of information tables at the end. Updates to manual to cover the removal of the sequence.s file. Sample cache now uses 32bit reads instead of 16bit reads, as a result of this modules MUST be LONG aligned. Fixed bug in looped samples discovered by Matmook of Jagware, (thanks to GroovyBee for listening to my endless waffle and coming up with some excellent ideas) Added support of Vibrato and Volume slide effect [6] Added 16-bit Random number generator - Manual updated to include details ------------------------------------------------------------------------------ 2012-06-16 : v0.19 Some minor corrections to the manual (reported by DrTypo on AA) Detail of how to reset module position added to manual (requested by DrTypo and Matmook) Added code to support the finetune of samples in the module. requires the use of a lookup table in main RAM. The table is only used if a sample with a finetune is played, otherwise it is ignored. Added support for modules that use a speed setting other than 125BPM. (Fxx where xx > 20) Added support of Slide-to effect [3] Added support of Vibrato effect [4] Added support for fine volume slides [14][10] and [14][11] Fixed bug with notes that have no sample number allocated ------------------------------------------------------------------------------ 2012-01-14 : v0.18 Implemented buffering on the audio channels, complete renderer rewrite from ground up, optimised and improved code for Sound Engine parser also. Sound Engine can now tollerate greater bus latency before audio artifacts occur. Thanks to Reboot for the assistance in testing this. SE will now default to 16kHz playback unless otherwise configured. New flags for mono or stereo playback U235SE_playbackmode variable sets the playback of mono or stereo for either voices 0-3 (music) or 4-7 (sfx) using equates: U235SE_MONO U235SE_STEREO_MUSIC U235SE_STEREO_SFX playmod will still accept any flags there but mixing will follow this variable only. Defaults to mono. corrected comments within the example "main.s" source (reported by CJ) Some minor adjustments to the manual. Changed the name of the SoundEngine object file from dsp.o to dsp.obj (reported by DrTypo on AA) ------------------------------------------------------------------------------ 2011-12-27 : v0.17 Tracker effect 3 has been disabled until it can be fully implemented following core changes to the Sound Engine. The SE commands #6 and #10 have now been removed from the engine completely. There is now no need to use the period lookup tables and initialisation of the engines playback speed is performed by setting two values. New manditory SE command added #11. This sets the sound bank to be used by the SE when playing a sample. This must be set before any samples from a sample bank are used. This also means that sample numbers start at zero for all banks, there is no reservation for module samples as these have their own sample bank. Created an include file with useful equates and externs already defined to make interfacing with the SE easier (hopefully) Fixed SE command #4 (Play sample @ rate) so it actually works now :) Fixed SE command #2 (Play Sample @ default) so it actually works now :) Manual updated to reflect changes ------------------------------------------------------------------------------ 2011-12-22 : v0.16 Effect 3 is now recognised (slide-to) in module player, still being worked on still quite buggy new Sound Engine command #10 added slide to note at rate Corrected playback starting at position 6 in a module :D Fixed bug where effects that occur every tick would run even if they were not meant to. Improved clarity of "SoundEngine commands" diagram and table in manual. Added details of module effect support to manual ------------------------------------------------------------------------------ 2011-12-12 : v0.15 I2C setup has been moved into the DSP code. No-longer needed in 68K section Cleaned up some equates in sequence.s Finally found the correct definition of 'period' on Amiga hardware. Player is now correctly tuned. Exported labels from the SE are now prefixed with U235SE_ to remove chances of conflicting with labels in others projects. ptr_sample_bank => U235SE_ptr_sample_bank playlist_ptr => U235SE_sfxplaylist_ptr playmod => U235SE_playmod Setting of playback frequency is now set by the period table pointed to by U235SE_period_ptr. Must be set BEFORE DSP is started!! Added Period tables for 8, 12, 16, 24 and 32kHz playback Manual updates with changes to operation and labels. ------------------------------------------------------------------------------ 2011-12-07 : v0.11 - General tidy of demo code Manual and logos added First Beta Release ------------------------------------------------------------------------------ 2011-10-07 : v0.1 - Initial release (source) to tester