From 13393900d2e6ddabad546a465ab5940932226d58 Mon Sep 17 00:00:00 2001 From: Vesa Date: Fri, 28 Nov 2014 00:29:55 +0200 Subject: [PATCH] Multitap initial --- include/Graph.h | 3 +- include/MixHelpers.h | 3 + include/RingBuffer.h | 18 ++ plugins/CMakeLists.txt | 1 + plugins/MultitapEcho/CMakeLists.txt | 3 + plugins/MultitapEcho/MultitapEcho.cpp | 155 ++++++++++++++++ plugins/MultitapEcho/MultitapEcho.h | 95 ++++++++++ .../MultitapEchoControlDialog.cpp | 99 +++++++++++ .../MultitapEcho/MultitapEchoControlDialog.h | 44 +++++ plugins/MultitapEcho/MultitapEchoControls.cpp | 168 ++++++++++++++++++ plugins/MultitapEcho/MultitapEchoControls.h | 90 ++++++++++ plugins/MultitapEcho/artwork.png | Bin 0 -> 120652 bytes plugins/MultitapEcho/graph_bg.png | Bin 0 -> 4419 bytes src/core/MixHelpers.cpp | 19 ++ src/core/RingBuffer.cpp | 27 +++ src/gui/widgets/Graph.cpp | 9 +- 16 files changed, 731 insertions(+), 3 deletions(-) create mode 100644 plugins/MultitapEcho/CMakeLists.txt create mode 100644 plugins/MultitapEcho/MultitapEcho.cpp create mode 100644 plugins/MultitapEcho/MultitapEcho.h create mode 100644 plugins/MultitapEcho/MultitapEchoControlDialog.cpp create mode 100644 plugins/MultitapEcho/MultitapEchoControlDialog.h create mode 100644 plugins/MultitapEcho/MultitapEchoControls.cpp create mode 100644 plugins/MultitapEcho/MultitapEchoControls.h create mode 100644 plugins/MultitapEcho/artwork.png create mode 100644 plugins/MultitapEcho/graph_bg.png diff --git a/include/Graph.h b/include/Graph.h index 018b0ff0d..9474c354d 100644 --- a/include/Graph.h +++ b/include/Graph.h @@ -137,7 +137,7 @@ public: inline int length() const { - return( m_samples.count() ); + return m_length; } inline const float * samples() const @@ -175,6 +175,7 @@ private: void drawSampleAt( int x, float val ); QVector m_samples; + int m_length; float m_minValue; float m_maxValue; float m_step; diff --git a/include/MixHelpers.h b/include/MixHelpers.h index 4a2f510ee..ec5395a90 100644 --- a/include/MixHelpers.h +++ b/include/MixHelpers.h @@ -42,6 +42,9 @@ void add( sampleFrame* dst, const sampleFrame* src, int frames ); /*! \brief Add samples from src multiplied by coeffSrc to dst */ void addMultiplied( sampleFrame* dst, const sampleFrame* src, float coeffSrc, int frames ); +/*! \brief Add samples from src multiplied by coeffSrc to dst, swap inputs */ +void addSwappedMultiplied( sampleFrame* dst, const sampleFrame* src, float coeffSrc, int frames ); + /*! \brief Add samples from src multiplied by coeffSrc and coeffSrcBuf to dst */ void addMultipliedByBuffer( sampleFrame* dst, const sampleFrame* src, float coeffSrc, ValueBuffer * coeffSrcBuf, int frames ); diff --git a/include/RingBuffer.h b/include/RingBuffer.h index d32ef01ed..db903109d 100644 --- a/include/RingBuffer.h +++ b/include/RingBuffer.h @@ -179,6 +179,24 @@ public: */ void writeAddingMultiplied( sampleFrame * src, float offset, f_cnt_t length, float level ); +/** \brief Mixes a buffer of sampleframes additively to the ringbuffer at specified position, with + * a specified multiplier applied to the frames, with swapped channels + * \param src Pointer to the source buffer + * \param offset Offset in frames against current position, may *NOT* be negative + * \param length Length of the source buffer, if zero, period size is used - must not be higher than the size of the ringbuffer! + * \param level Multiplier applied to the frames before they're written to the ringbuffer + */ + void writeSwappedAddingMultiplied( sampleFrame * src, f_cnt_t offset, f_cnt_t length, float level ); + +/** \brief Mixes a buffer of sampleframes additively to the ringbuffer at specified position, with + * a specified multiplier applied to the frames, with swapped channels + * \param src Pointer to the source buffer + * \param offset Offset in milliseconds against current position, may *NOT* be negative + * \param length Length of the source buffer, if zero, period size is used + * \param level Multiplier applied to the frames before they're written to the ringbuffer + */ + void writeSwappedAddingMultiplied( sampleFrame * src, float offset, f_cnt_t length, float level ); + protected slots: void updateSamplerate(); diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 4f4a668e7..0f98b5d8f 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -16,6 +16,7 @@ ADD_SUBDIRECTORY(LadspaEffect) ADD_SUBDIRECTORY(lb302) #ADD_SUBDIRECTORY(lb303) ADD_SUBDIRECTORY(MidiImport) +ADD_SUBDIRECTORY(MultitapEcho) ADD_SUBDIRECTORY(monstro) ADD_SUBDIRECTORY(nes) ADD_SUBDIRECTORY(opl2) diff --git a/plugins/MultitapEcho/CMakeLists.txt b/plugins/MultitapEcho/CMakeLists.txt new file mode 100644 index 000000000..bfd9e6249 --- /dev/null +++ b/plugins/MultitapEcho/CMakeLists.txt @@ -0,0 +1,3 @@ +INCLUDE(BuildPlugin) + +BUILD_PLUGIN(multitapecho MultitapEcho.cpp MultitapEchoControls.cpp MultitapEchoControlDialog.cpp MOCFILES MultitapEchoControls.h MultitapEchoControlDialog.h EMBEDDED_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/*.png") diff --git a/plugins/MultitapEcho/MultitapEcho.cpp b/plugins/MultitapEcho/MultitapEcho.cpp new file mode 100644 index 000000000..abbd34f25 --- /dev/null +++ b/plugins/MultitapEcho/MultitapEcho.cpp @@ -0,0 +1,155 @@ +/* + * MultitapEcho.cpp - a multitap echo delay plugin + * + * Copyright (c) 2014 Vesa Kivimäki + * Copyright (c) 2008-2014 Tobias Doerffel + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include "MultitapEcho.h" +#include "embed.cpp" + + +extern "C" +{ + +Plugin::Descriptor PLUGIN_EXPORT multitapecho_plugin_descriptor = +{ + STRINGIFY( PLUGIN_NAME ), + "Multitap Echo", + QT_TRANSLATE_NOOP( "pluginBrowser", "A multitap echo delay plugin" ), + "Vesa Kivimäki ", + 0x0100, + Plugin::Effect, + new PluginPixmapLoader( "logo" ), + NULL, + NULL +} ; + +} + + +MultitapEchoEffect::MultitapEchoEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ) : + Effect( &multitapecho_plugin_descriptor, parent, key ), + m_controls( this ), + m_buffer( 20000.0f ), + m_sampleRate( Engine::mixer()->processingSampleRate() ), + m_sampleRatio( 1.0f / m_sampleRate ) +{ + updateFilters( 0, 19 ); +} + + +MultitapEchoEffect::~MultitapEchoEffect() +{ +} + + +void MultitapEchoEffect::updateFilters( int begin, int end ) +{ + for( int i = begin; i <= end; ++i ) + { + m_filter[i][0].setFc( m_lpFreq[i] * m_sampleRatio ); + m_filter[i][1].setFc( m_lpFreq[i] * m_sampleRatio ); + } +} + + +void MultitapEchoEffect::runFilter( sampleFrame * dst, sampleFrame * src, StereoOnePole & filter, const fpp_t frames ) +{ + for( int f = 0; f < frames; ++f ) + { + dst[f][0] = filter[0].update( src[f][0] ); + dst[f][1] = filter[1].update( src[f][1] ); + } +} + + +bool MultitapEchoEffect::processAudioBuffer( sampleFrame * buf, const fpp_t frames ) +{ + if( !isEnabled() || !isRunning () ) + { + return( false ); + } + + double outSum = 0.0; + const float d = dryLevel(); + const float w = wetLevel(); + + // get processing vars + const int steps = m_controls.m_steps.value(); + const float stepLength = m_controls.m_stepLength.value(); + const float dryGain = dbvToAmp( m_controls.m_dryGain.value() ); + const bool swapInputs = m_controls.m_swapInputs.value(); + + // temp processing stackbuffer for lp-filtering + sampleFrame work [frames]; + + // add dry buffer - never swap inputs for dry + m_buffer.writeAddingMultiplied( buf, 0, frames, dryGain ); + + // swapped inputs? + if( swapInputs ) + { + float offset = stepLength; + for( int i = 0; i < steps; ++i ) // add all steps swapped + { + runFilter( &work[0], buf, m_filter[i], frames ); + m_buffer.writeSwappedAddingMultiplied( &work[0], offset, frames, m_amp[i] ); + offset += stepLength; + } + } + else + { + float offset = stepLength; + for( int i = 0; i < steps; ++i ) // add all steps swapped + { + runFilter( &work[0], buf, m_filter[i], frames ); + m_buffer.writeAddingMultiplied( &work[0], offset, frames, m_amp[i] ); + offset += stepLength; + } + } + + // pop the buffer and mix it into output + m_buffer.pop( &work[0] ); + + for( int f = 0; f < frames; ++f ) + { + buf[f][0] = d * buf[f][0] + w * work[f][0]; + buf[f][1] = d * buf[f][1] + w * work[f][1]; + outSum += buf[f][0]*buf[f][0] + buf[f][1]*buf[f][1]; + } + + checkGate( outSum / frames ); + + return isRunning(); +} + + +extern "C" +{ + +// necessary for getting instance out of shared lib +Plugin * PLUGIN_EXPORT lmms_plugin_main( Model* parent, void* data ) +{ + return new MultitapEchoEffect( parent, static_cast( data ) ); +} + +} diff --git a/plugins/MultitapEcho/MultitapEcho.h b/plugins/MultitapEcho/MultitapEcho.h new file mode 100644 index 000000000..c79f0b5e0 --- /dev/null +++ b/plugins/MultitapEcho/MultitapEcho.h @@ -0,0 +1,95 @@ +/* + * MultitapEcho.h - a multitap echo delay plugin + * + * Copyright (c) 2014 Vesa Kivimäki + * Copyright (c) 2008-2014 Tobias Doerffel + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef MULTITAP_ECHO_H +#define MULTITAP_ECHO_H + +#include "Effect.h" +#include "MultitapEchoControls.h" +#include "ValueBuffer.h" +#include "RingBuffer.h" +#include "lmms_math.h" + +class OnePole +{ +public: + OnePole() + { + m_a0 = 1.0; + m_b1 = 0.0; + m_z1 = 0.0; + } + virtual ~OnePole() {} + + inline void setFc( float fc ) + { + m_b1 = expf( -2.0f * F_PI * fc ); + m_a0 = 1.0f - m_b1; + } + + inline float update( float s ) + { + return m_z1 = s * m_a0 + m_z1 * m_b1; + } + +private: + float m_a0, m_b1, m_z1; +}; + +typedef OnePole StereoOnePole [2]; + +class MultitapEchoEffect : public Effect +{ +public: + MultitapEchoEffect( Model* parent, const Descriptor::SubPluginFeatures::Key* key ); + virtual ~MultitapEchoEffect(); + virtual bool processAudioBuffer( sampleFrame* buf, const fpp_t frames ); + + virtual EffectControls* controls() + { + return &m_controls; + } + +private: + void updateFilters( int begin, int end ); + void runFilter( sampleFrame * dst, sampleFrame * src, StereoOnePole & filter, const fpp_t frames ); + + MultitapEchoControls m_controls; + + float m_amp [20]; + float m_lpFreq [20]; + + RingBuffer m_buffer; + StereoOnePole m_filter [20]; + + float m_sampleRate; + float m_sampleRatio; + + friend class MultitapEchoControls; + +}; + + +#endif diff --git a/plugins/MultitapEcho/MultitapEchoControlDialog.cpp b/plugins/MultitapEcho/MultitapEchoControlDialog.cpp new file mode 100644 index 000000000..dbb6e448f --- /dev/null +++ b/plugins/MultitapEcho/MultitapEchoControlDialog.cpp @@ -0,0 +1,99 @@ +/* + * MultitapEchoControlDialog.cpp - a multitap echo delay plugin + * + * Copyright (c) 2014 Vesa Kivimäki + * Copyright (c) 2008-2014 Tobias Doerffel + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include + +#include "MultitapEchoControlDialog.h" +#include "MultitapEchoControls.h" +#include "embed.h" +#include "Graph.h" +#include "PixmapButton.h" +#include "ToolTip.h" +#include "LedCheckbox.h" +#include "Knob.h" +#include "TempoSyncKnob.h" +#include "LcdSpinBox.h" + + +MultitapEchoControlDialog::MultitapEchoControlDialog( MultitapEchoControls * controls ) : + EffectControlDialog( controls ) +{ + setAutoFillBackground( true ); + QPalette pal; + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); + setFixedSize( 245, 300 ); + + // graph widgets + + Graph * ampGraph = new Graph( this, Graph::BarStyle, 204, 105 ); + Graph * lpGraph = new Graph( this, Graph::BarStyle, 204, 105 ); + + ampGraph->move( 30, 10 ); + lpGraph->move( 30, 125 ); + + ampGraph->setModel( & controls->m_ampGraph ); + lpGraph->setModel( & controls->m_lpGraph ); + + pal = QPalette(); + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap("graph_bg") ); + + ampGraph->setAutoFillBackground( true ); + ampGraph->setPalette( pal ); + ampGraph->setGraphColor( QColor( 48, 255, 117 ) ); + ampGraph -> setMaximumSize( 204, 105 ); + + lpGraph->setAutoFillBackground( true ); + lpGraph->setPalette( pal ); + lpGraph->setGraphColor( QColor( 48, 255, 117 ) ); + lpGraph -> setMaximumSize( 204, 105 ); + + // steps spinbox + + LcdSpinBox * steps = new LcdSpinBox( 2, this, "Steps" ); + steps->move( 20, 240 ); + steps->setModel( & controls->m_steps ); + + // knobs + + TempoSyncKnob * stepLength = new TempoSyncKnob( knobBright_26, this ); + stepLength->move( 80, 240 ); + stepLength->setModel( & controls->m_stepLength ); + stepLength->setLabel( tr( "Length" ) ); + stepLength->setHintText( tr( "Step length:" ) + " ", "ms" ); + + Knob * dryGain = new Knob( knobBright_26, this ); + dryGain->move( 130, 240 ); + dryGain->setModel( & controls->m_dryGain ); + dryGain->setLabel( tr( "Dry" ) ); + dryGain->setHintText( tr( "Dry Gain:" ) + " ", "dBV" ); + + // switch led + + LedCheckBox * swapInputs = new LedCheckBox( "Swap inputs", this, tr( "Swap in" ), LedCheckBox::Green ); + swapInputs->move( 180, 240 ); + swapInputs->setModel( & controls-> m_swapInputs ); + ToolTip::add( swapInputs, tr( "Swap left and right channel for reflections" ) ); +} diff --git a/plugins/MultitapEcho/MultitapEchoControlDialog.h b/plugins/MultitapEcho/MultitapEchoControlDialog.h new file mode 100644 index 000000000..c0fdf7c3c --- /dev/null +++ b/plugins/MultitapEcho/MultitapEchoControlDialog.h @@ -0,0 +1,44 @@ +/* + * MultitapEchoControlDialog.h - a multitap echo delay plugin + * + * Copyright (c) 2014 Vesa Kivimäki + * Copyright (c) 2008-2014 Tobias Doerffel + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#ifndef MULTITAP_ECHO_CONTROL_DIALOG_H +#define MULTITAP_ECHO_CONTROL_DIALOG_H + +#include "EffectControlDialog.h" + +class MultitapEchoControls; + +class MultitapEchoControlDialog : public EffectControlDialog +{ + Q_OBJECT +public: + MultitapEchoControlDialog( MultitapEchoControls * controls ); + virtual ~MultitapEchoControlDialog() + { + } +}; + +#endif diff --git a/plugins/MultitapEcho/MultitapEchoControls.cpp b/plugins/MultitapEcho/MultitapEchoControls.cpp new file mode 100644 index 000000000..1a0b446a5 --- /dev/null +++ b/plugins/MultitapEcho/MultitapEchoControls.cpp @@ -0,0 +1,168 @@ +/* + * MultitapEchoControls.cpp - a multitap echo delay plugin + * + * Copyright (c) 2014 Vesa Kivimäki + * Copyright (c) 2008-2014 Tobias Doerffel + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#include + +#include "MultitapEchoControls.h" +#include "MultitapEcho.h" +#include "lmms_math.h" +#include "base64.h" + + +MultitapEchoControls::MultitapEchoControls( MultitapEchoEffect * eff ) : + EffectControls( eff ), + m_effect( eff ), + m_steps( 16, 4, 20, this, "Steps" ), + m_stepLength( 100.0f, 1.0f, 1000.0f, 0.1f, 1000.0f, this, "Step length" ), + m_dryGain( 0.0f, -80.0f, 20.0f, 0.1f, this, "Dry gain" ), + m_swapInputs( false, this, "Swap inputs" ), + m_ampGraph( -100.0f, 0.0f, 16, this ), + m_lpGraph( 0.0f, 3.0f, 16, this ) +{ + connect( &m_ampGraph, SIGNAL( samplesChanged( int, int ) ), this, SLOT( ampSamplesChanged( int, int ) ) ); + connect( &m_lpGraph, SIGNAL( samplesChanged( int, int ) ), this, SLOT( lpSamplesChanged( int, int ) ) ); + + connect( &m_steps, SIGNAL( dataChanged() ), this, SLOT( lengthChanged() ) ); + connect( Engine::mixer(), SIGNAL( sampleRateChanged() ), this, SLOT( sampleRateChanged() ) ); + + setDefaultAmpShape(); + setDefaultLpShape(); +} + + +MultitapEchoControls::~MultitapEchoControls() +{ +} + + +void MultitapEchoControls::saveSettings( QDomDocument & doc, QDomElement & parent ) +{ + m_steps.saveSettings( doc, parent, "steps" ); + m_stepLength.saveSettings( doc, parent, "steplength" ); + m_dryGain.saveSettings( doc, parent, "drygain" ); + m_swapInputs.saveSettings( doc, parent, "swapinputs" ); + + QString ampString; + base64::encode( (const char *) m_ampGraph.samples(), m_ampGraph.length() * sizeof(float), ampString ); + parent.setAttribute( "ampsteps", ampString ); + + QString lpString; + base64::encode( (const char *) m_lpGraph.samples(), m_lpGraph.length() * sizeof(float), lpString ); + parent.setAttribute( "lpsteps", lpString ); +} + + +void MultitapEchoControls::loadSettings( const QDomElement & elem ) +{ + m_steps.loadSettings( elem, "steps" ); + m_stepLength.loadSettings( elem, "steplength" ); + m_dryGain.loadSettings( elem, "drygain" ); + m_swapInputs.loadSettings( elem, "swapinputs" ); + + int size = 0; + char * dst = 0; + + base64::decode( elem.attribute( "ampsteps"), &dst, &size ); + m_ampGraph.setSamples( (float*) dst ); + + base64::decode( elem.attribute( "lpsteps"), &dst, &size ); + m_lpGraph.setSamples( (float*) dst ); + + delete[] dst; +} + + +void MultitapEchoControls::setDefaultAmpShape() +{ + const int length = m_steps.value(); + + float samples [length]; + for( int i = 0; i < length; ++i ) + { + samples[i] = 0.0f; + } + + m_ampGraph.setSamples( &samples[0] ); +} + + +void MultitapEchoControls::setDefaultLpShape() +{ + const int length = m_steps.value(); + + float samples [length]; + for( int i = 0; i < length; ++i ) + { + samples[i] = 3.0f; + } + + m_lpGraph.setSamples( &samples[0] ); +} + + +void MultitapEchoControls::ampSamplesChanged( int begin, int end ) +{ + const float * samples = m_ampGraph.samples(); + for( int i = begin; i <= end; ++i ) + { + m_effect->m_amp[i] = dbvToAmp( samples[i] ); + } +} + + +void MultitapEchoControls::ampResetClicked() +{ + setDefaultAmpShape(); +} + + +void MultitapEchoControls::lpSamplesChanged( int begin, int end ) +{ + const float * samples = m_lpGraph.samples(); + for( int i = begin; i <= end; ++i ) + { + m_effect->m_lpFreq[i] = 20.0f * exp10f( samples[i] ); + } + m_effect->updateFilters( begin, end ); +} + + +void MultitapEchoControls::lpResetClicked() +{ + setDefaultLpShape(); +} + + +void MultitapEchoControls::lengthChanged() +{ + m_ampGraph.setLength( m_steps.value() ); + m_lpGraph.setLength( m_steps.value() ); +} + + +void MultitapEchoControls::sampleRateChanged() +{ + m_effect->updateFilters( 0, 19 ); +} diff --git a/plugins/MultitapEcho/MultitapEchoControls.h b/plugins/MultitapEcho/MultitapEchoControls.h new file mode 100644 index 000000000..645e66ac4 --- /dev/null +++ b/plugins/MultitapEcho/MultitapEchoControls.h @@ -0,0 +1,90 @@ +/* + * MultitapEchoControls.h - a multitap echo delay plugin + * + * Copyright (c) 2014 Vesa Kivimäki + * Copyright (c) 2008-2014 Tobias Doerffel + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef MULTITAP_ECHO_CONTROLS_H +#define MULTITAP_ECHO_CONTROLS_H + +#include "EffectControls.h" +#include "MultitapEchoControlDialog.h" +#include "Knob.h" +#include "Graph.h" + + +class MultitapEchoEffect; + +class MultitapEchoControls : public EffectControls +{ + Q_OBJECT +public: + MultitapEchoControls( MultitapEchoEffect * eff ); + virtual ~MultitapEchoControls(); + + virtual void saveSettings( QDomDocument & doc, QDomElement & parent ); + virtual void loadSettings( const QDomElement & elem ); + inline virtual QString nodeName() const + { + return( "multitapechocontrols" ); + } + + void setDefaultAmpShape(); + void setDefaultLpShape(); + + virtual int controlCount() + { + return( 4 ); + } + + virtual EffectControlDialog * createView() + { + return( new MultitapEchoControlDialog( this ) ); + } + +private slots: + void ampSamplesChanged( int, int ); + void ampResetClicked(); + + void lpSamplesChanged( int, int ); + void lpResetClicked(); + + void lengthChanged(); + void sampleRateChanged(); + +private: + MultitapEchoEffect * m_effect; + IntModel m_steps; + TempoSyncKnobModel m_stepLength; + + FloatModel m_dryGain; + BoolModel m_swapInputs; + + graphModel m_ampGraph; + graphModel m_lpGraph; + + friend class MultitapEchoEffect; + friend class MultitapEchoControlDialog; +}; + + +#endif diff --git a/plugins/MultitapEcho/artwork.png b/plugins/MultitapEcho/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..e8a5d1e46bd1ed8b055c4cd1ed23df137e21359a GIT binary patch literal 120652 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

B)2o?;XSfgc8Rg) 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 JPDHLkV1jfXW;_4@ literal 0 HcmV?d00001 diff --git a/src/core/MixHelpers.cpp b/src/core/MixHelpers.cpp index a6e43e05a..513dd40d9 100644 --- a/src/core/MixHelpers.cpp +++ b/src/core/MixHelpers.cpp @@ -124,6 +124,25 @@ void addMultiplied( sampleFrame* dst, const sampleFrame* src, float coeffSrc, in } +struct AddSwappedMultipliedOp +{ + AddSwappedMultipliedOp( float coeff ) : m_coeff( coeff ) { } + + void operator()( sampleFrame& dst, const sampleFrame& src ) const + { + dst[0] += src[1] * m_coeff; + dst[1] += src[0] * m_coeff; + } + + const float m_coeff; +}; + +void addSwappedMultiplied( sampleFrame* dst, const sampleFrame* src, float coeffSrc, int frames ) +{ + run<>( dst, src, frames, AddSwappedMultipliedOp(coeffSrc) ); +} + + void addMultipliedByBuffer( sampleFrame* dst, const sampleFrame* src, float coeffSrc, ValueBuffer * coeffSrcBuf, int frames ) { for( int f = 0; f < frames; ++f ) diff --git a/src/core/RingBuffer.cpp b/src/core/RingBuffer.cpp index 69456ab00..f81736bbe 100644 --- a/src/core/RingBuffer.cpp +++ b/src/core/RingBuffer.cpp @@ -272,6 +272,33 @@ void RingBuffer::writeAddingMultiplied( sampleFrame * src, float offset, f_cnt_t } +void RingBuffer::writeSwappedAddingMultiplied( sampleFrame * src, f_cnt_t offset, f_cnt_t length, float level ) +{ + const f_cnt_t pos = ( m_position + offset ) % m_size; + if( length == 0 ) { length = m_fpp; } + + if( pos + length <= m_size ) // we won't go over the edge so we can just memcpy here + { + MixHelpers::addSwappedMultiplied( m_buffer + ( pos * sizeof( sampleFrame ) ), src, level, length ); + } + else + { + f_cnt_t first = m_size - pos; + f_cnt_t second = length - first; + + MixHelpers::addSwappedMultiplied( m_buffer + ( pos * sizeof( sampleFrame ) ), src, level, first ); + + MixHelpers::addSwappedMultiplied( m_buffer, src + ( first * sizeof( sampleFrame ) ), level, second ); + } +} + + +void RingBuffer::writeSwappedAddingMultiplied( sampleFrame * src, float offset, f_cnt_t length, float level ) +{ + writeSwappedAddingMultiplied( src, msToFrames( offset ), length, level ); +} + + void RingBuffer::updateSamplerate() { float newsize = static_cast( ( m_size - m_fpp ) * Engine::mixer()->processingSampleRate() ) / m_samplerate; diff --git a/src/gui/widgets/Graph.cpp b/src/gui/widgets/Graph.cpp index 009bf4b3b..2894e8283 100644 --- a/src/gui/widgets/Graph.cpp +++ b/src/gui/widgets/Graph.cpp @@ -444,6 +444,7 @@ graphModel::graphModel( float _min, float _max, int _length, ::Model * _parent, bool _default_constructed, float _step ) : Model( _parent, tr( "Graph" ), _default_constructed ), m_samples( _length ), + m_length( _length ), m_minValue( _min ), m_maxValue( _max ), m_step( _step ) @@ -482,9 +483,13 @@ void graphModel::setRange( float _min, float _max ) void graphModel::setLength( int _length ) { - if( _length != length() ) + if( _length != m_length ) { - m_samples.resize( _length ); + m_length = _length; + if( m_samples.size() < m_length ) + { + m_samples.resize( m_length ); + } emit lengthChanged(); } }