File Release Notes and Changelog
Notes:
Release Notes
-------------
- V0.01
. Initial version
- V0.02
- V0.03
- V0.04
- V0.05
- V0.06
- V0.07
- V0.08
- V0.09 - 2004/11/06
. Starting this release tracking
. Implemented a double buffer mechanism to allow tempering with filter
coefficient, while still streaming. the switch is discreet, therefore
there could be a discontinuity in the audio signal, a transition smoot
fade could be implemented but not done
- V0.10 - 2004/11/14
. Got rid of a few remaining hardcoded number of output channel (8) references
. Band Stop filter now working
. All Pass filter no longer accessible to avoid crash on un-implemented
code, now part of ToDo
. Min/Max/greater_than filter parameter value checking
- V0.11 - 2005/11/05
. Some cleanup and exploration of grahic display libraries
- V0.12 - 2005/11/05
. Implemented the mono function per channel
- V0.13 - 2005/11/06
. Implemented a dialog for the output configuration
. This new menu includes: solo, delay, delay_units, delay_temperature
. solo exclusive mechanism implemented
. mesage mechanism back to the parent implemented via a global handle
. reworked the output config to embed it into the Dlg object
- V0.14 - 2005/11/06
. Implemented some of the temperature enabling dialog logic, then got
rid of it because the impact on distance is not significant enough
0.2% per deg C (0.6/331)
- V0.15 - 2005/11/11
. Replaced mono checkbox for summing mode
. This summing mode includes: stereo, mono, to_left, to_right
. Implemented reverse phase audio processing
. Implemented the delay unit in 4 modes (Samples, mS, mm, 1/32")
. Implemented the delay audio processing
- V0.16 - 2005/11/12
. Fixed the "delay = buffer size" bug (no delay in this condition)
. Cleanup the delay max value validation in accordance with the
various unit type via the creation of generic unit conversion macro
. Also cleaned up the spinning widget range and set/get position
overflow by using their 32bit API
. Implemented a configuration versionning storage, the upward
conversion will follow soon.
- V0.17 - 2005/11/13
. Fixed the problem with the start of songs being truncated
(SF Issue 1355918)
. This was also detremental to the end of the song, the fix
addresses that problem as well
. fixed also a bug with flushing the dealay when seeking to new
point in the song or when jumping to new songs.
- V0.18 - 2005/11/19
. getting rid of the unnescessary global variables (especially
windows handles)
. Implemented the config (cfg) storage/recalll of the filter tab
selection
. Implemented an "Out of value" filter data entry warning Modal
dialog providing value range guidance, when out of range.
. Also updating frequency display when value are rejected
. Implemented an "Out of value" delay data entry warning Modal
dialog providing value range guidance, when out of range.
. starting remodeling to have the config becomming the interface
between dialog and the audio processing (inspired by the MVC
Model-View-Controller design pattern)
- V0.19 - 2005/11/20
. Implemented a Configuration Manager acting as the interface
between the audio processing and the dialogs in an homogenous
manners. This centralise mechanism will also allow import/export
to file of the configuration.
. Passing to the dialog object creator the Output Configuration
Manager pointer for encapsulation purpose
- V0.20 - 2005/11/21
. Segragated the Filter dialog into a distinct object/file
- V0.21 - 2005/11/21
. Fix a mixup of output numbers in the Output Config Dialog Error
Messages Box
. Improve clarity of Output Config Dialog Error Message Box text
. Implemented rounding in the display of the delay value, preventing
value truncating, this was causing decrease of value alue after
each apply. This is fixing SF bug 1356182.
. Cleaned up the MAX_DELAY define to normalize the define in
seconds
. Also define a DEFAULT_SAMPLING_RATE for the purpose of
inititallisation prior to the audio framework providing input,
consequently getting rig of 44100 hardcoded value.
. Also define a MAX_SAMPLING_RATE value for the initialisation of
delay buffer.
. Implemented dynamic delay maximum validation utilising live
sampling rate.
. Implemented a version data model validation and warning mechanism
. Thighten up some printf statement preparing strings for the
validation dialog message boxes.
- V0.22 - 2005/11/23
. Validating the Dlg object pointer in the audio processing prior to
invoking the method, since the audio can be started whitout the
dialog been brought up.
. Got rid of the delay.init method and instead properly initialising
the array of constructor that now can receive parameter
. Getting rid of the type cast syntax (type) to the benifit of type()
C++ constructor
. Added to the config data model version validation Message Box an
OK button allowing the reset of data.
- V0.23 - 2005/11/24
. reworked delays to use uSec as the fundamental resolution
. Any data entry error are now reported as error not warning
. Changed the displayed unit list got rid of Samples (now is Sec,
mSec, M, mM, In, mIn)
- V0.24 - 2005/11/25
. fixed the delay innacuracy for SEC,M,IN
. implementing iterator by defining idc tables
. All edit field win spin widget where made right justified
. Inches are displayed in inches or 1/100 inches (decimal In)
Compatibility Notes
-------------------
- generated and tested for foobar2000 v0.8.3
Runtime Installation Notes
--------------------------
- from the zip file:
foo_dsp_xover_dll_x_xxx.zip
copy the file:
foo_dsp_xover.dll
into the directory:
C:\Program Files\foobar2000\components
- from the zip file (zip file only revisionned for sourceforge FRS,
always the same content):
msvcr71_dll_x_xxx.zip
copy the file:
msvcr71.dll
into the directory:
C:\WINDOWS\system32
if not allready installed
- Using "foobar2K->Preferences->Reset all" button at the right bottom of
the pluging dialog might be required when upgrading the plugin and some
of the configuration parameters appears or are interpreted approprately.
This will eventually will be managed seamlessly by the application see
RFE
Known Bugs
----------
- few second PC lockup between songs (SF Issue 1355932)
- droppout when selecting DSP manager (SF Issue 1355924)
- When foobar is terminated while music still playing, streaming hangs-up
at high Sampling rate 192KHz
. not sure if this is foo_dsp_xover or my Audiotrack(tm) drivers
. the hang-up repeats the last block repeatedly without any other choice
than pulling the plug on the PC, even a (winXP) reboot is not achievable.
- Some high order filter produces crackling
- Bandpass butterworth 20H to 250 Hz crackling
Un-reproducable Bugs
--------------------
- In the output routing box, if you select anything other than SUB, the
Sub-option disappears and gets replaced by "none". It's possible to
work around that by typing sub into a box, which makes it reappear
again.
Development Installation Notes
------------------------------
-
.
Development Distribution preparation Notes
------------------------------------------
- delete the following prior to zipping source
. .\Release directory
. .\Debug directory
. foo_dsp_xover.ncb
- create a foo_dsp_xover_source_X_XX.zip
Development Notes
-----------------
- Every release update version
. DECLARE_COMPONENT_VERSION at the end of foo_dsp_xover.cpp
. program version in foo_dsp_xover.rc VS_VERSION_INFO
Configuration Data Model revision history
-----------------------------------------
- CDMV 1.03 - 2005/11/23
. First version handled by the Configuration Manager version checker
- CDMV 1.04 - 2005/11/24
. Changing the delay stored units (was samples, is now uSec)
. Changing the displayed list of the unit that get stored in the
config. Got rid of Samples (now is Sec, mSec, M, mM, In, mIn)
Request for FEature
-------------------
- Config storage versioning management
- Implement a frequency response plotting
- Implement a speaker (e.g frd format) speaker response
import for plotting accuracy purpose
- Implement a Linkwitz-Riley filter type
- Implement stackable filter on the same channel
- Implement a debug and/or advance monitoring/control dialog
- Load/Save configuration file
- All Pass filter
- Resonator, Proportional-Integral filter
- many other...
ToDo Notes
----------
- Code Review cleanup
. change from #include "../SDK/foobar2000.h" to
#include “SDK/foobar2000.h” by
using VC compilation options to set the link path to the
good (relative yet) directory
. use int() (constructor of int) better than old style type
cast (int), in example such as:
int(int(VAL/SAMPLING_RATE)* SAMPLING_RATE/ SAMPLING_RATE)
- mkfilter cleanup
. get rid of the global variables
. cleanup the modularity to avoid passing all data to
all functions
To Be Tested Notes
------------------
- Will the xover on sound card with less than 8 output channels
Usage Tips
----------
- This software can also be favourably used with foobar convolver and DRC
Changes: