Donate Share

Nsound

File Release Notes and Changelog

Release Name: nsound-0.5.0

Notes:
This Release:

This release is mostly interface cleanup.  I hope to use this release to flesh out the wiki!

Cleaned up the interfaces a bit.  The biggest change is to the Plotter class.  The function Plotter::show() must be called at the end of your programs in order to actually pop up the plot windows.  This tells the Nsound library that you are done using the Python run-time and to display all plots created and free up memory allocated by Python.

Added the ability to filter sample by sample for FIR filters.  This allows them to be used in real-time applications, IIR filters already had this feature.  In example6.cc, there is a loop that manipulates one sample at a time to implement some physical models for a bass guitar, slide flute, and clarinet.  Now an FIR filter could be used in place of the ones currently being used if desired.

The Future:

The next feature I'll be working on are custom FIR filters.  The frequency response is what defines the filter's kernel.  This will allow multiple notches, anti-notches, etc. in one FIR filter (hopefully).  And possibly FFT Filters that use the overlap and add method for filtering.  FFT filters should be an order of magnitude faster than the the FIR implementation.

After finishing the custom FIR filter and FFT filters, I hope to start implementing some high quality drums, perhaps some physical model based drums using the mass-spring damper simulation.


Changes: 2008-03-05 Nsound 0.5.0 + Changed Generator::generate(duration, frequency, acceleration) to Generator::generate(duration, frequencies) + Removed Plotter::quickPlot() + Added AudioStream::plot() + Added Buffer::plot() + Added FFTChunk::plot() + Added Plotter::show(), must be called to make plots visible. + FIR & IIR are now derived classes from Filter. + Added FIR::filter(float64 x), FIR::Filter(float64 x, float64 freq1), FIR::filter(float64 x, float64 freq1, float64 freq2) -- FIR filters can do sample by sample filtering, like IIRs + Added Wavefile::get/setDefaultSampleRate() + Added Wavefile::get/setDefaultSampleSize()