From b0546e5e7f7044019892543c6c82029db8d564a7 Mon Sep 17 00:00:00 2001 From: Robert Jonsson Date: Thu, 15 Sep 2011 12:14:55 +0000 Subject: moved attic to a branch of it's own --- .../plugins/freeverb/CMakeLists.txt | 33 --- .../muse_qt4_evolution/plugins/freeverb/allpass.h | 47 ----- attic/muse_qt4_evolution/plugins/freeverb/comb.h | 63 ------ .../plugins/freeverb/denormals.h | 38 ---- .../plugins/freeverb/freeverb.cpp | 166 --------------- .../muse_qt4_evolution/plugins/freeverb/readme.txt | 147 ------------- .../plugins/freeverb/revmodel.cpp | 232 --------------------- .../muse_qt4_evolution/plugins/freeverb/revmodel.h | 79 ------- attic/muse_qt4_evolution/plugins/freeverb/tuning.h | 60 ------ 9 files changed, 865 deletions(-) delete mode 100644 attic/muse_qt4_evolution/plugins/freeverb/CMakeLists.txt delete mode 100644 attic/muse_qt4_evolution/plugins/freeverb/allpass.h delete mode 100644 attic/muse_qt4_evolution/plugins/freeverb/comb.h delete mode 100644 attic/muse_qt4_evolution/plugins/freeverb/denormals.h delete mode 100644 attic/muse_qt4_evolution/plugins/freeverb/freeverb.cpp delete mode 100644 attic/muse_qt4_evolution/plugins/freeverb/readme.txt delete mode 100644 attic/muse_qt4_evolution/plugins/freeverb/revmodel.cpp delete mode 100644 attic/muse_qt4_evolution/plugins/freeverb/revmodel.h delete mode 100644 attic/muse_qt4_evolution/plugins/freeverb/tuning.h (limited to 'attic/muse_qt4_evolution/plugins/freeverb') diff --git a/attic/muse_qt4_evolution/plugins/freeverb/CMakeLists.txt b/attic/muse_qt4_evolution/plugins/freeverb/CMakeLists.txt deleted file mode 100644 index 0a86454f..00000000 --- a/attic/muse_qt4_evolution/plugins/freeverb/CMakeLists.txt +++ /dev/null @@ -1,33 +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. -#============================================================================= - -add_library ( freeverb SHARED - freeverb.cpp revmodel.cpp - ) - -# tell cmake to name the target freeverb.so instead of -# libfreeverb.so -# -set_target_properties (freeverb - PROPERTIES PREFIX "" - COMPILE_FLAGS "-O2" - ) - -install_targets ( /lib/${MusE_INSTALL_NAME}/plugins freeverb) diff --git a/attic/muse_qt4_evolution/plugins/freeverb/allpass.h b/attic/muse_qt4_evolution/plugins/freeverb/allpass.h deleted file mode 100644 index 2f27691e..00000000 --- a/attic/muse_qt4_evolution/plugins/freeverb/allpass.h +++ /dev/null @@ -1,47 +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) - bufidx = 0; -// bufidx = ++bufidx % bufsize; - return output; - } - void mute() { - for (int i=0; iport[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/muse_qt4_evolution/plugins/freeverb/readme.txt b/attic/muse_qt4_evolution/plugins/freeverb/readme.txt deleted file mode 100644 index 2c1349a3..00000000 --- a/attic/muse_qt4_evolution/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/muse_qt4_evolution/plugins/freeverb/revmodel.cpp b/attic/muse_qt4_evolution/plugins/freeverb/revmodel.cpp deleted file mode 100644 index c72ee22b..00000000 --- a/attic/muse_qt4_evolution/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 -#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= 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/muse_qt4_evolution/plugins/freeverb/revmodel.h b/attic/muse_qt4_evolution/plugins/freeverb/revmodel.h deleted file mode 100644 index bfa1f0b3..00000000 --- a/attic/muse_qt4_evolution/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/muse_qt4_evolution/plugins/freeverb/tuning.h b/attic/muse_qt4_evolution/plugins/freeverb/tuning.h deleted file mode 100644 index ced89252..00000000 --- a/attic/muse_qt4_evolution/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 - -- cgit v1.2.3