Changelog
cicsPlay 2.0b39
---------------
November 2010
1. Fix for balance control when used repeatedly
2. Provide keyboard support for balance control: keys 'k' & 'l'
changes balance
3. Reverse change 5 done in 2.0b37: ASIO interface for general hardware
assumed. This should provide interesting comparisons with 2.0b38.
cicsPlay 2.0b38
---------------
September 2010
1. Minor UI refinement to indicate balance control is engaged
(affected balance button icon is changed)
2. DSP & ASIO refinements
cicsPlay 2.0b37
---------------
September 2010
1. Clipping added when phase 180 and no upsampling is used. Recordings
using max negative scale causes clipping error when inverted (e.g.
at 16 bit scale -32768 is used instead of -32767). Loud recordings
will suffer from this error.
2. Implement balance control. See specifications for details. Buttons
(<,>) next to volume display allows for balance adjustments.
On balance adjustment, volume of affected channel is displayed in
elapsed time window. Settings panel displays status information.
3. Minor UI refinements
4. Minor DSP refinements
5. ASIO interface refinement to improve support for Nehalem based CPUs
(Core iX)
cicsPlay 2.0b36
---------------
June 2010
1. DSP refinements including more efficient resampler performance for
both SRC and SoX
2. Minor UI refinements including cosmetics. Window title now shows
track number, in & out rates, e.g. "[3 44>192] Vengelis - ...".
3. Fix for cue sheet processing when content file exceeds 99 minutes
cicsPlay 2.0b35
---------------
March 2010
1. Minor VST refinement
2. VST parameters maintained on ASIO startup error. Previous approach
reset parameters to plugin defaults whenever an ASIO error
occurred at startup.
3. Remote control via PostMessage function. External programs can
start player and perform control actions like Next, Previous or
Stop directly. Useful for headless setups requiring programmed
interaction with player. UI frontends can also exploit this new
feature. See supplied sample program in release notes.
4. Keyboard processing only done when focus is on main window
5. DSP, SRC & ASIO refinements
cicsPlay 2.0b34
---------------
December 2009
1. Major VST update:
1.1 Fix minor UI error on 64 bit indicator in VST settings
1.2 Add silence when switching tracks to clear plugin buffers
1.3 Enable speaker setup with plugin versions beyond 2300. Such
plugins are automatically configured for 2-in/2-out.
1.4 Extensive revision in VST ASIO interface. New buffer design
allows for faster ASIO processing.
1.5 VST to ASIO output setup allows for each ASIO channel to be
enabled. This removes unnecessary ASIO overheads when using
less plugin outputs, e.g. of plugin's 8-outs only 6 are used.
1.6 SSE2 128 bit processing
1.7 Add plugin 'bypass' button in Settings. On stereo output
DSP output is passed through. On multi-output, only the
first 2 mapped ASIO outputs are used (for left & right). On
mono output, DSP output is summed & averaged for selected
mono ASIO output channel.
1.8 B9 compiler option removed to ensure plugin compatibility
1.9 Add VST safety option to limit control. VST editor is accessed
through a prompt, bypass is not allowed, and autoplay is not
done at startup.
1.10 Other minor (& cosmetic) refinements
2. DSP refinements:
2.1 Auto-mute feature delays playback start. Mute is longer (and
noticeable) when using a VST plugin (~2 seconds).
2.2 New method implemented for DSP termination improving safety
when using a VST plugin
2.3 Other minor refinements (efficiency & ASIO)
3. Performing "ASIO Settings" (via Settings) stops playback and a
"restart" message is shown. ASIO drivers behave differently on
setting changes resulting in unpredictable behaviour (for some).
cicsPlay 2.0b33
---------------
December 2009
1. Refinements in DSP and ASIO
2. VST Plugin support in DSP processing. Only stereo plugins (i.e. 2
input channels) can be used with up to 8 output channels. ASIO
performance is maintained for 2-in/2-out plugins (stereo output).
For multi-channel output, best ASIO performance is achieved when
latency is 64 samples or less.
DSP processing (including volume control) preceeds plugin. See
specifications for more details.
Usage: Set VST plugin via Settings > VST panel. Main panel enables
VST button if plugin offers an Editor. Plugin settings are saved.
cicsPlay 2.0b32
---------------
December 2009
1. Low level improvements in DSP and ASIO
cicsPlay 2.0b31
---------------
October 2009
1. DSP refinements
1.1 Threads optimisation for use with cMP's "Realtime" Optimise
setting. Recommendation of "Critical" setting remains however
significant efficiency gains makes "Realtime" a strong option.
This allows for complex decoding (i.e. FLAC) to occur without
affecting playback in cMP. Depending on soundcard ASIO driver,
"Realtime" setting could be better.
1.2 SRC efficiency improvements reducing CPU load and L2/L3 cache
footprint
1.3 Minor refinements
2. Added support for "Tiny" DSP Buffer Size. Previous buffer options
remains the same with "Auto" using either "Small", "Medium", or
"Large", i.e. "Tiny" must be manually selected.
"Tiny" buffer option reduces L2/L3 cache footprint enabling lower
specification CPUs to be used with resampling. The 2MB L2/L3 cache
requirement remains to produce highest quality 192k output.
cicsPlay 2.0b30
---------------
September 2009
1. DSP refinements
1.1 Optimisation for Intel's Nehalem platform (Core ix CPUs)
1.2 ASIO Settings activated on invalid latency or output
1.3 Other low level refinements (SRC & kernel)
cicsPlay 2.0b29
---------------
August 2009
1. DSP refinements
1.1 Gapless processing enhancement
1.2 Volume processing efficiency improvement
1.3 DSP buffer optimisation (when using AWE)
1.4 SRC efficiency improvement
1.5 Other minor changes
2. Minor ASIO refinement
3. UI timer processing improvement
4. Fix for Windows Kernel error (in memory management)
5. Increased tracks/splits per cue sheet to 160 (from 120)
cicsPlay 2.0b28
---------------
August 2009
1. DSP refinements (reduce low level overheads & enhance threading)
2. ASIO refinement (support for rare soundcard types removed)
cicsPlay 2.0b27
---------------
July 2009
1. Minor ASIO refinements
2. DSP refinements (new advanced design implemented) giving efficiency
improvements
3. Disable keyboard processing when file browsing
4. Faster 24 bit WAV processing (improving RAM load times)
5. Compiler optimisation done (for FLAC)
cicsPlay 2.0b26
---------------
June 2009
1. Increase support for large WAV files to 4GB (from 2GB)
2. SoX 14.2.0 resampler implemented. Settings allow for VHQ (Very High
Quality) or HQ (High Quality) converters. Important resampler
effects includes phase, bandwidth and (above bandwidth) aliasing.
3. DSP and ASIO refinements
4. Added SSE3 B9 version for CPUs supporting SSE3 but not SSSE3. SoX
resampler is not compatible with a compiler optimisation. This
impacts SSE2 and can be avoided by using SSE3 or higher versions.
5. UI allows for most settings (excluding ASIO, Output Rate, Buffer
& AWE) to have immediate effect. "Apply" button in Settings applies
new settings during playback enabling easy comparisons.
6. Improve UI (new icons and enhanced Settings window)
7. Enhance gapless processing and background loading
cicsPlay 2.0b25
---------------
May 2009
1. ASIO output interface refinement
2. Minor DSP refinements
3. Fix for soundcards using latencies of odd samples (rare)
cicsPlay 2.0b24
---------------
May 2009
1. ASIO startup refinement
2. ASIO output interface replaced
3. Minor DSP refinement
cicsPlay 2.0b23
---------------
May 2009
1. DSP and ASIO (including startup) refinements
2. Compiler optimisation
3. UI refinements:
3.1 Keyboard support for Pause / Play using 'p' or 'P' key
3.2 Option to start without autoplay. Adding line 'NOAUTOPLAY'
to ini file causes no playback on startup. Desired track
must be manually started
cicsPlay 2.0b22
---------------
May 2009
1. Compiler optimisation done (aggressive parallel settings in effect)
cicsPlay 2.0b21
---------------
April 2009
1. ASIO output refinement:
1.1 Small refinement for SSE4
1.2 SSE2 and SSSE3 versions revised to be closer to SSE4
2. Minor changes (ASIO interface and test output functions)
3. Minor fix affecting downsampling (error was given)
4. Compiler optimisation done
cicsPlay 2.0b20
---------------
March 2009
1. ASIO output refinement:
1.1 Bypass inefficient CPU instruction
1.2 Advanced interface for SSE2 and SSSE3 (SSE4 uses new
instruction) for maximum efficiency
2. Added "MINIMISE" option for INI file. When added to INI file,
playback occurs with minimised window.
3. Minor fix affecting diagnostics
4. Reinstate function to ensure only one instance for playback
5. Upgrade to latest compiler (additional optimisation done)
6. Added SSE4 B9 build option allowing for maximum performance
with latest Intel CPUs. Explicit SSE4.1 instructions are used
7. SSSE3 option removed (advanced versions uses B9 optimisation)
cicsPlay 2.0b19
---------------
February 2009
1. DSP refinement: Shift workloads around to enable maximum ASIO
output efficiency (improvements in ASIO CPU load and output
latency is achieved)
New DSP components is used to achieve this complex change
2. Changed "INDEX00_GAPLESS" to "INDEX00_IGNORE". When added to
INI file, INDEX00 entries are ignored (pregap is added to
previous track)
cicsPlay 2.0b18
---------------
February 2009
1. DSP refinements:
1.1 Reduce low level Windows overheads
1.2 Max cue tracks supported increased to 120 (from 80)
1.3 Compiler optimisation done
1.4 Added "INDEX00_GAPLESS" option for cicsPlay.ini file. When
added to INI file, INDEX00 is processed without gaps (i.e.
previous track ends at INDEX00 and next track starts here).
1.5 Other minor changes
cicsPlay 2.0b17
---------------
January 2009
1. UI Refinements:
1.1 Keyboard skip actions: '-' for backwards & '=' for forwards
1.2 Cosmetics
2. DSP refinements:
2.1 Max ASIO drivers supported reduced to 3 (from 8)
2.2 Further improvements in ASIO output efficiency!
2.3 Other minor changes (clipping, prefetcher & streaming)
cicsPlay 2.0b16
---------------
January 2009
1. UI Refinements:
1.1 Only actual tracks displayed with splits shown in "()"
1.2 Skip Forward and Backward spans multiple tracks instead of
track wrap around
2. DSP refinements:
2.1 Reduce minimum RAM requirement to 160MB (allows playback
in systems using only 256MB RAM which is most optimal when
input media is largely 44.1k)
2.2 Upgrade to libsamplerate-0.1.5 (SRC). A step reduction in
CPU load is achieved allowing for lower CPU frequency.
2.3 SSE2 changes done to SRC's "stereo output" further lowering
CPU load and improving RAM read & write efficiency.
2.4 Faster FLAC decoding
2.5 Other minor changes (prefetcher & streaming)
cicsPlay 2.0b15
---------------
January 2009
1. Startup: implement ASIO trace log
2. UI refinements:
2.1 More status messages and cosmetics
2.2 "Timer" Settings option added to allow for elapsed timer to
be shown or bypassed. When "No" (bypassed), message displays
"tr 00:00" during playback ("tr" indicates current track).
Bypassed timer gives most optimal playback as UI inteference
is removed (no UI timer processing & video traffic).
3. DSP refinements:
3.1 "INDEX 00" processsed correctly in cue sheet. Diagnostics
provide track information making it easier to fix cue sheet
errors. After track INDEXes, a new "EOC" directive (End Of
Content) can be used to stop processing content beyond time
indicated, e.g. "EOC 16:08:20". This feature enables cue
sheets to fully represent playlists as extraction of a
single track from a multi-track content file is now possible.
cPlay limits the number of tracks per cue sheet to 80.
3.2 Faster RAM loading (both WAV and FLAC)
3.3 Improved prefetcher performance
3.4 More efficient ASIO output achieved
3.5 Other minor improvements
cicsPlay 2.0b14
---------------
December 2008
1. Minor UI refinement: "no media" message and display information
(ellapsed time and volume) in default colour. "Flicker" problem
fixed
2. DSP refinement: SRC upsampling redesigned giving reduced RAM
writes (~30% less) and much smaller L2 cache footprint
cicsPlay 2.0b13
---------------
December 2008
1. UI refinement: remove Windows overheads (MFC replaced with WTL)
2. DSP refinement: improve RAM load process (done via DSP threads)
3. Compiler optimisation done
4. Fix audio glitch that occurs after play is restarted from 'stop'
cicsPlay 2.0b12
---------------
November 2008
1. Minor refinements
2. Compiler optimisation done
cicsPlay 2.0b11
---------------
November 2008
1. UI refinement: reduce runtime footprint
cicsPlay 2.0b10
---------------
November 2008
1. DSP refinement: 128 bit DSP processing
All critical areas changed to use advanced 128 bit processing
capabilities (i.e. vectorisation & streaming) of SSE2, SSE3...
processors. SRC upsampling is excluded (which only benefits from
compiler optimisations).
CPU load reduces and RAM I/O efficiency improves.
2. UI Refinements: Phase icon indicates 0 or 180 (previous '^'
indicator is removed). Settings provides diagnostics information
(available RAM, volume and phase).
cicsPlay 2.0b9
--------------
November 2008
1. DSP refinement: new math routines removing need for precision
(and slow) library processing
2. Compiler optimisation done
cicsPlay 2.0b8
--------------
November 2008
1. Minimum processor supported is SSE2 (Pentium 4) which replaces
the normal cPlay version (SSE). Processors not supporting SSE2
are not suitable for high quality audio
2. DSP refinement
3. Compiler optimisation done
cicsPlay 2.0b7
--------------
November 2008
1. Minimum processor supported is SSE (Pentium 3). This replaces
the normal cPlay version and will work on all processors
expect deep legacy models (prior to Pentium 3)
2. DSP refinements: more efficient DSP & ASIO processing
cicsPlay 2.0b6
--------------
October 2008
1. Fix track sequencing when splits occur
2. Reduce chance for track splits when wav or flac file is
played directly
3. Replace 'Track 01' with file name when playing wav or flac
directly
4. Compiler optimisation
cicsPlay 2.0b5
--------------
October 2008
1. Track splits performed when available RAM is low. Minimum
available RAM needed is 256MB and maximum supported is 1GB.
Lower available RAM translates into potentially more track
splits causing background loads to occur well within a
track. Ideally, this interference should be avoided.
2. DSP refinements: more efficient background loading and ASIO
processing
cicsPlay 2.0b4
--------------
October 2008
1. Work-around to a Windows Kernel bug that occurs when using
AWE under some conditions (AWE failure is reported in
diagnostics)
2. DSP refinements: reduce CPU load to accommodate gapless
processing
3. Gapless / seamless playback. At start of eack track, next
track is loaded (in background). CPU load could increase
to 100% (when upsampling and/or processing flac)
4. UI refinements: remove Phase 0/180 message delay
5. FLAC PCM 32 fix
cicsPlay 2.0b3
--------------
October 2008
1. Support for PCM 32 (WAV or FLAC) and 32 bit IEEE754 Float
(WAV only)
2. Fix for clipping (inadvertantly bypassed in 2.0b2) - only
has effect when volume set to 0.0db
3. New 'Large' buffer setting used by Auto when output rate
is 48k or less. Processors with L2 cache size larger than
2MB, its worth testing Medium and Large setting (for any
output rate) - new 2.x DSP has smaller cache footprint
allowing for larger buffers
4. RAM allocation refinement when not using AWE
5. Minor DSP refinements
cicsPlay 2.0b2
--------------
October 2008
1. Important DSP refinements: reduce CPU load and improve
processor cache efficiencies (vectorisation and alignment
done)
2. Fix skip forward and backward time displays
3. Minor UI enhancements (track highlighted before loading)
cicsPlay 2.0b1
--------------
October 2008
1. New DSP design allowing for less RAM and greater efficiency.
See release 2.x notes above.
2. Minor UI change for phase 0/180 setting
cicsPlay 1.4 Final
------------------
October 2008
1. Faster FLAC decoding (for both 16 & 24 bit formats)
2. Improved 24 bit DSP processing
3. Finalise compiler optimisations
4. Refine ASIO startup
cicsPlay 1.3 Final
------------------
September 2008
1. Reinstate functionality removed from 1.2.1 (ASIO channel
remapping)
2. Update SRC to latest version: LibSampleRate-0.1.4 (changes
relate to bug fix when using low conversion rates)
3. Additional compiler optimisations for better floating point
precision and efficiency
4. ASIO startup is done after UI
cicsPlay 1.2.1 Final
--------------------
September 2008
1. Refine ASIO interface for Xonar soundcards and Vista
compatibility
cicsPlay 1.2 Final
------------------
September 2008
1. Tuning parameters now part of Settings. "DSP Buffer" at
Auto (default), Small or Medium is provided. Small sets
parameters as per cPlay 1.1, Medium as cPlay 1.0 and Auto
selects parameters based on output rate.
Guidance: CPUs with 2MB+ L2 cache, use Auto setting. Small
is ideal for high output rates (above 96k) whilst Medium
is best for 96k or lower. On CPUs offering less than 2MB L2
cache, Small is recommended for all output rates.
These buffer sizes work best with low ASIO buffer or
latency setting (less than 512 samples).
2. Revise ASIO interface at startup. Some soundcards do NOT
appear in list. A known problem with Xonar.
cicsPlay 1.1 Final
------------------
September 2008
1. Change tuning parameters
2. Bug fixes:
2.1 Extension in caps was not recognised
2.2 Clipping not done for Phase 180 when not upsampling
2.3 Cue processing error when no title exists for track
2.4 HiRes FLAC decoding error (SSSE3 version only)
3. Minor UI change
cicsPlay 1.0 Final
------------------
July 2008
1. Change labels (b19 to final)
2. Fix for Lynx soundcards