Cantabile Development Blog

Follow the development of music software Cantabile

Articles | Full Index | RSS Feed


Continuing the audio player

Continued progress:

  • Finished audio channel assignments - new Tools command to show dialog + settings saved to session file.
  • Implemented file reader using IWMSyncReader (ie: support for mp3 + other codec supported files).
  • Resolved outstanding issue determining length of mp3 file.
  • Added new audio engine setting for sample rate conversion quality with 3 settings - good, better and best. Also UI to set this + support to save/load between sessions.
  • Updated audio engine to support a shared sinc curve to be used by all audio players for sample rate conversion.
  • Integrated sample rate conversion into audio file source objects, and hooked up to convert audio data from reader (when required).
  • Re-factored audio recorder's output buffer objects for use as input buffers for audio player.
  • Implemented read-ahead buffer pool audio file source object.
  • Code to fill read-ahead buffers - reads from file reader, sample rate converts, and de-interleaves into buffers ready for use by audio engine. Have also code walked this fairly carefully as this is the core part of the audio player.
  • Added transport control API to audio file source - for play, stop, pause. (no UI for this yet)
  • Added loop mode implementation to audio file player to handle loop ranges (no UI for this yet)
  • Fixed a bug in SSE de-interleave routines causing stack overflow.

Getting there...

Posted on May 7, 2008

Share This

Posted on May 7, 2008

Brian Levine says:

One thing I would love is the ability to launch an audio file playback from a MIDI trigger, such as a pad on the controller. This would be awesome for live performance.

Leave A Comment

All comments will be reviewed for spam before being displayed.