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
Leave A Comment
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.