[SCM] calf/master: Patches refreshed/removed.

mira-guest at users.alioth.debian.org mira-guest at users.alioth.debian.org
Sun Nov 26 18:22:53 UTC 2017


The following commit has been merged in the master branch:
commit 4dac0f4ad4cd03af18e81be5afbafc12138783dc
Author: Jaromír Mikeš <mira.mikes at seznam.cz>
Date:   Sun Nov 26 18:51:39 2017 +0100

    Patches refreshed/removed.

diff --git a/debian/patches/020150508~f57ab5f.patch b/debian/patches/020150508~f57ab5f.patch
deleted file mode 100644
index b9b20ea..0000000
--- a/debian/patches/020150508~f57ab5f.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Description: L10n: add l10n FR in .desktop file
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/f57ab5f
-Author: Olivier Humbert <trebmuh at tuxfamily.org>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/calf.desktop.in
-+++ b/calf.desktop.in
-@@ -2,10 +2,12 @@
- Name=Calf Plugin Pack for JACK
- Name[pl]=Zestaw wtyczek Calf
- Name[ru]=Набор эффектов и инструментов Calf для JACK
-+Name[fr]=Ensemble de greffons Calf pour JACK
- Version=@VERSION@
- Comment=Process and produce sounds using a set of plugins with JACK interface
- Comment[pl]=Przetwarzaj i generuj dźwięk używając zestawu wtyczek zgodnych z JACK
- Comment[ru]=Обработка и создание музыки при помощи эффектов и инструментов через JACK
-+Comment[fr]=Traitement et production de sons utilisant un ensemble de greffons avec une interface JACK
- Exec=calfjackhost
- Terminal=false
- Type=Application
diff --git a/debian/patches/020150624~d72df1d.patch b/debian/patches/020150624~d72df1d.patch
deleted file mode 100644
index fbe64bb..0000000
--- a/debian/patches/020150624~d72df1d.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Description: Try to fix a bug with unsorted plugins in Ardour
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/d72df1d
-Author: Markus Schmidt <schmidt at boomshop.net>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/makerdf.cpp
-+++ b/src/makerdf.cpp
-@@ -287,11 +287,12 @@
-                 "    rdfs:label \"Output\" .\n\n";
-         }
-         
--        ttl += uri + " a lv2:Plugin ;\n";
-+        ttl += uri;
-         
-         if (classes.count(lpi.plugin_type))
--            ttl += "    a " + classes[lpi.plugin_type]+" ;\n";
--        
-+            ttl += " a " + classes[lpi.plugin_type]+" ;\n";
-+        else
-+            ttl += " a lv2:Plugin ;\n";
-             
-         ttl += "    doap:name \""+string(lpi.name)+"\" ;\n";
-         ttl += "    doap:maintainer [ foaf:name \""+string(lpi.maker)+"\" ; ] ;\n";
diff --git a/debian/patches/020150629~52ecdb4.patch b/debian/patches/020150629~52ecdb4.patch
deleted file mode 100644
index 01ea97f..0000000
--- a/debian/patches/020150629~52ecdb4.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-Description: LED widget: fix drawing glitch
- Looks like the existing code tried to re-invent the wheel in the widget
- size allocation method - changed it to call the parent class and it
- seems to work correctly now.
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/52ecdb4
-Author: Krzysztof Foltman <wdev at foltman.com>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/calf/ctl_led.h
-+++ b/src/calf/ctl_led.h
-@@ -31,6 +31,7 @@
- #define CALF_IS_LED(obj)       (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CALF_TYPE_LED))
- #define CALF_LED_CLASS(klass)  (G_TYPE_CHECK_CLASS_CAST ((klass),  CALF_TYPE_LED, CalfLedClass))
- #define CALF_IS_LED_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((klass),  CALF_TYPE_LED))
-+#define CALF_LED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),  CALF_TYPE_LED, CalfLedClass))
- 
- /// Instance object for CalfLed
- struct CalfLed
---- a/src/ctl_led.cpp
-+++ b/src/ctl_led.cpp
-@@ -213,14 +213,12 @@
-     g_assert(CALF_IS_LED(widget));
-     CalfLed *led = CALF_LED(widget);
-     
--    widget->allocation = *allocation;
-+    GtkWidgetClass *parent_class = (GtkWidgetClass *) g_type_class_peek_parent( CALF_LED_GET_CLASS( led ) );
-+    parent_class->size_allocate( widget, allocation );
-     
-     if( led->cache_surface )
-         cairo_surface_destroy( led->cache_surface );
-     led->cache_surface = NULL;
--    
--    if (GTK_WIDGET_REALIZED(widget))
--        gdk_window_move_resize(widget->window, allocation->x, allocation->y, allocation->width, allocation->height );
- }
- 
- static gboolean
-@@ -246,6 +244,8 @@
-     GtkWidget *widget = GTK_WIDGET(self);
-     // GtkWidget *widget = GTK_WIDGET(self);
-     // GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS);
-+    self->led_mode = 0;
-+    self->size = 0;
-     self->led_value = 0.f;
-     self->cache_surface = NULL;
-     widget->requisition.width = self->size ? 24 : 19;
diff --git a/debian/patches/020150712~c115927.patch b/debian/patches/020150712~c115927.patch
deleted file mode 100644
index f6def5c..0000000
--- a/debian/patches/020150712~c115927.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-Description: Make Analyzer UI require instance-access
- The analyzer plugin is useless without graphs, which right now depend
- on LV2 instance+data-access. Also the instance/data-access feature was
- wrongly placed as plugin prop, when in fact it's a UI property.
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/c115927
-Author: falkTX <falktx at gmail.com>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/lv2gui.cpp
-+++ b/src/lv2gui.cpp
-@@ -475,5 +475,14 @@
-     if (!index--)
-         return >kgui;
-     
-+    static LV2UI_Descriptor gtkguireq;
-+    gtkguireq.URI = "http://calf.sourceforge.net/plugins/gui/gtk2-gui-req";
-+    gtkguireq.instantiate = gui_instantiate;
-+    gtkguireq.cleanup = gui_cleanup;
-+    gtkguireq.port_event = gui_port_event;
-+    gtkguireq.extension_data = gui_extension;
-+    if (!index--)
-+        return >kguireq;
-+    
-     return NULL;
- }
---- a/src/makerdf.cpp
-+++ b/src/makerdf.cpp
-@@ -240,8 +240,23 @@
-     string gtkgui_uri = "<http://calf.sourceforge.net/plugins/gui/gtk2-gui>";
-     gui_header = gtkgui_uri + "\n"
-         "    a uiext:GtkUI ;\n"
--        "    lv2:extensionData uiext:showInterface ;\n"
-+        "    lv2:extensionData uiext:idleInterface ,\n"
-+        "        uiext:showInterface ;\n"
-         "    lv2:requiredFeature uiext:makeResident ;\n"
-+        "    lv2:optionalFeature <http://lv2plug.in/ns/ext/instance-access> ;\n"
-+        "    lv2:optionalFeature <http://lv2plug.in/ns/ext/data-access> ;\n"
-+        "    uiext:binary <calflv2gui.so> .\n"
-+        "\n"
-+    ;
-+
-+    string gtkgui_req_uri = "<http://calf.sourceforge.net/plugins/gui/gtk2-gui-req>";
-+    gui_header += gtkgui_req_uri + "\n"
-+        "    a uiext:GtkUI ;\n"
-+        "    lv2:extensionData uiext:idleInterface ,\n"
-+        "        uiext:showInterface ;\n"
-+        "    lv2:requiredFeature uiext:makeResident ;\n"
-+        "    lv2:requiredFeature <http://lv2plug.in/ns/ext/instance-access> ;\n"
-+        "    lv2:requiredFeature <http://lv2plug.in/ns/ext/data-access> ;\n"
-         "    uiext:binary <calflv2gui.so> .\n"
-         "\n"
-     ;
-@@ -259,6 +274,9 @@
-         id_to_info[pi->get_id()] = make_pair(lpi.label, uri);
-         string ttl;
-         ttl = "@prefix : <" + unquoted_uri + "#> .\n" + header + gui_header;
-+
-+        bool uireq = !strcmp(lpi.label, "Analyzer");
-+
-         
- #if USE_LV2_GUI
-         for (int j = 0; j < pi->get_param_count(); j++)
-@@ -267,7 +285,7 @@
-             if (props.flags & PF_PROP_OUTPUT)
-             {
-                 string portnot = " uiext:portNotification [\n    uiext:plugin " + uri + " ;\n    uiext:portIndex " + i2s(j) + "\n] .\n\n";
--                ttl += gtkgui_uri + portnot;
-+                ttl += (uireq ? gtkgui_req_uri : gtkgui_uri) + portnot;
-             }
-         }
- #endif
-@@ -298,9 +316,7 @@
-         ttl += "    doap:maintainer [ foaf:name \""+string(lpi.maker)+"\" ; ] ;\n";
- 
- #if USE_LV2_GUI
--        ttl += "    uiext:ui <http://calf.sourceforge.net/plugins/gui/gtk2-gui> ;\n";
--        ttl += "    lv2:optionalFeature <http://lv2plug.in/ns/ext/instance-access> ;\n";
--        ttl += "    lv2:optionalFeature <http://lv2plug.in/ns/ext/data-access> ;\n";
-+        ttl += "    uiext:ui " + (uireq ? gtkgui_req_uri : gtkgui_uri) + " ;\n";
- #endif
-         
-         ttl += "    doap:license <http://usefulinc.com/doap/licenses/lgpl> ;\n";
diff --git a/debian/patches/020151209~b73bce3.patch b/debian/patches/020151209~b73bce3.patch
deleted file mode 100644
index eabb6bb..0000000
--- a/debian/patches/020151209~b73bce3.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Description: Line Graph: fix hover bug
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/b73bce3
-Author: Markus Schmidt <schmidt at boomshop.net>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/ctl_linegraph.cpp
-+++ b/src/ctl_linegraph.cpp
-@@ -1311,7 +1311,10 @@
-         calf_line_graph_expose_request(widget, true);
-     lg->mouse_x = -1;
-     lg->mouse_y = -1;
--
-+    gdk_window_set_cursor(widget->window, lg->arrow_cursor);
-+    lg->handle_hovered = -1;
-+    lg->handle_redraw = 1;
-+    calf_line_graph_expose_request(widget, true);
-     return TRUE;
- }
- 
diff --git a/debian/patches/020160122~a4bb4b6.patch b/debian/patches/020160122~a4bb4b6.patch
deleted file mode 100644
index d12504f..0000000
--- a/debian/patches/020160122~a4bb4b6.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Description: Mono Input: fix use of uninitialized member
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/a4bb4b6
-Bug: https://github.com/calf-studio-gear/calf/issues/57
-Author: Krzysztof Foltman <wdev at foltman.com>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/modules_tools.cpp
-+++ b/src/modules_tools.cpp
-@@ -278,6 +278,7 @@
-     meter_outL  = 0.f;
-     meter_outR  = 0.f;
-     _phase      = -1.f;
-+    _sc_level   = 0.f;
- }
- mono_audio_module::~mono_audio_module() {
-     free(buffer);
diff --git a/debian/patches/020160503~413bd43.patch b/debian/patches/020160503~413bd43.patch
deleted file mode 100644
index 5fd6eef..0000000
--- a/debian/patches/020160503~413bd43.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Description: Fix comboboxes in Ardour4
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/413bd43
-Author: Markus Schmidt <schmidt at boomshop.net>
-Forwarded: yes
-Last-Update: 2016-06-18
-
---- a/src/gui_controls.cpp
-+++ b/src/gui_controls.cpp
-@@ -303,6 +303,7 @@
-     {
-         const parameter_properties &props = get_props();
-         gtk_combo_box_set_active (GTK_COMBO_BOX (widget), (int)gui->plugin->get_param_value(param_no) - (int)props.min);
-+        gtk_widget_queue_draw(widget);
-     }
- }
- 
diff --git a/debian/patches/020160718~784c842.patch b/debian/patches/020160718~784c842.patch
deleted file mode 100644
index 26a3604..0000000
--- a/debian/patches/020160718~784c842.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-Description: Fix some type errors
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/784c842
-Bug: https://github.com/calf-studio-gear/calf/issues/82
-Author: cisoun <cysoun at gmail.com>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/analyzer.cpp
-+++ b/src/analyzer.cpp
-@@ -471,12 +471,12 @@
-                                 //pumping up actual signal an erase surrounding
-                                 // sounds
-                                 fft_outL[_iter] = 0.25f * std::max(n * 0.6f * \
--                                    fabs(fft_outL[_iter]) - var1L , 1e-20);
-+                                    fabs(fft_outL[_iter]) - var1L , 1e-20f);
-                                 if(_mode == 3 or _mode == 4) {
-                                     // do the same with R channel if needed
-                                     lastoutR = fft_outR[_iter];
-                                     fft_outR[_iter] = 0.25f * std::max(n * \
--                                        0.6f * fabs(fft_outR[_iter]) - var1R , 1e-20);
-+                                        0.6f * fabs(fft_outR[_iter]) - var1R , 1e-20f);
-                                 }
-                                 break;
-                         }
---- a/src/jack_client.cpp
-+++ b/src/jack_client.cpp
-@@ -226,7 +226,7 @@
-                 map<string, int>::const_iterator p = port_to_plugin.find((*k) + cnlen + 1);
-                 if (p != port_to_plugin.end())
-                 {
--                    run_before.insert(make_pair<int, int>(p->second, i));
-+                    run_before.insert(make_pair<const int&, unsigned int&>(p->second, i));
-                 }
-             }
-             jack_free(conns);
---- a/src/modules_dist.cpp
-+++ b/src/modules_dist.cpp
-@@ -794,8 +794,8 @@
-             lfo2.advance(1);
-             
-             // dot
--            rms = std::max((double)rms, (fabs(Lo) + fabs(Ro)) / 2);
--            input = std::max((double)input, (fabs(Lc) + fabs(Rc)) / 2);
-+            rms = std::max((double)rms, (double)((fabs(Lo) + fabs(Ro)) / 2));
-+            input = std::max((double)input, (double)((fabs(Lc) + fabs(Rc)) / 2));
-             
-             float values[] = {inL, inR, outs[0][i], outs[1][i]};
-             meters.process(values);
---- a/src/modules_limit.cpp
-+++ b/src/modules_limit.cpp
-@@ -429,7 +429,7 @@
-                 }
-                 
-                 // write multiband coefficient to buffer
--                buffer[pos] = std::min(*params[param_limit] / std::max(fabs(tmpL), fabs(tmpR)), 1.0);
-+                buffer[pos] = std::min(*params[param_limit] / std::max(fabs(tmpL), fabs(tmpR)), 1.0f);
-                 
-                 // step forward in multiband buffer
-                 pos = (pos + channels) % buffer_size;
-@@ -811,7 +811,7 @@
-                 }
-                 
-                 // write multiband coefficient to buffer
--                buffer[pos] = std::min(*params[param_limit] / std::max(fabs(tmpL), fabs(tmpR)), 1.0);
-+                buffer[pos] = std::min(*params[param_limit] / std::max(fabs(tmpL), fabs(tmpR)), 1.0f);
-                 
-                 // step forward in multiband buffer
-                 pos = (pos + channels) % buffer_size;
diff --git a/debian/patches/020161201~6eb51ad.patch b/debian/patches/020161201~6eb51ad.patch
deleted file mode 100644
index 984027b..0000000
--- a/debian/patches/020161201~6eb51ad.patch
+++ /dev/null
@@ -1,436 +0,0 @@
-Description: Unified creator metadata
- Assign all the plugins the same unified creator metadata, so
- applications like Ardour will show all Calf plugins in a single creator
- category:
- .
- Mixer, New Plugin, By Creator, Calf Studio Gear, ...
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/6eb51ad
-Author: Pascal de Bruijn <pmjdebruijn at pcode.nl>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/metadata.cpp
-+++ b/src/metadata.cpp
-@@ -98,7 +98,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(flanger) = { 0x847d, "Flanger", "Calf Flanger", "Calf Studio Gear / Krzysztof Foltman", calf_plugins::calf_copyright_info, "ModulatorPlugin" };
-+CALF_PLUGIN_INFO(flanger) = { 0x847d, "Flanger", "Calf Flanger", "Calf Studio Gear", calf_plugins::calf_copyright_info, "ModulatorPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -116,7 +116,7 @@
-     { 1.0,        0, 4,     0, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_NOBOUNDS, NULL, "dry", "Dry Amount" },
- };
- 
--CALF_PLUGIN_INFO(phaser) = { 0x8484, "Phaser", "Calf Phaser", "Calf Studio Gear / Krzysztof Foltman", calf_plugins::calf_copyright_info, "ModulatorPlugin" };
-+CALF_PLUGIN_INFO(phaser) = { 0x8484, "Phaser", "Calf Phaser", "Calf Studio Gear", calf_plugins::calf_copyright_info, "ModulatorPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -140,7 +140,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(reverb) = { 0x847e, "Reverb", "Calf Reverb", "Calf Studio Gear / Krzysztof Foltman", calf_plugins::calf_copyright_info, "ReverbPlugin" };
-+CALF_PLUGIN_INFO(reverb) = { 0x847e, "Reverb", "Calf Reverb", "Calf Studio Gear", calf_plugins::calf_copyright_info, "ReverbPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -171,7 +171,7 @@
-     { 20,         5,  100,    20, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_MSEC, NULL, "inertia", "Inertia"},
- };
- 
--CALF_PLUGIN_INFO(filter) = { 0x847f, "Filter", "Calf Filter", "Calf Studio Gear / Krzysztof Foltman", calf_plugins::calf_copyright_info, "FilterPlugin" };
-+CALF_PLUGIN_INFO(filter) = { 0x847f, "Filter", "Calf Filter", "Calf Studio Gear", calf_plugins::calf_copyright_info, "FilterPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -189,7 +189,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(filterclavier) = { 0x849f, "Filterclavier", "Calf Filterclavier", "Calf Studio Gear / Krzysztof Foltman / Hans Baier", calf_plugins::calf_copyright_info, "FilterPlugin" };
-+CALF_PLUGIN_INFO(filterclavier) = { 0x849f, "Filterclavier", "Calf Filterclavier", "Calf Studio Gear", calf_plugins::calf_copyright_info, "FilterPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -216,7 +216,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(envelopefilter) = { 0x8432, "EnvelopeFilter", "Calf Envelope Filter", "Calf Studio Gear / Markus Schmidt", calf_plugins::calf_copyright_info, "FilterPlugin" };
-+CALF_PLUGIN_INFO(envelopefilter) = { 0x8432, "EnvelopeFilter", "Calf Envelope Filter", "Calf Studio Gear", calf_plugins::calf_copyright_info, "FilterPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -251,7 +251,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(vintage_delay) = { 0x8482, "VintageDelay", "Calf Vintage Delay", "Calf Studio Gear / Krzysztof Foltman", calf_plugins::calf_copyright_info, "DelayPlugin" };
-+CALF_PLUGIN_INFO(vintage_delay) = { 0x8482, "VintageDelay", "Calf Vintage Delay", "Calf Studio Gear", calf_plugins::calf_copyright_info, "DelayPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- CALF_PORT_NAMES(comp_delay) = { "In L", "In R", "Out L", "Out R" };
-@@ -266,7 +266,7 @@
-     {  0,        0,    1,     0, PF_BOOL | PF_CTL_TOGGLE, NULL, "bypass", "Bypass" },
-     {}
- };
--CALF_PLUGIN_INFO(comp_delay) = { 0x8485, "CompensationDelay", "Calf Compensation Delay Line", "Calf Studio Gear / Vladimir Sadovnikov", calf_plugins::calf_copyright_info, "DelayPlugin" };
-+CALF_PLUGIN_INFO(comp_delay) = { 0x8485, "CompensationDelay", "Calf Compensation Delay Line", "Calf Studio Gear", calf_plugins::calf_copyright_info, "DelayPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -289,7 +289,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(reverse_delay) = { 0x8482, "ReverseDelay", "Calf Reverse Delay", "Calf Studio Gear / drgreenthumb", calf_plugins::calf_copyright_info, "DelayPlugin" };
-+CALF_PLUGIN_INFO(reverse_delay) = { 0x8482, "ReverseDelay", "Calf Reverse Delay", "Calf Studio Gear", calf_plugins::calf_copyright_info, "DelayPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -313,7 +313,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(rotary_speaker) = { 0x8483, "RotarySpeaker", "Calf Rotary Speaker", "Calf Studio Gear / Krzysztof Foltman", calf_plugins::calf_copyright_info, "SimulatorPlugin" };
-+CALF_PLUGIN_INFO(rotary_speaker) = { 0x8483, "RotarySpeaker", "Calf Rotary Speaker", "Calf Studio Gear", calf_plugins::calf_copyright_info, "SimulatorPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -334,7 +334,7 @@
-     { 0.75,       0,    1,     0, PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB, NULL, "overlap", "Overlap" },
- };
- 
--CALF_PLUGIN_INFO(multichorus) = { 0x8501, "MultiChorus", "Calf Multi Chorus", "Calf Studio Gear / Krzysztof Foltman", calf_plugins::calf_copyright_info, "ModulatorPlugin" };
-+CALF_PLUGIN_INFO(multichorus) = { 0x8501, "MultiChorus", "Calf Multi Chorus", "Calf Studio Gear", calf_plugins::calf_copyright_info, "ModulatorPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -363,7 +363,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(monocompressor) = { 0x8577, "MonoCompressor", "Calf Mono Compressor", "Calf Studio Gear / Damien Zammit", calf_plugins::calf_copyright_info, "CompressorPlugin" };
-+CALF_PLUGIN_INFO(monocompressor) = { 0x8577, "MonoCompressor", "Calf Mono Compressor", "Calf Studio Gear", calf_plugins::calf_copyright_info, "CompressorPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -392,7 +392,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(compressor) = { 0x8502, "Compressor", "Calf Compressor", "Calf Studio Gear / Thor Harald Johansen", calf_plugins::calf_copyright_info, "CompressorPlugin" };
-+CALF_PLUGIN_INFO(compressor) = { 0x8502, "Compressor", "Calf Compressor", "Calf Studio Gear", calf_plugins::calf_copyright_info, "CompressorPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -443,7 +443,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(sidechaincompressor) = { 0x8517, "SidechainCompressor", "Calf Sidechain Compressor", "Calf Studio Gear / Markus Schmidt / Thor Harald Johansen", calf_plugins::calf_copyright_info, "CompressorPlugin" };
-+CALF_PLUGIN_INFO(sidechaincompressor) = { 0x8517, "SidechainCompressor", "Calf Sidechain Compressor", "Calf Studio Gear", calf_plugins::calf_copyright_info, "CompressorPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- #define MULTI_BAND_COMP_PARAMS(band1, band2) \
-@@ -478,7 +478,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(multibandcompressor) = { 0x8516, "MultibandCompressor", "Calf Multiband Compressor", "Calf Studio Gear / Markus Schmidt / Thor Harald Johansen", calf_plugins::calf_copyright_info, "CompressorPlugin" };
-+CALF_PLUGIN_INFO(multibandcompressor) = { 0x8516, "MultibandCompressor", "Calf Multiband Compressor", "Calf Studio Gear", calf_plugins::calf_copyright_info, "CompressorPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -510,7 +510,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(deesser) = { 0x8515, "Deesser", "Calf Deesser", "Calf Studio Gear / Markus Schmidt / Thor Harald Johansen", calf_plugins::calf_copyright_info, "CompressorPlugin" };
-+CALF_PLUGIN_INFO(deesser) = { 0x8515, "Deesser", "Calf Deesser", "Calf Studio Gear", calf_plugins::calf_copyright_info, "CompressorPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -539,7 +539,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(gate) = { 0x8503, "Gate", "Calf Gate", "Calf Studio Gear / Damien Zammit / Thor Harald Johansen", calf_plugins::calf_copyright_info, "ExpanderPlugin" };
-+CALF_PLUGIN_INFO(gate) = { 0x8503, "Gate", "Calf Gate", "Calf Studio Gear", calf_plugins::calf_copyright_info, "ExpanderPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -590,7 +590,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(sidechaingate) = { 0x8504, "SidechainGate", "Calf Sidechain Gate", "Calf Studio Gear / Markus Schmidt / Damien Zammit / Thor Harald Johansen", calf_plugins::calf_copyright_info, "ExpanderPlugin" };
-+CALF_PLUGIN_INFO(sidechaingate) = { 0x8504, "SidechainGate", "Calf Sidechain Gate", "Calf Studio Gear", calf_plugins::calf_copyright_info, "ExpanderPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- #define MULTI_BAND_GATE_PARAMS(band1, band2) \
-@@ -626,7 +626,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(multibandgate) = { 0x8505, "MultibandGate", "Calf Multiband Gate", "Calf Studio Gear / Markus Schmidt / Damien Zammit / Thor Harald Johansen", calf_plugins::calf_copyright_info, "ExpanderPlugin" };
-+CALF_PLUGIN_INFO(multibandgate) = { 0x8505, "MultibandGate", "Calf Multiband Gate", "Calf Studio Gear", calf_plugins::calf_copyright_info, "ExpanderPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -650,7 +650,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(limiter) = { 0x8521, "Limiter", "Calf Limiter", "Calf Studio Gear / Christian Holschuh / Markus Schmidt", calf_plugins::calf_copyright_info, "LimiterPlugin" };
-+CALF_PLUGIN_INFO(limiter) = { 0x8521, "Limiter", "Calf Limiter", "Calf Studio Gear", calf_plugins::calf_copyright_info, "LimiterPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -706,7 +706,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(multibandlimiter) = { 0x8520, "MultibandLimiter", "Calf Multiband Limiter", "Calf Studio Gear / Markus Schmidt / Christian Holschuh", calf_plugins::calf_copyright_info, "LimiterPlugin" };
-+CALF_PLUGIN_INFO(multibandlimiter) = { 0x8520, "MultibandLimiter", "Calf Multiband Limiter", "Calf Studio Gear", calf_plugins::calf_copyright_info, "LimiterPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -769,7 +769,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(sidechainlimiter) = { 0x8522, "SidechainLimiter", "Calf Sidechain Limiter", "Calf Studio Gear / Markus Schmidt / Christian Holschuh", calf_plugins::calf_copyright_info, "LimiterPlugin" };
-+CALF_PLUGIN_INFO(sidechainlimiter) = { 0x8522, "SidechainLimiter", "Calf Sidechain Limiter", "Calf Studio Gear", calf_plugins::calf_copyright_info, "LimiterPlugin" };
- 
- 
- ////////////////////////////////////////////////////////////////////////////
-@@ -786,7 +786,7 @@
-     { 4,      0,  4,    0, PF_ENUM | PF_CTL_COMBO, emphasis_filter_types, "type", "Filter Type" },
-     {}
- };
--CALF_PLUGIN_INFO(emphasis) = { 0x8599, "Emphasis", "Calf Emphasis", "Calf Studio Gear / Damien Zammit", calf_plugins::calf_copyright_info, "FilterPlugin" };
-+CALF_PLUGIN_INFO(emphasis) = { 0x8599, "Emphasis", "Calf Emphasis", "Calf Studio Gear", calf_plugins::calf_copyright_info, "FilterPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- const char *active_mode_names[] = { " ", "ON", "Left", "Right", "Mid", "Side" };
-@@ -804,7 +804,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(equalizer5band) = { 0x8511, "Equalizer5Band", "Calf Equalizer 5 Band", "Calf Studio Gear / Markus Schmidt", calf_plugins::calf_copyright_info, "EQPlugin" };
-+CALF_PLUGIN_INFO(equalizer5band) = { 0x8511, "Equalizer5Band", "Calf Equalizer 5 Band", "Calf Studio Gear", calf_plugins::calf_copyright_info, "EQPlugin" };
- 
- //////////////////////////////////////////////////////////////////////////////
- 
-@@ -825,7 +825,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(equalizer8band) = { 0x8512, "Equalizer8Band", "Calf Equalizer 8 Band", "Calf Studio Gear / Markus Schmidt", calf_plugins::calf_copyright_info, "EQPlugin" };
-+CALF_PLUGIN_INFO(equalizer8band) = { 0x8512, "Equalizer8Band", "Calf Equalizer 8 Band", "Calf Studio Gear", calf_plugins::calf_copyright_info, "EQPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -848,7 +848,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(equalizer12band) = { 0x8513, "Equalizer12Band", "Calf Equalizer 12 Band", "Calf Studio Gear / Markus Schmidt", calf_plugins::calf_copyright_info, "EQPlugin" };
-+CALF_PLUGIN_INFO(equalizer12band) = { 0x8513, "Equalizer12Band", "Calf Equalizer 12 Band", "Calf Studio Gear", calf_plugins::calf_copyright_info, "EQPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -956,7 +956,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(equalizer30band) = { 0x8514, "Equalizer30Band", "Calf Equalizer 30 Band", "Calf Studio Gear / drgreenthumb", calf_plugins::calf_copyright_info, "EQPlugin" };
-+CALF_PLUGIN_INFO(equalizer30band) = { 0x8514, "Equalizer30Band", "Calf Equalizer 30 Band", "Calf Studio Gear", calf_plugins::calf_copyright_info, "EQPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -982,7 +982,7 @@
-     XOVER_BAND_PARAMS(2)
-     {}
- };
--CALF_PLUGIN_INFO(xover2) = { 0x8515, "XOver2Band", "Calf X-Over 2 Band", "Calf Studio Gear / Markus Schmidt", calf_plugins::calf_copyright_info, "UtilityPlugin" };
-+CALF_PLUGIN_INFO(xover2) = { 0x8515, "XOver2Band", "Calf X-Over 2 Band", "Calf Studio Gear", calf_plugins::calf_copyright_info, "UtilityPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -1000,7 +1000,7 @@
-     XOVER_BAND_PARAMS(3)
-     {}
- };
--CALF_PLUGIN_INFO(xover3) = { 0x8515, "XOver3Band", "Calf X-Over 3 Band", "Calf Studio Gear / Markus Schmidt", calf_plugins::calf_copyright_info, "UtilityPlugin" };
-+CALF_PLUGIN_INFO(xover3) = { 0x8515, "XOver3Band", "Calf X-Over 3 Band", "Calf Studio Gear", calf_plugins::calf_copyright_info, "UtilityPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -1020,7 +1020,7 @@
-     XOVER_BAND_PARAMS(4)
-     {}
- };
--CALF_PLUGIN_INFO(xover4) = { 0x8515, "XOver4Band", "Calf X-Over 4 Band", "Calf Studio Gear / Markus Schmidt", calf_plugins::calf_copyright_info, "UtilityPlugin" };
-+CALF_PLUGIN_INFO(xover4) = { 0x8515, "XOver4Band", "Calf X-Over 4 Band", "Calf Studio Gear", calf_plugins::calf_copyright_info, "UtilityPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -1108,7 +1108,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(vocoder) = { 0x8514, "Vocoder", "Calf Vocoder", "Calf Studio Gear / Markus Schmidt / Christian Holschuh", calf_plugins::calf_copyright_info, "FilterPlugin" };
-+CALF_PLUGIN_INFO(vocoder) = { 0x8514, "Vocoder", "Calf Vocoder", "Calf Studio Gear", calf_plugins::calf_copyright_info, "FilterPlugin" };
- 
- 
- ////////////////////////////////////////////////////////////////////////////
-@@ -1129,7 +1129,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(pulsator) = { 0x8514, "Pulsator", "Calf Pulsator", "Calf Studio Gear / Markus Schmidt", calf_plugins::calf_copyright_info, "ModulatorPlugin" };
-+CALF_PLUGIN_INFO(pulsator) = { 0x8514, "Pulsator", "Calf Pulsator", "Calf Studio Gear", calf_plugins::calf_copyright_info, "ModulatorPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -1172,7 +1172,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(ringmodulator) = { 0x8514, "RingModulator", "Calf Ring Modulator", "Calf Studio Gear / Markus Schmidt", calf_plugins::calf_copyright_info, "ModulatorPlugin" };
-+CALF_PLUGIN_INFO(ringmodulator) = { 0x8514, "RingModulator", "Calf Ring Modulator", "Calf Studio Gear", calf_plugins::calf_copyright_info, "ModulatorPlugin" };
- 
- 
- ////////////////////////////////////////////////////////////////////////////
-@@ -1199,7 +1199,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(saturator) = { 0x8530, "Saturator", "Calf Saturator", "Calf Studio Gear / Markus Schmidt / Krzysztof Foltman", calf_plugins::calf_copyright_info, "DistortionPlugin" };
-+CALF_PLUGIN_INFO(saturator) = { 0x8530, "Saturator", "Calf Saturator", "Calf Studio Gear", calf_plugins::calf_copyright_info, "DistortionPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -1226,7 +1226,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(exciter) = { 0x8531, "Exciter", "Calf Exciter", "Calf Studio Gear / Markus Schmidt / Krzysztof Foltman", calf_plugins::calf_copyright_info, "SpectralPlugin" };
-+CALF_PLUGIN_INFO(exciter) = { 0x8531, "Exciter", "Calf Exciter", "Calf Studio Gear", calf_plugins::calf_copyright_info, "SpectralPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -1253,7 +1253,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(bassenhancer) = { 0x8532, "BassEnhancer", "Calf Bass Enhancer", "Calf Studio Gear / Markus Schmidt / Krzysztof Foltman", calf_plugins::calf_copyright_info, "SpectralPlugin" };
-+CALF_PLUGIN_INFO(bassenhancer) = { 0x8532, "BassEnhancer", "Calf Bass Enhancer", "Calf Studio Gear", calf_plugins::calf_copyright_info, "SpectralPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -1289,7 +1289,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(stereo) = { 0x8588, "StereoTools", "Calf Stereo Tools", "Calf Studio Gear / Markus Schmidt", calf_plugins::calf_copyright_info, "SpatialPlugin" };
-+CALF_PLUGIN_INFO(stereo) = { 0x8588, "StereoTools", "Calf Stereo Tools", "Calf Studio Gear", calf_plugins::calf_copyright_info, "SpatialPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -1325,7 +1325,7 @@
- 
-     {}
- };
--CALF_PLUGIN_INFO(haas_enhancer) = { 0x8486, "HaasEnhancer", "Calf Haas Stereo Enhancer", "Calf Studio Gear / Vladimir Sadovnikov", calf_plugins::calf_copyright_info, "SpatialPlugin" };
-+CALF_PLUGIN_INFO(haas_enhancer) = { 0x8486, "HaasEnhancer", "Calf Haas Stereo Enhancer", "Calf Studio Gear", calf_plugins::calf_copyright_info, "SpatialPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -1356,7 +1356,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(mono) = { 0x8589, "MonoInput", "Calf Mono Input", "Calf Studio Gear / Markus Schmidt", calf_plugins::calf_copyright_info, "UtilityPlugin" };
-+CALF_PLUGIN_INFO(mono) = { 0x8589, "MonoInput", "Calf Mono Input", "Calf Studio Gear", calf_plugins::calf_copyright_info, "UtilityPlugin" };
- 
- 
- ////////////////////////////////////////////////////////////////////////////
-@@ -1397,7 +1397,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(analyzer) = { 0x8588, "Analyzer", "Calf Analyzer", "Calf Studio Gear / Christian Holschuh / Markus Schmidt", calf_plugins::calf_copyright_info, "AnalyserPlugin" };
-+CALF_PLUGIN_INFO(analyzer) = { 0x8588, "Analyzer", "Calf Analyzer", "Calf Studio Gear", calf_plugins::calf_copyright_info, "AnalyserPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- const char *transientdesigner_view_names[] = { "Output", "Envelope", "Attack", "Release" };
-@@ -1424,7 +1424,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(transientdesigner) = { 0x8588, "TransientDesigner", "Calf Transient Designer", "Calf Studio Gear / Christian Holschuh / Markus Schmidt", calf_plugins::calf_copyright_info, "EnvelopePlugin" };
-+CALF_PLUGIN_INFO(transientdesigner) = { 0x8588, "TransientDesigner", "Calf Transient Designer", "Calf Studio Gear", calf_plugins::calf_copyright_info, "EnvelopePlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -1445,7 +1445,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(tapesimulator) = { 0x8588, "TapeSimulator", "Calf Tape Simulator", "Calf Studio Gear / Markus Schmidt / Christian Holschuh", calf_plugins::calf_copyright_info, "SimulatorPlugin" };
-+CALF_PLUGIN_INFO(tapesimulator) = { 0x8588, "TapeSimulator", "Calf Tape Simulator", "Calf Studio Gear", calf_plugins::calf_copyright_info, "SimulatorPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -1466,7 +1466,7 @@
-     {}
- };
- 
--CALF_PLUGIN_INFO(crusher) = { 0x8587, "Crusher", "Calf Crusher", "Calf Studio Gear / Markus Schmidt / Christian Holschuh", calf_plugins::calf_copyright_info, "DistortionPlugin" };
-+CALF_PLUGIN_INFO(crusher) = { 0x8587, "Crusher", "Calf Crusher", "Calf Studio Gear", calf_plugins::calf_copyright_info, "DistortionPlugin" };
- 
- ////////////////////////////////////////////////////////////////////////////
- 
-@@ -1491,7 +1491,7 @@
-     "2x6dB/oct Bandpass",
- };
- 
--CALF_PLUGIN_INFO(monosynth) = { 0x8480, "Monosynth", "Calf Monosynth", "Calf Studio Gear / Krzysztof Foltman", calf_plugins::calf_copyright_info, "InstrumentPlugin" };
-+CALF_PLUGIN_INFO(monosynth) = { 0x8480, "Monosynth", "Calf Monosynth", "Calf Studio Gear", calf_plugins::calf_copyright_info, "InstrumentPlugin" };
- 
- CALF_PORT_PROPS(monosynth) = {
-     { monosynth_metadata::wave_saw,         0, monosynth_metadata::wave_count - 1, 1, PF_ENUM | PF_CTL_COMBO | PF_PROP_GRAPH, monosynth_waveform_names, "o1_wave", "Osc1 Wave" },
-@@ -1601,7 +1601,7 @@
- 
- ////////////////////////////////////////////////////////////////////////////
- 
--CALF_PLUGIN_INFO(organ) = { 0x8481, "Organ", "Calf Organ", "Calf Studio Gear / Krzysztof Foltman", calf_plugins::calf_copyright_info, "InstrumentPlugin" };
-+CALF_PLUGIN_INFO(organ) = { 0x8481, "Organ", "Calf Organ", "Calf Studio Gear", calf_plugins::calf_copyright_info, "InstrumentPlugin" };
- 
- plugin_command_info *organ_metadata::get_commands()
- {
-@@ -1807,7 +1807,7 @@
-     "Out L", "Out R",
- };
- 
--CALF_PLUGIN_INFO(fluidsynth) = { 0x8700, "Fluidsynth", "Calf Fluidsynth", "Calf Studio Gear / FluidSynth Team / Krzysztof Foltman", calf_plugins::calf_copyright_info, "InstrumentPlugin" };
-+CALF_PLUGIN_INFO(fluidsynth) = { 0x8700, "Fluidsynth", "Calf Fluidsynth", "Calf Studio Gear", calf_plugins::calf_copyright_info, "InstrumentPlugin" };
- 
- CALF_PORT_PROPS(fluidsynth) = {
-     { 0.5,         0,   1, 100, PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_PROP_OUTPUT_GAIN, NULL, "master", "Volume" },
-@@ -1890,7 +1890,7 @@
-     "Out L", "Out R",
- };
- 
--CALF_PLUGIN_INFO(wavetable) = { 0x8701, "Wavetable", "Calf Wavetable", "Calf Studio Gear / Krzysztof Foltman", calf_plugins::calf_copyright_info, "InstrumentPlugin" };
-+CALF_PLUGIN_INFO(wavetable) = { 0x8701, "Wavetable", "Calf Wavetable", "Calf Studio Gear", calf_plugins::calf_copyright_info, "InstrumentPlugin" };
- 
- CALF_PORT_PROPS(wavetable) = {
-     { wavetable_metadata::wt_count - 1,       0,  wavetable_metadata::wt_count - 1, 0, PF_ENUM | PF_SCALE_LINEAR | PF_CTL_COMBO, wavetable_names, "o1wave", "Osc1 Wave" },
diff --git a/debian/patches/020161210~f392c59.patch b/debian/patches/020161210~f392c59.patch
deleted file mode 100644
index d6c3cfc..0000000
--- a/debian/patches/020161210~f392c59.patch
+++ /dev/null
@@ -1,2153 +0,0 @@
-Description: Fix type errors causing gcc5/gcc6 build failure
- Fix some type errors which prevented either gcc5 or gcc6 from building.
- Fix some warnings.
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/f392c59
-Author: Markus Schmidt <schmidt at boomshop.net>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/analyzer.cpp
-+++ b/src/analyzer.cpp
-@@ -470,13 +470,13 @@
-                                 lastoutL = fft_outL[_iter];
-                                 //pumping up actual signal an erase surrounding
-                                 // sounds
--                                fft_outL[_iter] = 0.25f * std::max(n * 0.6f * \
--                                    fabs(fft_outL[_iter]) - var1L , 1e-20f);
-+                                fft_outL[_iter] = 0.25f * std::max((float)(n * 0.6f * \
-+                                    fabs(fft_outL[_iter]) - var1L), 1e-20f);
-                                 if(_mode == 3 or _mode == 4) {
-                                     // do the same with R channel if needed
-                                     lastoutR = fft_outR[_iter];
--                                    fft_outR[_iter] = 0.25f * std::max(n * \
--                                        0.6f * fabs(fft_outR[_iter]) - var1R , 1e-20f);
-+                                    fft_outR[_iter] = 0.25f * std::max((float)(n * \
-+                                        0.6f * fabs(fft_outR[_iter]) - var1R), 1e-20f);
-                                 }
-                                 break;
-                         }
---- a/src/calf/orfanidis_eq.h
-+++ b/src/calf/orfanidis_eq.h
-@@ -16,10 +16,10 @@
- 
- //Eq types
- typedef enum {
--	none,
--	butterworth,
--	chebyshev1,
--	chebyshev2
-+    none,
-+    butterworth,
-+    chebyshev1,
-+    chebyshev2
- } filter_type;
- 
- static const char *get_eq_text(filter_type type) {
-@@ -39,9 +39,9 @@
- 
- //Eq errors
- typedef enum {
--	no_error,
--	invalid_input_data_error,
--	processing_error
-+    no_error,
-+    invalid_input_data_error,
-+    processing_error
- } eq_error_t;
- 
- //Constants
-@@ -79,255 +79,255 @@
- //------------ Conversion functions class ------------
- class conversions
- {
--	int db_min_max;
--	std::vector<eq_double_t> lin_gains;
-+    int db_min_max;
-+    std::vector<eq_double_t> lin_gains;
- 
--	int lin_gains_index(eq_double_t x) {
--		int int_x = (int)x;
--		if((x >= -db_min_max) && (x < db_min_max - 1))
--			return db_min_max + int_x;
--	
--		return db_min_max;		
--	}
-+    int lin_gains_index(eq_double_t x) {
-+        int int_x = (int)x;
-+        if((x >= -db_min_max) && (x < db_min_max - 1))
-+            return db_min_max + int_x;
-+    
-+        return db_min_max;      
-+    }
- 
--	conversions(){}
-+    conversions(){}
- 
- public:
--	conversions(int min_max) {
--	    db_min_max = min_max;
--	    //Update table (vector elements) for fast conversions
--	    int step = -min_max;
--	    while(step <= min_max)
--	        lin_gains.push_back(db_2_lin(step++));
--	}
--
--	inline eq_double_t fast_db_2_lin(eq_double_t x) {
--	    int int_part = (int)x;
--	    eq_double_t frac_part = x - int_part;
--	    return lin_gains[lin_gains_index(int_part)]*(1-frac_part) + 
--	    	(lin_gains[lin_gains_index(int_part + 1)])*frac_part;
--	}
--
--	inline eq_double_t fast_lin_2_db(eq_double_t x) {
--	    if((x >= lin_gains[0]) && (x < lin_gains[lin_gains.size() - 1])) {	
--			for (unsigned int i = 0; i < lin_gains.size() - 2; i++)
--				if((x >= lin_gains[i]) && (x < lin_gains[i + 1])) {
--					int int_part = i - db_min_max;
--	    			eq_double_t frac_part = x - (int)(x);
--					return int_part + frac_part; 
--	    		}
--	    }
--	    return 0;
--	}
--
--	inline static eq_double_t db_2_lin(eq_double_t x) {
--	    return pow(10, x/20);
--	}
--
--	inline static eq_double_t lin_2_db(eq_double_t x) {
--	    return 20*log10(x);
--	}
--
--	inline static eq_double_t rad_2_hz(eq_double_t x, eq_double_t fs) {
--	    return 2*pi/x*fs;
--	}
--
--	inline static eq_double_t hz_2_rad(eq_double_t x, eq_double_t fs) {
--	    return 2*pi*x/fs;
--	}
-+    conversions(int min_max) {
-+        db_min_max = min_max;
-+        //Update table (vector elements) for fast conversions
-+        int step = -min_max;
-+        while(step <= min_max)
-+            lin_gains.push_back(db_2_lin(step++));
-+    }
-+
-+    inline eq_double_t fast_db_2_lin(eq_double_t x) {
-+        int int_part = (int)x;
-+        eq_double_t frac_part = x - int_part;
-+        return lin_gains[lin_gains_index(int_part)]*(1-frac_part) + 
-+            (lin_gains[lin_gains_index(int_part + 1)])*frac_part;
-+    }
-+
-+    inline eq_double_t fast_lin_2_db(eq_double_t x) {
-+        if((x >= lin_gains[0]) && (x < lin_gains[lin_gains.size() - 1])) {  
-+            for (unsigned int i = 0; i < lin_gains.size() - 2; i++)
-+                if((x >= lin_gains[i]) && (x < lin_gains[i + 1])) {
-+                    int int_part = i - db_min_max;
-+                    eq_double_t frac_part = x - (int)(x);
-+                    return int_part + frac_part; 
-+                }
-+        }
-+        return 0;
-+    }
-+
-+    inline static eq_double_t db_2_lin(eq_double_t x) {
-+        return pow(10, x/20);
-+    }
-+
-+    inline static eq_double_t lin_2_db(eq_double_t x) {
-+        return 20*log10(x);
-+    }
-+
-+    inline static eq_double_t rad_2_hz(eq_double_t x, eq_double_t fs) {
-+        return 2*pi/x*fs;
-+    }
-+
-+    inline static eq_double_t hz_2_rad(eq_double_t x, eq_double_t fs) {
-+        return 2*pi*x/fs;
-+    }
- };
- 
- //------------ Band freq's structure ------------
- struct band_freqs {
- private:
--	band_freqs();
-+    band_freqs();
- 
- public:
--	eq_double_t min_freq;
--	eq_double_t center_freq;
--	eq_double_t max_freq;
-+    eq_double_t min_freq;
-+    eq_double_t center_freq;
-+    eq_double_t max_freq;
- 
--	band_freqs(eq_double_t f1, eq_double_t f0, eq_double_t f2):
--	    min_freq(f1), center_freq(f0), max_freq(f2){}
-+    band_freqs(eq_double_t f1, eq_double_t f0, eq_double_t f2):
-+        min_freq(f1), center_freq(f0), max_freq(f2){}
- 
--	~band_freqs(){}
-+    ~band_freqs(){}
- };
- 
- //------------ Frequency grid class ------------
- class freq_grid {
- private:
--	std::vector<band_freqs> freqs_;
-+    std::vector<band_freqs> freqs_;
- 
- public:
--	freq_grid(){}
--	freq_grid(const freq_grid& fg){this->freqs_ = fg.freqs_;}
--	~freq_grid(){}
--
--	eq_error_t set_band(eq_double_t fmin, eq_double_t f0, eq_double_t fmax) {
--	    freqs_.clear();
--	    return add_band(fmin, f0, fmax);
--	}
--	
--	//fc, fmin, fmax
--	eq_error_t add_band(eq_double_t fmin, eq_double_t f0, eq_double_t fmax) {
--	    if(fmin < f0 && f0 < fmax)
--	            freqs_.push_back(band_freqs(fmin, f0, fmax));
--	        else
--	            return invalid_input_data_error;
--	        return no_error;
--	}
--	
--	//f0, deltaf = fmax - fmin
--	eq_error_t add_band(eq_double_t f0, eq_double_t df) {
--		if(f0 >= df/2)
--		{
--			eq_double_t fmin = f0 - df/2;
--			eq_double_t fmax = f0 + df/2;
--	        freqs_.push_back(band_freqs(fmin, f0, fmax));
--	    }
--		else
--	        return invalid_input_data_error;	
--	    return no_error;
--	}
--
--	eq_error_t set_5_bands(eq_double_t center_freq = bands_grid_center_freq_hz) {
--	    freqs_.clear();
--	    if(lowest_audio_freq_hz < center_freq &&
--	            center_freq < highest_audio_freq_hz) {
--
--	        //Find lowest center frequency in band
--	        eq_double_t lowest_center_freq = center_freq;
--	        while(lowest_center_freq > lowest_grid_center_freq_hz)
--	            lowest_center_freq/=4.0;
--	        if(lowest_center_freq < lowest_grid_center_freq_hz)
--	            lowest_center_freq*=4.0;
--
--	        //Calculate freq's
--	        eq_double_t f0 = lowest_center_freq;
--	        for(unsigned int i = 0; i < 5 ; i++) {
--	            freqs_.push_back(band_freqs(f0/2, f0, f0*2));
--	            f0 *= 4;
--	        }
--	    }
--	    else
--	        return invalid_input_data_error;
--	    return no_error;
--	}
--
--	eq_error_t set_10_bands(eq_double_t center_freq = bands_grid_center_freq_hz) {
--	    freqs_.clear();
--	    if(lowest_audio_freq_hz < center_freq &&
--	            center_freq < highest_audio_freq_hz) {
--
--	        //Find lowest center frequency in band
--	        eq_double_t lowest_center_freq = center_freq;
--	        while(lowest_center_freq > lowest_grid_center_freq_hz)
--	            lowest_center_freq/=2;
--	        if(lowest_center_freq < lowest_grid_center_freq_hz)
--	            lowest_center_freq*=2;
--
--	        //Calculate freq's
--	        eq_double_t f0 = lowest_center_freq;
--	        for(unsigned int i = 0; i < 10; i++) {
--	            freqs_.push_back(band_freqs(f0/pow(2,0.5), f0, f0*pow(2,0.5)));
--	            f0 *= 2;
--	        }
--	    }
--	    else
--	        return invalid_input_data_error;
--	    return no_error;
--	}
--
--	eq_error_t set_20_bands(eq_double_t center_freq = bands_grid_center_freq_hz) {
--	    freqs_.clear();
--	    if(lowest_audio_freq_hz < center_freq &&
--	            center_freq < highest_audio_freq_hz) {
--
--	     //Find lowest center frequency in band
--	        eq_double_t lowest_center_freq = center_freq;
--	        while(lowest_center_freq > lowest_audio_freq_hz)
--	            lowest_center_freq/=pow(2,0.5);
--	        if(lowest_center_freq < lowest_audio_freq_hz)
--	            lowest_center_freq*=pow(2,0.5);
--
--	        //Calculate freq's
--	        eq_double_t f0 = lowest_center_freq;
--	        for(unsigned int i = 0; i < 20; i++) {
--	            freqs_.push_back(band_freqs(f0/pow(2,0.25), 
--	            	f0, f0*pow(2,0.25)));
--	            f0 *= pow(2,0.5);
--	        }
--	    }
--	    else
--	        return invalid_input_data_error;
--	    return no_error;
--	}
--
--	eq_error_t set_30_bands(eq_double_t center_freq = bands_grid_center_freq_hz) {
--	    freqs_.clear();
--	    if(lowest_audio_freq_hz < center_freq &&
--	            center_freq < highest_audio_freq_hz) {
--
--	        //Find lowest center frequency in band
--	        eq_double_t lowest_center_freq = center_freq;
--	        while(lowest_center_freq > lowest_audio_freq_hz)
--	            lowest_center_freq/=pow(2.0,1.0/3.0);
--	        if(lowest_center_freq < lowest_audio_freq_hz)
--	            lowest_center_freq*=pow(2.0,1.0/3.0);
--
--	        //Calculate freq's
--	        eq_double_t f0 = lowest_center_freq;
--	        for(unsigned int i = 0; i < 30; i++) {
--	            freqs_.push_back(band_freqs(f0/pow(2.0,1.0/6.0), 
--	            	f0, f0*pow(2.0,1.0/6.0)));
--	            f0 *= pow(2,1.0/3.0);
--	        }
--	    }
--	    else
--	        return invalid_input_data_error;
--	    return no_error;
--	}
--
--	unsigned int get_number_of_bands(){return freqs_.size();}
--	
--	std::vector<band_freqs> get_freqs(){return freqs_;}
--	
--	unsigned int get_freq(unsigned int number) {
--	    if(number < freqs_.size())
--	        return freqs_[number].center_freq;
--	    else
--	        return 0;
--	}
--
--	unsigned int get_rounded_freq(unsigned int number) {
--	    if(number < freqs_.size()) {
--	        unsigned int freq = freqs_[number].center_freq;
--	        if (freq < 100)
--	            return freq;
--	        else if(freq >= 100 && freq < 1000) {
--	            unsigned int rest = freq%10;
--	            if(rest < 5)
--	                return freq - rest;
--	            else
--	                return freq - rest + 10;
--	        }
--	        else if(freq >= 1000 && freq < 10000) {
--	            unsigned int rest = freq%100;
--	            if(rest < 50)
--	                return freq - rest;
--	            else
--	                return freq - rest + 100;
--	        }
--	        else if(freq >= 10000) {
--	            unsigned int rest = freq%1000;
--	            if(rest < 500)
--	                return freq - rest;
--	            else
--	                return freq - rest + 1000;
--	        }
--	    }
--	    return 0;
--	}
-+    freq_grid(){}
-+    freq_grid(const freq_grid& fg){this->freqs_ = fg.freqs_;}
-+    ~freq_grid(){}
-+
-+    eq_error_t set_band(eq_double_t fmin, eq_double_t f0, eq_double_t fmax) {
-+        freqs_.clear();
-+        return add_band(fmin, f0, fmax);
-+    }
-+    
-+    //fc, fmin, fmax
-+    eq_error_t add_band(eq_double_t fmin, eq_double_t f0, eq_double_t fmax) {
-+        if(fmin < f0 && f0 < fmax)
-+                freqs_.push_back(band_freqs(fmin, f0, fmax));
-+            else
-+                return invalid_input_data_error;
-+            return no_error;
-+    }
-+    
-+    //f0, deltaf = fmax - fmin
-+    eq_error_t add_band(eq_double_t f0, eq_double_t df) {
-+        if(f0 >= df/2)
-+        {
-+            eq_double_t fmin = f0 - df/2;
-+            eq_double_t fmax = f0 + df/2;
-+            freqs_.push_back(band_freqs(fmin, f0, fmax));
-+        }
-+        else
-+            return invalid_input_data_error;    
-+        return no_error;
-+    }
-+
-+    eq_error_t set_5_bands(eq_double_t center_freq = bands_grid_center_freq_hz) {
-+        freqs_.clear();
-+        if(lowest_audio_freq_hz < center_freq &&
-+                center_freq < highest_audio_freq_hz) {
-+
-+            //Find lowest center frequency in band
-+            eq_double_t lowest_center_freq = center_freq;
-+            while(lowest_center_freq > lowest_grid_center_freq_hz)
-+                lowest_center_freq/=4.0;
-+            if(lowest_center_freq < lowest_grid_center_freq_hz)
-+                lowest_center_freq*=4.0;
-+
-+            //Calculate freq's
-+            eq_double_t f0 = lowest_center_freq;
-+            for(unsigned int i = 0; i < 5 ; i++) {
-+                freqs_.push_back(band_freqs(f0/2, f0, f0*2));
-+                f0 *= 4;
-+            }
-+        }
-+        else
-+            return invalid_input_data_error;
-+        return no_error;
-+    }
-+
-+    eq_error_t set_10_bands(eq_double_t center_freq = bands_grid_center_freq_hz) {
-+        freqs_.clear();
-+        if(lowest_audio_freq_hz < center_freq &&
-+                center_freq < highest_audio_freq_hz) {
-+
-+            //Find lowest center frequency in band
-+            eq_double_t lowest_center_freq = center_freq;
-+            while(lowest_center_freq > lowest_grid_center_freq_hz)
-+                lowest_center_freq/=2;
-+            if(lowest_center_freq < lowest_grid_center_freq_hz)
-+                lowest_center_freq*=2;
-+
-+            //Calculate freq's
-+            eq_double_t f0 = lowest_center_freq;
-+            for(unsigned int i = 0; i < 10; i++) {
-+                freqs_.push_back(band_freqs(f0/pow(2,0.5), f0, f0*pow(2,0.5)));
-+                f0 *= 2;
-+            }
-+        }
-+        else
-+            return invalid_input_data_error;
-+        return no_error;
-+    }
-+
-+    eq_error_t set_20_bands(eq_double_t center_freq = bands_grid_center_freq_hz) {
-+        freqs_.clear();
-+        if(lowest_audio_freq_hz < center_freq &&
-+                center_freq < highest_audio_freq_hz) {
-+
-+         //Find lowest center frequency in band
-+            eq_double_t lowest_center_freq = center_freq;
-+            while(lowest_center_freq > lowest_audio_freq_hz)
-+                lowest_center_freq/=pow(2,0.5);
-+            if(lowest_center_freq < lowest_audio_freq_hz)
-+                lowest_center_freq*=pow(2,0.5);
-+
-+            //Calculate freq's
-+            eq_double_t f0 = lowest_center_freq;
-+            for(unsigned int i = 0; i < 20; i++) {
-+                freqs_.push_back(band_freqs(f0/pow(2,0.25), 
-+                    f0, f0*pow(2,0.25)));
-+                f0 *= pow(2,0.5);
-+            }
-+        }
-+        else
-+            return invalid_input_data_error;
-+        return no_error;
-+    }
-+
-+    eq_error_t set_30_bands(eq_double_t center_freq = bands_grid_center_freq_hz) {
-+        freqs_.clear();
-+        if(lowest_audio_freq_hz < center_freq &&
-+                center_freq < highest_audio_freq_hz) {
-+
-+            //Find lowest center frequency in band
-+            eq_double_t lowest_center_freq = center_freq;
-+            while(lowest_center_freq > lowest_audio_freq_hz)
-+                lowest_center_freq/=pow(2.0,1.0/3.0);
-+            if(lowest_center_freq < lowest_audio_freq_hz)
-+                lowest_center_freq*=pow(2.0,1.0/3.0);
-+
-+            //Calculate freq's
-+            eq_double_t f0 = lowest_center_freq;
-+            for(unsigned int i = 0; i < 30; i++) {
-+                freqs_.push_back(band_freqs(f0/pow(2.0,1.0/6.0), 
-+                    f0, f0*pow(2.0,1.0/6.0)));
-+                f0 *= pow(2,1.0/3.0);
-+            }
-+        }
-+        else
-+            return invalid_input_data_error;
-+        return no_error;
-+    }
-+
-+    unsigned int get_number_of_bands(){return freqs_.size();}
-+    
-+    std::vector<band_freqs> get_freqs(){return freqs_;}
-+    
-+    unsigned int get_freq(unsigned int number) {
-+        if(number < freqs_.size())
-+            return freqs_[number].center_freq;
-+        else
-+            return 0;
-+    }
-+
-+    unsigned int get_rounded_freq(unsigned int number) {
-+        if(number < freqs_.size()) {
-+            unsigned int freq = freqs_[number].center_freq;
-+            if (freq < 100)
-+                return freq;
-+            else if(freq >= 100 && freq < 1000) {
-+                unsigned int rest = freq%10;
-+                if(rest < 5)
-+                    return freq - rest;
-+                else
-+                    return freq - rest + 10;
-+            }
-+            else if(freq >= 1000 && freq < 10000) {
-+                unsigned int rest = freq%100;
-+                if(rest < 50)
-+                    return freq - rest;
-+                else
-+                    return freq - rest + 100;
-+            }
-+            else if(freq >= 10000) {
-+                unsigned int rest = freq%1000;
-+                if(rest < 500)
-+                    return freq - rest;
-+                else
-+                    return freq - rest + 1000;
-+            }
-+        }
-+        return 0;
-+    }
- };
- 
- //------------ Forth order sections ------------
-@@ -340,551 +340,551 @@
- eq_single_t denumBuf[fo_section_order];
- 
- inline eq_single_t df1_fo_process(eq_single_t in) {
--	    eq_single_t out = 0;
--	    out+= b0*in;
--	    out+= (b1*numBuf[0] - denumBuf[0]*a1);
--	    out+= (b2*numBuf[1] - denumBuf[1]*a2);
--	    out+= (b3*numBuf[2] - denumBuf[2]*a3);
--	    out+= (b4*numBuf[3] - denumBuf[3]*a4);
--
--	    numBuf[3] = numBuf[2];
--	    numBuf[2] = numBuf[1];
--	    numBuf[1] = numBuf[0];
--	    *numBuf = in;
--
--	    denumBuf[3] = denumBuf[2];
--	    denumBuf[2] = denumBuf[1];
--	    denumBuf[1] = denumBuf[0];
--	    *denumBuf = out;
-+        eq_single_t out = 0;
-+        out+= b0*in;
-+        out+= (b1*numBuf[0] - denumBuf[0]*a1);
-+        out+= (b2*numBuf[1] - denumBuf[1]*a2);
-+        out+= (b3*numBuf[2] - denumBuf[2]*a3);
-+        out+= (b4*numBuf[3] - denumBuf[3]*a4);
-+
-+        numBuf[3] = numBuf[2];
-+        numBuf[2] = numBuf[1];
-+        numBuf[1] = numBuf[0];
-+        *numBuf = in;
-+
-+        denumBuf[3] = denumBuf[2];
-+        denumBuf[2] = denumBuf[1];
-+        denumBuf[1] = denumBuf[0];
-+        *denumBuf = out;
- 
--	    return(out);
--	}
-+        return(out);
-+    }
- 
- public:
--	fo_section() {
--	    b0 = 1; b1 = 0; b2 = 0; b3 = 0; b4 = 0;
--	    a0 = 1; a1 = 0; a2 = 0; a3 = 0; a4 = 0;
--
--	    for(unsigned int i = 0; i < fo_section_order; i++) {
--	        numBuf[i] = 0;
--	        denumBuf[i] = 0;
--	    }
--	}
--
--	virtual ~fo_section(){}
--
--	eq_single_t process(eq_single_t in) {
--	    return df1_fo_process(in);
--	}
--
--	virtual fo_section get() {
--	    return *this;
--	}
-+    fo_section() {
-+        b0 = 1; b1 = 0; b2 = 0; b3 = 0; b4 = 0;
-+        a0 = 1; a1 = 0; a2 = 0; a3 = 0; a4 = 0;
-+
-+        for(unsigned int i = 0; i < fo_section_order; i++) {
-+            numBuf[i] = 0;
-+            denumBuf[i] = 0;
-+        }
-+    }
-+
-+    virtual ~fo_section(){}
-+
-+    eq_single_t process(eq_single_t in) {
-+        return df1_fo_process(in);
-+    }
-+
-+    virtual fo_section get() {
-+        return *this;
-+    }
- };
- 
- class butterworth_fo_section : public fo_section {
--	butterworth_fo_section(){}
--	butterworth_fo_section(butterworth_fo_section&){}
-+    butterworth_fo_section(){}
-+    butterworth_fo_section(butterworth_fo_section&){}
- public:
--	butterworth_fo_section(eq_double_t beta,
--	                       eq_double_t s, eq_double_t g, eq_double_t g0,
--	                       eq_double_t D, eq_double_t c0) {
--	    b0 = (g*g*beta*beta + 2*g*g0*s*beta + g0*g0)/D;
--	    b1 = -4*c0*(g0*g0 + g*g0*s*beta)/D;
--	    b2 = 2*(g0*g0*(1 + 2*c0*c0) - g*g*beta*beta)/D;
--	    b3 = -4*c0*(g0*g0 - g*g0*s*beta)/D;
--	    b4 = (g*g*beta*beta - 2*g*g0*s*beta + g0*g0)/D;
--
--	    a0 = 1;
--	    a1 = -4*c0*(1 + s*beta)/D;
--	    a2 = 2*(1 + 2*c0*c0 - beta*beta)/D;
--	    a3 = -4*c0*(1 - s*beta)/D;
--	    a4 = (beta*beta - 2*s*beta + 1)/D;
--	}
-+    butterworth_fo_section(eq_double_t beta,
-+                           eq_double_t s, eq_double_t g, eq_double_t g0,
-+                           eq_double_t D, eq_double_t c0) {
-+        b0 = (g*g*beta*beta + 2*g*g0*s*beta + g0*g0)/D;
-+        b1 = -4*c0*(g0*g0 + g*g0*s*beta)/D;
-+        b2 = 2*(g0*g0*(1 + 2*c0*c0) - g*g*beta*beta)/D;
-+        b3 = -4*c0*(g0*g0 - g*g0*s*beta)/D;
-+        b4 = (g*g*beta*beta - 2*g*g0*s*beta + g0*g0)/D;
-+
-+        a0 = 1;
-+        a1 = -4*c0*(1 + s*beta)/D;
-+        a2 = 2*(1 + 2*c0*c0 - beta*beta)/D;
-+        a3 = -4*c0*(1 - s*beta)/D;
-+        a4 = (beta*beta - 2*s*beta + 1)/D;
-+    }
- 
--	fo_section get() {return *this;}
-+    fo_section get() {return *this;}
- };
- 
- class chebyshev_type1_fo_section : public fo_section {
--	chebyshev_type1_fo_section(){}
--	chebyshev_type1_fo_section(chebyshev_type1_fo_section&){}
-+    chebyshev_type1_fo_section(){}
-+    chebyshev_type1_fo_section(chebyshev_type1_fo_section&){}
- public:
--	chebyshev_type1_fo_section(eq_double_t a,
--	                           eq_double_t c, eq_double_t tetta_b,
--	                           eq_double_t g0, eq_double_t s, eq_double_t b,
--	                           eq_double_t D, eq_double_t c0) {
--	    b0 = ((b*b + g0*g0*c*c)*tetta_b*tetta_b + 2*g0*b*s*tetta_b + g0*g0)/D;
--	    b1 = -4*c0*(g0*g0 + g0*b*s*tetta_b)/D;
--	    b2 = 2*(g0*g0*(1 + 2*c0*c0) - (b*b + g0*g0*c*c)*tetta_b*tetta_b)/D;
--	    b3 = -4*c0*(g0*g0 - g0*b*s*tetta_b)/D;
--	    b4 = ((b*b + g0*g0*c*c)*tetta_b*tetta_b - 2*g0*b*s*tetta_b + g0*g0)/D;
--
--	    a0 = 1;
--	    a1 = -4*c0*(1 + a*s*tetta_b)/D;
--	    a2 = 2*(1 + 2*c0*c0 - (a*a + c*c)*tetta_b*tetta_b)/D;
--	    a3 = -4*c0*(1 - a*s*tetta_b)/D;
--	    a4 = ((a*a + c*c)*tetta_b*tetta_b - 2*a*s*tetta_b + 1)/D;
--	}
-+    chebyshev_type1_fo_section(eq_double_t a,
-+                               eq_double_t c, eq_double_t tetta_b,
-+                               eq_double_t g0, eq_double_t s, eq_double_t b,
-+                               eq_double_t D, eq_double_t c0) {
-+        b0 = ((b*b + g0*g0*c*c)*tetta_b*tetta_b + 2*g0*b*s*tetta_b + g0*g0)/D;
-+        b1 = -4*c0*(g0*g0 + g0*b*s*tetta_b)/D;
-+        b2 = 2*(g0*g0*(1 + 2*c0*c0) - (b*b + g0*g0*c*c)*tetta_b*tetta_b)/D;
-+        b3 = -4*c0*(g0*g0 - g0*b*s*tetta_b)/D;
-+        b4 = ((b*b + g0*g0*c*c)*tetta_b*tetta_b - 2*g0*b*s*tetta_b + g0*g0)/D;
-+
-+        a0 = 1;
-+        a1 = -4*c0*(1 + a*s*tetta_b)/D;
-+        a2 = 2*(1 + 2*c0*c0 - (a*a + c*c)*tetta_b*tetta_b)/D;
-+        a3 = -4*c0*(1 - a*s*tetta_b)/D;
-+        a4 = ((a*a + c*c)*tetta_b*tetta_b - 2*a*s*tetta_b + 1)/D;
-+    }
- 
--	fo_section get() {return *this;}
-+    fo_section get() {return *this;}
- };
- 
- class chebyshev_type2_fo_section : public fo_section {
--	chebyshev_type2_fo_section(){}
--	chebyshev_type2_fo_section(chebyshev_type2_fo_section&){}
-+    chebyshev_type2_fo_section(){}
-+    chebyshev_type2_fo_section(chebyshev_type2_fo_section&){}
- public:
--	chebyshev_type2_fo_section(eq_double_t a,
--	                           eq_double_t c, eq_double_t tetta_b,
--	                           eq_double_t g, eq_double_t s, eq_double_t b,
--	                           eq_double_t D, eq_double_t c0) {
--	    b0 = (g*g*tetta_b*tetta_b + 2*g*b*s*tetta_b + b*b + g*g*c*c)/D;
--	    b1 = -4*c0*(b*b + g*g*c*c + g*b*s*tetta_b)/D;
--	    b2 = 2*((b*b + g*g*c*c)*(1 + 2*c0*c0) - g*g*tetta_b*tetta_b)/D;
--	    b3 = -4*c0*(b*b + g*g*c*c - g*b*s*tetta_b)/D;
--	    b4 = (g*g*tetta_b*tetta_b - 2*g*b*s*tetta_b + b*b + g*g*c*c)/D;
--
--	    a0 = 1;
--	    a1 = -4*c0*(a*a + c*c + a*s*tetta_b)/D;
--	    a2 = 2*((a*a + c*c)*(1 + 2*c0*c0) - tetta_b*tetta_b)/D;
--	    a3 = -4*c0*(a*a + c*c - a*s*tetta_b)/D;
--	    a4 = (tetta_b*tetta_b - 2*a*s*tetta_b + a*a + c*c)/D;
--	}
-+    chebyshev_type2_fo_section(eq_double_t a,
-+                               eq_double_t c, eq_double_t tetta_b,
-+                               eq_double_t g, eq_double_t s, eq_double_t b,
-+                               eq_double_t D, eq_double_t c0) {
-+        b0 = (g*g*tetta_b*tetta_b + 2*g*b*s*tetta_b + b*b + g*g*c*c)/D;
-+        b1 = -4*c0*(b*b + g*g*c*c + g*b*s*tetta_b)/D;
-+        b2 = 2*((b*b + g*g*c*c)*(1 + 2*c0*c0) - g*g*tetta_b*tetta_b)/D;
-+        b3 = -4*c0*(b*b + g*g*c*c - g*b*s*tetta_b)/D;
-+        b4 = (g*g*tetta_b*tetta_b - 2*g*b*s*tetta_b + b*b + g*g*c*c)/D;
-+
-+        a0 = 1;
-+        a1 = -4*c0*(a*a + c*c + a*s*tetta_b)/D;
-+        a2 = 2*((a*a + c*c)*(1 + 2*c0*c0) - tetta_b*tetta_b)/D;
-+        a3 = -4*c0*(a*a + c*c - a*s*tetta_b)/D;
-+        a4 = (tetta_b*tetta_b - 2*a*s*tetta_b + a*a + c*c)/D;
-+    }
- 
--	fo_section get() {return *this;}
-+    fo_section get() {return *this;}
- };
- 
- //------------ Bandpass filters ------------
- class bp_filter {
- public:
--	bp_filter(){}
--	virtual ~bp_filter(){}
-+    bp_filter(){}
-+    virtual ~bp_filter(){}
- 
--	virtual eq_single_t process(eq_single_t in) = 0;
-+    virtual eq_single_t process(eq_single_t in) = 0;
- };
- 
- class butterworth_bp_filter : public bp_filter {
- private:
--	std::vector<fo_section> sections_;
-+    std::vector<fo_section> sections_;
- 
--	butterworth_bp_filter(){}
-+    butterworth_bp_filter(){}
- public:
--	butterworth_bp_filter(butterworth_bp_filter& f) {
--		this->sections_ = f.sections_;
--	}
--	
--	butterworth_bp_filter(unsigned int N,
--	        eq_double_t w0, eq_double_t wb,
--	        eq_double_t G, eq_double_t Gb, eq_double_t G0) {
--		//Case if G == 0 : allpass
--		if(G == 0 && G0 == 0) {
--			sections_.push_back(fo_section());
--			return;
--		}
--	    
--	    //Get number of analog sections
--	    unsigned int r = N%2;
--	    unsigned int L = (N - r)/2;
--
--	    //Convert gains to linear scale
--	    G = conversions::db_2_lin(G);
--	    Gb = conversions::db_2_lin(Gb);
--	    G0 = conversions::db_2_lin(G0);
--
--	    eq_double_t epsilon = pow(((eq_double_t)(G*G - Gb*Gb))/
--	    	(Gb*Gb - G0*G0),0.5);
--	    eq_double_t g = pow(((eq_double_t)G),1.0/((eq_double_t)N));
--	    eq_double_t g0 = pow(((eq_double_t)G0),1.0/((eq_double_t)N));
--	    eq_double_t beta = pow(((eq_double_t)epsilon), -1.0/((eq_double_t)N))*
--	    	tan(wb/2.0);
--
--	    eq_double_t c0 = cos(w0);
--	    if (w0 == 0) c0 = 1;
--	    if (w0 == pi/2) c0=0;
--	    if (w0 == pi) c0 =- 1;
--
--	    //Calculate every section
--	    for(unsigned int i = 1; i <= L; i++) {
--	        eq_double_t ui = (2.0*i-1)/N;
--	        eq_double_t si = sin(pi*ui/2.0);
--
--	        eq_double_t Di = beta*beta + 2*si*beta + 1;
--
--	        sections_.push_back
--	        	(butterworth_fo_section(beta, si, g, g0, Di, c0));
--	    }
--	}
--
--	~butterworth_bp_filter(){}
--
--	static eq_single_t compute_bw_gain_db(eq_single_t gain) {
--		eq_single_t bw_gain = 0;
--		if(gain <= -6)
--			bw_gain = gain + common_base_gain_db;
--		else if(gain > -6 && gain < 6)
--			bw_gain = gain*0.5;
--		else if(gain >= 6)
--			bw_gain = gain - common_base_gain_db;
--			
--		return bw_gain;
--	}
--
--	virtual eq_single_t process(eq_single_t in) {
--	    eq_single_t p0 = in;
--	    eq_single_t p1 = 0;
--	    //Process FO sections in serial connection
--	    for(unsigned int i = 0; i < sections_.size(); i++) {
--	        p1 = sections_[i].process(p0);
--	        p0 = p1;
--	    }
-+    butterworth_bp_filter(butterworth_bp_filter& f) {
-+        this->sections_ = f.sections_;
-+    }
-+    
-+    butterworth_bp_filter(unsigned int N,
-+            eq_double_t w0, eq_double_t wb,
-+            eq_double_t G, eq_double_t Gb, eq_double_t G0) {
-+        //Case if G == 0 : allpass
-+        if(G == 0 && G0 == 0) {
-+            sections_.push_back(fo_section());
-+            return;
-+        }
-+        
-+        //Get number of analog sections
-+        unsigned int r = N%2;
-+        unsigned int L = (N - r)/2;
-+
-+        //Convert gains to linear scale
-+        G = conversions::db_2_lin(G);
-+        Gb = conversions::db_2_lin(Gb);
-+        G0 = conversions::db_2_lin(G0);
-+
-+        eq_double_t epsilon = pow(((eq_double_t)(G*G - Gb*Gb))/
-+            (Gb*Gb - G0*G0),0.5);
-+        eq_double_t g = pow(((eq_double_t)G),1.0/((eq_double_t)N));
-+        eq_double_t g0 = pow(((eq_double_t)G0),1.0/((eq_double_t)N));
-+        eq_double_t beta = pow(((eq_double_t)epsilon), -1.0/((eq_double_t)N))*
-+            tan(wb/2.0);
-+
-+        eq_double_t c0 = cos(w0);
-+        if (w0 == 0) c0 = 1;
-+        if (w0 == pi/2) c0=0;
-+        if (w0 == pi) c0 =- 1;
-+
-+        //Calculate every section
-+        for(unsigned int i = 1; i <= L; i++) {
-+            eq_double_t ui = (2.0*i-1)/N;
-+            eq_double_t si = sin(pi*ui/2.0);
-+
-+            eq_double_t Di = beta*beta + 2*si*beta + 1;
-+
-+            sections_.push_back
-+                (butterworth_fo_section(beta, si, g, g0, Di, c0));
-+        }
-+    }
-+
-+    ~butterworth_bp_filter(){}
-+
-+    static eq_single_t compute_bw_gain_db(eq_single_t gain) {
-+        eq_single_t bw_gain = 0;
-+        if(gain <= -6)
-+            bw_gain = gain + common_base_gain_db;
-+        else if(gain > -6 && gain < 6)
-+            bw_gain = gain*0.5;
-+        else if(gain >= 6)
-+            bw_gain = gain - common_base_gain_db;
-+            
-+        return bw_gain;
-+    }
-+
-+    virtual eq_single_t process(eq_single_t in) {
-+        eq_single_t p0 = in;
-+        eq_single_t p1 = 0;
-+        //Process FO sections in serial connection
-+        for(unsigned int i = 0; i < sections_.size(); i++) {
-+            p1 = sections_[i].process(p0);
-+            p0 = p1;
-+        }
- 
--	    return p1;
--	}
-+        return p1;
-+    }
- };
- 
- class chebyshev_type1_bp_filter : public bp_filter {
- private:
--	std::vector<fo_section> sections_;
-+    std::vector<fo_section> sections_;
- 
--	chebyshev_type1_bp_filter(){}
-+    chebyshev_type1_bp_filter(){}
- public:
--	chebyshev_type1_bp_filter(unsigned int N,
--	        eq_double_t w0, eq_double_t wb,
--	        eq_double_t G, eq_double_t Gb, eq_double_t G0) {
--	    //Case if G == 0 : allpass
--		if(G == 0 && G0 == 0) {
--			sections_.push_back(fo_section());
--			return;
--		}
--	    
--	    //Get number of analog sections
--	    unsigned int r = N%2;
--	    unsigned int L = (N - r)/2;
--					
--	    //Convert gains to linear scale
--	    G = conversions::db_2_lin(G);
--	    Gb = conversions::db_2_lin(Gb);
--	    G0 = conversions::db_2_lin(G0);
--
--	    eq_double_t epsilon = pow((eq_double_t)(G*G - Gb*Gb)/
--	    	(Gb*Gb - G0*G0),0.5);
--	    eq_double_t g0 = pow((eq_double_t)(G0),1.0/N);
--	    eq_double_t alfa = 
--	    	pow(1.0/epsilon + pow(1 + pow(epsilon,-2.0),0.5),1.0/N);
--	    eq_double_t beta = 
--	    	pow(G/epsilon + Gb*pow(1 + pow(epsilon,-2.0),0.5),1.0/N);
--	    eq_double_t a = 0.5*(alfa - 1.0/alfa);
--	    eq_double_t b = 0.5*(beta - g0*g0*(1/beta));
--	    eq_double_t tetta_b = tan(wb/2);
--
--	    eq_double_t c0 = cos(w0);
--	    if (w0 == 0) c0 = 1;
--	    if (w0 == pi/2) c0=0;
--	    if (w0 == pi) c0 =- 1;
--
--	    //Calculate every section
--	    for(unsigned int i = 1; i <= L; i++) {
--	        eq_double_t ui = (2.0*i-1.0)/N;
--	        eq_double_t ci = cos(pi*ui/2.0);
--	        eq_double_t si = sin(pi*ui/2.0);
--
--	        eq_double_t Di = (a*a + ci*ci)*tetta_b*tetta_b + 
--	        	2.0*a*si*tetta_b + 1;
--	        sections_.push_back(
--	        	chebyshev_type1_fo_section(a, ci, tetta_b, g0, si, b, Di, c0));
--	    }
--	}
--
--
--	~chebyshev_type1_bp_filter(){}
--	
--	static eq_single_t compute_bw_gain_db(eq_single_t gain) {
--		eq_single_t bw_gain = 0;
--		if(gain <= -6)
--			bw_gain = gain + 1;
--		else if(gain > -6 && gain < 6)
--			bw_gain = gain*0.9;
--		else if(gain >= 6)
--			bw_gain = gain - 1;
--			
--		return bw_gain;
--	}
--	
--	eq_single_t process(eq_single_t in) {
--	    eq_single_t p0 = in;
--	    eq_single_t p1 = 0;
--	    //Process FO sections in serial connection
--	    for(unsigned int i = 0; i < sections_.size(); i++) {
--	        p1 = sections_[i].process(p0);
--	        p0 = p1;
--	    }
-+    chebyshev_type1_bp_filter(unsigned int N,
-+            eq_double_t w0, eq_double_t wb,
-+            eq_double_t G, eq_double_t Gb, eq_double_t G0) {
-+        //Case if G == 0 : allpass
-+        if(G == 0 && G0 == 0) {
-+            sections_.push_back(fo_section());
-+            return;
-+        }
-+        
-+        //Get number of analog sections
-+        unsigned int r = N%2;
-+        unsigned int L = (N - r)/2;
-+                    
-+        //Convert gains to linear scale
-+        G = conversions::db_2_lin(G);
-+        Gb = conversions::db_2_lin(Gb);
-+        G0 = conversions::db_2_lin(G0);
-+
-+        eq_double_t epsilon = pow((eq_double_t)(G*G - Gb*Gb)/
-+            (Gb*Gb - G0*G0),0.5);
-+        eq_double_t g0 = pow((eq_double_t)(G0),1.0/N);
-+        eq_double_t alfa = 
-+            pow(1.0/epsilon + pow(1 + pow(epsilon,-2.0),0.5),1.0/N);
-+        eq_double_t beta = 
-+            pow(G/epsilon + Gb*pow(1 + pow(epsilon,-2.0),0.5),1.0/N);
-+        eq_double_t a = 0.5*(alfa - 1.0/alfa);
-+        eq_double_t b = 0.5*(beta - g0*g0*(1/beta));
-+        eq_double_t tetta_b = tan(wb/2);
-+
-+        eq_double_t c0 = cos(w0);
-+        if (w0 == 0) c0 = 1;
-+        if (w0 == pi/2) c0=0;
-+        if (w0 == pi) c0 =- 1;
-+
-+        //Calculate every section
-+        for(unsigned int i = 1; i <= L; i++) {
-+            eq_double_t ui = (2.0*i-1.0)/N;
-+            eq_double_t ci = cos(pi*ui/2.0);
-+            eq_double_t si = sin(pi*ui/2.0);
-+
-+            eq_double_t Di = (a*a + ci*ci)*tetta_b*tetta_b + 
-+                2.0*a*si*tetta_b + 1;
-+            sections_.push_back(
-+                chebyshev_type1_fo_section(a, ci, tetta_b, g0, si, b, Di, c0));
-+        }
-+    }
-+
-+
-+    ~chebyshev_type1_bp_filter(){}
-+    
-+    static eq_single_t compute_bw_gain_db(eq_single_t gain) {
-+        eq_single_t bw_gain = 0;
-+        if(gain <= -6)
-+            bw_gain = gain + 1;
-+        else if(gain > -6 && gain < 6)
-+            bw_gain = gain*0.9;
-+        else if(gain >= 6)
-+            bw_gain = gain - 1;
-+            
-+        return bw_gain;
-+    }
-+    
-+    eq_single_t process(eq_single_t in) {
-+        eq_single_t p0 = in;
-+        eq_single_t p1 = 0;
-+        //Process FO sections in serial connection
-+        for(unsigned int i = 0; i < sections_.size(); i++) {
-+            p1 = sections_[i].process(p0);
-+            p0 = p1;
-+        }
- 
--	    return p1;
--	}
-+        return p1;
-+    }
- };
- 
- class chebyshev_type2_bp_filter : public bp_filter {
- private:
--	std::vector<fo_section> sections_;
-+    std::vector<fo_section> sections_;
- 
--	chebyshev_type2_bp_filter(){}
-+    chebyshev_type2_bp_filter(){}
- public:
--	chebyshev_type2_bp_filter(unsigned int N,
--	        eq_double_t w0, eq_double_t wb,
--	        eq_double_t G, eq_double_t Gb, eq_double_t G0) {
--	    //Case if G == 0 : allpass
--		if(G == 0 && G0 == 0) {
--			sections_.push_back(fo_section());
--			return;
--		}
--	    
--	    //Get number of analog sections
--	    unsigned int r = N%2;
--	    unsigned int L = (N - r)/2;
--
--	    //Convert gains to linear scale
--	    G = conversions::db_2_lin(G);
--	    Gb = conversions::db_2_lin(Gb);
--	    G0 = conversions::db_2_lin(G0);
--
--	    eq_double_t epsilon = pow((eq_double_t)((G*G - Gb*Gb)/
--	    	(Gb*Gb - G0*G0)),0.5);
--	    eq_double_t g = pow((eq_double_t)(G),1.0/N);
--	    eq_double_t eu = pow(epsilon + sqrt(1 + epsilon*epsilon), 1.0/N);
--	    eq_double_t ew = pow(G0*epsilon + Gb*sqrt(1 + epsilon*epsilon), 1.0/N);
--	    eq_double_t a = (eu - 1.0/eu)/2.0;
--	    eq_double_t b = (ew - g*g/ew)/2.0;
--	    eq_double_t tetta_b = tan(wb/2);
--
--	    eq_double_t c0 = cos(w0);
--	    if (w0 == 0) c0 = 1;
--	    if (w0 == pi/2) c0=0;
--	    if (w0 == pi) c0 =- 1;
--
--	    //Calculate every section
--	    for(unsigned int i = 1; i <= L; i++) {
--	        eq_double_t ui = (2.0*i-1.0)/N;
--	        eq_double_t ci = cos(pi*ui/2.0);
--	        eq_double_t si = sin(pi*ui/2.0);
--	        eq_double_t Di = tetta_b*tetta_b + 2*a*si*tetta_b + a*a + ci*ci;
--
--	        sections_.push_back(
--	        	chebyshev_type2_fo_section(a, ci, tetta_b, g, si, b, Di, c0));
--	    }
--	}
--
--	~chebyshev_type2_bp_filter(){}
--	
--	static eq_single_t compute_bw_gain_db(eq_single_t gain) {
--		eq_single_t bw_gain = 0;
--		if(gain <= -6)
--			bw_gain = -common_base_gain_db;
--		else if(gain > -6 && gain < 6)
--			bw_gain = gain*0.3;
--		else if(gain >= 6)
--			bw_gain = common_base_gain_db;
--			
--		return bw_gain;
--	}
--	
--	eq_single_t process(eq_single_t in) {
--	    eq_single_t p0 = in;
--	    eq_single_t p1 = 0;
--
--	    //Process FO sections in serial connection
--	    for(unsigned int i = 0; i < sections_.size(); i++) {
--	        p1 = sections_[i].process(p0);
--	        p0 = p1;
--	    }
-+    chebyshev_type2_bp_filter(unsigned int N,
-+            eq_double_t w0, eq_double_t wb,
-+            eq_double_t G, eq_double_t Gb, eq_double_t G0) {
-+        //Case if G == 0 : allpass
-+        if(G == 0 && G0 == 0) {
-+            sections_.push_back(fo_section());
-+            return;
-+        }
-+        
-+        //Get number of analog sections
-+        unsigned int r = N%2;
-+        unsigned int L = (N - r)/2;
-+
-+        //Convert gains to linear scale
-+        G = conversions::db_2_lin(G);
-+        Gb = conversions::db_2_lin(Gb);
-+        G0 = conversions::db_2_lin(G0);
-+
-+        eq_double_t epsilon = pow((eq_double_t)((G*G - Gb*Gb)/
-+            (Gb*Gb - G0*G0)),0.5);
-+        eq_double_t g = pow((eq_double_t)(G),1.0/N);
-+        eq_double_t eu = pow(epsilon + sqrt(1 + epsilon*epsilon), 1.0/N);
-+        eq_double_t ew = pow(G0*epsilon + Gb*sqrt(1 + epsilon*epsilon), 1.0/N);
-+        eq_double_t a = (eu - 1.0/eu)/2.0;
-+        eq_double_t b = (ew - g*g/ew)/2.0;
-+        eq_double_t tetta_b = tan(wb/2);
-+
-+        eq_double_t c0 = cos(w0);
-+        if (w0 == 0) c0 = 1;
-+        if (w0 == pi/2) c0=0;
-+        if (w0 == pi) c0 =- 1;
-+
-+        //Calculate every section
-+        for(unsigned int i = 1; i <= L; i++) {
-+            eq_double_t ui = (2.0*i-1.0)/N;
-+            eq_double_t ci = cos(pi*ui/2.0);
-+            eq_double_t si = sin(pi*ui/2.0);
-+            eq_double_t Di = tetta_b*tetta_b + 2*a*si*tetta_b + a*a + ci*ci;
-+
-+            sections_.push_back(
-+                chebyshev_type2_fo_section(a, ci, tetta_b, g, si, b, Di, c0));
-+        }
-+    }
- 
--	    return p1;
--	}
-+    ~chebyshev_type2_bp_filter(){}
-+    
-+    static eq_single_t compute_bw_gain_db(eq_single_t gain) {
-+        eq_single_t bw_gain = 0;
-+        if(gain <= -6)
-+            bw_gain = -common_base_gain_db;
-+        else if(gain > -6 && gain < 6)
-+            bw_gain = gain*0.3;
-+        else if(gain >= 6)
-+            bw_gain = common_base_gain_db;
-+            
-+        return bw_gain;
-+    }
-+    
-+    eq_single_t process(eq_single_t in) {
-+        eq_single_t p0 = in;
-+        eq_single_t p1 = 0;
-+
-+        //Process FO sections in serial connection
-+        for(unsigned int i = 0; i < sections_.size(); i++) {
-+            p1 = sections_[i].process(p0);
-+            p0 = p1;
-+        }
-+
-+        return p1;
-+    }
- };
- 
- // ------------ eq1 ------------
- // Equalizer with single precomputed filter for every band
- class eq1 {
- private:
--	conversions conv_;
--	eq_double_t sampling_frequency_;
--	freq_grid freq_grid_;
--	std::vector<eq_single_t> band_gains_;
--	std::vector<bp_filter*> filters_;
--	filter_type current_eq_type_;
--
--	eq1():conv_(eq_min_max_gain_db){}
--	eq1(const eq1&):conv_(eq_min_max_gain_db){}
--	
--	void cleanup_filters_array() {
--	    for(unsigned int j = 0; j < filters_.size(); j++)
--	        delete filters_[j];
--	}
-+    conversions conv_;
-+    eq_double_t sampling_frequency_;
-+    freq_grid freq_grid_;
-+    std::vector<eq_single_t> band_gains_;
-+    std::vector<bp_filter*> filters_;
-+    filter_type current_eq_type_;
-+
-+    eq1():conv_(eq_min_max_gain_db){}
-+    eq1(const eq1&):conv_(eq_min_max_gain_db){}
-+    
-+    void cleanup_filters_array() {
-+        for(unsigned int j = 0; j < filters_.size(); j++)
-+            delete filters_[j];
-+    }
- 
- public:
--	eq1(const freq_grid &fg, filter_type eq_t) : conv_(eq_min_max_gain_db) {
--	    sampling_frequency_ = default_sample_freq_hz;
--	    freq_grid_ = fg;
--	    current_eq_type_ = eq_t;
-+    eq1(const freq_grid &fg, filter_type eq_t) : conv_(eq_min_max_gain_db) {
-+        sampling_frequency_ = default_sample_freq_hz;
-+        freq_grid_ = fg;
-+        current_eq_type_ = eq_t;
-         set_eq(freq_grid_, eq_t);
--	}
--	~eq1(){cleanup_filters_array();}
-+    }
-+    ~eq1(){cleanup_filters_array();}
-+
-+    eq_error_t set_eq(freq_grid& fg, filter_type eqt) {
-+        band_gains_.clear();
-+        cleanup_filters_array();    
-+        filters_.clear();           
-+        freq_grid_ = fg;
-+
-+        for(unsigned int i = 0; i < freq_grid_.get_number_of_bands(); i++) {
-+
-+            eq_double_t wb = conversions::hz_2_rad(
-+                    freq_grid_.get_freqs()[i].max_freq - 
-+                        freq_grid_.get_freqs()[i].min_freq,
-+                    sampling_frequency_);
-+
-+            eq_double_t w0 = conversions::hz_2_rad(
-+                    freq_grid_.get_freqs()[i].center_freq,
-+                    sampling_frequency_);
-+
-+            switch(eqt) {
-+                case (butterworth): {
-+                    butterworth_bp_filter* bf = 
-+                        new butterworth_bp_filter(
-+                            default_eq_band_filters_order,
-+                            w0,
-+                            wb,
-+                            max_base_gain_db,
-+                            butterworth_band_gain_db,
-+                            min_base_gain_db
-+                            );
- 
--	eq_error_t set_eq(freq_grid& fg, filter_type eqt) {
--	    band_gains_.clear();
--	    cleanup_filters_array();    
--	    filters_.clear();	        
--	    freq_grid_ = fg;
--
--	    for(unsigned int i = 0; i < freq_grid_.get_number_of_bands(); i++) {
--
--	        eq_double_t wb = conversions::hz_2_rad(
--	                freq_grid_.get_freqs()[i].max_freq - 
--	                	freq_grid_.get_freqs()[i].min_freq,
--	                sampling_frequency_);
--
--	        eq_double_t w0 = conversions::hz_2_rad(
--	                freq_grid_.get_freqs()[i].center_freq,
--	                sampling_frequency_);
--
--	        switch(eqt) {
--	            case (butterworth): {
--	                butterworth_bp_filter* bf = 
--	                	new butterworth_bp_filter(
--	                        default_eq_band_filters_order,
--	                        w0,
--	                        wb,
--	                        max_base_gain_db,
--	                        butterworth_band_gain_db,
--	                        min_base_gain_db
--	                        );
--
--	                filters_.push_back(bf);
--	                break;
--	            }
--		
--	            case (chebyshev1): {
--	                chebyshev_type1_bp_filter* cf1 = 
--	                	new chebyshev_type1_bp_filter(
--	                        default_eq_band_filters_order,
--	                        w0,
--	                        wb,
--	                        max_base_gain_db,
--	                        chebyshev1_band_base_gain_db,
--	                        min_base_gain_db
--	                        );
--
--	                filters_.push_back(cf1);
--	                break;
--	            }
--
--	            case (chebyshev2): {
--	                chebyshev_type2_bp_filter* cf2 = 
--	                	new chebyshev_type2_bp_filter(
--	                        default_eq_band_filters_order,
--	                        w0,
--	                        wb,
--	                        max_base_gain_db,
--	                        chebyshev2_band_base_gain_db,
--	                        min_base_gain_db
--	                        );
--
--	                filters_.push_back(cf2);
--	                break;
--	            }
--		
--	            default:
--	                current_eq_type_ = none;
--	                return invalid_input_data_error;
--
--	        }
--	        band_gains_.push_back(max_base_gain_db);
--	    }
--
--	    current_eq_type_ = eqt;
--	    return no_error;
--	}
--
--	eq_error_t set_eq(filter_type eqt)
--	{
--	    return set_eq(freq_grid_, eqt);
--	}
--
--	eq_error_t set_sample_rate(eq_double_t sr) {
--	    eq_error_t err = no_error;
--	    sampling_frequency_ = sr;
--	    err = set_eq(freq_grid_, current_eq_type_);
--
--	    return err;
--	}
--
--	eq_error_t change_gains(std::vector<eq_single_t> band_gains) {
--	    if(band_gains_.size() == band_gains.size())
--	        band_gains_ = band_gains;
--		else
--			return invalid_input_data_error;
--		
--		return no_error;
--	}
--	
--	eq_error_t change_gains_db(std::vector<eq_single_t> band_gains) {
--    	if(band_gains_.size() == band_gains.size())
--	        for(unsigned int j = 0; j < get_number_of_bands(); j++)
--	    		band_gains_[j] = conv_.fast_db_2_lin(band_gains[j]);
--		else
--			return invalid_input_data_error;
--		
--		return no_error;
--	}
--	
--	eq_error_t change_band_gain(unsigned int band_number, 
--		eq_single_t band_gain) {
--	    if(band_number < get_number_of_bands())
--	        band_gains_[band_number] = band_gain;
-+                    filters_.push_back(bf);
-+                    break;
-+                }
-+        
-+                case (chebyshev1): {
-+                    chebyshev_type1_bp_filter* cf1 = 
-+                        new chebyshev_type1_bp_filter(
-+                            default_eq_band_filters_order,
-+                            w0,
-+                            wb,
-+                            max_base_gain_db,
-+                            chebyshev1_band_base_gain_db,
-+                            min_base_gain_db
-+                            );
-+
-+                    filters_.push_back(cf1);
-+                    break;
-+                }
-+
-+                case (chebyshev2): {
-+                    chebyshev_type2_bp_filter* cf2 = 
-+                        new chebyshev_type2_bp_filter(
-+                            default_eq_band_filters_order,
-+                            w0,
-+                            wb,
-+                            max_base_gain_db,
-+                            chebyshev2_band_base_gain_db,
-+                            min_base_gain_db
-+                            );
-+
-+                    filters_.push_back(cf2);
-+                    break;
-+                }
-+        
-+                default:
-+                    current_eq_type_ = none;
-+                    return invalid_input_data_error;
-+
-+            }
-+            band_gains_.push_back(max_base_gain_db);
-+        }
-+
-+        current_eq_type_ = eqt;
-+        return no_error;
-+    }
-+
-+    eq_error_t set_eq(filter_type eqt)
-+    {
-+        return set_eq(freq_grid_, eqt);
-+    }
-+
-+    eq_error_t set_sample_rate(eq_double_t sr) {
-+        eq_error_t err = no_error;
-+        sampling_frequency_ = sr;
-+        err = set_eq(freq_grid_, current_eq_type_);
-+
-+        return err;
-+    }
-+
-+    eq_error_t change_gains(std::vector<eq_single_t> band_gains) {
-+        if(band_gains_.size() == band_gains.size())
-+            band_gains_ = band_gains;
-+        else
-+            return invalid_input_data_error;
-+        
-+        return no_error;
-+    }
-+    
-+    eq_error_t change_gains_db(std::vector<eq_single_t> band_gains) {
-+        if(band_gains_.size() == band_gains.size())
-+            for(unsigned int j = 0; j < get_number_of_bands(); j++)
-+                band_gains_[j] = conv_.fast_db_2_lin(band_gains[j]);
-+        else
-+            return invalid_input_data_error;
-+        
-+        return no_error;
-+    }
-+    
-+    eq_error_t change_band_gain(unsigned int band_number, 
-+        eq_single_t band_gain) {
-+        if(band_number < get_number_of_bands())
-+            band_gains_[band_number] = band_gain;
-         else
--        	return invalid_input_data_error;
-+            return invalid_input_data_error;
- 
--	    return no_error;
--	}
-+        return no_error;
-+    }
-+
-+    eq_error_t change_band_gain_db(unsigned int band_number, 
-+        eq_single_t band_gain) {
-+        if(band_number < get_number_of_bands())
-+            band_gains_[band_number] = conv_.fast_db_2_lin(band_gain);
-+        else
-+            return invalid_input_data_error;
-+
-+        return no_error;
-+    }
- 
--	eq_error_t change_band_gain_db(unsigned int band_number, 
--		eq_single_t band_gain) {
--	    if(band_number < get_number_of_bands())
--	        band_gains_[band_number] = conv_.fast_db_2_lin(band_gain);
-+    eq_error_t sbs_process_band(unsigned int band_number, 
-+        eq_single_t *in, eq_single_t *out) {
-+        if(band_number < get_number_of_bands())
-+            *out = band_gains_[band_number]*
-+                filters_[band_number]->process(*in);
-         else
--        	return invalid_input_data_error;
-+            return invalid_input_data_error;
- 
--	    return no_error;
--	}
-+        return no_error;
-+    }
- 
--	eq_error_t sbs_process_band(unsigned int band_number, 
--		eq_single_t *in, eq_single_t *out) {
--	    if(band_number < get_number_of_bands())
--	        *out = band_gains_[band_number]*
--	        	filters_[band_number]->process(*in);
--		else
--			return invalid_input_data_error;
--
--	    return no_error;
--	}
--
--	 eq_error_t sbs_process(eq_single_t *in, eq_single_t *out) {
--		eq_error_t err = no_error;
--		eq_single_t acc_out = 0;		
--	    for(unsigned int j = 0; j < get_number_of_bands(); j++) {
--			eq_single_t band_out = 0;
--	        err = sbs_process_band(j, in, &band_out);
--			acc_out += band_out;
--		}
--		*out = acc_out;
--
--	    return err;
--	}
--
--	filter_type get_eq_type(){return current_eq_type_;}
--	const char* get_string_eq_type(){return get_eq_text(current_eq_type_);}
--	unsigned int get_number_of_bands() {
--		return freq_grid_.get_number_of_bands();
--	}
--	const char* get_version(){return eq_version;}
-+     eq_error_t sbs_process(eq_single_t *in, eq_single_t *out) {
-+        eq_error_t err = no_error;
-+        eq_single_t acc_out = 0;        
-+        for(unsigned int j = 0; j < get_number_of_bands(); j++) {
-+            eq_single_t band_out = 0;
-+            err = sbs_process_band(j, in, &band_out);
-+            acc_out += band_out;
-+        }
-+        *out = acc_out;
-+
-+        return err;
-+    }
-+
-+    filter_type get_eq_type(){return current_eq_type_;}
-+    const char* get_string_eq_type(){return get_eq_text(current_eq_type_);}
-+    unsigned int get_number_of_bands() {
-+        return freq_grid_.get_number_of_bands();
-+    }
-+    const char* get_version(){return eq_version;}
- };
- 
- //!!! New functionality
-@@ -894,143 +894,143 @@
- // consists of vector of filters for every gain value
- class eq_channel
- {
--	eq_single_t f0_;
--	eq_single_t fb_;
--	eq_single_t sampling_frequency_;
--	eq_single_t min_max_gain_db_;
--	eq_single_t gain_step_db_;
--	
--	unsigned int current_filter_index_;
--	eq_single_t current_gain_db_;
--	
--	std::vector<bp_filter*> filters_;
--	filter_type current_channel_type_;
--	
--	eq_channel(){}
--	
--	unsigned int get_flt_index(eq_single_t gain_db) {
--		unsigned int number_of_filters = filters_.size();
--		eq_single_t scale_coef = gain_db/min_max_gain_db_;
--		return (number_of_filters/2) + (number_of_filters/2)*scale_coef;
--	}
--	
--	void cleanup_filters_array() {
--	    for(unsigned int j = 0; j < filters_.size(); j++)
--	        delete filters_[j];
--	}
--	
-+    eq_single_t f0_;
-+    eq_single_t fb_;
-+    eq_single_t sampling_frequency_;
-+    eq_single_t min_max_gain_db_;
-+    eq_single_t gain_step_db_;
-+    
-+    unsigned int current_filter_index_;
-+    eq_single_t current_gain_db_;
-+    
-+    std::vector<bp_filter*> filters_;
-+    filter_type current_channel_type_;
-+    
-+    eq_channel(){}
-+    
-+    unsigned int get_flt_index(eq_single_t gain_db) {
-+        unsigned int number_of_filters = filters_.size();
-+        eq_single_t scale_coef = gain_db/min_max_gain_db_;
-+        return (number_of_filters/2) + (number_of_filters/2)*scale_coef;
-+    }
-+    
-+    void cleanup_filters_array() {
-+        for(unsigned int j = 0; j < filters_.size(); j++)
-+            delete filters_[j];
-+    }
-+    
- public:
--	eq_channel(filter_type ft,
--		eq_single_t fs, eq_single_t f0, eq_single_t fb,
--		eq_single_t min_max_gain_db = p_eq_min_max_gain_db,
--		eq_single_t step_db = p_eq_gain_step_db) {
--		
--		//Init data fields
--		sampling_frequency_ = fs;
--		f0_ = f0;
--		fb_ = fb;
--		min_max_gain_db_ = min_max_gain_db;
--		gain_step_db_ = step_db;
--		
--		current_gain_db_ = 0;
--		current_filter_index_ = 0;
--		
--		current_channel_type_ = ft;
--		
--		set_channel(current_channel_type_, sampling_frequency_);
--	}
--	
--	~eq_channel(){cleanup_filters_array();}
--	
--	eq_error_t set_channel(filter_type ft, eq_single_t fs) {
--		
--		eq_double_t wb = conversions::hz_2_rad(fb_, sampling_frequency_);
-+    eq_channel(filter_type ft,
-+        eq_single_t fs, eq_single_t f0, eq_single_t fb,
-+        eq_single_t min_max_gain_db = p_eq_min_max_gain_db,
-+        eq_single_t step_db = p_eq_gain_step_db) {
-+        
-+        //Init data fields
-+        sampling_frequency_ = fs;
-+        f0_ = f0;
-+        fb_ = fb;
-+        min_max_gain_db_ = min_max_gain_db;
-+        gain_step_db_ = step_db;
-+        
-+        current_gain_db_ = 0;
-+        current_filter_index_ = 0;
-+        
-+        current_channel_type_ = ft;
-+        
-+        set_channel(current_channel_type_, sampling_frequency_);
-+    }
-+    
-+    ~eq_channel(){cleanup_filters_array();}
-+    
-+    eq_error_t set_channel(filter_type ft, eq_single_t fs) {
-+        
-+        eq_double_t wb = conversions::hz_2_rad(fb_, sampling_frequency_);
-         eq_double_t w0 = conversions::hz_2_rad(f0_, sampling_frequency_);
--		
--		for(eq_single_t gain = -min_max_gain_db_; gain <= min_max_gain_db_; 
--				gain+= gain_step_db_)  {
--
--			  switch(ft) {
--	            case (butterworth): {
--	                eq_single_t bw_gain = 
--						butterworth_bp_filter::compute_bw_gain_db(gain);
--				
--					butterworth_bp_filter* bf = 
--				        	new butterworth_bp_filter(
--				                default_eq_band_filters_order,
--				                w0,
--				                wb,
--				                gain,
--				                bw_gain,
--				                p_eq_default_gain_db
--				                );
--				               
--	                filters_.push_back(bf);
--	                break;
--	            }
--	            case (chebyshev1): {
--	            	eq_single_t bw_gain = 
--						chebyshev_type1_bp_filter::compute_bw_gain_db(gain);
--	            	
--	                chebyshev_type1_bp_filter* cf1 = 
--	                	new chebyshev_type1_bp_filter(
--	                        default_eq_band_filters_order,
--	                        w0,
--	                        wb,
--	                        gain,
--			                bw_gain,
--			                p_eq_default_gain_db
--	                        );
--
--	                filters_.push_back(cf1);
--	                break;
--	            }
--	            case (chebyshev2): {
--	            	eq_single_t bw_gain = 
--						chebyshev_type2_bp_filter::compute_bw_gain_db(gain);
--	            	
--	                chebyshev_type2_bp_filter* cf2 = 
--	                	new chebyshev_type2_bp_filter(
--	                        default_eq_band_filters_order,
--	                        w0,
--	                        wb,
--	                        gain,
--			                bw_gain,
--			                p_eq_default_gain_db
--	                        );
--
--	                filters_.push_back(cf2);
--	                break;
--	            }
--	            default: {
--	                current_channel_type_ = none;
--	                return invalid_input_data_error;
-+        
-+        for(eq_single_t gain = -min_max_gain_db_; gain <= min_max_gain_db_; 
-+                gain+= gain_step_db_)  {
-+
-+              switch(ft) {
-+                case (butterworth): {
-+                    eq_single_t bw_gain = 
-+                        butterworth_bp_filter::compute_bw_gain_db(gain);
-+                
-+                    butterworth_bp_filter* bf = 
-+                            new butterworth_bp_filter(
-+                                default_eq_band_filters_order,
-+                                w0,
-+                                wb,
-+                                gain,
-+                                bw_gain,
-+                                p_eq_default_gain_db
-+                                );
-+                               
-+                    filters_.push_back(bf);
-+                    break;
-+                }
-+                case (chebyshev1): {
-+                    eq_single_t bw_gain = 
-+                        chebyshev_type1_bp_filter::compute_bw_gain_db(gain);
-+                    
-+                    chebyshev_type1_bp_filter* cf1 = 
-+                        new chebyshev_type1_bp_filter(
-+                            default_eq_band_filters_order,
-+                            w0,
-+                            wb,
-+                            gain,
-+                            bw_gain,
-+                            p_eq_default_gain_db
-+                            );
-+
-+                    filters_.push_back(cf1);
-+                    break;
-+                }
-+                case (chebyshev2): {
-+                    eq_single_t bw_gain = 
-+                        chebyshev_type2_bp_filter::compute_bw_gain_db(gain);
-+                    
-+                    chebyshev_type2_bp_filter* cf2 = 
-+                        new chebyshev_type2_bp_filter(
-+                            default_eq_band_filters_order,
-+                            w0,
-+                            wb,
-+                            gain,
-+                            bw_gain,
-+                            p_eq_default_gain_db
-+                            );
-+
-+                    filters_.push_back(cf2);
-+                    break;
-                 }
--			}	
--		}
--		
--		//Get current filter index
--		current_gain_db_ = 0;
--		current_filter_index_ = get_flt_index(current_gain_db_);	
--		
--		return no_error;
--	}
--	
--	eq_error_t set_gain_db(eq_single_t db) {
--		if (db > -min_max_gain_db_ && db < min_max_gain_db_) {
--			current_gain_db_ = db;
--			current_filter_index_ = get_flt_index(db);
--		 }
--		 else
--		 	return invalid_input_data_error;
--
--	    return no_error;
--	}
--	
--	eq_error_t sbs_process(eq_single_t *in, eq_single_t *out) {
--		*out = filters_[current_filter_index_]->process(*in);
--		return no_error;
--	}
-+                default: {
-+                    current_channel_type_ = none;
-+                    return invalid_input_data_error;
-+                }
-+            }   
-+        }
-+        
-+        //Get current filter index
-+        current_gain_db_ = 0;
-+        current_filter_index_ = get_flt_index(current_gain_db_);    
-+        
-+        return no_error;
-+    }
-+    
-+    eq_error_t set_gain_db(eq_single_t db) {
-+        if (db > -min_max_gain_db_ && db < min_max_gain_db_) {
-+            current_gain_db_ = db;
-+            current_filter_index_ = get_flt_index(db);
-+        } else {
-+            return invalid_input_data_error;
-+        }
-+
-+        return no_error;
-+    }
-+    
-+    eq_error_t sbs_process(eq_single_t *in, eq_single_t *out) {
-+        *out = filters_[current_filter_index_]->process(*in);
-+        return no_error;
-+    }
- };
- 
- // ------------ eq2 ------------
-@@ -1038,123 +1038,123 @@
- 
- class eq2
- {
--	conversions conv_;
--	eq_double_t sampling_frequency_;
--	freq_grid freq_grid_;
--	std::vector<eq_channel*> channels_;
--	filter_type current_eq_type_;
--	
--	void cleanup_channels_array() {
--	    for(unsigned int j = 0; j < channels_.size(); j++)
--	        delete channels_[j];
--	}
-+    conversions conv_;
-+    eq_double_t sampling_frequency_;
-+    freq_grid freq_grid_;
-+    std::vector<eq_channel*> channels_;
-+    filter_type current_eq_type_;
-+    
-+    void cleanup_channels_array() {
-+        for(unsigned int j = 0; j < channels_.size(); j++)
-+            delete channels_[j];
-+    }
- 
- public:
--	eq2(freq_grid &fg, filter_type eq_t) : conv_(eq_min_max_gain_db) {
--	    sampling_frequency_ = default_sample_freq_hz;
--	    freq_grid_ = fg;
--	    current_eq_type_ = eq_t;
-+    eq2(freq_grid &fg, filter_type eq_t) : conv_(eq_min_max_gain_db) {
-+        sampling_frequency_ = default_sample_freq_hz;
-+        freq_grid_ = fg;
-+        current_eq_type_ = eq_t;
-         set_eq(freq_grid_, eq_t);
--	}
--	~eq2(){cleanup_channels_array();}
--	
--	eq_error_t set_eq(const freq_grid& fg, filter_type ft) {
--	    cleanup_channels_array();
--	    channels_.clear();	        
--	    freq_grid_ = fg;
--
--	    for(unsigned int i = 0; i < freq_grid_.get_number_of_bands(); i++) {
--			band_freqs b_fres = freq_grid_.get_freqs()[i];
--			
--        	eq_channel* eq_ch = new eq_channel(ft, sampling_frequency_, 
--        		b_fres.center_freq, b_fres.max_freq - b_fres.min_freq);
--			
--	        channels_.push_back(eq_ch);
--	        channels_[i]->set_gain_db(p_eq_default_gain_db);
--	    }
--
--	    current_eq_type_ = ft;
--	    return no_error;
--	}
--
--	eq_error_t set_eq(filter_type ft) {
--		eq_error_t err = set_eq(freq_grid_, ft);
--		return err;
--	}
--	
--	eq_error_t set_sample_rate(eq_double_t sr) {
--		sampling_frequency_ = sr;
--		eq_error_t err = set_eq(current_eq_type_); 
--		return err;
--	}
--	
--	eq_error_t change_gains(std::vector<eq_single_t> band_gains) {
--		if(channels_.size() == band_gains.size())
--	        for(unsigned int j = 0; j < channels_.size(); j++)
--	    		channels_[j]->set_gain_db(conv_.fast_lin_2_db(band_gains[j]));
--		else
--			return invalid_input_data_error;
--		
--		return no_error;
--	}
--	
--	eq_error_t change_gains_db(std::vector<eq_single_t> band_gains) {
--		if(channels_.size() == band_gains.size())
--	        for(unsigned int j = 0; j < channels_.size(); j++)
--	    		channels_[j]->set_gain_db(band_gains[j]);
--		else
--			return invalid_input_data_error;
--		
--		return no_error;
--	}
--	
--	eq_error_t change_band_gain(unsigned int band_number, 
--		eq_single_t band_gain) {
--	    if(band_number < channels_.size())
--	       channels_[band_number]->set_gain_db(conv_.fast_lin_2_db(band_gain));
-+    }
-+    ~eq2(){cleanup_channels_array();}
-+    
-+    eq_error_t set_eq(const freq_grid& fg, filter_type ft) {
-+        cleanup_channels_array();
-+        channels_.clear();          
-+        freq_grid_ = fg;
-+
-+        for(unsigned int i = 0; i < freq_grid_.get_number_of_bands(); i++) {
-+            band_freqs b_fres = freq_grid_.get_freqs()[i];
-+            
-+            eq_channel* eq_ch = new eq_channel(ft, sampling_frequency_, 
-+                b_fres.center_freq, b_fres.max_freq - b_fres.min_freq);
-+            
-+            channels_.push_back(eq_ch);
-+            channels_[i]->set_gain_db(p_eq_default_gain_db);
-+        }
-+
-+        current_eq_type_ = ft;
-+        return no_error;
-+    }
-+
-+    eq_error_t set_eq(filter_type ft) {
-+        eq_error_t err = set_eq(freq_grid_, ft);
-+        return err;
-+    }
-+    
-+    eq_error_t set_sample_rate(eq_double_t sr) {
-+        sampling_frequency_ = sr;
-+        eq_error_t err = set_eq(current_eq_type_); 
-+        return err;
-+    }
-+    
-+    eq_error_t change_gains(std::vector<eq_single_t> band_gains) {
-+        if(channels_.size() == band_gains.size())
-+            for(unsigned int j = 0; j < channels_.size(); j++)
-+                channels_[j]->set_gain_db(conv_.fast_lin_2_db(band_gains[j]));
-         else
--        	return invalid_input_data_error;
-+            return invalid_input_data_error;
-+        
-+        return no_error;
-+    }
-+    
-+    eq_error_t change_gains_db(std::vector<eq_single_t> band_gains) {
-+        if(channels_.size() == band_gains.size())
-+            for(unsigned int j = 0; j < channels_.size(); j++)
-+                channels_[j]->set_gain_db(band_gains[j]);
-+        else
-+            return invalid_input_data_error;
-+        
-+        return no_error;
-+    }
-+    
-+    eq_error_t change_band_gain(unsigned int band_number, 
-+        eq_single_t band_gain) {
-+        if(band_number < channels_.size())
-+           channels_[band_number]->set_gain_db(conv_.fast_lin_2_db(band_gain));
-+        else
-+            return invalid_input_data_error;
- 
--	    return no_error;
-+        return no_error;
-     }
-     
-     eq_error_t change_band_gain_db(unsigned int band_number, 
--		eq_single_t band_gain) {
--		if(band_number < channels_.size())
--			    channels_[band_number]->set_gain_db(band_gain);
--		    else
--		    	return invalid_input_data_error;
-+        eq_single_t band_gain) {
-+        if(band_number < channels_.size())
-+                channels_[band_number]->set_gain_db(band_gain);
-+            else
-+                return invalid_input_data_error;
- 
--			return no_error;
-+            return no_error;
-     }
-     
-     eq_error_t sbs_process_band(unsigned int band_number, 
--    	eq_single_t *in, eq_single_t *out) {
--    	if(band_number < get_number_of_bands())
--	        channels_[band_number]->sbs_process(in, out);
--		else
--			return invalid_input_data_error; 
--			
--		return no_error;  	
--	}
-+        eq_single_t *in, eq_single_t *out) {
-+        if(band_number < get_number_of_bands())
-+            channels_[band_number]->sbs_process(in, out);
-+        else
-+            return invalid_input_data_error; 
-+            
-+        return no_error;    
-+    }
-     
-     eq_error_t sbs_process(eq_single_t *in, eq_single_t *out) {
--    	eq_error_t err = no_error;
--    	eq_single_t in_out = *in;
--    	for(unsigned int i = 0; i < get_number_of_bands(); i++) 
--    		err = sbs_process_band(i,&in_out,&in_out);
--    	
--    	*out = in_out;
--    	
--    	return err;
--    }
--    
--	filter_type get_eq_type(){return current_eq_type_;}
--	const char* get_string_eq_type(){return get_eq_text(current_eq_type_);}
--	unsigned int get_number_of_bands() {
--		return freq_grid_.get_number_of_bands();
--	}
--	const char* get_version(){return eq_version;}
-+        eq_error_t err = no_error;
-+        eq_single_t in_out = *in;
-+        for(unsigned int i = 0; i < get_number_of_bands(); i++) 
-+            err = sbs_process_band(i,&in_out,&in_out);
-+        
-+        *out = in_out;
-+        
-+        return err;
-+    }
-+    
-+    filter_type get_eq_type(){return current_eq_type_;}
-+    const char* get_string_eq_type(){return get_eq_text(current_eq_type_);}
-+    unsigned int get_number_of_bands() {
-+        return freq_grid_.get_number_of_bands();
-+    }
-+    const char* get_version(){return eq_version;}
- };
- 
- } //namespace orfanidis_eq
---- a/src/gui_controls.cpp
-+++ b/src/gui_controls.cpp
-@@ -1110,9 +1110,10 @@
-     g_signal_connect(GTK_OBJECT(widget), "file-set", G_CALLBACK(filechooser_value_changed), (gpointer)this);
-     if (attribs.count("width"))
-         gtk_widget_set_size_request (widget, get_int("width", 200), -1);
--    if (attribs.count("width_chars"))
--         gtk_file_chooser_button_set_width_chars (filechooser, get_int("width_chars"));
--         gtk_widget_set_name(GTK_WIDGET(widget), "Calf-FileButton");
-+    if (attribs.count("width_chars")) {
-+        gtk_file_chooser_button_set_width_chars (filechooser, get_int("width_chars"));
-+        gtk_widget_set_name(GTK_WIDGET(widget), "Calf-FileButton");
-+    }
-     return widget;
- }
- 
---- a/src/host_session.cpp
-+++ b/src/host_session.cpp
-@@ -143,10 +143,12 @@
- void host_session::handle_jack_session_event(jack_session_event_t *event)
- {
-     try {
--        asprintf(&event->command_line, "%s --load ${SESSION_DIR}" G_DIR_SEPARATOR_S "rack.xml --session-id %s" , calfjackhost_cmd.c_str(), event->client_uuid);
--        string fn = event->session_dir;
--        fn += "rack.xml";
--        save_file(fn.c_str());
-+        int size = asprintf(&event->command_line, "%s --load ${SESSION_DIR}" G_DIR_SEPARATOR_S "rack.xml --session-id %s" , calfjackhost_cmd.c_str(), event->client_uuid);
-+        if (size > -1) {
-+            string fn = event->session_dir;
-+            fn += "rack.xml";
-+            save_file(fn.c_str());
-+        }
-     }
-     catch(...)
-     {
---- a/src/modules_delay.cpp
-+++ b/src/modules_delay.cpp
-@@ -385,9 +385,10 @@
-         while(offset < end) {
-             outs[0][offset] = ins[0][offset];
-             buffer[w_ptr]   = ins[0][offset];
--            if (stereo)
-+            if (stereo) {
-                 outs[1][offset]   = ins[1][offset];
-                 buffer[w_ptr + 1] = ins[1][offset];
-+            }
-             w_ptr = (w_ptr + 2) & b_mask;
-             ++offset;
-         }
---- a/src/modules_limit.cpp
-+++ b/src/modules_limit.cpp
-@@ -429,7 +429,7 @@
-                 }
-                 
-                 // write multiband coefficient to buffer
--                buffer[pos] = std::min(*params[param_limit] / std::max(fabs(tmpL), fabs(tmpR)), 1.0f);
-+                buffer[pos] = std::min((float)(*params[param_limit] / std::max(fabs(tmpL), fabs(tmpR))), 1.0f);
-                 
-                 // step forward in multiband buffer
-                 pos = (pos + channels) % buffer_size;
-@@ -811,7 +811,7 @@
-                 }
-                 
-                 // write multiband coefficient to buffer
--                buffer[pos] = std::min(*params[param_limit] / std::max(fabs(tmpL), fabs(tmpR)), 1.0f);
-+                buffer[pos] = std::min((float)(*params[param_limit] / std::max(fabs(tmpL), fabs(tmpR))), 1.0f);
-                 
-                 // step forward in multiband buffer
-                 pos = (pos + channels) % buffer_size;
diff --git a/debian/patches/020161212~b2cdb2f.patch b/debian/patches/020161212~b2cdb2f.patch
deleted file mode 100644
index b34b918..0000000
--- a/debian/patches/020161212~b2cdb2f.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Description: fix a manpage
- As suggested by Lintian:
- https://lintian.debian.org/tags/manpage-has-bad-whatis-entry.html
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/b2cdb2f
-Author: Olivier Humbert <trebmuh at users.noreply.github.com>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/calf.7
-+++ b/calf.7
-@@ -1,6 +1,6 @@
- .TH CALF 7 2015-03-03
- .SH NAME
--Calf Studio Gear \- audio plugin library
-+Calf_Studio_Gear \- audio plugin library
- .SH SYNOPSIS
- calfjackhost
- plugin
diff --git a/debian/patches/020170113~3ce5497.patch b/debian/patches/020170113~3ce5497.patch
deleted file mode 100644
index e0db2c3..0000000
--- a/debian/patches/020170113~3ce5497.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Description: fix explicitly instantiate in namespace calf_plugins
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/3ce5497
-Author: JP Cimalando <jpcima at noreply.users.github.com>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/modules_filter.cpp
-+++ b/src/modules_filter.cpp
-@@ -492,9 +492,11 @@
-     return ret;
- }
- 
-+namespace calf_plugins {
- template class equalizerNband_audio_module<equalizer5band_metadata, false>;
- template class equalizerNband_audio_module<equalizer8band_metadata, true>;
- template class equalizerNband_audio_module<equalizer12band_metadata, true>;
-+}
- 
- /**********************************************************************
-  * EQUALIZER 30 BAND
-@@ -1042,9 +1044,11 @@
-     return crossover.get_layers(index, generation, layers);
- }
- 
-+namespace calf_plugins {
- template class xover_audio_module<xover2_metadata>;
- template class xover_audio_module<xover3_metadata>;
- template class xover_audio_module<xover4_metadata>;
-+}
- 
- 
- /**********************************************************************
diff --git a/debian/patches/020170113~7febcb6.patch b/debian/patches/020170113~7febcb6.patch
deleted file mode 100644
index 77ae01d..0000000
--- a/debian/patches/020170113~7febcb6.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Description: fix memory error
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/7febcb6
-Author: JP Cimalando <jpcima at noreply.users.github.com>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/audio_fx.cpp
-+++ b/src/audio_fx.cpp
-@@ -1326,7 +1326,6 @@
- }
- resampleN::~resampleN()
- {
--    free(tmp);
- }
- void resampleN::set_params(uint32_t sr, int fctr = 2, int fltrs = 2)
- {
diff --git a/debian/patches/020170113~93091c4.patch b/debian/patches/020170113~93091c4.patch
deleted file mode 100644
index 3133db6..0000000
--- a/debian/patches/020170113~93091c4.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Description: fix FFT buffer leak
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/93091c4
-Author: JP Cimalando <jpcima at noreply.users.github.com>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/analyzer.cpp
-+++ b/src/analyzer.cpp
-@@ -90,6 +90,7 @@
-     free(fft_outL);
-     free(fft_inR);
-     free(fft_inL);
-+    free(fft_buffer);
-     free(spline_buffer);
- }
- void analyzer::set_sample_rate(uint32_t sr) {
diff --git a/debian/patches/020170113~9c055ff.patch b/debian/patches/020170113~9c055ff.patch
deleted file mode 100644
index 010a829..0000000
--- a/debian/patches/020170113~9c055ff.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Description: fix c++11 type narrowing in initializer
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/9c055ff
-Author: JP Cimalando <jpcima at noreply.users.github.com>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/metadata.cpp
-+++ b/src/metadata.cpp
-@@ -1413,7 +1413,7 @@
-     { 300.f,  1.f,   5000.f, 0,  PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_MSEC, NULL, "release_time", "Release Time" },
-     { 0.f,   -1.f,   1.f,    0,  PF_FLOAT | PF_SCALE_PERC | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_GRAPH, NULL, "release_boost", "Release Boost" },
-     { 2000.f, 50.f,  5000.f, 0,  PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_MSEC, NULL, "display", "Display" },
--    { pow(2.0,-12.0), pow(2.0,-12.0),1, 0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_GRAPH, NULL, "display_threshold", "Threshold" },
-+    { pow(2.0f,-12.0f), pow(2.0f,-12.0f),1, 0,  PF_FLOAT | PF_SCALE_GAIN | PF_CTL_KNOB | PF_UNIT_COEF | PF_PROP_GRAPH, NULL, "display_threshold", "Threshold" },
-     { 0,      0,     100,     0,  PF_INT | PF_SCALE_LINEAR | PF_CTL_KNOB | PF_UNIT_SAMPLES, NULL, "lookahead", "Lookahead" },
-     { 0,     0,     3,      0,  PF_ENUM | PF_CTL_COMBO, transientdesigner_view_names, "view", "View Mode" },
-     { 100,    20,20000, 0, PF_FLOAT | PF_SCALE_LOG | PF_CTL_KNOB | PF_UNIT_HZ | PF_PROP_GRAPH, NULL, "hipass", "Highpass" },
diff --git a/debian/patches/020170113~a1d4da8.patch b/debian/patches/020170113~a1d4da8.patch
deleted file mode 100644
index 0d79d83..0000000
--- a/debian/patches/020170113~a1d4da8.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Description: fix cleanup of LV2 wrapped module which is never freed
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/a1d4da8
-Author: JP Cimalando <jpcima at noreply.users.github.com>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/calf/lv2wrap.h
-+++ b/src/calf/lv2wrap.h
-@@ -295,6 +295,7 @@
-     static void cb_cleanup(LV2_Handle Instance)
-     {
-         instance *const mod = (instance *)Instance;
-+        delete mod->module;
-         delete mod;
-     }
- 
diff --git a/debian/patches/020170113~e635e95.patch b/debian/patches/020170113~e635e95.patch
deleted file mode 100644
index 82e415d..0000000
--- a/debian/patches/020170113~e635e95.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Description: fix memory leak in waveform generation
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/e635e95
-Author: JP Cimalando <jpcima at noreply.users.github.com>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/calf/osc.h
-+++ b/src/calf/osc.h
-@@ -206,7 +206,9 @@
-             float *wf = new float[SIZE+1];
-             bl.make_waveform(wf, cutoff, foldover);
-             wf[SIZE] = wf[0];
--            (*this)[base * (top / cutoff)] = wf;
-+            float **storage = &(*this)[base * (top / cutoff)];
-+            delete[] *storage;
-+            *storage = wf;
-             cutoff = (int)(0.75 * cutoff);
-         }
-     }
diff --git a/debian/patches/020170113~ec8afdd.patch b/debian/patches/020170113~ec8afdd.patch
deleted file mode 100644
index 8f24f79..0000000
--- a/debian/patches/020170113~ec8afdd.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-Description: fix free() of uninitialized pointers
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/ec8afdd
-Author: JP Cimalando <jpcima at noreply.users.github.com>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/audio_fx.cpp
-+++ b/src/audio_fx.cpp
-@@ -587,6 +587,9 @@
-     asc_pos = -1;
-     asc_changed = false;
-     asc_coeff = 1.f;
-+    buffer = NULL;
-+    nextpos = NULL;
-+    nextdelta = NULL;
- }
- lookahead_limiter::~lookahead_limiter()
- {
---- a/src/modules_comp.cpp
-+++ b/src/modules_comp.cpp
-@@ -2492,6 +2492,7 @@
-     transients.set_channels(channels);
-     hp_f_old = hp_m_old = lp_f_old = lp_m_old = 0;
-     redraw = false;
-+    pbuffer = NULL;
- }
- transientdesigner_audio_module::~transientdesigner_audio_module()
- {
---- a/src/modules_filter.cpp
-+++ b/src/modules_filter.cpp
-@@ -914,6 +914,7 @@
-     is_active = false;
-     srate = 0;
-     redraw_graph = true;
-+    buffer = NULL;
-     crossover.init(AM::channels, AM::bands, 44100);
- }
- template<class XoverBaseClass>
---- a/src/modules_limit.cpp
-+++ b/src/modules_limit.cpp
-@@ -193,6 +193,7 @@
-     _sanitize           = false;
-     is_active           = false;
-     cnt = 0;
-+    buffer = NULL;
-     
-     for(int i = 0; i < strips; i ++) {
-         weight_old[i] = -1.f;
-@@ -585,6 +586,7 @@
-     _sanitize           = false;
-     is_active           = false;
-     cnt = 0;
-+    buffer = NULL;
-     
-     for(int i = 0; i < strips; i ++) {
-         weight_old[i] = -1.f;
---- a/src/modules_tools.cpp
-+++ b/src/modules_tools.cpp
-@@ -41,6 +41,7 @@
- stereo_audio_module::stereo_audio_module() {
-     active      = false;
-     _phase      = -1;
-+    buffer = NULL;
- }
- stereo_audio_module::~stereo_audio_module() {
-     free(buffer);
-@@ -279,6 +280,7 @@
-     meter_outR  = 0.f;
-     _phase      = -1.f;
-     _sc_level   = 0.f;
-+    buffer = NULL;
- }
- mono_audio_module::~mono_audio_module() {
-     free(buffer);
diff --git a/debian/patches/020170113~fe63fa9.patch b/debian/patches/020170113~fe63fa9.patch
deleted file mode 100644
index cbe4783..0000000
--- a/debian/patches/020170113~fe63fa9.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Description: fix warnings about mismatched class/struct tags
-Origin: upstream, https://github.com/calf-studio-gear/calf/commit/fe63fa9
-Author: JP Cimalando <jpcima at noreply.users.github.com>
-Forwarded: yes
-Last-Update: 2017-07-30
-
---- a/src/calf/connector.h
-+++ b/src/calf/connector.h
-@@ -28,7 +28,7 @@
- 
- namespace calf_plugins {
- 
--class plugin_strip;
-+struct plugin_strip;
- class calf_connector;
- 
- struct connector_port
---- a/src/calf/gui.h
-+++ b/src/calf/gui.h
-@@ -199,8 +199,8 @@
-     static void xml_element_end(void *data, const char *element);
- };
- 
--class main_window_iface;
--class main_window_owner_iface;
-+struct main_window_iface;
-+struct main_window_owner_iface;
- 
- /// A class used to inform the plugin GUIs about the environment they run in
- /// (currently: what plugin features are accessible)
---- a/src/calf/preset.h
-+++ b/src/calf/preset.h
-@@ -27,8 +27,8 @@
- 
- namespace calf_plugins {
- 
--class plugin_ctl_iface;
--    
-+struct plugin_ctl_iface;
-+
- /// Contents of single preset
- struct plugin_preset
- {
diff --git a/debian/patches/1001_use_autoconf_dirnames.patch b/debian/patches/1001_use_autoconf_dirnames.patch
index f067069..560b485 100644
--- a/debian/patches/1001_use_autoconf_dirnames.patch
+++ b/debian/patches/1001_use_autoconf_dirnames.patch
@@ -35,3 +35,21 @@ Index: calf/src/Makefile.am
  endif
  if USE_JACK
  AM_CXXFLAGS += $(JACK_DEPS_CFLAGS)
+Index: calf/configure.ac
+===================================================================
+--- calf.orig/configure.ac
++++ calf/configure.ac
+@@ -219,13 +219,6 @@ fi
+ 
+ ############################################################################################
+ 
+-# Other defines
+-AC_DEFINE_UNQUOTED(PKGLIBDIR,"$prefix/share/calf/",[Calf shared data directory (bitmaps, GUI XML etc.)])
+-AC_DEFINE_UNQUOTED(PKGDOCDIR,"$prefix/share/doc/calf/",[Calf documentation directory])
+-
+-
+-############################################################################################
+-
+ # BASH completion
+ 
+ AC_ARG_WITH([bash-completion-dir],
diff --git a/debian/patches/2001_use_colorbox.patch b/debian/patches/2001_use_colorbox.patch
deleted file mode 100644
index 3138b0f..0000000
--- a/debian/patches/2001_use_colorbox.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Description: use jQuery.colorbox
- The jQuery.prettyPhoto script used upstream as lightbox in
- documentation includes mechanisms breaching privacy.
- Those features are disabled in actual use, but just to be on the safe
- side we replace with the simpler and safer jQuery.colorbox.
-Author: Jonas Smedegaard <dr at jones.dk>
-Last-Update: 2014-09-15
-Forwarded: No
-
---- a/doc/manuals/scripts/manual.js
-+++ b/doc/manuals/scripts/manual.js
-@@ -148,11 +148,7 @@
-                 $("<br clear='all'/>").appendTo($("#index"));
-         }
-     }
--    $(".prettyPhoto").prettyPhoto({
--        theme: 'dark_rounded',
--        social_tools: '',
--        show_title: false,
--    });
-+    $(".prettyPhoto").colorbox();
-     $(window).resize(resize);
-     $(window).scroll(scroll);
-     resize();
---- a/doc/manuals/scripts/prettyPhoto.css
-+++ b/doc/manuals/scripts/prettyPhoto.css
-@@ -168,3 +168,18 @@
- * html .pp_top .pp_middle,* html .pp_bottom .pp_middle{left:0;position:static}
- .pp_top .pp_right,.pp_bottom .pp_right{height:20px;left:auto;position:absolute;right:0;top:0;width:20px}
- .pp_fade,.pp_gallery li.default a img{display:none}
-+
-+#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
-+#cboxWrapper {max-width:none;}
-+#cboxOverlay{position:fixed; width:100%; height:100%;}
-+#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
-+#cboxContent{position:relative;}
-+#cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
-+#cboxTitle{margin:0;}
-+#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
-+#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
-+.cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none; -ms-interpolation-mode:bicubic;}
-+.cboxIframe{width:100%; height:100%; display:block; border:0; padding:0; margin:0;}
-+#colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
-+
-+#cboxOverlay{background:url(../images/prettyPhoto/dark_rounded/contentPattern.png) repeat 0 0; opacity: 0.9; filter: alpha(opacity = 90);}

-- 
calf audio plugins packaging



More information about the pkg-multimedia-commits mailing list