C++: Difference between revisions
No edit summary |
|||
Line 3: | Line 3: | ||
== | == Frameworks & Libraries Supported by EMC == | ||
[[ | * [[PortAudio]] | ||
PortAudio is a free, cross-platform, open-source, audio I/O library. It lets you write audio programs in 'C' or C++ that will compile and run on many platforms including Windows, Macintosh OS X, and Unix (OSS/ALSA). It is intended to promote the exchange of audio software between developers on different platforms. It provides a very simple API for recording and/or playing sound using a simple callback function. | |||
* [[RtAudio]] | |||
RtAudio is a set of C++ classes that provide a common API (Application Programming Interface) for realtime audio input/output across Linux, Macintosh OS-X and Windows operating systems. RtAudio significantly simplifies the process of interacting with computer audio hardware. It was designed with the following objectives: | |||
** object-oriented C++ design | |||
** simple, common API across all supported platforms | |||
** only one source and one header file for easy inclusion in programming projects | |||
** allow simultaneous multi-api support | |||
** support dynamic connection of devices | |||
** provide extensive audio device parameter control | |||
** allow audio device capability probing | |||
** automatic internal conversion for data format, channel number compensation, (de)interleaving, and byte-swapping | |||
** RtAudio incorporates the concept of audio streams, which represent audio output (playback) and/or input (recording). Available audio devices and their capabilities can be enumerated and then specified when opening a stream. Where applicable, multiple API support can be compiled and a particular API specified when creating an RtAudio instance. See the API Notes section for information specific to each of the supported audio APIs. | |||
* [[VULT]] | |||
* [[JUCE]] | |||
JUCE has hundreds of classes covering a vast range of tasks from high-level user-interface handling right down to low-level collections, networking, strings, etc. Supported platforms are OSX, Windows, Linux, iOS and Android, and the Introjucer project management tool makes it a breeze to create and maintain cross-platform projects. | |||
== IDEs Supported By EMC == | == IDEs Supported By EMC == |
Revision as of 16:09, 1 September 2021
C++ Uses include for Vst and VCVRack plugin development.
Frameworks & Libraries Supported by EMC[edit]
PortAudio is a free, cross-platform, open-source, audio I/O library. It lets you write audio programs in 'C' or C++ that will compile and run on many platforms including Windows, Macintosh OS X, and Unix (OSS/ALSA). It is intended to promote the exchange of audio software between developers on different platforms. It provides a very simple API for recording and/or playing sound using a simple callback function.
RtAudio is a set of C++ classes that provide a common API (Application Programming Interface) for realtime audio input/output across Linux, Macintosh OS-X and Windows operating systems. RtAudio significantly simplifies the process of interacting with computer audio hardware. It was designed with the following objectives:
- object-oriented C++ design
- simple, common API across all supported platforms
- only one source and one header file for easy inclusion in programming projects
- allow simultaneous multi-api support
- support dynamic connection of devices
- provide extensive audio device parameter control
- allow audio device capability probing
- automatic internal conversion for data format, channel number compensation, (de)interleaving, and byte-swapping
- RtAudio incorporates the concept of audio streams, which represent audio output (playback) and/or input (recording). Available audio devices and their capabilities can be enumerated and then specified when opening a stream. Where applicable, multiple API support can be compiled and a particular API specified when creating an RtAudio instance. See the API Notes section for information specific to each of the supported audio APIs.
JUCE has hundreds of classes covering a vast range of tasks from high-level user-interface handling right down to low-level collections, networking, strings, etc. Supported platforms are OSX, Windows, Linux, iOS and Android, and the Introjucer project management tool makes it a breeze to create and maintain cross-platform projects.
IDEs Supported By EMC[edit]
- Windows: 2 IDEs are recommended Code Blocks(open source) and Visual Studio (Closed Source). I find Visual Studio has more support from Juce and I will be supporting this IDE for the present.
- MAC
- Linux
Hardware[edit]
Books[edit]
The Audio Programming Book