diff options
author | Robert Jonsson <spamatica@gmail.com> | 2011-09-15 12:14:55 +0000 |
---|---|---|
committer | Robert Jonsson <spamatica@gmail.com> | 2011-09-15 12:14:55 +0000 |
commit | b0546e5e7f7044019892543c6c82029db8d564a7 (patch) | |
tree | 1b96a6260900f3fbf3513fb48a5a72aa89052dc8 /attic/muse2-oom/muse2/plugins/freeverb | |
parent | 583c73d1a07154d3d2672d65d8cce6495f490454 (diff) |
moved attic to a branch of it's own
Diffstat (limited to 'attic/muse2-oom/muse2/plugins/freeverb')
-rw-r--r-- | attic/muse2-oom/muse2/plugins/freeverb/CMakeLists.txt | 56 | ||||
-rw-r--r-- | attic/muse2-oom/muse2/plugins/freeverb/allpass.h | 50 | ||||
-rw-r--r-- | attic/muse2-oom/muse2/plugins/freeverb/comb.h | 66 | ||||
-rw-r--r-- | attic/muse2-oom/muse2/plugins/freeverb/denormals.h | 28 | ||||
-rw-r--r-- | attic/muse2-oom/muse2/plugins/freeverb/freeverb.cpp | 166 | ||||
-rw-r--r-- | attic/muse2-oom/muse2/plugins/freeverb/readme.txt | 147 | ||||
-rw-r--r-- | attic/muse2-oom/muse2/plugins/freeverb/revmodel.cpp | 232 | ||||
-rw-r--r-- | attic/muse2-oom/muse2/plugins/freeverb/revmodel.h | 79 | ||||
-rw-r--r-- | attic/muse2-oom/muse2/plugins/freeverb/tuning.h | 60 |
9 files changed, 0 insertions, 884 deletions
diff --git a/attic/muse2-oom/muse2/plugins/freeverb/CMakeLists.txt b/attic/muse2-oom/muse2/plugins/freeverb/CMakeLists.txt deleted file mode 100644 index da43dc98..00000000 --- a/attic/muse2-oom/muse2/plugins/freeverb/CMakeLists.txt +++ /dev/null @@ -1,56 +0,0 @@ -#============================================================================= -# MusE -# Linux Music Editor -# $Id:$ -# -# Copyright (C) 2002-2006 by Werner Schweer and others -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -#============================================================================= - -## -## List of source files to compile -## -file (GLOB freeverb_source_files - freeverb.cpp - revmodel.cpp - ) - -## -## Define target -## -add_library ( freeverb SHARED - ${freeverb_source_files} - ) - -## -## Compilation flags and target name -## -# tell cmake to name the target freeverb.so instead of -# libfreeverb.so -# -set_target_properties (freeverb - PROPERTIES PREFIX "" - COMPILE_FLAGS "-O2" - ) - -## -## Install location -## -install( TARGETS freeverb - DESTINATION ${MusE_PLUGINS_DIR} - ) -install( FILES readme.txt - DESTINATION ${MusE_DOC_DIR}/freeverb - ) - diff --git a/attic/muse2-oom/muse2/plugins/freeverb/allpass.h b/attic/muse2-oom/muse2/plugins/freeverb/allpass.h deleted file mode 100644 index 4eb1c1a0..00000000 --- a/attic/muse2-oom/muse2/plugins/freeverb/allpass.h +++ /dev/null @@ -1,50 +0,0 @@ -// Allpass filter declaration -// -// Written by Jezar at Dreampoint, June 2000 -// http://www.dreampoint.co.uk -// This code is public domain - -#ifndef _allpass_ -#define _allpass_ -#include "denormals.h" - -//--------------------------------------------------------- -// allpass -//--------------------------------------------------------- - -class allpass - { - float feedback; - float *buffer; - int bufsize; - int bufidx; - - public: - allpass() { bufidx = 0; } - void setbuffer(float *buf, int size) { - buffer = buf; - bufsize = size; - } - float process(float input) { - float bufout = buffer[bufidx]; - undenormalise(bufout); - float output = -input + bufout; - buffer[bufidx] = input + (bufout*feedback); - if (++bufidx >= bufsize) - bufidx = 0; -// bufidx = ++bufidx % bufsize; - return output; - } - void mute() { - for (int i=0; i<bufsize; i++) - buffer[i]=0; - } - void setfeedback(float val) { feedback = val; } - float getfeedback() { return feedback; } - }; - - -// Big to inline - but crucial for speed - - -#endif//_allpass diff --git a/attic/muse2-oom/muse2/plugins/freeverb/comb.h b/attic/muse2-oom/muse2/plugins/freeverb/comb.h deleted file mode 100644 index d2e0f871..00000000 --- a/attic/muse2-oom/muse2/plugins/freeverb/comb.h +++ /dev/null @@ -1,66 +0,0 @@ -// Comb filter class declaration -// -// Written by Jezar at Dreampoint, June 2000 -// http://www.dreampoint.co.uk -// This code is public domain - -#ifndef _comb_ -#define _comb_ - -#include "denormals.h" - - -//--------------------------------------------------------- -// comb -//--------------------------------------------------------- - -class comb - { - float feedback; - float filterstore; - float damp1; - float damp2; - float *buffer; - int bufsize; - int bufidx; - -public: - comb() { - filterstore = 0; - bufidx = 0; - } - void setbuffer(float *buf, int size) { - buffer = buf; - bufsize = size; - } - float process(float input) { - float output = buffer[bufidx]; - undenormalise(output); - filterstore = (output*damp2) + (filterstore*damp1); - undenormalise(filterstore); - buffer[bufidx] = input + (filterstore*feedback); - if (++bufidx >= bufsize) - bufidx = 0; -// bufidx = ++bufidx % bufsize; - return output; - } - void mute() { - for (int i=0; i<bufsize; i++) - buffer[i]=0; - } - void setdamp(float val) { - damp1 = val; - damp2 = 1-val; - } - float getdamp() { return damp1; } - void setfeedback(float val) { feedback = val; } - float getfeedback() { return feedback; } - }; - - -// Big to inline - but crucial for speed - - -#endif //_comb_ - -//ends diff --git a/attic/muse2-oom/muse2/plugins/freeverb/denormals.h b/attic/muse2-oom/muse2/plugins/freeverb/denormals.h deleted file mode 100644 index d18412b4..00000000 --- a/attic/muse2-oom/muse2/plugins/freeverb/denormals.h +++ /dev/null @@ -1,28 +0,0 @@ -// Macro for killing denormalled numbers -// -// Written by Jezar at Dreampoint, June 2000 -// http://www.dreampoint.co.uk -// Based on IS_DENORMAL macro by Jon Watte -// This code is public domain - -#ifndef _denormals_ -#define _denormals_ - -// this does not work with at least gcc3.3 and -O2: -// #define undenormalise(sample) if(((*(unsigned int*)&sample)&0x7f800000)==0) sample=0.0f -// -// from Laurent de Soras Paper: Denormal numbers in floating point -// signal processing applications -// (ws) - -#define undenormalise(sample) \ - { \ - float anti_denormal = 1e-18; \ - sample += anti_denormal; \ - sample -= anti_denormal; \ - } - -#endif//_denormals_ - -//ends - diff --git a/attic/muse2-oom/muse2/plugins/freeverb/freeverb.cpp b/attic/muse2-oom/muse2/plugins/freeverb/freeverb.cpp deleted file mode 100644 index 0385e887..00000000 --- a/attic/muse2-oom/muse2/plugins/freeverb/freeverb.cpp +++ /dev/null @@ -1,166 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: freeverb.cpp,v 1.1.1.1 2003/10/27 18:57:03 wschweer Exp $ -// (C) Copyright 2000 Werner Schweer (ws@seh.de) -//========================================================= - -#include "revmodel.h" - -//--------------------------------------------------------- -// instantiateFreeverb -// Construct a new plugin instance. -//--------------------------------------------------------- - -LADSPA_Handle instantiate(const LADSPA_Descriptor* /*Descriptor*/, - unsigned long /* samplerate*/) - { - return new Revmodel; - } - -//--------------------------------------------------------- -// connectPortToFreeverb -// Connect a port to a data location. -//--------------------------------------------------------- - -void connect(LADSPA_Handle Instance, unsigned long port, - LADSPA_Data* data) - { - ((Revmodel *)Instance)->port[port] = data; - } - -//--------------------------------------------------------- -// activate -//--------------------------------------------------------- - -void activate(LADSPA_Handle instance) - { - ((Revmodel *)instance)->activate(); - } - -//--------------------------------------------------------- -// deactivate -//--------------------------------------------------------- - -void deactivate(LADSPA_Handle /*Instance*/) - { - } - -//--------------------------------------------------------- -// runFreeverb -//--------------------------------------------------------- - -void run(LADSPA_Handle Instance, unsigned long n) - { - ((Revmodel*)Instance)->processreplace(n); - } - -//--------------------------------------------------------- -// runAddingFreeverb -// *ADD* the output to the output buffer. -//--------------------------------------------------------- - -void runAdding(LADSPA_Handle Instance, unsigned long n) - { - ((Revmodel*)Instance)->processmix(n); - } - -//--------------------------------------------------------- -// setFreeverbRunAddingGain -//--------------------------------------------------------- - -void setGain(LADSPA_Handle /*Instance*/, LADSPA_Data /*Gain*/) - { -// ((Freeverb *)Instance)->m_fRunAddingGain = Gain; - } - -//--------------------------------------------------------- -// cleanupFreeverb -//--------------------------------------------------------- - -void cleanup(LADSPA_Handle Instance) - { - delete (Revmodel *)Instance; - } - -static const char* portNames[] = { - "Input (Left)", - "Input (Right)", - "Output (Left)", - "Output (Right)", - "Room Size", - "Damping", - "Wet Level", - }; - -LADSPA_PortDescriptor portDescriptors[] = { - LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, - LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, - LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, - LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, - LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, - LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, - LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, - }; - -LADSPA_PortRangeHint portRangeHints[] = { - { 0, 0.0, 0.0 }, - { 0, 0.0, 0.0 }, - { 0, 0.0, 0.0 }, - { 0, 0.0, 0.0 }, - { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW, 0.0, 1.0 }, - { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_LOGARITHMIC, 0.0, 1.0 }, - { LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_LOGARITHMIC, 0.0, 1.0 }, - }; - -LADSPA_Descriptor descriptor = { - 1050, - "freeverb1", - LADSPA_PROPERTY_HARD_RT_CAPABLE, - "Freeverb", - "Werner Schweer", - "None", - 7, - portDescriptors, - portNames, - portRangeHints, - 0, // impl. data - instantiate, - connect, - activate, - run, - runAdding, - setGain, - deactivate, - cleanup - }; - -//--------------------------------------------------------- -// _init -// called automatically when the plugin library is first -// loaded. -//--------------------------------------------------------- - -void _init() - { - } - -//--------------------------------------------------------- -// _fini -// called automatically when the library is unloaded. -//--------------------------------------------------------- - -void _fini() - { - } - -//--------------------------------------------------------- -// ladspa_descriptor -// Return a descriptor of the requested plugin type. -//--------------------------------------------------------- - -const LADSPA_Descriptor* ladspa_descriptor(unsigned long i) - { - return (i == 0) ? &descriptor : 0; - } - diff --git a/attic/muse2-oom/muse2/plugins/freeverb/readme.txt b/attic/muse2-oom/muse2/plugins/freeverb/readme.txt deleted file mode 100644 index 2c1349a3..00000000 --- a/attic/muse2-oom/muse2/plugins/freeverb/readme.txt +++ /dev/null @@ -1,147 +0,0 @@ -readme from original freeverb-source: -============================================== - - -Freeverb - Free, studio-quality reverb SOURCE CODE in the public domain ------------------------------------------------------------------------ - -Written by Jezar at Dreampoint - http://www.dreampoint.co.uk - - -Introduction ------------- - -Hello. - -I'll try to keep this "readme" reasonably small. -There are few things in the world that I hate more than long "readme" files. -Except "coding conventions" - but more on that later... - -In this zip file you will find two folders of C++ source code: - -"Components" - Contains files that should clean-compile - ON ANY TYPE OF COMPUTER OR SYSTEM WHATSOEVER. It should not be necessary - to make ANY changes to these files to get them to compile, except to make - up for inadequacies of certain compilers. These files create three classes - - a comb filter, an allpass filter, and a reverb model made up of a number - of instances of the filters, with some features to control the filters at - a macro level. You will need to link these classes into another program that - interfaces with them. The files in the components drawer are completely - independant, and can be built without dependancies on anything else. - Because of the simple interface, it should be possible to interface - these files to any system - VST, DirectX, anything - without changing - them AT ALL. - -"FreeverbVST" - Contains a Steinberg VST implementation of this version of - Freeverb, using the components in (surprise) the components folder. - It was built on a PC but may compile properly for the Macintosh with - no problems. I don't know - I don't have a Macintosh. If you've - figured out how to compile the examples in the Steinberg VST - Development Kit, then you should easilly figure out how to bring the - files into a project and get it working in a few minutes. It should - be very simple. - -Note that this version of Freeverb doesn't contain predelay, or any EQ. -I thought that might make it difficult to understand the "reverb" part of -the code. Once you figure out how Freeverb works, you should find it trivial -to add such features with little CPU overhead. - -Also, the code in this version of Freeverb has been optimised. This has changed -the sound *slightly*, but not significantly compared to how much processing -power it saves. - -Finally, note that there is also a built copy of this version of Freeverb called -"Freeverb3.dll" - this is a VST plugin for the PC. If you want a version for -the Mac or anything else, then you'll need to build it yourself from the code. - - -Technical Explanation ---------------------- - -Freeverb is a simple implementation of the standard Schroeder/Moorer reverb -model. I guess the only reason why it sounds better than other reverbs, -is simply because I spent a long while doing listening tests in order to create -the values found in "tuning.h". It uses 8 comb filters on both the left and right -channels), and you might possibly be able to get away with less if CPU power -is a serious constraint for you. It then feeds the result of the reverb through -4 allpass filters on both the left and right channels. These "smooth" the sound. -Adding more than four allpasses doesn't seem to add anything significant -to the sound, and if you use less, the sound gets a bit "grainy". -The filters on the right channel are slightly detuned compared to the left channel -in order to create a stereo effect. - -Hopefully, you should find the code in the components drawer a model of -brevity and clarity. Notice that I don't use any "coding conventions". -Personally, I think that coding conventions suck. They are meant to make -the code "clearer", but they inevitably do the complete opposite, making -the code completely unfathomable. Anyone whose done Windows programming -with its - frankly stupid - "Hungarian notation" will know exactly what -I mean. Coding conventions typically promote issues that are irrelevant -up to the status of appearing supremely important. It may have helped back -people in the days when compilers where somewhat feeble in their type-safety, -but not in the new millenium with advanced C++ compilers. - -Imagine if we rewrote the English language to conform to coding conventions. -After all, The arguments should be just as valid for the English language as -they are for a computer language. For example, we could put a lower-case "n" -in front of every noun, a lower-case "p" in front of a persons name, -a lower-case "v" in front of every verb, and a lower-case "a" in front -of every adjective. Can you imagine what the English language would look like? -All in the name of "clarity". It's just as stupid to do this for computer -code as it would be to do it for the English language. I hope that the -code for Freeverb in the components drawer demonstrates this, and helps start -a movement back towards sanity in coding practices. - - -Background ----------- - -Why is the Freeverb code now public domain? Simple. I only intended to create -Freeverb to provide me and my friends with studio-quality reverb for free. -I never intended to make any money out of it. However, I simply do not have the -time to develop it any further. I'm working on a "concept album" at the moment, -and I'll never finish it if I spend any more time programming. - -In any case, I make more far money as a contract programmer - making Mobile -Internet products - than I ever could writing plugins, so it simply doesn't -make financial sense for me to spend any more time on it. - -Rather than give Freeverb to any particular individual or organisation -to profit from it, I've decided to give it away to the internet community -at large, so that quality, FREE (or at the very least, low-cost) reverbs can -be developed for all platforms. - -Feel free to use the source code for Freeverb in any of your own products, -whether they are also available for free, or even if they are commercial - -I really don't mind. You may do with the code whatever you wish. If you use -it in a product (whether commercial or not), it would be very nice of you, -if you were to send me a copy of your product - although I appreciate that -this isn't always possible in all circumstances. - -HOWEVER, please don't bug me with questions about how to use this code. -I gave away Freeverb because I don't have time to maintain it. That means -I *certainly* don't have time to answer questions about the source code, so -please don't email questions to me. I *will* ignore them. If you can't figure -the code for Freeverb out - then find somebody who can. I hope that either -way, you enjoy experimenting with it. - - -Disclaimer ----------- - -This software and source code is given away for free, without any warranties -of any kind. It has been given away to the internet community as a free gift, -so please treat it in the same spirit. - - -I hope this code is useful and interesting to you all! -I hope you have lots of fun experimenting with it and make good products! - -Very best regards, -Jezar. -Technology Consultant -Dreampoint Design and Engineering -http://www.dreampoint.co.uk - - -//ends diff --git a/attic/muse2-oom/muse2/plugins/freeverb/revmodel.cpp b/attic/muse2-oom/muse2/plugins/freeverb/revmodel.cpp deleted file mode 100644 index c72ee22b..00000000 --- a/attic/muse2-oom/muse2/plugins/freeverb/revmodel.cpp +++ /dev/null @@ -1,232 +0,0 @@ -// Reverb model implementation -// -// Written by Jezar at Dreampoint, June 2000 -// http://www.dreampoint.co.uk -// This code is public domain - -#include <stdio.h> -#include "revmodel.h" - -//--------------------------------------------------------- -// Revmodel -//--------------------------------------------------------- - -Revmodel::Revmodel() - { - // Tie the components to their buffers - combL[0].setbuffer(bufcombL1,combtuningL1); - combR[0].setbuffer(bufcombR1,combtuningR1); - combL[1].setbuffer(bufcombL2,combtuningL2); - combR[1].setbuffer(bufcombR2,combtuningR2); - combL[2].setbuffer(bufcombL3,combtuningL3); - combR[2].setbuffer(bufcombR3,combtuningR3); - combL[3].setbuffer(bufcombL4,combtuningL4); - combR[3].setbuffer(bufcombR4,combtuningR4); - combL[4].setbuffer(bufcombL5,combtuningL5); - combR[4].setbuffer(bufcombR5,combtuningR5); - combL[5].setbuffer(bufcombL6,combtuningL6); - combR[5].setbuffer(bufcombR6,combtuningR6); - combL[6].setbuffer(bufcombL7,combtuningL7); - combR[6].setbuffer(bufcombR7,combtuningR7); - combL[7].setbuffer(bufcombL8,combtuningL8); - combR[7].setbuffer(bufcombR8,combtuningR8); - allpassL[0].setbuffer(bufallpassL1,allpasstuningL1); - allpassR[0].setbuffer(bufallpassR1,allpasstuningR1); - allpassL[1].setbuffer(bufallpassL2,allpasstuningL2); - allpassR[1].setbuffer(bufallpassR2,allpasstuningR2); - allpassL[2].setbuffer(bufallpassL3,allpasstuningL3); - allpassR[2].setbuffer(bufallpassR3,allpasstuningR3); - allpassL[3].setbuffer(bufallpassL4,allpasstuningL4); - allpassR[3].setbuffer(bufallpassR4,allpasstuningR4); - - // Set default values - allpassL[0].setfeedback(0.5f); - allpassR[0].setfeedback(0.5f); - allpassL[1].setfeedback(0.5f); - allpassR[1].setfeedback(0.5f); - allpassL[2].setfeedback(0.5f); - allpassR[2].setfeedback(0.5f); - allpassL[3].setfeedback(0.5f); - allpassR[3].setfeedback(0.5f); - - param[0] = initialroom; - param[1] = initialdamp; - param[2] = initialwet; - - setroomsize(initialroom); - setdamp(initialdamp); - setwidth(initialwidth); - setmode(initialmode); - - // Buffer will be full of rubbish - so we MUST mute them - - for (int i = 0; i < numcombs; i++) { - combL[i].mute(); - combR[i].mute(); - } - for (int i=0;i<numallpasses;i++) { - allpassL[i].mute(); - allpassR[i].mute(); - } - } - -//--------------------------------------------------------- -// activate -//--------------------------------------------------------- - -void Revmodel::activate() - { - *port[4] = param[0]; - *port[5] = param[1]; - *port[6] = param[2]; - } - -//--------------------------------------------------------- -// processreplace -//--------------------------------------------------------- - -void Revmodel::processreplace(long n) - { - if (param[0] != *port[4]) { - param[0] = *port[4]; - setroomsize(param[0]); - } - if (param[1] != *port[5]) { - param[1] = *port[5]; - setdamp(param[1]); - } - - float wet = (1.0f - *port[6]) * scalewet; - float dry = *port[6] * scaledry; - float wet1 = wet * (width/2 + 0.5f); - float wet2 = wet * ((1-width)/2); - - for (int i = 0; i < n; ++i) { - float outL = 0; - float outR = 0; - float input = (port[0][i] + port[1][i]) * gain; - - // Accumulate comb filters in parallel - for (int k = 0; k < numcombs; k++) { - outL += combL[k].process(input); - outR += combR[k].process(input); - } - - // Feed through allpasses in series - for (int k=0; k < numallpasses; k++) { - outL = allpassL[k].process(outL); - outR = allpassR[k].process(outR); - } - - // Calculate output REPLACING anything already there - port[2][i] = outL*wet1 + outR*wet2 + port[0][i]*dry; - port[3][i] = outR*wet1 + outL*wet2 + port[1][i]*dry; - } - } - -void Revmodel::processmix(long n) - { - if (param[0] != *port[4]) { - param[0] = *port[4]; - setroomsize(param[0]); - } - if (param[1] != *port[5]) { - param[1] = *port[5]; - setdamp(param[1]); - } - - float wet = (1.0f - *port[6]) * scalewet; - float dry = *port[6] * scaledry; - float wet1 = wet * (width/2 + 0.5f); - float wet2 = wet * ((1-width)/2); - - for (int i = 0; i < n; ++i) { - float outL = 0; - float outR = 0; - float input = (port[0][i] + port[1][i]) * gain; - - // Accumulate comb filters in parallel - for (int k = 0; k < numcombs; k++) { - outL += combL[k].process(input); - outR += combR[k].process(input); - } - - // Feed through allpasses in series - for (int k=0; k < numallpasses; k++) { - outL = allpassL[k].process(outL); - outR = allpassR[k].process(outR); - } - - // Calculate output REPLACING anything already there - port[2][i] += outL*wet1 + outR*wet2 + port[0][i]*dry; - port[3][i] += outR*wet1 + outL*wet2 + port[1][i]*dry; - } - } - -//--------------------------------------------------------- -// update -// Recalculate internal values after parameter change -//--------------------------------------------------------- - -void Revmodel::update() - { - if (mode >= freezemode) { - roomsize1 = 1; - damp1 = 0; - gain = muted; - } - else { - roomsize1 = roomsize; - damp1 = damp; - gain = fixedgain; - } - - for (int i = 0; i < numcombs; i++) { - combL[i].setfeedback(roomsize1); - combR[i].setfeedback(roomsize1); - } - - for (int i = 0; i < numcombs; i++) { - combL[i].setdamp(damp1); - combR[i].setdamp(damp1); - } - } - -// The following get/set functions are not inlined, because -// speed is never an issue when calling them, and also -// because as you develop the reverb model, you may -// wish to take dynamic action when they are called. - -void Revmodel::setroomsize(float value) - { - roomsize = (value*scaleroom) + offsetroom; - update(); - } - -float Revmodel::getroomsize() - { - return (roomsize-offsetroom)/scaleroom; - } - -void Revmodel::setdamp(float value) - { - damp = value*scaledamp; - update(); - } - -void Revmodel::setwidth(float value) - { - width = value; - update(); - } - -void Revmodel::setmode(float value) - { - mode = value; - update(); - } - -float Revmodel::getmode() - { - return (mode >= freezemode) ? 1 : 0; - } diff --git a/attic/muse2-oom/muse2/plugins/freeverb/revmodel.h b/attic/muse2-oom/muse2/plugins/freeverb/revmodel.h deleted file mode 100644 index bfa1f0b3..00000000 --- a/attic/muse2-oom/muse2/plugins/freeverb/revmodel.h +++ /dev/null @@ -1,79 +0,0 @@ -// Reverb model declaration -// -// Written by Jezar at Dreampoint, June 2000 -// http://www.dreampoint.co.uk -// This code is public domain - -#ifndef _revmodel_ -#define _revmodel_ - -#include "comb.h" -#include "allpass.h" -#include "tuning.h" -#include "../../muse/ladspa.h" - -//--------------------------------------------------------- -// Revmodel -//--------------------------------------------------------- - -class Revmodel { - float gain; - float roomsize,roomsize1; - float damp,damp1; - float width; - float mode; - - // Comb filters - comb combL[numcombs]; - comb combR[numcombs]; - - // Allpass filters - allpass allpassL[numallpasses]; - allpass allpassR[numallpasses]; - - // Buffers for the combs - float bufcombL1[combtuningL1]; - float bufcombR1[combtuningR1]; - float bufcombL2[combtuningL2]; - float bufcombR2[combtuningR2]; - float bufcombL3[combtuningL3]; - float bufcombR3[combtuningR3]; - float bufcombL4[combtuningL4]; - float bufcombR4[combtuningR4]; - float bufcombL5[combtuningL5]; - float bufcombR5[combtuningR5]; - float bufcombL6[combtuningL6]; - float bufcombR6[combtuningR6]; - float bufcombL7[combtuningL7]; - float bufcombR7[combtuningR7]; - float bufcombL8[combtuningL8]; - float bufcombR8[combtuningR8]; - - // Buffers for the allpasses - float bufallpassL1[allpasstuningL1]; - float bufallpassR1[allpasstuningR1]; - float bufallpassL2[allpasstuningL2]; - float bufallpassR2[allpasstuningR2]; - float bufallpassL3[allpasstuningL3]; - float bufallpassR3[allpasstuningR3]; - float bufallpassL4[allpasstuningL4]; - float bufallpassR4[allpasstuningR4]; - void update(); - - public: - LADSPA_Data* port[7]; - float param[3]; - - Revmodel(); - void processmix(long numsamples); - void processreplace(long numsamples); - void setroomsize(float value); - float getroomsize(); - void setdamp(float value); - void setwidth(float value); - void setmode(float value); - float getmode(); - void activate(); - }; - -#endif diff --git a/attic/muse2-oom/muse2/plugins/freeverb/tuning.h b/attic/muse2-oom/muse2/plugins/freeverb/tuning.h deleted file mode 100644 index ced89252..00000000 --- a/attic/muse2-oom/muse2/plugins/freeverb/tuning.h +++ /dev/null @@ -1,60 +0,0 @@ -// Reverb model tuning values
-//
-// Written by Jezar at Dreampoint, June 2000
-// http://www.dreampoint.co.uk
-// This code is public domain
-
-#ifndef _tuning_
-#define _tuning_
-
-const int numcombs = 8;
-const int numallpasses = 4;
-const float muted = 0;
-const float fixedgain = 0.015f;
-const float scalewet = 3;
-const float scaledry = 2;
-const float scaledamp = 0.4f;
-const float scaleroom = 0.28f;
-const float offsetroom = 0.7f;
-const float initialroom = 0.5f;
-const float initialdamp = 0.5f;
-const float initialwet = 1/scalewet;
-const float initialdry = 0;
-const float initialwidth = 1;
-const float initialmode = 0;
-const float freezemode = 0.5f;
-const int stereospread = 23;
-
-// These values assume 44.1KHz sample rate
-// they will probably be OK for 48KHz sample rate
-// but would need scaling for 96KHz (or other) sample rates.
-// The values were obtained by listening tests.
-const int combtuningL1 = 1116;
-const int combtuningR1 = 1116+stereospread;
-const int combtuningL2 = 1188;
-const int combtuningR2 = 1188+stereospread;
-const int combtuningL3 = 1277;
-const int combtuningR3 = 1277+stereospread;
-const int combtuningL4 = 1356;
-const int combtuningR4 = 1356+stereospread;
-const int combtuningL5 = 1422;
-const int combtuningR5 = 1422+stereospread;
-const int combtuningL6 = 1491;
-const int combtuningR6 = 1491+stereospread;
-const int combtuningL7 = 1557;
-const int combtuningR7 = 1557+stereospread;
-const int combtuningL8 = 1617;
-const int combtuningR8 = 1617+stereospread;
-const int allpasstuningL1 = 556;
-const int allpasstuningR1 = 556+stereospread;
-const int allpasstuningL2 = 441;
-const int allpasstuningR2 = 441+stereospread;
-const int allpasstuningL3 = 341;
-const int allpasstuningR3 = 341+stereospread;
-const int allpasstuningL4 = 225;
-const int allpasstuningR4 = 225+stereospread;
-
-#endif//_tuning_
-
-//ends
-
|