From c638259bf0ecdae71e31956fde6ccaf8080e7d87 Mon Sep 17 00:00:00 2001 From: Vitalii Voronkin Date: Tue, 2 Jan 2024 16:38:12 -0500 Subject: [PATCH] added screenshot and readme --- README.md | 14 ++++++++++++++ resources/ReverbProject.png | Bin 0 -> 27065 bytes 2 files changed, 14 insertions(+) create mode 100644 README.md create mode 100644 resources/ReverbProject.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..10faf37 --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +# Reverb Project + +Reverb project is modified implemntation of juce::Reverb. + +![reverbProject](/resources/ReverbProject.png) + +## UI + +At the moment this plugin uses generic UI + +## Overview + +This is my attempt to enhance reverberation using diffusion network, delays and other technics based on online resources, books, and tutorials. +My goal is to build great sounding reverb and learn more about DSP as I go. diff --git a/resources/ReverbProject.png b/resources/ReverbProject.png new file mode 100644 index 0000000000000000000000000000000000000000..0fb2ec40b63398e54236b6cf760d9f436c2a906e GIT binary patch literal 27065 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 v6HU(S|@ZM2p098%7#2N$R;+rwzQxxz)w1| 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 KwOs4w{r>=a#m0C5 literal 0 HcmV?d00001