00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <cmath>
00020
00021 #include "Compressor.h"
00022
00023
00024 using std::ostringstream;
00025 using namespace Marsyas;
00026
00027 Compressor::Compressor(mrs_string name):MarSystem("Compressor", name)
00028 {
00029 addControls();
00030 }
00031
00032 Compressor::Compressor(const Compressor& a) : MarSystem(a)
00033 {
00034 }
00035
00036
00037 Compressor::~Compressor()
00038 {
00039 }
00040
00041 MarSystem*
00042 Compressor::clone() const
00043 {
00044 return new Compressor(*this);
00045 }
00046
00047 void
00048 Compressor::addControls()
00049 {
00050
00051 }
00052
00053 void
00054 Compressor::myUpdate(MarControlPtr sender)
00055 {
00056 MRSDIAG("Compressor.cpp - Compressor:myUpdate");
00057
00058 MarSystem::myUpdate(sender);
00059 }
00060
00061 void
00062 Compressor::myProcess(realvec& in, realvec& out)
00063 {
00064 mrs_natural o,t;
00065 for (o=0; o < inObservations_; o++)
00066 for (t = 0; t < inSamples_; t++) {
00067 if(in(o,t) > 0.0001)
00068 out(o,t) = 5.213 * log(1 + 10 * sqrt(in(o,t)))/12.5;
00069 else
00070 out(o,t) = 5.213 * log(1.1)/12.5;
00071
00072
00073 }
00074 }