Reverberation, på svenska även kallat rumsklang eller efterklang, är ett naturligt förekommande attribut till allt ljud som på något sätt är instängt i ett rum. Ljudvågor träffar olika objekt och vid reflektionen upptas (absorberas) olika mycket av ljudet beroende av objektets material, storlek, form och andra faktorer som spelar in. Den direkta signalen mellan lyssnare och ljudkälla och dessa reflektioner, som dessutom är olika mycket fördröjda beroende på vilken väg de tagit, uppfattas som ett enda ljud. Detta skiljer reverb från liknande effekter som eko. Sedan ljudinspelningens början har reverb varit ett av de grundläggande verktygen. I början simulerades det genom att man hade tomma rum med ett antal mikrofoner och högtalare i. Men på 60-talet började man experimentera med att digitalt simulera reverb med hjälp av olika filterkopplingar. Med dagens datorkraft kan man återskapa dessa effekter genom mjukvarulösningar och det är det vi har försökt åstadkomma med vårt examensarbete. Det finns några problem att lösa för att åstadkomma detta. Ett är att komma på en algoritm som ger tillräcklig likhet med analogt reverb. Ett annat är att hitta ett bra rum att simulera, då det finns många fysiska rum som har dålig akustik. Vi har studerat historian bakom reverb samt gjort en omfattande beskrivning av den grundläggande reverbteorin. För att visa hur reverb fungerar ihop med andra effekter har vi även tagit med effekten tremolo i vårt program. Tremolo är i princip amplitudmodulering, och var ursprungligen gjort för att simulera vibrato (frekvensmodulering). Man började dock använda det som en egen effekt istället. De tidigaste metoderna för att åstadkomma tremoloeffekten var att helt enkelt höja och sänka volymen manuellt på ljudkällan. Programmet är skrivet för Linux, i C och C++, med ett grafiskt gränssnitt för de inställningar som effekterna har. Linux valdes eftersom det är relativt lätt att få hög prioritet över systemets resurser. Detta gör att man kan få ner fördröjningstider i viktiga operationer så att programmet kan arbeta i realtid om tillräcklig beräkningskapacitet finns. Grundprincipen för programmet är att en viss mängd ljuddata samplas in till en buffert. Denna buffert skickas sedan till bearbetning i de effekter som är aktiva. Sedan skickas den ut till ljudhårdvaran för uppspelning. Tester för verifiering har utförts genom att skicka in sinusvåg, fyrkantsvåg samt triangelvåg och studera utsignalerna. Resultaten visar att vi uppnått vad vi ville med våra effekter.
Reverberation, commonly known as reverb, is not a modern invention, but a natural attribute to any sound that is in some way enclosed. Soundwaves hit different objects and at the time of reflection, part of the wave is absorbed. The amount is based upon the size, shape and other attributes of the material. The reflections are delayed different amounts of time depending on what route to the listener they take. The direct signal from the sound source to the listener combined with these reflections are percieved as one single sound. This is what separates reverb from similar effects like echo. Reverb has been one of the basic tools ever since the dawn of sound recording. The first attempts were done by using empty rooms and placing microphones and speakers in them. But in the 60’s experimentation with digital simulation started. This was done by using a number of different filters. With the computer power available today it has become quite easy to recreate these effects with software solutions. This is what we have tried to achieve with our Degree Project. There are some problems that need solving to achieve this. One is to come up with an algorithm which gives good enough likeness to analog reverb. Another is to find a good room to simulate, sice many rooms in the real world have bad acoustics. A large part of the Project has been focused on the history and theory of reverberation. To find out how it works in combination with other effects, we have added a tremolo effect in our program. Tremolo is basically amplitude modulation and was originally meant to be a simulation of vibrato (frequency modulation). But it was more used as an effect in itself. The first methods to create tremolo was to simply turn the volume up and down manually. The program is written for Linux, in C and C++, with a graphical interface for all the settings of the effects. Linux was chosen since it is relatively easy to get a high priority over the resources of the system. This helps to lower the latency in critical routines so the program can operate in realtime, assuming there is enough capacity for the needed calculations. The basic idea of the program is to sample a certain amount of data into a buffer. This buffer is sent through all active effects for processing and finally sent on to the sound hardware for replaying. Tests for verification have been performed by sending sine waves, square waves and triangular waves through the program and recording the output. The results show that we have achieved what we wanted with our effects.