Rezonality / zing

Audio Integration Library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Zing - A Simple Audio Integration Library

Builds GitHub license

Zing is an audio integration library designed to get ImGui Apps up and running with audio I/O. It builds cross platform, but has so far only been tested on windows. It's a grab-bag of useful stuff to get you started in audio. The code is simple C++. It needs a helper library submodule containing some useful c++ stuff, and some packages. You can probably drop this code into your app and start playing; mostly it is structs and functions. The built in profiler is useful for seeing where your time is spent; I find it invaluable for threading situations. For the best introduction, see the short video overview below.

The demo lets you tweak parameters and generates a tone sound using the soundpipe library, in addition to the metronome that Ableton link provides (assuming you have sound output enabled). It reads in a simple midi stream and plays it back using the tsf midi renderer library (the midi messages are streamed to the audio pipeline using a concurrent queue).

  • Configuration UI for the audio, using the Port Audio library.
  • FFT analysis of the incoming audio in seperate threads, and simple display of the spectrum and audio waveform.
  • Ableton Link integration, for sharing tempo with other applications.
  • Integrates Soundpipe for simple effect/audio processing modules.
  • Simple thread profiler so you can see live what the UI and audio threads are doing.
  • Basic MIDI data visualization.
  • Save/Load of all settings to a TOML file.
  • Management of the audio device using port audio.
  • Load of Midi and playback

Video Overview

Zing Overview

Screenshot

ImGui

Building

git pull
git submodule update --init --recursive
prebuild.bat OR prebuild.sh
config.bat OR config.sh
build.bat OR build.sh

Sound Font

The included sound font is a small/simple/free general midi sound font from here (233 pop rock bank):

https://www.zanderjaz.com/downloads/soundfonts/pianos/ https://www.zanderjaz.com/soundfonts/pianos/233_poprockbank.sf2

Installing a more powerful soundfont will produce a better result, such as this one:

https://musical-artifacts.com/artifacts/1176

You can change the font loaded in demo.cpp

Libraries Used

See prebuilt.bat for the full list

Sound

SoundPipe

PortAudio

EarLevel

Ableton Link

Other

ImGui

Concurrent Queue

TomlPlusPlus

About

Audio Integration Library

License:Other


Languages

Language:C 77.0%Language:Lua 11.4%Language:C++ 9.2%Language:CMake 1.1%Language:Makefile 0.7%Language:Faust 0.3%Language:Shell 0.2%Language:Batchfile 0.1%Language:Go 0.1%Language:Csound Document 0.0%Language:Gnuplot 0.0%