All Projects → deermichel → reverb

deermichel / reverb

Licence: other
Straightforward (sound/multipurpose) reverberator

Programming Languages

C++
36643 projects - #6 most used programming language
shell
77523 projects
Inno Setup
370 projects
python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language
Batchfile
5799 projects

Projects that are alternatives of or similar to reverb

Thorium
Platform for starship simulator controls
Stars: ✭ 109 (+373.91%)
Mutual labels:  realtime, sound
Wad
Web Audio DAW. Use the Web Audio API for dynamic sound synthesis. It's like jQuery for your ears.
Stars: ✭ 1,540 (+6595.65%)
Mutual labels:  daw, sound
revai-node-sdk
Node.js SDK for the Rev AI API
Stars: ✭ 21 (-8.7%)
Mutual labels:  realtime
AlphaEx
A Python Toolkit for Managing a Large Number of Experiments
Stars: ✭ 27 (+17.39%)
Mutual labels:  experiment
ably-dotnet
.NET, Xamarin and Mono client library SDK for Ably realtime messaging service
Stars: ✭ 32 (+39.13%)
Mutual labels:  realtime
Aether
An algorithmic reverb LV2 based on Cloudseed
Stars: ✭ 99 (+330.43%)
Mutual labels:  reverb
hUGEDriver
An easy-to-use, fast, tracker-based, public domain sound driver for Game Boy homebrew
Stars: ✭ 26 (+13.04%)
Mutual labels:  sound
ripple
Simple shared surface streaming application
Stars: ✭ 17 (-26.09%)
Mutual labels:  realtime
figaro
Real-time voice-changer for voice-chat, etc. Will support many different voice-filters and features in the future. 🎵
Stars: ✭ 362 (+1473.91%)
Mutual labels:  sound
paStash
pastaʃ'ʃ = Spaghetti I/O Event Data Processing, Interpolation, Correlation and beyond 🍝
Stars: ✭ 89 (+286.96%)
Mutual labels:  realtime
X-Piano
Now you can make your own piano!
Stars: ✭ 13 (-43.48%)
Mutual labels:  sound
Vst3HostDemo
Vst3HostDemo
Stars: ✭ 16 (-30.43%)
Mutual labels:  daw
alsa-utils
The Advanced Linux Sound Architecture (ALSA) - utilities
Stars: ✭ 122 (+430.43%)
Mutual labels:  sound
JUCE ARA
The JUCE cross-platform C++ framework, augmented with support for the Celemony ARA API
Stars: ✭ 32 (+39.13%)
Mutual labels:  daw
apollo-studio
Apollo Studio is a standalone editor and live playback engine for RGB Launchpad light effects.
Stars: ✭ 115 (+400%)
Mutual labels:  daw
realtime-csharp
A C# client library for supabase/realtime.
Stars: ✭ 35 (+52.17%)
Mutual labels:  realtime
KinoEight
8 bit-ish style post-processing effect for Unity
Stars: ✭ 112 (+386.96%)
Mutual labels:  effect
intrinio-realtime-python-sdk
Intrinio Python SDK for Real-Time Stock Prices
Stars: ✭ 79 (+243.48%)
Mutual labels:  realtime
touchMyRipple
A simple library for apply the ripple effect where you want
Stars: ✭ 19 (-17.39%)
Mutual labels:  effect
qualisys python sdk
Python implementation of the real-time protocol for Qualisys Track Manager
Stars: ✭ 24 (+4.35%)
Mutual labels:  realtime

reverb

As a music fan, I always wanted to implement my own reverb. Here it is - experimental as usual :P. It is a basic variant of the Jot's FDN Late Reverberator using a Hadamard matrix as feedback matrix. Depending on how you choose the parameters and matrix order, you can get a decent reverb out of it. But if you have any ideas for an even better result, feel free to contribute.

Jot's FDN Late Reverberator

Parameters

pattern: [param name] ([label in schematic])     // [description]

feedDryIn     (b)     // amount of dry signal that is fed into the delay lines (>= 0)
feedDryOut    (c)     // amount of wet signal that is fed back into the main line (>= 0)
drySignalMix  (d)     // amount of dry signal that is fed into the main line (>= 0)
delayTapTime  (M)     // the maximum delay tap time in ms (> 0)
decay         (g)     // amount of decay of the delay lines (>= 0 && < 1)

Components

  • CircularBuffer - cyclic array implementation used as buffer
  • Reverb - main part doing the algorithm work and holding all parameters
  • MultiChannelReverb - helper class to create and manage multiple reverb instances at once (e.g. for stereo application)

Fun stuff

One day, I came up with the idea of putting a video through the reverberator. With OpenCV, it is easy (in C++ ^^) to extract the pixels of all frames of a video and so, the raw numbers are treated as an ordinary audio signal. Experimenting a bit with the parameters, it gets a "trippy" experience. A demo usage can be found in the 'video' branch. Get creative too - I'm looking forward for more things being reverbed :D. Youtube

Building

// make sure to have cmake and libsndfile (if you want to use the demo main.cpp) installed
// on Mac, this can be simply done via Homebrew: brew install cmake libsndfile

git clone https://github.com/DeerMichel/reverb/
cd reverb
mkdir bin
cd bin
cmake ..
make
cp ../misc/input.wav .    // or use your own audio file
./ReverbMain
afplay output.wav         // or equivalent

For a sample usage, take a look at the main.cpp.

Missing features

  • Better control over all parameters (to achieve a nicer overall sound)
  • Spreading multichannel reverb
  • Consistent DAW plugin integration (or a GUI at all)
  • Tests (right, just kidding)
  • And much more... sure...

Third-party

  • libsndfile (LGPL) - optional, only used in demo main.cpp
  • OpenCV (BSD) - optional, only used in video demo main.cpp

ps: input.wav is a quick and dirty production by myself - no need to worry about licensing as long as it is used in the context of this project.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].