Share

foo_dsp_xover

File Release Notes and Changelog

Release Name: version 0.24

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: