Made resampler and SSE filter setup functions public, in case anyone wants to call them early to prevent possible but harmless race conditions
Implemented automatic detection of SSE support
Renamed init_cubic function in preparation to make it public
Fixed compilation errors/warnings
Envelopes do not carry when New Note Action is Cut
Reworked declicker final volume propagation a bit
Fixed declicker handling cases where a declicking operation lasts longer than the current block
Removed start of note ramp when raising volume from zero on a running note, as normal volume ramping will already kick in
Fixed IT envelope loop pickup when the loop start is not on the first tick
Moved internal headers out of public dumb.h
Added documentation from the original project
Fixed 8xx effect for MODs, which have a range of 00...FF, not 00...7F or 80 or whatever
Fixed IT note cut and note off commands
Invalid notes correctly cause note fade, and range of valid notes increased to include 120/B-9
Normalized the indentation in the Lanczos resampler, and optimized the resampler a bit
IT NFx/NxF should not affect background voices
Merge branch 'master' of bitbucket.org:kode54/dumb
Channel volume effect should only apply to foreground voices
Fixed row played tracking and row timekeeping information for orders with skip commands
- I didn't realize that sigrenderer->tick counted down from speed to 1, rather
Apply delta to compressed samples regardless of creating tracker version
Merge branch 'master' of github.com:kode54/dumb
- Rewrote arpeggio implementation to use note offset tables
Fixed songs with envelope loops on the last tick
Fixed envelope start and end shortcuts
Merge branch 'master' of github.com:kode54/dumb
Fixed envelope loop timing
Fixed so it only initializes envelopes when instruments are enabled
Fixed envelope carry to only occur if the running note has not already been cut or released
Further fixes to IT envelope behavior
Reimplemented envelope carry to be more like other players
various fixes to address GCC warnings
Moved DUMBFILE structure to its own header file to unify the rare cases where it needs to be visible outside of dumbfile.c
Eliminated all clang compilation warnings
Fixed C++11 compilation error on Mac OS X
Fixed another stupid error
Cleaned up several warnings, including a buffer
Disabled MSVC 2012 default of SSE2
Fixed intermittent noise with SSE resonant filters by special casing zero length render calls
Subsong scanner always tries to play the first order now
Re-enabled SSE support and rewrote SSE filter function
Fixed timekeeping when starting a sigrenderer with a time offset
Disabled SSE as MSVC 2012 breaks it
Fixed position status reset on callback-aborted loop
Added MSVC 2012 v110_xp platform
Fixed duplicating some timekeeping state variables
Small fix for possible issue with time reporting for looped modules if callback ends playback
- Implemented loop-accurate time position reporting into DUMB
M_PI may not be defined
the MEMFILE filesystem didn't have seek and get_size functions
renamed "restrict" parameters to "restrict_"
Removed unnecessary optimization function
Fixed regular surround mixing
Optimizations and bug fixes for the Lanczos resampler
Fixed resonant filter handling in surround mixer
Implemented 3 channel surround mixing
Whoops, that was Blackman-Harris, not Lanczos. Lanczos produces less aliasing, anyway.
Fixed phase calculation when downsampling
- Implemented Lanczos resampler - Fixed overhead of performing effects updates on background voices
Replaced FIR resampler's IIR low pass filter with a fixed set of cutoff stages
- Removed *16/11 scale from S3M global volume
Fixed panning correctly this time
Implemented support for compressed stereo samples
Changed panning rule from 3dB to 0dB to match most trackers
Fixed loop start for STK modules
Fixed serious error with MPT extension reading
Fixed envelope reading to gracefully handle nodes which are out of range
Implemented support for the obscure S9F sample reverse effect
More fixes for seeking support
Fixes for C89 limitations and some const types
Implemented full seeking in DUMBFILE and modified several readers to account for this change, which also reduces their overall memory usage
- Added silence padding for samples which are too short to predict padding for
Eliminate clipping from the low-pass filter stage by increasing intermediate buffer type size to int
- Simplified low-pass filter
Added a low-pass filter to the FIR resampler
Merge branch 'master' of github.com:kode54/dumb
Made SSE filters configurable
Added new files to MSVC projects
Cleaned up MSVC 2010 project file
Removed stale source control file
- Implemented FIR resampler
Fixed pattern counting, and swapped pattern counting flag
Fixed portamento up effect when NNA channels are active
Oops, forgot MSVC doesn't have snprintf
Buffer entire file into memory to allow for weird file offsets, and add minimal Open/MPT extension reading