dRowAudio is a Juce module which includes classes for audio processing and display.
The module has its roots in an application developed while studying at University but has since become a collection of commonly used classes and helper methods for rapid, audio based application development. Specialist areas include graphical displays, audio transport control and analysis.
Wrapper for audio transport and audio sources with a listener interface for notifying of changes to files and settings. Easily sub-classable for custom control, see AudioFilePlayerExt.
- Filtering, Looping and Reversing audio sources
Audio sources containing 3-band EQ, looping and reverse playback capabilities
Audio source wrapper for the SoundTouch library for independent pitch and tempo adjustments
Buffer class with with listener interface. Useful for holding wavetables or transfer functions.
- FFT classes
Simple to use FFT classes which use Accelerate on the Mac or RealFFT on Windows.
- Pitch Detection
Pitch detection based on a very accurate auto correlation method.
- Misc conversion and utility functions
- AudioThumbnailImage classes
Classes to render an audio thumbnail on a background thread to an Image and then control transport through positioning or dragging.
- Audio UI classes
AudioOscilliscope, Spectroscope, Sonogram, Meters etc.
Similar to OSX's Finder
Full featured music library table which can easily combine with the iTunes Library classes to display, search and act as a drag source for your audio library.
Some helpful utility classes such as clocks and cpu meters
- Lots of useful helper methods for interpolation, conversion and bezier curve generation
- Also lots of functions for finding variance, standard deviation, and other various averages
- Cumulative moving average
- cURL classes for RIIA multithreaded, multiprotocol network transfers
iTunes Library parser into ValueTree which can merge with an old library tree to maintain any added metadata.
- Lots of handy comparators, xml helpers and constants
- Helper methods for easily encrypting and decrypting strings
- Parameter class for easy plugin parameter management and scaling
- Native audio file browsing and selecting
- Converter classes from an iOS library entry to other audio formats
- AVAssetAudioFormat for native, real time iOS library reading without having to convert first
The dRowAudio demo (available from /apps) contains example usage for most of the classes. This is a good place to find out how to utilise the module's classes.
This is being constantly developed in a public Git repository so follow it to keep up to date. Its available here: https://github.com/drowaudio/drowaudio Please ignore the plugin and non-demo apps there for now, they are very old and need updating.
Setup and Config
There are a couple of flags that need to be set in your project in order for the project to successfully compile the cURL code. These are shown below as an Introjucer config page. If you are using MSVC you will also need to add dRowAudio/network/curl/lib to you library includes as this can not currently be set using the Introjucer.