C++

From EMC23 - Satellite Of Love
Jump to navigation Jump to search

About C++

C++ (pronounced cee plus plus) is a general purpose programming language developed by Bjarne Stroustrup starting in 1979 at Bell Labs. It is immensely popular, particularly for applications that require speed and/or access to some low-level features. It is considered to be an intermediate level language, as it encapsulates both high and low level language features. Uses include Vst and VCVRack plugin development.

Essential Tutorials[edit]


Audio Tutorials[edit]

  • Exercism.org Massive Computer Language Tutorial System
  • VCVRack
  • Vult
  • Pulse Audio

Frameworks & Libraries Supported by EMC23[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 & Tools[edit]

  • Windows:
    • Visual Code
    • Mingw-w64 is an advancement of the original mingw.org project, created to support the GCC compiler on Windows systems. It has forked it in 2007 in order to provide support for 64 bits and new APIs. It has since then gained widespread use and distribution.

Works well with MingGW64 & GCC

  • MAC
  • Linux

Hardware[edit]

Books[edit]

The Audio Programming Book