From 0fa2908f7f76bbf5ac71bfc93ded0e2155c20eb6 Mon Sep 17 00:00:00 2001 From: Vesa Date: Thu, 20 Mar 2014 11:46:47 +0200 Subject: [PATCH 01/23] Start wavetable synth --- plugins/CMakeLists.txt | 1 + plugins/wtsynth/CMakeLists.txt | 3 +++ plugins/wtsynth/WTSynth.h | 38 ++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 plugins/wtsynth/CMakeLists.txt create mode 100644 plugins/wtsynth/WTSynth.h diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 59aadfbe3..aba116025 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -29,5 +29,6 @@ ADD_SUBDIRECTORY(vestige) ADD_SUBDIRECTORY(vst_base) ADD_SUBDIRECTORY(VstEffect) ADD_SUBDIRECTORY(waveshaper) +ADD_SUBDIRECTORY(wtsynth) ADD_SUBDIRECTORY(vibed) ADD_SUBDIRECTORY(zynaddsubfx) diff --git a/plugins/wtsynth/CMakeLists.txt b/plugins/wtsynth/CMakeLists.txt new file mode 100644 index 000000000..82e03fcd9 --- /dev/null +++ b/plugins/wtsynth/CMakeLists.txt @@ -0,0 +1,3 @@ +INCLUDE(BuildPlugin) + +BUILD_PLUGIN(wtsynth WTSynth.cpp WTSynth.h MOCFILES WTSynth.h EMBEDDED_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.png) diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h new file mode 100644 index 000000000..286c23cb7 --- /dev/null +++ b/plugins/wtsynth/WTSynth.h @@ -0,0 +1,38 @@ +/* + * WTSynth.h - work in process, name pending + * + * Copyright (c) 2014 Vesa Kivimäki + * + * 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 WTSYNTH_H +#define WTSYNTH_H + +#include "Instrument.h" +#include "InstrumentView.h" +#include "graph.h" +#include "knob.h" +#include "pixmap_button.h" + + + + +#endif From 23b3179e1f55703e2ea5647ca98ca9a640f31d82 Mon Sep 17 00:00:00 2001 From: Vesa Date: Fri, 21 Mar 2014 10:53:11 +0200 Subject: [PATCH 02/23] WTSynth files --- data/themes/default/style.css | 25 + plugins/wtsynth/WTSynth.cpp | 1096 +++++++++++++++++++++++++++ plugins/wtsynth/WTSynth.h | 220 ++++++ plugins/wtsynth/a1_active.png | Bin 0 -> 169 bytes plugins/wtsynth/a1_inactive.png | Bin 0 -> 169 bytes plugins/wtsynth/a2_active.png | Bin 0 -> 169 bytes plugins/wtsynth/a2_inactive.png | Bin 0 -> 169 bytes plugins/wtsynth/am_active.png | Bin 0 -> 169 bytes plugins/wtsynth/am_inactive.png | Bin 0 -> 169 bytes plugins/wtsynth/artwork.png | Bin 0 -> 625 bytes plugins/wtsynth/b1_active.png | Bin 0 -> 169 bytes plugins/wtsynth/b1_inactive.png | Bin 0 -> 169 bytes plugins/wtsynth/b2_active.png | Bin 0 -> 169 bytes plugins/wtsynth/b2_inactive.png | Bin 0 -> 169 bytes plugins/wtsynth/inv_active.png | Bin 0 -> 305 bytes plugins/wtsynth/inv_inactive.png | Bin 0 -> 308 bytes plugins/wtsynth/logo.png | Bin 0 -> 174 bytes plugins/wtsynth/mix_active.png | Bin 0 -> 169 bytes plugins/wtsynth/mix_inactive.png | Bin 0 -> 169 bytes plugins/wtsynth/norm_active.png | Bin 0 -> 305 bytes plugins/wtsynth/norm_inactive.png | Bin 0 -> 308 bytes plugins/wtsynth/phl_active.png | Bin 0 -> 305 bytes plugins/wtsynth/phl_inactive.png | Bin 0 -> 308 bytes plugins/wtsynth/phr_active.png | Bin 0 -> 305 bytes plugins/wtsynth/phr_inactive.png | Bin 0 -> 308 bytes plugins/wtsynth/pm_active.png | Bin 0 -> 169 bytes plugins/wtsynth/pm_inactive.png | Bin 0 -> 169 bytes plugins/wtsynth/rm_active.png | Bin 0 -> 169 bytes plugins/wtsynth/rm_inactive.png | Bin 0 -> 169 bytes plugins/wtsynth/saw_active.png | Bin 0 -> 305 bytes plugins/wtsynth/saw_inactive.png | Bin 0 -> 308 bytes plugins/wtsynth/sin_active.png | Bin 0 -> 305 bytes plugins/wtsynth/sin_inactive.png | Bin 0 -> 308 bytes plugins/wtsynth/smooth_active.png | Bin 0 -> 305 bytes plugins/wtsynth/smooth_inactive.png | Bin 0 -> 308 bytes plugins/wtsynth/sqr_active.png | Bin 0 -> 305 bytes plugins/wtsynth/sqr_inactive.png | Bin 0 -> 308 bytes plugins/wtsynth/tri_active.png | Bin 0 -> 305 bytes plugins/wtsynth/tri_inactive.png | Bin 0 -> 308 bytes plugins/wtsynth/wavegraph.png | Bin 0 -> 351 bytes 40 files changed, 1341 insertions(+) create mode 100644 plugins/wtsynth/WTSynth.cpp create mode 100644 plugins/wtsynth/a1_active.png create mode 100644 plugins/wtsynth/a1_inactive.png create mode 100644 plugins/wtsynth/a2_active.png create mode 100644 plugins/wtsynth/a2_inactive.png create mode 100644 plugins/wtsynth/am_active.png create mode 100644 plugins/wtsynth/am_inactive.png create mode 100644 plugins/wtsynth/artwork.png create mode 100644 plugins/wtsynth/b1_active.png create mode 100644 plugins/wtsynth/b1_inactive.png create mode 100644 plugins/wtsynth/b2_active.png create mode 100644 plugins/wtsynth/b2_inactive.png create mode 100644 plugins/wtsynth/inv_active.png create mode 100644 plugins/wtsynth/inv_inactive.png create mode 100644 plugins/wtsynth/logo.png create mode 100644 plugins/wtsynth/mix_active.png create mode 100644 plugins/wtsynth/mix_inactive.png create mode 100644 plugins/wtsynth/norm_active.png create mode 100644 plugins/wtsynth/norm_inactive.png create mode 100644 plugins/wtsynth/phl_active.png create mode 100644 plugins/wtsynth/phl_inactive.png create mode 100644 plugins/wtsynth/phr_active.png create mode 100644 plugins/wtsynth/phr_inactive.png create mode 100644 plugins/wtsynth/pm_active.png create mode 100644 plugins/wtsynth/pm_inactive.png create mode 100644 plugins/wtsynth/rm_active.png create mode 100644 plugins/wtsynth/rm_inactive.png create mode 100644 plugins/wtsynth/saw_active.png create mode 100644 plugins/wtsynth/saw_inactive.png create mode 100644 plugins/wtsynth/sin_active.png create mode 100644 plugins/wtsynth/sin_inactive.png create mode 100644 plugins/wtsynth/smooth_active.png create mode 100644 plugins/wtsynth/smooth_inactive.png create mode 100644 plugins/wtsynth/sqr_active.png create mode 100644 plugins/wtsynth/sqr_inactive.png create mode 100644 plugins/wtsynth/tri_active.png create mode 100644 plugins/wtsynth/tri_inactive.png create mode 100644 plugins/wtsynth/wavegraph.png diff --git a/data/themes/default/style.css b/data/themes/default/style.css index 63f007fe1..98437e2e7 100644 --- a/data/themes/default/style.css +++ b/data/themes/default/style.css @@ -608,6 +608,31 @@ sidInstrumentView knob { qproperty-lineWidth: 2; } +WTSynthView knob#aKnob { + color: rgb( 255, 255, 255 ); + qproperty-outerColor: rgb( 255, 255, 255 ); + qproperty-innerRadius: 1; + qproperty-outerRadius: 9; + qproperty-lineWidth: 2; +} + +WTSynthView knob#bKnob { + color: rgb( 255, 255, 255 ); + qproperty-outerColor: rgb( 255, 255, 255 ); + qproperty-innerRadius: 1; + qproperty-outerRadius: 9; + qproperty-lineWidth: 2; +} + +WTSynthView knob#mixKnob { + color: rgb( 255, 255, 255 ); + qproperty-outerColor: rgb( 255, 255, 255 ); + qproperty-innerRadius: 1; + qproperty-outerRadius: 15; + qproperty-lineWidth: 2; +} + + /* palette information - each colour definition must be on a single line, and the line must begin with "palette:", with no leading whitespace * colour codes MUST be of the form #RRGGBB */ diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp new file mode 100644 index 000000000..85a9f8d6e --- /dev/null +++ b/plugins/wtsynth/WTSynth.cpp @@ -0,0 +1,1096 @@ +/* + * WTSynth.cpp - work in process, name pending + * + * Copyright (c) 2014 Vesa Kivimäki + * + * 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 +#include + +#include "WTSynth.h" +#include "engine.h" +#include "InstrumentTrack.h" +#include "templates.h" +#include "tooltip.h" +#include "song.h" +#include "lmms_math.h" + +#include "embed.h" + + +extern "C" +{ + +Plugin::Descriptor PLUGIN_EXPORT wtsynth_plugin_descriptor = +{ + STRINGIFY( PLUGIN_NAME ), + "wtsynth", + QT_TRANSLATE_NOOP( "pluginBrowser", + "4-oscillator modulatable wavetable synth" ), + "Vesa Kivimäki ", + 0x0100, + Plugin::Instrument, + new PluginPixmapLoader( "logo" ), + NULL, + NULL +} ; + +} + + +WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, + float * _B1wave, float * _B2wave, + int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph ) : + m_A1wave( _A1wave ), + m_A2wave( _A2wave ), + m_B1wave( _B1wave ), + m_B2wave( _B2wave ), + m_amod( _amod ), + m_bmod( _bmod ), + m_samplerate( _samplerate ), + m_nph( _nph ) +{ + m_lphase[A1_OSC] = 0.0f; + m_lphase[A2_OSC] = 0.0f; + m_lphase[B1_OSC] = 0.0f; + m_lphase[B2_OSC] = 0.0f; + m_rphase[A1_OSC] = 0.0f; + m_rphase[A2_OSC] = 0.0f; + m_rphase[B1_OSC] = 0.0f; + m_rphase[B2_OSC] = 0.0f; + updateFrequencies(); +} + + + +WTSynthObject::~WTSynthObject() +{ +} + + +void WTSynthObject::renderOutput( sampleFrame * _abuf, sampleFrame * _bbuf, fpp_t _frames ) +{ + for( fpp_t frame = 0; frame < _frames; frame++ ) + { + float frac; + + // A2 + frac = fraction( m_lphase[A2_OSC] ); + sample_t A2_L = ( m_A2wave[ int( m_lphase[A2_OSC] ) % WAVELEN ] * ( 1 - frac ) ) + + ( m_A2wave[ int( m_lphase[A2_OSC] + 1 ) % WAVELEN ] * frac ); + A2_L *= m_lvol[A2_OSC]; + frac = fraction( m_rphase[A2_OSC] ); + sample_t A2_R = ( m_A2wave[ int( m_rphase[A2_OSC] ) % WAVELEN ] * ( 1 - frac ) ) + + ( m_A2wave[ int( m_rphase[A2_OSC] + 1 ) % WAVELEN ] * frac ); + A2_R *= m_rvol[A2_OSC]; + + // B2 + frac = fraction( m_lphase[B2_OSC] ); + sample_t B2_L = ( m_A2wave[ int( m_lphase[B2_OSC] ) % WAVELEN ] * ( 1 - frac ) ) + + ( m_B2wave[ int( m_lphase[B2_OSC] + 1 ) % WAVELEN ] * frac ); + B2_L *= m_lvol[B2_OSC]; + frac = fraction( m_rphase[B2_OSC] ); + sample_t B2_R = ( m_A2wave[ int( m_rphase[B2_OSC] ) % WAVELEN ] * ( 1 - frac ) ) + + ( m_A2wave[ int( m_rphase[B2_OSC] + 1 ) % WAVELEN ] * frac ); + B2_R *= m_rvol[B2_OSC]; + + // put phases of 1-series oscs into variables because phase modulation might happen + float A1_lphase = m_lphase[A1_OSC]; + float A1_rphase = m_rphase[A1_OSC]; + float B1_lphase = m_lphase[B1_OSC]; + float B1_rphase = m_rphase[B1_OSC]; + + // if phase mod, add to phases + if( m_amod == MOD_PM ) + { + A1_lphase = fmodf( A1_lphase + A2_L * WAVELEN, WAVELEN ); + A1_rphase = fmodf( A1_rphase + A2_R * WAVELEN, WAVELEN ); + } + if( m_bmod == MOD_PM ) + { + B1_lphase = fmodf( B1_lphase + B2_L * WAVELEN, WAVELEN ); + B1_rphase = fmodf( B1_rphase + B2_R * WAVELEN, WAVELEN ); + } + + // A1 + frac = fraction( A1_lphase ); + sample_t A1_L = ( m_A1wave[ int( A1_lphase ) % WAVELEN ] * ( 1 - frac ) ) + + ( m_A1wave[ int( A1_lphase + 1 ) % WAVELEN ] * frac ); + frac = fraction( A1_rphase ); + sample_t A1_R = ( m_A1wave[ int( A1_rphase ) % WAVELEN ] * ( 1 - frac ) ) + + ( m_A1wave[ int( A1_rphase + 1 ) % WAVELEN ] * frac ); + + // B1 + frac = fraction( B1_lphase ); + sample_t B1_L = ( m_B1wave[ int( B1_lphase ) % WAVELEN ] * ( 1 - frac ) ) + + ( m_B1wave[ int( B1_lphase + 1 ) % WAVELEN ] * frac ); + frac = fraction( B1_rphase ); + sample_t B1_R = ( m_B1wave[ int( B1_rphase ) % WAVELEN ] * ( 1 - frac ) ) + + ( m_B1wave[ int( B1_rphase + 1 ) % WAVELEN ] * frac ); + + // A-series modulation (other than phase mod) + switch( m_amod ) + { + case MOD_MIX: + A1_L += A2_L; + A1_R += A2_R; + break; + case MOD_AM: + A1_L *= qMax( 0.0f, A2_L + 1.0f ); + A1_R *= qMax( 0.0f, A2_R + 1.0f ); + break; + case MOD_RM: + A1_L *= A2_L; + A1_R *= A2_R; + break; + } + _abuf[frame][0] = A1_L * m_lvol[A1_OSC]; + _abuf[frame][1] = A1_R * m_rvol[B1_OSC]; + + // B-series modulation (other than phase mod) + switch( m_bmod ) + { + case MOD_MIX: + B1_L += B2_L; + B1_R += B2_R; + break; + case MOD_AM: + B1_L *= qAbs( B2_L + 1.0f ); + B1_R *= qAbs( B2_R + 1.0f ); + break; + case MOD_RM: + B1_L *= B2_L; + B1_R *= B2_R; + break; + } + _bbuf[frame][0] = B1_L; + _bbuf[frame][1] = B1_R; + + // update phases + for( int i = 0; i < NUM_OSCS; i++ ) + { + m_lphase[i] += ( static_cast( WAVELEN ) / ( m_samplerate / ( m_nph->frequency() * m_lfreq[i] ) ) ); + m_lphase[i] = fmodf( m_lphase[i], WAVELEN ); + m_rphase[i] += ( static_cast( WAVELEN ) / ( m_samplerate / ( m_nph->frequency() * m_rfreq[i] ) ) ); + m_rphase[i] = fmodf( m_rphase[i], WAVELEN ); + } + } + +} + + +void WTSynthObject::updateFrequencies() +{ + // calculate frequencies + for( int i = 0; i < NUM_OSCS; i++ ) + { + m_lfreq[i] = ( m_mult[i] / 8 ) * powf( 2, m_ltune[i] / 1200 ); + m_rfreq[i] = ( m_mult[i] / 8 ) * powf( 2, m_rtune[i] / 1200 ); + } +} + + + +void WTSynthObject::changeVolume( int _osc, float _lvol, float _rvol ) +{ + m_lvol[_osc] = _lvol; + m_rvol[_osc] = _rvol; +} + + +void WTSynthObject::changeMult( int _osc, int _mul ) +{ + m_mult[_osc] = _mul; + updateFrequencies(); +} + + +void WTSynthObject::changeTune( int _osc, float _ltune, float _rtune ) +{ + m_ltune[_osc] = _ltune; + m_rtune[_osc] = _rtune; + updateFrequencies(); +} + + + +WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : + Instrument( _instrument_track, &wtsynth_plugin_descriptor ), + + a1_vol( 100.0f, 0.0f, 200.0f, 0.1f, this, tr( "Volume A1" ) ), + a2_vol( 100.0f, 0.0f, 200.0f, 0.1f, this, tr( "Volume A2" ) ), + b1_vol( 100.0f, 0.0f, 200.0f, 0.1f, this, tr( "Volume B1" ) ), + b2_vol( 100.0f, 0.0f, 200.0f, 0.1f, this, tr( "Volume B2" ) ), + + a1_pan( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "Panning A1" ) ), + a2_pan( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "Panning A2" ) ), + b1_pan( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "Panning B1" ) ), + b2_pan( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "Panning B2" ) ), + + a1_mult( 8, 1, 16, this, tr( "Freq. multiplier A1" ) ), + a2_mult( 8, 1, 16, this, tr( "Freq. multiplier A2" ) ), + b1_mult( 8, 1, 16, this, tr( "Freq. multiplier B1" ) ), + b2_mult( 8, 1, 16, this, tr( "Freq. multiplier B2" ) ), + + a1_ltune( 0.0f, -600.0f, 600.0f, 1.0f, this, tr( "Left detune A1" ) ), + a2_ltune( 0.0f, -600.0f, 600.0f, 1.0f, this, tr( "Left detune A2" ) ), + b1_ltune( 0.0f, -600.0f, 600.0f, 1.0f, this, tr( "Left detune B1" ) ), + b2_ltune( 0.0f, -600.0f, 600.0f, 1.0f, this, tr( "Left detune B2" ) ), + + a1_rtune( 0.0f, -600.0f, 600.0f, 1.0f, this, tr( "Right detune A1" ) ), + a2_rtune( 0.0f, -600.0f, 600.0f, 1.0f, this, tr( "Right detune A2" ) ), + b1_rtune( 0.0f, -600.0f, 600.0f, 1.0f, this, tr( "Right detune B1" ) ), + b2_rtune( 0.0f, -600.0f, 600.0f, 1.0f, this, tr( "Right detune B2" ) ), + + a1_graph( -1.0f, 1.0f, WAVELEN, this ), + a2_graph( -1.0f, 1.0f, WAVELEN, this ), + b1_graph( -1.0f, 1.0f, WAVELEN, this ), + b2_graph( -1.0f, 1.0f, WAVELEN, this ), + + m_abmix( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "A-B Mix" ) ), + m_amod( 0, 0, 3, this, tr( "A2-A1 modulation" ) ), + m_bmod( 0, 0, 3, this, tr( "B2-B1 modulation" ) ), + + m_selectedGraph( 0, 0, 3, this, tr( "Selected graph" ) ) +{ + connect( &a1_vol, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( A1_OSC ) ) ); + connect( &a2_vol, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( A2_OSC ) ) ); + connect( &b1_vol, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( B1_OSC ) ) ); + connect( &b2_vol, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( B2_OSC ) ) ); + + connect( &a1_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( A1_OSC ) ) ); + connect( &a2_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( A2_OSC ) ) ); + connect( &b1_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( B1_OSC ) ) ); + connect( &b2_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( B2_OSC ) ) ); + + connect( &a1_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult( A1_OSC ) ) ); + connect( &a2_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult( A2_OSC ) ) ); + connect( &b1_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult( B1_OSC ) ) ); + connect( &b2_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult( B2_OSC ) ) ); + + connect( &a1_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( A1_OSC ) ) ); + connect( &a2_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( A2_OSC ) ) ); + connect( &b1_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( B1_OSC ) ) ); + connect( &b2_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( B2_OSC ) ) ); + + connect( &a1_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( A1_OSC ) ) ); + connect( &a2_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( A2_OSC ) ) ); + connect( &b1_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( B1_OSC ) ) ); + connect( &b2_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( B2_OSC ) ) ); + + a1_graph.setWaveToSine(); + a2_graph.setWaveToSine(); + b1_graph.setWaveToSine(); + b2_graph.setWaveToSine(); +} + + +WTSynthInstrument::~WTSynthInstrument() +{ +} + + +void WTSynthInstrument::playNote( NotePlayHandle * _n, + sampleFrame * _working_buffer ) +{ + if ( _n->totalFramesPlayed() == 0 || _n->m_pluginData == NULL ) + { + WTSynthObject * w = new WTSynthObject( const_cast( a1_graph.samples() ), + const_cast( a2_graph.samples() ), + const_cast( b1_graph.samples() ), + const_cast( b2_graph.samples() ), + m_amod.value(), m_bmod.value(), + engine::mixer()->processingSampleRate(), _n ); + + w -> changeMult( A1_OSC, a1_mult.value() ); + w -> changeMult( A2_OSC, a2_mult.value() ); + w -> changeMult( B1_OSC, b1_mult.value() ); + w -> changeMult( B2_OSC, b2_mult.value() ); + + w -> changeTune( A1_OSC, a1_ltune.value(), a1_rtune.value() ); + w -> changeTune( A2_OSC, a2_ltune.value(), a2_rtune.value() ); + w -> changeTune( B1_OSC, b1_ltune.value(), b1_rtune.value() ); + w -> changeTune( B2_OSC, b2_ltune.value(), b2_rtune.value() ); + + w -> changeVolume( A1_OSC, leftCh( a1_vol.value(), a1_pan.value() ), rightCh( a1_vol.value(), a1_pan.value() ) ); + w -> changeVolume( A2_OSC, leftCh( a2_vol.value(), a2_pan.value() ), rightCh( a2_vol.value(), a2_pan.value() ) ); + w -> changeVolume( B1_OSC, leftCh( b1_vol.value(), b1_pan.value() ), rightCh( b1_vol.value(), b1_pan.value() ) ); + w -> changeVolume( B2_OSC, leftCh( b2_vol.value(), b2_pan.value() ), rightCh( b2_vol.value(), b2_pan.value() ) ); + + _n->m_pluginData = w; + } + + const fpp_t frames = _n->framesLeftForCurrentPeriod(); + + WTSynthObject * w = static_cast( _n->m_pluginData ); + + // update oscs if needed + + if( m_volChanged[A1_OSC] ) w-> changeVolume( A1_OSC, leftCh( a1_vol.value(), a1_pan.value() ), rightCh( a1_vol.value(), a1_pan.value() ) ); + if( m_volChanged[A2_OSC] ) w-> changeVolume( A2_OSC, leftCh( a2_vol.value(), a2_pan.value() ), rightCh( a2_vol.value(), a2_pan.value() ) ); + if( m_volChanged[B1_OSC] ) w-> changeVolume( B1_OSC, leftCh( b1_vol.value(), b1_pan.value() ), rightCh( b1_vol.value(), b1_pan.value() ) ); + if( m_volChanged[B2_OSC] ) w-> changeVolume( B2_OSC, leftCh( b2_vol.value(), b2_pan.value() ), rightCh( b2_vol.value(), b2_pan.value() ) ); + + if( m_tuneChanged[A1_OSC] ) w-> changeTune( A1_OSC, a1_ltune.value(), a1_rtune.value() ); + if( m_tuneChanged[A2_OSC] ) w-> changeTune( A2_OSC, a2_ltune.value(), a2_rtune.value() ); + if( m_tuneChanged[B1_OSC] ) w-> changeTune( B1_OSC, b1_ltune.value(), b1_rtune.value() ); + if( m_tuneChanged[B2_OSC] ) w-> changeTune( B2_OSC, b2_ltune.value(), b2_rtune.value() ); + + if( m_multChanged[A1_OSC] ) w-> changeMult( A1_OSC, a1_mult.value() ); + if( m_multChanged[A2_OSC] ) w-> changeMult( A2_OSC, a2_mult.value() ); + if( m_multChanged[B1_OSC] ) w-> changeMult( B1_OSC, b1_mult.value() ); + if( m_multChanged[B2_OSC] ) w-> changeMult( B2_OSC, b2_mult.value() ); + + sampleFrame * abuf = new sampleFrame[frames]; + + sampleFrame * bbuf = new sampleFrame[frames]; + + w-> renderOutput( abuf, bbuf, frames ); + for( fpp_t f=0; f < frames; f++ ) + { + const float amix = ( ( m_abmix.value( f ) - 100.0 ) / -200.0 ); + const float bmix = 1.0 - amix; + _working_buffer[f][0] = ( abuf[f][0] * amix ) + + ( bbuf[f][0] * bmix ); + _working_buffer[f][1] = ( abuf[f][1] * amix ) + + ( bbuf[f][1] * bmix ); + } + + delete[] abuf; + delete[] bbuf; + + applyRelease( _working_buffer, _n ); + + instrumentTrack()->processAudioBuffer( _working_buffer, frames, _n ); +} + + +void WTSynthInstrument::deleteNotePluginData( NotePlayHandle * _n ) +{ + delete static_cast( _n->m_pluginData ); +} + + +void WTSynthInstrument::saveSettings( QDomDocument & _doc, + QDomElement & _this ) +{ + a1_vol.saveSettings( _doc, _this, "a1_vol" ); + a2_vol.saveSettings( _doc, _this, "a2_vol" ); + b1_vol.saveSettings( _doc, _this, "b1_vol" ); + b2_vol.saveSettings( _doc, _this, "b2_vol" ); + + a1_pan.saveSettings( _doc, _this, "a1_pan" ); + a2_pan.saveSettings( _doc, _this, "a2_pan" ); + b1_pan.saveSettings( _doc, _this, "b1_pan" ); + b2_pan.saveSettings( _doc, _this, "b2_pan" ); + + a1_mult.saveSettings( _doc, _this, "a1_mult" ); + a2_mult.saveSettings( _doc, _this, "a2_mult" ); + b1_mult.saveSettings( _doc, _this, "b1_mult" ); + b2_mult.saveSettings( _doc, _this, "b2_mult" ); + + a1_ltune.saveSettings( _doc, _this, "a1_ltune" ); + a2_ltune.saveSettings( _doc, _this, "a2_ltune" ); + b1_ltune.saveSettings( _doc, _this, "b1_ltune" ); + b2_ltune.saveSettings( _doc, _this, "b2_ltune" ); + + a1_rtune.saveSettings( _doc, _this, "a1_rtune" ); + a2_rtune.saveSettings( _doc, _this, "a2_rtune" ); + b1_rtune.saveSettings( _doc, _this, "b1_rtune" ); + b2_rtune.saveSettings( _doc, _this, "b2_rtune" ); + + // save graphs + QString sampleString; + + base64::encode( (const char *)a1_graph.samples(), a1_graph.length() * sizeof(float), sampleString ); + _this.setAttribute( "a1_wave", sampleString ); + base64::encode( (const char *)a2_graph.samples(), a2_graph.length() * sizeof(float), sampleString ); + _this.setAttribute( "a2_wave", sampleString ); + base64::encode( (const char *)b1_graph.samples(), b1_graph.length() * sizeof(float), sampleString ); + _this.setAttribute( "b1_wave", sampleString ); + base64::encode( (const char *)b2_graph.samples(), b2_graph.length() * sizeof(float), sampleString ); + _this.setAttribute( "b2_wave", sampleString ); + + m_abmix.saveSettings( _doc, _this, "abmix" ); + m_amod.saveSettings( _doc, _this, "amod" ); + m_bmod.saveSettings( _doc, _this, "bmod" ); + m_selectedGraph.saveSettings( _doc, _this, "selgraph" ); +} + + +void WTSynthInstrument::loadSettings( const QDomElement & _this ) +{ + a1_vol.loadSettings( _this, "a1_vol" ); + a2_vol.loadSettings( _this, "a2_vol" ); + b1_vol.loadSettings( _this, "b1_vol" ); + b2_vol.loadSettings( _this, "b2_vol" ); + + a1_pan.loadSettings( _this, "a1_pan" ); + a2_pan.loadSettings( _this, "a2_pan" ); + b1_pan.loadSettings( _this, "b1_pan" ); + b2_pan.loadSettings( _this, "b2_pan" ); + + a1_mult.loadSettings( _this, "a1_mult" ); + a2_mult.loadSettings( _this, "a2_mult" ); + b1_mult.loadSettings( _this, "b1_mult" ); + b2_mult.loadSettings( _this, "b2_mult" ); + + a1_ltune.loadSettings( _this, "a1_ltune" ); + a2_ltune.loadSettings( _this, "a2_ltune" ); + b1_ltune.loadSettings( _this, "b1_ltune" ); + b2_ltune.loadSettings( _this, "b2_ltune" ); + + a1_rtune.loadSettings( _this, "a1_rtune" ); + a2_rtune.loadSettings( _this, "a2_rtune" ); + b1_rtune.loadSettings( _this, "b1_rtune" ); + b2_rtune.loadSettings( _this, "b2_rtune" ); + + // load graphs + int size = 0; + char * dst = 0; + + base64::decode( _this.attribute( "a1_wave"), &dst, &size ); + a1_graph.setSamples( (float*) dst ); + base64::decode( _this.attribute( "a2_wave"), &dst, &size ); + a2_graph.setSamples( (float*) dst ); + base64::decode( _this.attribute( "b1_wave"), &dst, &size ); + b1_graph.setSamples( (float*) dst ); + base64::decode( _this.attribute( "b2_wave"), &dst, &size ); + b2_graph.setSamples( (float*) dst ); + + delete[] dst; + + m_abmix.loadSettings( _this, "abmix" ); + m_amod.loadSettings( _this, "amod" ); + m_bmod.loadSettings( _this, "bmod" ); + m_selectedGraph.loadSettings( _this, "selgraph" ); +} + + +QString WTSynthInstrument::nodeName() const +{ + return( wtsynth_plugin_descriptor.name ); +} + + +PluginView * WTSynthInstrument::instantiateView( QWidget * _parent ) +{ + return( new WTSynthView( this, _parent ) ); +} + + +void WTSynthInstrument::updateVolumes( int _osc ) +{ + m_volChanged[_osc] = true; +} +void WTSynthInstrument::updateMult( int _osc ) +{ + m_multChanged[_osc] = true; +} +void WTSynthInstrument::updateTunes( int _osc ) +{ + m_tuneChanged[_osc] = true; +} + + + + + + +#define makeknob( name, x, y, hint, unit, oname ) \ + name = new knob( knobBright_26, this); \ + name ->move( x, y ); \ + name ->setHintText( tr( hint ) + " ", unit ); \ + name ->setObjectName( oname ); + +#define A1ROW 25 +#define A2ROW 47 +#define B1ROW 69 +#define B2ROW 91 + +WTSynthView::WTSynthView( Instrument * _instrument, + QWidget * _parent ) : + InstrumentView( _instrument, _parent ) +{ + setAutoFillBackground( true ); + QPalette pal; + + pal.setBrush( backgroundRole(), + PLUGIN_NAME::getIconPixmap( "artwork" ) ); + setPalette( pal ); + +// knobs... lots of em + + makeknob( a1_volKnob, 96, A1ROW, "Volume", "%", "aKnob" ) + makeknob( a2_volKnob, 96, A2ROW, "Volume", "%", "aKnob" ) + makeknob( b1_volKnob, 96, B1ROW, "Volume", "%", "bKnob" ) + makeknob( b2_volKnob, 96, B2ROW, "Volume", "%", "bKnob" ) + + makeknob( a1_panKnob, 121, A1ROW, "Panning", "", "aKnob" ) + makeknob( a2_panKnob, 121, A2ROW, "Panning", "", "aKnob" ) + makeknob( b1_panKnob, 121, B1ROW, "Panning", "", "bKnob" ) + makeknob( b2_panKnob, 121, B2ROW, "Panning", "", "bKnob" ) + + makeknob( a1_multKnob, 146, A1ROW, "Freq. multiplier", "/8", "aKnob" ) + makeknob( a2_multKnob, 146, A2ROW, "Freq. multiplier", "/8", "aKnob" ) + makeknob( b1_multKnob, 146, B1ROW, "Freq. multiplier", "/8", "bKnob" ) + makeknob( b2_multKnob, 146, B2ROW, "Freq. multiplier", "/8", "bKnob" ) + + makeknob( a1_ltuneKnob, 171, A1ROW, "Left detune", " cents", "aKnob" ) + makeknob( a2_ltuneKnob, 171, A2ROW, "Left detune", " cents", "aKnob" ) + makeknob( b1_ltuneKnob, 171, B1ROW, "Left detune", " cents", "bKnob" ) + makeknob( b2_ltuneKnob, 171, B2ROW, "Left detune", " cents", "bKnob" ) + + makeknob( a1_rtuneKnob, 196, A1ROW, "Right detune", " cents", "aKnob" ) + makeknob( a2_rtuneKnob, 196, A2ROW, "Right detune", " cents", "aKnob" ) + makeknob( b1_rtuneKnob, 196, B1ROW, "Right detune", " cents", "bKnob" ) + makeknob( b2_rtuneKnob, 196, B2ROW, "Right detune", " cents", "bKnob" ) + + makeknob( m_abmixKnob, 4, 4, "A-B Mix", "", "mixKnob" ) + +// let's set volume knobs + a1_volKnob -> setVolumeKnob( true ); + a2_volKnob -> setVolumeKnob( true ); + b1_volKnob -> setVolumeKnob( true ); + b2_volKnob -> setVolumeKnob( true ); + + +// button groups next. +// graph select buttons + pixmapButton * a1_selectButton = new pixmapButton( this, NULL ); + a1_selectButton -> move( 4, 121 ); + a1_selectButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "a1_active" ) ); + a1_selectButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "a1_inactive" ) ); + toolTip::add( a1_selectButton, tr( "Select oscillator A1") ); + + pixmapButton * a2_selectButton = new pixmapButton( this, NULL ); + a2_selectButton -> move( 44, 121 ); + a2_selectButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "a2_active" ) ); + a2_selectButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "a2_inactive" ) ); + toolTip::add( a2_selectButton, tr( "Select oscillator A2") ); + + pixmapButton * b1_selectButton = new pixmapButton( this, NULL ); + b1_selectButton -> move( 84, 121 ); + b1_selectButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "b1_active" ) ); + b1_selectButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "b1_inactive" ) ); + toolTip::add( b1_selectButton, tr( "Select oscillator B1") ); + + pixmapButton * b2_selectButton = new pixmapButton( this, NULL ); + b2_selectButton -> move( 124, 121 ); + b2_selectButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "b2_active" ) ); + b2_selectButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "b2_inactive" ) ); + toolTip::add( b2_selectButton, tr( "Select oscillator B2") ); + + m_selectedGraphGroup = new automatableButtonGroup( this ); + m_selectedGraphGroup -> addButton( a1_selectButton ); + m_selectedGraphGroup -> addButton( a2_selectButton ); + m_selectedGraphGroup -> addButton( b1_selectButton ); + m_selectedGraphGroup -> addButton( b2_selectButton ); + +// A-modulation button group + pixmapButton * amod_mixButton = new pixmapButton( this, NULL ); + amod_mixButton -> move( 4, 40 ); + amod_mixButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "mix_active" ) ); + amod_mixButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "mix_inactive" ) ); + toolTip::add( amod_mixButton, tr( "Mix output of A2 to A1" ) ); + + pixmapButton * amod_amButton = new pixmapButton( this, NULL ); + amod_amButton -> move( 4, 56 ); + amod_amButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "am_active" ) ); + amod_amButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "am_inactive" ) ); + toolTip::add( amod_amButton, tr( "Modulate amplitude of A1 with output of A2" ) ); + + pixmapButton * amod_rmButton = new pixmapButton( this, NULL ); + amod_rmButton -> move( 4, 72 ); + amod_rmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "rm_active" ) ); + amod_rmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "rm_inactive" ) ); + toolTip::add( amod_rmButton, tr( "Ring-modulate A1 and A2" ) ); + + pixmapButton * amod_pmButton = new pixmapButton( this, NULL ); + amod_pmButton -> move( 4, 104 ); + amod_pmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_active" ) ); + amod_pmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_inactive" ) ); + toolTip::add( amod_pmButton, tr( "Modulate phase of A1 with output of A2" ) ); + + m_aModGroup = new automatableButtonGroup( this ); + m_aModGroup -> addButton( amod_mixButton ); + m_aModGroup -> addButton( amod_amButton ); + m_aModGroup -> addButton( amod_rmButton ); + m_aModGroup -> addButton( amod_pmButton ); + +// B-modulation button group + pixmapButton * bmod_mixButton = new pixmapButton( this, NULL ); + bmod_mixButton -> move( 44, 40 ); + bmod_mixButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "mix_active" ) ); + bmod_mixButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "mix_inactive" ) ); + toolTip::add( bmod_mixButton, tr( "Mix output of B2 to B1" ) ); + + pixmapButton * bmod_amButton = new pixmapButton( this, NULL ); + bmod_amButton -> move( 44, 56 ); + bmod_amButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "am_active" ) ); + bmod_amButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "am_inactive" ) ); + toolTip::add( bmod_amButton, tr( "Modulate amplitude of B1 with output of B2" ) ); + + pixmapButton * bmod_rmButton = new pixmapButton( this, NULL ); + bmod_rmButton -> move( 44, 72 ); + bmod_rmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "rm_active" ) ); + bmod_rmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "rm_inactive" ) ); + toolTip::add( bmod_rmButton, tr( "Ring-modulate B1 and B2" ) ); + + pixmapButton * bmod_pmButton = new pixmapButton( this, NULL ); + bmod_pmButton -> move( 44, 104 ); + bmod_pmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_active" ) ); + bmod_pmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_inactive" ) ); + toolTip::add( bmod_pmButton, tr( "Modulate phase of B1 with output of B2" ) ); + + m_bModGroup = new automatableButtonGroup( this ); + m_bModGroup -> addButton( bmod_mixButton ); + m_bModGroup -> addButton( bmod_amButton ); + m_bModGroup -> addButton( bmod_rmButton ); + m_bModGroup -> addButton( bmod_pmButton ); + + +// graph widgets + pal = QPalette(); + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap("wavegraph") ); +// a1 graph + a1_graph = new graph( this, graph::LinearStyle, 224, 105 ); + a1_graph->move( 4, 141 ); + a1_graph->setAutoFillBackground( true ); + a1_graph->setGraphColor( QColor( 255, 255, 255 ) ); + toolTip::add( a1_graph, tr ( "Draw your own waveform here by dragging your mouse on this graph." ) ); + a1_graph->setPalette( pal ); + +// a2 graph + a2_graph = new graph( this, graph::LinearStyle, 224, 105 ); + a2_graph->move( 4, 141 ); + a2_graph->setAutoFillBackground( true ); + a2_graph->setGraphColor( QColor( 255, 255, 255 ) ); + toolTip::add( a2_graph, tr ( "Draw your own waveform here by dragging your mouse on this graph." ) ); + a2_graph->setPalette( pal ); + +// b1 graph + b1_graph = new graph( this, graph::LinearStyle, 224, 105 ); + b1_graph->move( 4, 141 ); + b1_graph->setAutoFillBackground( true ); + b1_graph->setGraphColor( QColor( 255, 255, 255 ) ); + toolTip::add( b1_graph, tr ( "Draw your own waveform here by dragging your mouse on this graph." ) ); + b1_graph->setPalette( pal ); + +// b2 graph + b2_graph = new graph( this, graph::LinearStyle, 224, 105 ); + b2_graph->move( 4, 141 ); + b2_graph->setAutoFillBackground( true ); + b2_graph->setGraphColor( QColor( 255, 255, 255 ) ); + toolTip::add( b2_graph, tr ( "Draw your own waveform here by dragging your mouse on this graph." ) ); + b2_graph->setPalette( pal ); + + +// misc pushbuttons + m_sinWaveButton = new pixmapButton( this, tr( "Sine wave" ) ); + m_sinWaveButton -> move ( 232, 182 ); + m_sinWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "sin_active" ) ); + m_sinWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "sin_inactive" ) ); + toolTip::add( m_sinWaveButton, tr( "Click for sine wave" ) ); + + m_triWaveButton = new pixmapButton( this, tr( "Triangle wave" ) ); + m_triWaveButton -> move ( 232, 198 ); + m_triWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "tri_active" ) ); + m_triWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "tri_inactive" ) ); + toolTip::add( m_triWaveButton, tr( "Click for triangle wave" ) ); + + m_sawWaveButton = new pixmapButton( this, tr( "Triangle wave" ) ); + m_sawWaveButton -> move ( 232, 214 ); + m_sawWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "saw_active" ) ); + m_sawWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "saw_inactive" ) ); + toolTip::add( m_sawWaveButton, tr( "Click for saw wave" ) ); + + m_sqrWaveButton = new pixmapButton( this, tr( "Square wave" ) ); + m_sqrWaveButton -> move ( 232, 230 ); + m_sqrWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "sqr_active" ) ); + m_sqrWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "sqr_inactive" ) ); + toolTip::add( m_sqrWaveButton, tr( "Click for square wave" ) ); + + m_normalizeButton = new pixmapButton( this, tr( "Normalize" ) ); + m_normalizeButton -> move ( 232, 134 ); + m_normalizeButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "norm_active" ) ); + m_normalizeButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "norm_inactive" ) ); + toolTip::add( m_normalizeButton, tr( "Click to normalize" ) ); + + m_invertButton = new pixmapButton( this, tr( "Invert" ) ); + m_invertButton -> move ( 232, 150 ); + m_invertButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "inv_active" ) ); + m_invertButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "inv_inactive" ) ); + toolTip::add( m_invertButton, tr( "Click to invert" ) ); + + m_smoothButton = new pixmapButton( this, tr( "Smooth" ) ); + m_smoothButton -> move ( 232, 166 ); + m_smoothButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_active" ) ); + m_smoothButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_inactive" ) ); + toolTip::add( m_smoothButton, tr( "Click to smooth" ) ); + + m_phaseLeftButton = new pixmapButton( this, tr( "Phase left" ) ); + m_phaseLeftButton -> move ( 200, 134 ); + m_phaseLeftButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "phl_active" ) ); + m_phaseLeftButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "phl_inactive" ) ); + toolTip::add( m_phaseLeftButton, tr( "Click to shift phase by -15 degrees" ) ); + + m_phaseRightButton = new pixmapButton( this, tr( "Phase right" ) ); + m_phaseRightButton -> move ( 216, 134 ); + m_phaseRightButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "phr_active" ) ); + m_phaseRightButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "phr_inactive" ) ); + toolTip::add( m_phaseRightButton, tr( "Click to shift phase by +15 degrees" ) ); + + connect( m_sinWaveButton, SIGNAL( clicked() ), this, SLOT( sinWaveClicked() ) ); + connect( m_triWaveButton, SIGNAL( clicked() ), this, SLOT( triWaveClicked() ) ); + connect( m_sawWaveButton, SIGNAL( clicked() ), this, SLOT( sawWaveClicked() ) ); + connect( m_sqrWaveButton, SIGNAL( clicked() ), this, SLOT( sqrWaveClicked() ) ); + connect( m_normalizeButton, SIGNAL( clicked() ), this, SLOT( normalizeClicked() ) ); + connect( m_invertButton, SIGNAL( clicked() ), this, SLOT( invertClicked() ) ); + connect( m_phaseLeftButton, SIGNAL( clicked() ), this, SLOT( phaseLeftClicked() ) ); + connect( m_phaseRightButton, SIGNAL( clicked() ), this, SLOT( phaseRightClicked() ) ); + + connect( a1_selectButton, SIGNAL( clicked() ), this, SLOT( updateLayout() ) ); + connect( a2_selectButton, SIGNAL( clicked() ), this, SLOT( updateLayout() ) ); + connect( b1_selectButton, SIGNAL( clicked() ), this, SLOT( updateLayout() ) ); + connect( b2_selectButton, SIGNAL( clicked() ), this, SLOT( updateLayout() ) ); + + updateLayout(); +} + + +WTSynthView::~WTSynthView() +{ +} + + + +void WTSynthView::updateLayout() +{ + switch( m_selectedGraphGroup->model()->value() ) + { + case A1_OSC: + a1_graph->show(); + a2_graph->hide(); + b1_graph->hide(); + b2_graph->hide(); + break; + case A2_OSC: + a1_graph->hide(); + a2_graph->show(); + b1_graph->hide(); + b2_graph->hide(); + break; + case B1_OSC: + a1_graph->hide(); + a2_graph->hide(); + b1_graph->show(); + b2_graph->hide(); + break; + case B2_OSC: + a1_graph->hide(); + a2_graph->hide(); + b1_graph->hide(); + b2_graph->show(); + break; + } +} + + + +void WTSynthView::sinWaveClicked() +{ + switch( m_selectedGraphGroup->model()->value() ) + { + case A1_OSC: + a1_graph->model()->setWaveToSine(); + engine::getSong()->setModified(); + break; + case A2_OSC: + a2_graph->model()->setWaveToSine(); + engine::getSong()->setModified(); + break; + case B1_OSC: + b1_graph->model()->setWaveToSine(); + engine::getSong()->setModified(); + break; + case B2_OSC: + b2_graph->model()->setWaveToSine(); + engine::getSong()->setModified(); + break; + } +} + + +void WTSynthView::triWaveClicked() +{ + switch( m_selectedGraphGroup->model()->value() ) + { + case A1_OSC: + a1_graph->model()->setWaveToTriangle(); + engine::getSong()->setModified(); + break; + case A2_OSC: + a2_graph->model()->setWaveToTriangle(); + engine::getSong()->setModified(); + break; + case B1_OSC: + b1_graph->model()->setWaveToTriangle(); + engine::getSong()->setModified(); + break; + case B2_OSC: + b2_graph->model()->setWaveToTriangle(); + engine::getSong()->setModified(); + break; + } +} + + +void WTSynthView::sawWaveClicked() +{ + switch( m_selectedGraphGroup->model()->value() ) + { + case A1_OSC: + a1_graph->model()->setWaveToSaw(); + engine::getSong()->setModified(); + break; + case A2_OSC: + a2_graph->model()->setWaveToSaw(); + engine::getSong()->setModified(); + break; + case B1_OSC: + b1_graph->model()->setWaveToSaw(); + engine::getSong()->setModified(); + break; + case B2_OSC: + b2_graph->model()->setWaveToSaw(); + engine::getSong()->setModified(); + break; + } +} + + +void WTSynthView::sqrWaveClicked() +{ + switch( m_selectedGraphGroup->model()->value() ) + { + case A1_OSC: + a1_graph->model()->setWaveToSquare(); + engine::getSong()->setModified(); + break; + case A2_OSC: + a2_graph->model()->setWaveToSquare(); + engine::getSong()->setModified(); + break; + case B1_OSC: + b1_graph->model()->setWaveToSquare(); + engine::getSong()->setModified(); + break; + case B2_OSC: + b2_graph->model()->setWaveToSquare(); + engine::getSong()->setModified(); + break; + } +} + + +void WTSynthView::normalizeClicked() +{ + switch( m_selectedGraphGroup->model()->value() ) + { + case A1_OSC: + a1_graph->model()->normalize(); + engine::getSong()->setModified(); + break; + case A2_OSC: + a2_graph->model()->normalize(); + engine::getSong()->setModified(); + break; + case B1_OSC: + b1_graph->model()->normalize(); + engine::getSong()->setModified(); + break; + case B2_OSC: + b2_graph->model()->normalize(); + engine::getSong()->setModified(); + break; + } +} + + +void WTSynthView::invertClicked() +{ + switch( m_selectedGraphGroup->model()->value() ) + { + case A1_OSC: + a1_graph->model()->invert(); + engine::getSong()->setModified(); + break; + case A2_OSC: + a2_graph->model()->invert(); + engine::getSong()->setModified(); + break; + case B1_OSC: + b1_graph->model()->invert(); + engine::getSong()->setModified(); + break; + case B2_OSC: + b2_graph->model()->invert(); + engine::getSong()->setModified(); + break; + } +} + + +void WTSynthView::smoothClicked() +{ + switch( m_selectedGraphGroup->model()->value() ) + { + case A1_OSC: + a1_graph->model()->smooth(); + engine::getSong()->setModified(); + break; + case A2_OSC: + a2_graph->model()->smooth(); + engine::getSong()->setModified(); + break; + case B1_OSC: + b1_graph->model()->smooth(); + engine::getSong()->setModified(); + break; + case B2_OSC: + b2_graph->model()->smooth(); + engine::getSong()->setModified(); + break; + } +} + + +void WTSynthView::phaseLeftClicked() +{ + switch( m_selectedGraphGroup->model()->value() ) + { + case A1_OSC: + a1_graph->model()->shiftPhase( -15 ); + engine::getSong()->setModified(); + break; + case A2_OSC: + a2_graph->model()->shiftPhase( -15 ); + engine::getSong()->setModified(); + break; + case B1_OSC: + b1_graph->model()->shiftPhase( -15 ); + engine::getSong()->setModified(); + break; + case B2_OSC: + b2_graph->model()->shiftPhase( -15 ); + engine::getSong()->setModified(); + break; + } +} + + +void WTSynthView::phaseRightClicked() +{ + switch( m_selectedGraphGroup->model()->value() ) + { + case A1_OSC: + a1_graph->model()->shiftPhase( 15 ); + engine::getSong()->setModified(); + break; + case A2_OSC: + a2_graph->model()->shiftPhase( 15 ); + engine::getSong()->setModified(); + break; + case B1_OSC: + b1_graph->model()->shiftPhase( 15 ); + engine::getSong()->setModified(); + break; + case B2_OSC: + b2_graph->model()->shiftPhase( 15 ); + engine::getSong()->setModified(); + break; + } +} + + +void WTSynthView::modelChanged() +{ + WTSynthInstrument * w = castModel(); + + a1_volKnob -> setModel( &w -> a1_vol ); + a2_volKnob -> setModel( &w -> a2_vol ); + b1_volKnob -> setModel( &w -> b1_vol ); + b2_volKnob -> setModel( &w -> b2_vol ); + + a1_panKnob -> setModel( &w -> a1_pan ); + a2_panKnob -> setModel( &w -> a2_pan ); + b1_panKnob -> setModel( &w -> b1_pan ); + b2_panKnob -> setModel( &w -> b2_pan ); + + a1_multKnob -> setModel( &w -> a1_mult ); + a2_multKnob -> setModel( &w -> a2_mult ); + b1_multKnob -> setModel( &w -> b1_mult ); + b2_multKnob -> setModel( &w -> b2_mult ); + + a1_ltuneKnob -> setModel( &w -> a1_ltune ); + a2_ltuneKnob -> setModel( &w -> a2_ltune ); + b1_ltuneKnob -> setModel( &w -> b1_ltune ); + b2_ltuneKnob -> setModel( &w -> b2_ltune ); + + a1_rtuneKnob -> setModel( &w -> a1_rtune ); + a2_rtuneKnob -> setModel( &w -> a2_rtune ); + b1_rtuneKnob -> setModel( &w -> b1_rtune ); + b2_rtuneKnob -> setModel( &w -> b2_rtune ); + + m_abmixKnob -> setModel( &w -> m_abmix ); + + m_selectedGraphGroup -> setModel( &w -> m_selectedGraph ); + + m_aModGroup -> setModel( &w -> m_amod ); + m_bModGroup -> setModel( &w -> m_bmod ); + + a1_graph -> setModel( &w -> a1_graph ); + a2_graph -> setModel( &w -> a2_graph ); + b1_graph -> setModel( &w -> b1_graph ); + b2_graph -> setModel( &w -> b2_graph ); + +} + + + + + +extern "C" +{ + +// necessary for getting instance out of shared lib +Plugin * PLUGIN_EXPORT lmms_plugin_main( Model *, void * _data ) +{ + return( new WTSynthInstrument( static_cast( _data ) ) ); +} + + +} + + +#include "moc_WTSynth.cxx" diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index 286c23cb7..b53eb77c5 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -29,10 +29,230 @@ #include "Instrument.h" #include "InstrumentView.h" #include "graph.h" +#include "AutomatableModel.h" +#include "automatable_button.h" #include "knob.h" +#include "NotePlayHandle.h" #include "pixmap_button.h" +const int WAVELEN = 220; +const int MOD_MIX = 0; +const int MOD_AM = 1; +const int MOD_RM = 2; +const int MOD_PM = 3; +const int NUM_MODS = 4; + +const int A1_OSC = 0; +const int A2_OSC = 1; +const int B1_OSC = 2; +const int B2_OSC = 3; +const int NUM_OSCS = 4; + +class WTSynthInstrument; +class WTSynthView; + +class WTSynthObject +{ +public: + WTSynthObject( float * _A1wave, float * _A2wave, + float * _B1wave, float * _B2wave, + int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph ); + virtual ~WTSynthObject(); + + void renderOutput( sampleFrame * _abuf, sampleFrame * _bbuf, fpp_t _frames ); + + void updateFrequencies(); + + void changeVolume( int _osc, float _lvol, float _rvol ); + void changeMult( int _osc, int _mul ); + void changeTune( int _osc, float _ltune, float _rtune ); + +private: + sample_t * m_A1wave; + sample_t * m_A2wave; + sample_t * m_B1wave; + sample_t * m_B2wave; + + float m_lvol [NUM_OSCS]; + float m_rvol [NUM_OSCS]; + int m_mult [NUM_OSCS]; + float m_ltune [NUM_OSCS]; + float m_rtune [NUM_OSCS]; + + int m_amod; + int m_bmod; + + const sample_rate_t m_samplerate; + NotePlayHandle * m_nph; + + float m_lphase [NUM_OSCS]; + float m_rphase [NUM_OSCS]; + + float m_lfreq [NUM_OSCS]; + float m_rfreq [NUM_OSCS]; +}; + +class WTSynthInstrument : public Instrument +{ + Q_OBJECT +public: + WTSynthInstrument( InstrumentTrack * _instrument_track ); + virtual ~WTSynthInstrument(); + + virtual void playNote( NotePlayHandle * _n, + sampleFrame * _working_buffer ); + virtual void deleteNotePluginData( NotePlayHandle * _n ); + + + virtual void saveSettings( QDomDocument & _doc, + QDomElement & _this ); + virtual void loadSettings( const QDomElement & _this ); + + virtual QString nodeName() const; + + virtual f_cnt_t desiredReleaseFrames() const + { + return( 64 ); + } + + virtual PluginView * instantiateView( QWidget * _parent ); + +protected slots: + void updateVolumes( int _osc ); + void updateMult( int _osc ); + void updateTunes( int _osc ); + +private: + inline float leftCh( float _vol, float _pan ) + { + return ( _pan <= 0 ? 1.0 : 1.0 - ( _pan / 100.0 ) ) * _vol; + } + + inline float rightCh( float _vol, float _pan ) + { + return ( _pan >= 0 ? 1.0 : 1.0 + ( _pan / 100.0 ) ) * _vol; + } + + FloatModel a1_vol; + FloatModel a2_vol; + FloatModel b1_vol; + FloatModel b2_vol; + + FloatModel a1_pan; + FloatModel a2_pan; + FloatModel b1_pan; + FloatModel b2_pan; + + IntModel a1_mult; + IntModel a2_mult; + IntModel b1_mult; + IntModel b2_mult; + + FloatModel a1_ltune; + FloatModel a2_ltune; + FloatModel b1_ltune; + FloatModel b2_ltune; + + FloatModel a1_rtune; + FloatModel a2_rtune; + FloatModel b1_rtune; + FloatModel b2_rtune; + + graphModel a1_graph; + graphModel a2_graph; + graphModel b1_graph; + graphModel b2_graph; + + FloatModel m_abmix; + IntModel m_amod; + IntModel m_bmod; + + IntModel m_selectedGraph; + + bool m_volChanged [NUM_OSCS]; + bool m_multChanged [NUM_OSCS]; + bool m_tuneChanged [NUM_OSCS]; + + friend class WTSynthView; +}; + + +class WTSynthView : public InstrumentView +{ + Q_OBJECT +public: + WTSynthView( Instrument * _instrument, + QWidget * _parent ); + virtual ~WTSynthView(); + +protected slots: + void updateLayout(); + + void sinWaveClicked(); + void triWaveClicked(); + void sawWaveClicked(); + void sqrWaveClicked(); + + void smoothClicked(); + void normalizeClicked(); + void invertClicked(); + void phaseLeftClicked(); + void phaseRightClicked(); + +private: + virtual void modelChanged(); + +// knobs + knob * a1_volKnob; + knob * a2_volKnob; + knob * b1_volKnob; + knob * b2_volKnob; + + knob * a1_panKnob; + knob * a2_panKnob; + knob * b1_panKnob; + knob * b2_panKnob; + + knob * a1_multKnob; + knob * a2_multKnob; + knob * b1_multKnob; + knob * b2_multKnob; + + knob * a1_ltuneKnob; + knob * a2_ltuneKnob; + knob * b1_ltuneKnob; + knob * b2_ltuneKnob; + + knob * a1_rtuneKnob; + knob * a2_rtuneKnob; + knob * b1_rtuneKnob; + knob * b2_rtuneKnob; + + knob * m_abmixKnob; + + automatableButtonGroup * m_selectedGraphGroup; + automatableButtonGroup * m_aModGroup; + automatableButtonGroup * m_bModGroup; + + static QPixmap * s_artwork; + + graph * a1_graph; + graph * a2_graph; + graph * b1_graph; + graph * b2_graph; + + pixmapButton * m_sinWaveButton; + pixmapButton * m_triWaveButton; + pixmapButton * m_sawWaveButton; + pixmapButton * m_sqrWaveButton; + pixmapButton * m_normalizeButton; + pixmapButton * m_invertButton; + pixmapButton * m_smoothButton; + pixmapButton * m_phaseLeftButton; + pixmapButton * m_phaseRightButton; + +}; #endif diff --git a/plugins/wtsynth/a1_active.png b/plugins/wtsynth/a1_active.png new file mode 100644 index 0000000000000000000000000000000000000000..c09789d32e7b2ea636f55e145fe074d4331f88fc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<-!2~24nJa0`PlBg3pY5H=O_Iu1CqN1@b#rmUcvOa4nJa0`PlBg3pY5H=O_Iu1CqN@6;UmhL;3Q3l@MwB?`=jNv7l`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C z6)AhVIEGl9PQG&KQj!G6fg=VE30EEkcDw7!ZLI(?*ykT*u-L#bZ@%>fC7^N!Pgg&e IbxsLQ0E1jG%>V!Z literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/a2_active.png b/plugins/wtsynth/a2_active.png new file mode 100644 index 0000000000000000000000000000000000000000..c09789d32e7b2ea636f55e145fe074d4331f88fc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<-!2~24nJa0`PlBg3pY5H=O_Iu1CqN1@b#rmUcvOa4nJa0`PlBg3pY5H=O_Iu1CqN@6;UmhL;3Q3l@MwB?`=jNv7l`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C z6)AhVIEGl9PQG&KQj!G6fg=VE30EEkcDw7!ZLI(?*ykT*u-L#bZ@%>fC7^N!Pgg&e IbxsLQ0E1jG%>V!Z literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/am_active.png b/plugins/wtsynth/am_active.png new file mode 100644 index 0000000000000000000000000000000000000000..c09789d32e7b2ea636f55e145fe074d4331f88fc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<-!2~24nJa0`PlBg3pY5H=O_Iu1CqN1@b#rmUcvOa4nJa0`PlBg3pY5H=O_Iu1CqN@6;UmhL;3Q3l@MwB?`=jNv7l`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C z6)AhVIEGl9PQG&KQj!G6fg=VE30EEkcDw7!ZLI(?*ykT*u-L#bZ@%>fC7^N!Pgg&e IbxsLQ0E1jG%>V!Z literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/artwork.png b/plugins/wtsynth/artwork.png new file mode 100644 index 0000000000000000000000000000000000000000..26b66f53503e776f05e86d8543410ff2aa8523c0 GIT binary patch literal 625 zcmeAS@N?(olHy`uVBq!ia0vp^zd)FS2}rW{oy`JLoCO|{#S9GG!XV7ZFl&wkNUp@w z*OmPqvxumQl2hCoJD`wciEBiObAE1aYF-J0b5UwyNotBhd1gt5g1e`0KzJjcI0FOY zYfl%)kcwMxFER2mFmN0;IPm4|W9BH%(^j4b`IQ;V*mpPIJ@_u6e1r83**AP(?nVR? zF4Kpu2qXhl4_5@zo{Ve~T!u33m`*(S4(?jG9XM?#R{L?(V1OA+k#=Ikm#++~?Zj#a dg>S)WCese)$ZxZBOn_;F!PC{xWt~$(699_VBnJQh literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/b1_active.png b/plugins/wtsynth/b1_active.png new file mode 100644 index 0000000000000000000000000000000000000000..c09789d32e7b2ea636f55e145fe074d4331f88fc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<-!2~24nJa0`PlBg3pY5H=O_Iu1CqN1@b#rmUcvOa4nJa0`PlBg3pY5H=O_Iu1CqN@6;UmhL;3Q3l@MwB?`=jNv7l`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C z6)AhVIEGl9PQG&KQj!G6fg=VE30EEkcDw7!ZLI(?*ykT*u-L#bZ@%>fC7^N!Pgg&e IbxsLQ0E1jG%>V!Z literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/b2_active.png b/plugins/wtsynth/b2_active.png new file mode 100644 index 0000000000000000000000000000000000000000..c09789d32e7b2ea636f55e145fe074d4331f88fc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<-!2~24nJa0`PlBg3pY5H=O_Iu1CqN1@b#rmUcvOa4nJa0`PlBg3pY5H=O_Iu1CqN@6;UmhL;3Q3l@MwB?`=jNv7l`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C z6)AhVIEGl9PQG&KQj!G6fg=VE30EEkcDw7!ZLI(?*ykT*u-L#bZ@%>fC7^N!Pgg&e IbxsLQ0E1jG%>V!Z literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/inv_active.png b/plugins/wtsynth/inv_active.png new file mode 100644 index 0000000000000000000000000000000000000000..16b72849b221c93898b7a135cf68f3dba7ffb793 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#9Z^Zxw#)6UNB^fX=NH4oq2-3{bcR#rxD%elER`S{)4 z<%O9EjVtDvWL`SbDXi%9{@&i;u&`t4&gJFhadC2W%l+qCnd<5Bt!kV*SGIqmfcl+X zrP&u3x$^Mv^vnOSphG+J$kC&o-rmaEstXc1mZ~!RD0JT!`_4HU=xhd0S3j3^P6{XE z)7O>#9!MP|ku_QG`p**uBL&4qCHz2%`PaLRd zou`Xqh{pM=L55r{1_F0vrXR9fa;kaD=CkrSmzR0$o;pF?!{LMCKj$0#5hu2VYdG%M z-EmaZ{H~6*HM6zSQkL=$4YPmjeNd^^;o;(Y`ATW+LkE|RjJ0on*Ud{;(y|n|Xwi3W zXYH1Cs|}YuG2m(5x=p5bmfHKjiW7pw{N4#pOXXB#XsD=<=@DeuweIwknZ*eoKVI%w zG3C~_-kGacW!*M&7r4Lb;oj>}^TYL7>aQ#n_t@#)JG-a-KG5Y1p00i_>zopr0A#Oo AxBvhE literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/logo.png b/plugins/wtsynth/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4378e3ab4d2db625a31a9ebd03f040c28b72e924 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJ!TP66_agUlKDU($r9Iy66gHf+|;}h2Ir#G#FEq$h4Rdj34nJa0`PlBg3pY5H=O_Iu1CqN1@b#rmUcvOa4nJa0`PlBg3pY5H=O_Iu1CqN@6;UmhL;3Q3l@MwB?`=jNv7l`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C z6)AhVIEGl9PQG&KQj!G6fg=VE30EEkcDw7!ZLI(?*ykT*u-L#bZ@%>fC7^N!Pgg&e IbxsLQ0E1jG%>V!Z literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/norm_active.png b/plugins/wtsynth/norm_active.png new file mode 100644 index 0000000000000000000000000000000000000000..16b72849b221c93898b7a135cf68f3dba7ffb793 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#9Z^Zxw#)6UNB^fX=NH4oq2-3{bcR#rxD%elER`S{)4 z<%O9EjVtDvWL`SbDXi%9{@&i;u&`t4&gJFhadC2W%l+qCnd<5Bt!kV*SGIqmfcl+X zrP&u3x$^Mv^vnOSphG+J$kC&o-rmaEstXc1mZ~!RD0JT!`_4HU=xhd0S3j3^P6{XE z)7O>#9!MP|ku_QG`p**uBL&4qCHz2%`PaLRd zou`Xqh{pM=L55r{1_F0vrXR9fa;kaD=CkrSmzR0$o;pF?!{LMCKj$0#5hu2VYdG%M z-EmaZ{H~6*HM6zSQkL=$4YPmjeNd^^;o;(Y`ATW+LkE|RjJ0on*Ud{;(y|n|Xwi3W zXYH1Cs|}YuG2m(5x=p5bmfHKjiW7pw{N4#pOXXB#XsD=<=@DeuweIwknZ*eoKVI%w zG3C~_-kGacW!*M&7r4Lb;oj>}^TYL7>aQ#n_t@#)JG-a-KG5Y1p00i_>zopr0A#Oo AxBvhE literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/phl_active.png b/plugins/wtsynth/phl_active.png new file mode 100644 index 0000000000000000000000000000000000000000..16b72849b221c93898b7a135cf68f3dba7ffb793 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#9Z^Zxw#)6UNB^fX=NH4oq2-3{bcR#rxD%elER`S{)4 z<%O9EjVtDvWL`SbDXi%9{@&i;u&`t4&gJFhadC2W%l+qCnd<5Bt!kV*SGIqmfcl+X zrP&u3x$^Mv^vnOSphG+J$kC&o-rmaEstXc1mZ~!RD0JT!`_4HU=xhd0S3j3^P6{XE z)7O>#9!MP|ku_QG`p**uBL&4qCHz2%`PaLRd zou`Xqh{pM=L55r{1_F0vrXR9fa;kaD=CkrSmzR0$o;pF?!{LMCKj$0#5hu2VYdG%M z-EmaZ{H~6*HM6zSQkL=$4YPmjeNd^^;o;(Y`ATW+LkE|RjJ0on*Ud{;(y|n|Xwi3W zXYH1Cs|}YuG2m(5x=p5bmfHKjiW7pw{N4#pOXXB#XsD=<=@DeuweIwknZ*eoKVI%w zG3C~_-kGacW!*M&7r4Lb;oj>}^TYL7>aQ#n_t@#)JG-a-KG5Y1p00i_>zopr0A#Oo AxBvhE literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/phr_active.png b/plugins/wtsynth/phr_active.png new file mode 100644 index 0000000000000000000000000000000000000000..16b72849b221c93898b7a135cf68f3dba7ffb793 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#9Z^Zxw#)6UNB^fX=NH4oq2-3{bcR#rxD%elER`S{)4 z<%O9EjVtDvWL`SbDXi%9{@&i;u&`t4&gJFhadC2W%l+qCnd<5Bt!kV*SGIqmfcl+X zrP&u3x$^Mv^vnOSphG+J$kC&o-rmaEstXc1mZ~!RD0JT!`_4HU=xhd0S3j3^P6{XE z)7O>#9!MP|ku_QG`p**uBL&4qCHz2%`PaLRd zou`Xqh{pM=L55r{1_F0vrXR9fa;kaD=CkrSmzR0$o;pF?!{LMCKj$0#5hu2VYdG%M z-EmaZ{H~6*HM6zSQkL=$4YPmjeNd^^;o;(Y`ATW+LkE|RjJ0on*Ud{;(y|n|Xwi3W zXYH1Cs|}YuG2m(5x=p5bmfHKjiW7pw{N4#pOXXB#XsD=<=@DeuweIwknZ*eoKVI%w zG3C~_-kGacW!*M&7r4Lb;oj>}^TYL7>aQ#n_t@#)JG-a-KG5Y1p00i_>zopr0A#Oo AxBvhE literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/pm_active.png b/plugins/wtsynth/pm_active.png new file mode 100644 index 0000000000000000000000000000000000000000..c09789d32e7b2ea636f55e145fe074d4331f88fc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<-!2~24nJa0`PlBg3pY5H=O_Iu1CqN1@b#rmUcvOa4nJa0`PlBg3pY5H=O_Iu1CqN@6;UmhL;3Q3l@MwB?`=jNv7l`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C z6)AhVIEGl9PQG&KQj!G6fg=VE30EEkcDw7!ZLI(?*ykT*u-L#bZ@%>fC7^N!Pgg&e IbxsLQ0E1jG%>V!Z literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/rm_active.png b/plugins/wtsynth/rm_active.png new file mode 100644 index 0000000000000000000000000000000000000000..c09789d32e7b2ea636f55e145fe074d4331f88fc GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<-!2~24nJa0`PlBg3pY5H=O_Iu1CqN1@b#rmUcvOa4nJa0`PlBg3pY5H=O_Iu1CqN@6;UmhL;3Q3l@MwB?`=jNv7l`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C z6)AhVIEGl9PQG&KQj!G6fg=VE30EEkcDw7!ZLI(?*ykT*u-L#bZ@%>fC7^N!Pgg&e IbxsLQ0E1jG%>V!Z literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/saw_active.png b/plugins/wtsynth/saw_active.png new file mode 100644 index 0000000000000000000000000000000000000000..16b72849b221c93898b7a135cf68f3dba7ffb793 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#9Z^Zxw#)6UNB^fX=NH4oq2-3{bcR#rxD%elER`S{)4 z<%O9EjVtDvWL`SbDXi%9{@&i;u&`t4&gJFhadC2W%l+qCnd<5Bt!kV*SGIqmfcl+X zrP&u3x$^Mv^vnOSphG+J$kC&o-rmaEstXc1mZ~!RD0JT!`_4HU=xhd0S3j3^P6{XE z)7O>#9!MP|ku_QG`p**uBL&4qCHz2%`PaLRd zou`Xqh{pM=L55r{1_F0vrXR9fa;kaD=CkrSmzR0$o;pF?!{LMCKj$0#5hu2VYdG%M z-EmaZ{H~6*HM6zSQkL=$4YPmjeNd^^;o;(Y`ATW+LkE|RjJ0on*Ud{;(y|n|Xwi3W zXYH1Cs|}YuG2m(5x=p5bmfHKjiW7pw{N4#pOXXB#XsD=<=@DeuweIwknZ*eoKVI%w zG3C~_-kGacW!*M&7r4Lb;oj>}^TYL7>aQ#n_t@#)JG-a-KG5Y1p00i_>zopr0A#Oo AxBvhE literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/sin_active.png b/plugins/wtsynth/sin_active.png new file mode 100644 index 0000000000000000000000000000000000000000..16b72849b221c93898b7a135cf68f3dba7ffb793 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#9Z^Zxw#)6UNB^fX=NH4oq2-3{bcR#rxD%elER`S{)4 z<%O9EjVtDvWL`SbDXi%9{@&i;u&`t4&gJFhadC2W%l+qCnd<5Bt!kV*SGIqmfcl+X zrP&u3x$^Mv^vnOSphG+J$kC&o-rmaEstXc1mZ~!RD0JT!`_4HU=xhd0S3j3^P6{XE z)7O>#9!MP|ku_QG`p**uBL&4qCHz2%`PaLRd zou`Xqh{pM=L55r{1_F0vrXR9fa;kaD=CkrSmzR0$o;pF?!{LMCKj$0#5hu2VYdG%M z-EmaZ{H~6*HM6zSQkL=$4YPmjeNd^^;o;(Y`ATW+LkE|RjJ0on*Ud{;(y|n|Xwi3W zXYH1Cs|}YuG2m(5x=p5bmfHKjiW7pw{N4#pOXXB#XsD=<=@DeuweIwknZ*eoKVI%w zG3C~_-kGacW!*M&7r4Lb;oj>}^TYL7>aQ#n_t@#)JG-a-KG5Y1p00i_>zopr0A#Oo AxBvhE literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/smooth_active.png b/plugins/wtsynth/smooth_active.png new file mode 100644 index 0000000000000000000000000000000000000000..16b72849b221c93898b7a135cf68f3dba7ffb793 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#9Z^Zxw#)6UNB^fX=NH4oq2-3{bcR#rxD%elER`S{)4 z<%O9EjVtDvWL`SbDXi%9{@&i;u&`t4&gJFhadC2W%l+qCnd<5Bt!kV*SGIqmfcl+X zrP&u3x$^Mv^vnOSphG+J$kC&o-rmaEstXc1mZ~!RD0JT!`_4HU=xhd0S3j3^P6{XE z)7O>#9!MP|ku_QG`p**uBL&4qCHz2%`PaLRd zou`Xqh{pM=L55r{1_F0vrXR9fa;kaD=CkrSmzR0$o;pF?!{LMCKj$0#5hu2VYdG%M z-EmaZ{H~6*HM6zSQkL=$4YPmjeNd^^;o;(Y`ATW+LkE|RjJ0on*Ud{;(y|n|Xwi3W zXYH1Cs|}YuG2m(5x=p5bmfHKjiW7pw{N4#pOXXB#XsD=<=@DeuweIwknZ*eoKVI%w zG3C~_-kGacW!*M&7r4Lb;oj>}^TYL7>aQ#n_t@#)JG-a-KG5Y1p00i_>zopr0A#Oo AxBvhE literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/sqr_active.png b/plugins/wtsynth/sqr_active.png new file mode 100644 index 0000000000000000000000000000000000000000..16b72849b221c93898b7a135cf68f3dba7ffb793 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#9Z^Zxw#)6UNB^fX=NH4oq2-3{bcR#rxD%elER`S{)4 z<%O9EjVtDvWL`SbDXi%9{@&i;u&`t4&gJFhadC2W%l+qCnd<5Bt!kV*SGIqmfcl+X zrP&u3x$^Mv^vnOSphG+J$kC&o-rmaEstXc1mZ~!RD0JT!`_4HU=xhd0S3j3^P6{XE z)7O>#9!MP|ku_QG`p**uBL&4qCHz2%`PaLRd zou`Xqh{pM=L55r{1_F0vrXR9fa;kaD=CkrSmzR0$o;pF?!{LMCKj$0#5hu2VYdG%M z-EmaZ{H~6*HM6zSQkL=$4YPmjeNd^^;o;(Y`ATW+LkE|RjJ0on*Ud{;(y|n|Xwi3W zXYH1Cs|}YuG2m(5x=p5bmfHKjiW7pw{N4#pOXXB#XsD=<=@DeuweIwknZ*eoKVI%w zG3C~_-kGacW!*M&7r4Lb;oj>}^TYL7>aQ#n_t@#)JG-a-KG5Y1p00i_>zopr0A#Oo AxBvhE literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/tri_active.png b/plugins/wtsynth/tri_active.png new file mode 100644 index 0000000000000000000000000000000000000000..16b72849b221c93898b7a135cf68f3dba7ffb793 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#9Z^Zxw#)6UNB^fX=NH4oq2-3{bcR#rxD%elER`S{)4 z<%O9EjVtDvWL`SbDXi%9{@&i;u&`t4&gJFhadC2W%l+qCnd<5Bt!kV*SGIqmfcl+X zrP&u3x$^Mv^vnOSphG+J$kC&o-rmaEstXc1mZ~!RD0JT!`_4HU=xhd0S3j3^P6{XE z)7O>#9!MP|ku_QG`p**uBL&4qCHz2%`PaLRd zou`Xqh{pM=L55r{1_F0vrXR9fa;kaD=CkrSmzR0$o;pF?!{LMCKj$0#5hu2VYdG%M z-EmaZ{H~6*HM6zSQkL=$4YPmjeNd^^;o;(Y`ATW+LkE|RjJ0on*Ud{;(y|n|Xwi3W zXYH1Cs|}YuG2m(5x=p5bmfHKjiW7pw{N4#pOXXB#XsD=<=@DeuweIwknZ*eoKVI%w zG3C~_-kGacW!*M&7r4Lb;oj>}^TYL7>aQ#n_t@#)JG-a-KG5Y1p00i_>zopr0A#Oo AxBvhE literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/wavegraph.png b/plugins/wtsynth/wavegraph.png new file mode 100644 index 0000000000000000000000000000000000000000..66d9fdee3c592636342ce5fc950bde9120ba4c83 GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^4}dt6g9%8k`LJUdkm4-xh%9Dc;1&j9Muu5)B!GhK zC7!;n?Dv>O#5jcFKX|4Bg(OQ{BTAg}b8}PkN*J7rQWHy3QxwWGOEMJPJ$(bh8~Mb6 zif($kIEGZ*dV9%Gkb!~Yh(SW#|0=_S2PSyD*g9FH##AUFz(9kIwYkaBP(wllNF7`t zA;QxIq!I#nxY&*YDX@GJkRnPRWDGw2aCx9IZ02Li1C_Bh!|jL4KRm;vx|ZQv{LfF{ QfSzRVboFyt=akR{045G)G5`Po literal 0 HcmV?d00001 From da2a26572f796d777936eee2b5325727bd8c8991 Mon Sep 17 00:00:00 2001 From: Vesa Date: Fri, 21 Mar 2014 12:30:20 +0200 Subject: [PATCH 03/23] Changes --- plugins/wtsynth/CMakeLists.txt | 1 + plugins/wtsynth/WTSynth.cpp | 21 +++------------------ plugins/wtsynth/WTSynth.h | 33 +++++++++++++++++++++++---------- 3 files changed, 27 insertions(+), 28 deletions(-) diff --git a/plugins/wtsynth/CMakeLists.txt b/plugins/wtsynth/CMakeLists.txt index 82e03fcd9..71085901f 100644 --- a/plugins/wtsynth/CMakeLists.txt +++ b/plugins/wtsynth/CMakeLists.txt @@ -1,3 +1,4 @@ INCLUDE(BuildPlugin) BUILD_PLUGIN(wtsynth WTSynth.cpp WTSynth.h MOCFILES WTSynth.h EMBEDDED_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.png) + diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index 85a9f8d6e..c343c56e3 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -24,7 +24,8 @@ #include #include -#include +#include +#include #include "WTSynth.h" #include "engine.h" @@ -36,14 +37,13 @@ #include "embed.h" - extern "C" { Plugin::Descriptor PLUGIN_EXPORT wtsynth_plugin_descriptor = { STRINGIFY( PLUGIN_NAME ), - "wtsynth", + "WTSynth", QT_TRANSLATE_NOOP( "pluginBrowser", "4-oscillator modulatable wavetable synth" ), "Vesa Kivimäki ", @@ -512,21 +512,6 @@ void WTSynthInstrument::updateTunes( int _osc ) } - - - - -#define makeknob( name, x, y, hint, unit, oname ) \ - name = new knob( knobBright_26, this); \ - name ->move( x, y ); \ - name ->setHintText( tr( hint ) + " ", unit ); \ - name ->setObjectName( oname ); - -#define A1ROW 25 -#define A2ROW 47 -#define B1ROW 69 -#define B2ROW 91 - WTSynthView::WTSynthView( Instrument * _instrument, QWidget * _parent ) : InstrumentView( _instrument, _parent ) diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index b53eb77c5..5512d1911 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -36,6 +36,18 @@ #include "pixmap_button.h" +#define makeknob( name, x, y, hint, unit, oname ) \ + name = new knob( knobBright_26, this); \ + name ->move( x, y ); \ + name ->setHintText( tr( hint ) + " ", unit ); \ + name ->setObjectName( oname ); + +#define A1ROW 25 +#define A2ROW 47 +#define B1ROW 69 +#define B2ROW 91 + + const int WAVELEN = 220; const int MOD_MIX = 0; @@ -50,8 +62,6 @@ const int B1_OSC = 2; const int B2_OSC = 3; const int NUM_OSCS = 4; -class WTSynthInstrument; -class WTSynthView; class WTSynthObject { @@ -86,12 +96,15 @@ private: const sample_rate_t m_samplerate; NotePlayHandle * m_nph; - + float m_lphase [NUM_OSCS]; float m_rphase [NUM_OSCS]; - + float m_lfreq [NUM_OSCS]; float m_rfreq [NUM_OSCS]; + + friend class WTSynthInstrument; + friend class WTSynthView; }; class WTSynthInstrument : public Instrument @@ -159,7 +172,7 @@ private: FloatModel a2_rtune; FloatModel b1_rtune; FloatModel b2_rtune; - + graphModel a1_graph; graphModel a2_graph; graphModel b1_graph; @@ -168,9 +181,9 @@ private: FloatModel m_abmix; IntModel m_amod; IntModel m_bmod; - + IntModel m_selectedGraph; - + bool m_volChanged [NUM_OSCS]; bool m_multChanged [NUM_OSCS]; bool m_tuneChanged [NUM_OSCS]; @@ -236,13 +249,11 @@ private: automatableButtonGroup * m_aModGroup; automatableButtonGroup * m_bModGroup; - static QPixmap * s_artwork; - graph * a1_graph; graph * a2_graph; graph * b1_graph; graph * b2_graph; - + pixmapButton * m_sinWaveButton; pixmapButton * m_triWaveButton; pixmapButton * m_sawWaveButton; @@ -253,6 +264,8 @@ private: pixmapButton * m_phaseLeftButton; pixmapButton * m_phaseRightButton; + friend class WTSynthInstrument; + }; #endif From 9b394b3660c2e96d8bfbf76d043d8a4b31b064f4 Mon Sep 17 00:00:00 2001 From: Vesa Date: Fri, 21 Mar 2014 16:33:34 +0200 Subject: [PATCH 04/23] Changes... now it seems to work --- data/themes/default/style.css | 6 ++ plugins/wtsynth/CMakeLists.txt | 3 +- plugins/wtsynth/WTSynth.cpp | 168 ++++++++++++++++++--------------- plugins/wtsynth/WTSynth.h | 31 +++--- 4 files changed, 114 insertions(+), 94 deletions(-) diff --git a/data/themes/default/style.css b/data/themes/default/style.css index 98437e2e7..5e6b6504a 100644 --- a/data/themes/default/style.css +++ b/data/themes/default/style.css @@ -613,6 +613,8 @@ WTSynthView knob#aKnob { qproperty-outerColor: rgb( 255, 255, 255 ); qproperty-innerRadius: 1; qproperty-outerRadius: 9; + qproperty-centerPointX: 9.5; + qproperty-centerPointY: 9.5; qproperty-lineWidth: 2; } @@ -621,6 +623,8 @@ WTSynthView knob#bKnob { qproperty-outerColor: rgb( 255, 255, 255 ); qproperty-innerRadius: 1; qproperty-outerRadius: 9; + qproperty-centerPointX: 9.5; + qproperty-centerPointY: 9.5; qproperty-lineWidth: 2; } @@ -629,6 +633,8 @@ WTSynthView knob#mixKnob { qproperty-outerColor: rgb( 255, 255, 255 ); qproperty-innerRadius: 1; qproperty-outerRadius: 15; + qproperty-centerPointX: 15.5; + qproperty-centerPointY: 15.5; qproperty-lineWidth: 2; } diff --git a/plugins/wtsynth/CMakeLists.txt b/plugins/wtsynth/CMakeLists.txt index 71085901f..eb50e0544 100644 --- a/plugins/wtsynth/CMakeLists.txt +++ b/plugins/wtsynth/CMakeLists.txt @@ -1,4 +1,3 @@ INCLUDE(BuildPlugin) -BUILD_PLUGIN(wtsynth WTSynth.cpp WTSynth.h MOCFILES WTSynth.h EMBEDDED_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.png) - +BUILD_PLUGIN( wtsynth WTSynth.cpp WTSynth.h MOCFILES WTSynth.h EMBEDDED_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.png) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index c343c56e3..52adbc7b6 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -23,9 +23,6 @@ */ #include -#include -#include -#include #include "WTSynth.h" #include "engine.h" @@ -35,7 +32,7 @@ #include "song.h" #include "lmms_math.h" -#include "embed.h" +#include "embed.cpp" extern "C" { @@ -95,22 +92,26 @@ void WTSynthObject::renderOutput( sampleFrame * _abuf, sampleFrame * _bbuf, fpp_ // A2 frac = fraction( m_lphase[A2_OSC] ); - sample_t A2_L = ( m_A2wave[ int( m_lphase[A2_OSC] ) % WAVELEN ] * ( 1 - frac ) ) + - ( m_A2wave[ int( m_lphase[A2_OSC] + 1 ) % WAVELEN ] * frac ); + sample_t A2_L = + ( m_A2wave[ static_cast( m_lphase[A2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + + ( m_A2wave[ static_cast( m_lphase[A2_OSC] + 1 ) % WAVELEN ] * frac ); A2_L *= m_lvol[A2_OSC]; frac = fraction( m_rphase[A2_OSC] ); - sample_t A2_R = ( m_A2wave[ int( m_rphase[A2_OSC] ) % WAVELEN ] * ( 1 - frac ) ) + - ( m_A2wave[ int( m_rphase[A2_OSC] + 1 ) % WAVELEN ] * frac ); + sample_t A2_R = + ( m_A2wave[ static_cast( m_rphase[A2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + + ( m_A2wave[ static_cast( m_rphase[A2_OSC] + 1 ) % WAVELEN ] * frac ); A2_R *= m_rvol[A2_OSC]; // B2 frac = fraction( m_lphase[B2_OSC] ); - sample_t B2_L = ( m_A2wave[ int( m_lphase[B2_OSC] ) % WAVELEN ] * ( 1 - frac ) ) + - ( m_B2wave[ int( m_lphase[B2_OSC] + 1 ) % WAVELEN ] * frac ); + sample_t B2_L = + ( m_A2wave[ static_cast( m_lphase[B2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + + ( m_B2wave[ static_cast( m_lphase[B2_OSC] + 1 ) % WAVELEN ] * frac ); B2_L *= m_lvol[B2_OSC]; frac = fraction( m_rphase[B2_OSC] ); - sample_t B2_R = ( m_A2wave[ int( m_rphase[B2_OSC] ) % WAVELEN ] * ( 1 - frac ) ) + - ( m_A2wave[ int( m_rphase[B2_OSC] + 1 ) % WAVELEN ] * frac ); + sample_t B2_R = + ( m_A2wave[ static_cast( m_rphase[B2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + + ( m_A2wave[ static_cast( m_rphase[B2_OSC] + 1 ) % WAVELEN ] * frac ); B2_R *= m_rvol[B2_OSC]; // put phases of 1-series oscs into variables because phase modulation might happen @@ -133,19 +134,23 @@ void WTSynthObject::renderOutput( sampleFrame * _abuf, sampleFrame * _bbuf, fpp_ // A1 frac = fraction( A1_lphase ); - sample_t A1_L = ( m_A1wave[ int( A1_lphase ) % WAVELEN ] * ( 1 - frac ) ) + - ( m_A1wave[ int( A1_lphase + 1 ) % WAVELEN ] * frac ); + sample_t A1_L = + ( m_A1wave[ static_cast( A1_lphase ) % WAVELEN ] * ( 1.0f - frac ) ) + + ( m_A1wave[ static_cast( A1_lphase + 1 ) % WAVELEN ] * frac ); frac = fraction( A1_rphase ); - sample_t A1_R = ( m_A1wave[ int( A1_rphase ) % WAVELEN ] * ( 1 - frac ) ) + - ( m_A1wave[ int( A1_rphase + 1 ) % WAVELEN ] * frac ); + sample_t A1_R = + ( m_A1wave[ static_cast( A1_rphase ) % WAVELEN ] * ( 1.0f - frac ) ) + + ( m_A1wave[ static_cast( A1_rphase + 1 ) % WAVELEN ] * frac ); // B1 frac = fraction( B1_lphase ); - sample_t B1_L = ( m_B1wave[ int( B1_lphase ) % WAVELEN ] * ( 1 - frac ) ) + - ( m_B1wave[ int( B1_lphase + 1 ) % WAVELEN ] * frac ); + sample_t B1_L = + ( m_B1wave[ static_cast( B1_lphase ) % WAVELEN ] * ( 1.0f - frac ) ) + + ( m_B1wave[ static_cast( B1_lphase + 1 ) % WAVELEN ] * frac ); frac = fraction( B1_rphase ); - sample_t B1_R = ( m_B1wave[ int( B1_rphase ) % WAVELEN ] * ( 1 - frac ) ) + - ( m_B1wave[ int( B1_rphase + 1 ) % WAVELEN ] * frac ); + sample_t B1_R = + ( m_B1wave[ static_cast( B1_rphase ) % WAVELEN ] * ( 1.0f - frac ) ) + + ( m_B1wave[ static_cast( B1_rphase + 1 ) % WAVELEN ] * frac ); // A-series modulation (other than phase mod) switch( m_amod ) @@ -164,7 +169,7 @@ void WTSynthObject::renderOutput( sampleFrame * _abuf, sampleFrame * _bbuf, fpp_ break; } _abuf[frame][0] = A1_L * m_lvol[A1_OSC]; - _abuf[frame][1] = A1_R * m_rvol[B1_OSC]; + _abuf[frame][1] = A1_R * m_rvol[A1_OSC]; // B-series modulation (other than phase mod) switch( m_bmod ) @@ -182,8 +187,8 @@ void WTSynthObject::renderOutput( sampleFrame * _abuf, sampleFrame * _bbuf, fpp_ B1_R *= B2_R; break; } - _bbuf[frame][0] = B1_L; - _bbuf[frame][1] = B1_R; + _bbuf[frame][0] = B1_L * m_lvol[B1_OSC]; + _bbuf[frame][1] = B1_R * m_rvol[B1_OSC]; // update phases for( int i = 0; i < NUM_OSCS; i++ ) @@ -212,15 +217,15 @@ void WTSynthObject::updateFrequencies() void WTSynthObject::changeVolume( int _osc, float _lvol, float _rvol ) { - m_lvol[_osc] = _lvol; - m_rvol[_osc] = _rvol; + m_lvol[_osc] = _lvol / 100.0; + m_rvol[_osc] = _rvol / 100.0; + qDebug( "osc %d vol %f %f", _osc, m_lvol[_osc], m_rvol[_osc] ); } -void WTSynthObject::changeMult( int _osc, int _mul ) +void WTSynthObject::changeMult( int _osc, float _mul ) { m_mult[_osc] = _mul; - updateFrequencies(); } @@ -228,7 +233,6 @@ void WTSynthObject::changeTune( int _osc, float _ltune, float _rtune ) { m_ltune[_osc] = _ltune; m_rtune[_osc] = _rtune; - updateFrequencies(); } @@ -246,10 +250,10 @@ WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : b1_pan( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "Panning B1" ) ), b2_pan( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "Panning B2" ) ), - a1_mult( 8, 1, 16, this, tr( "Freq. multiplier A1" ) ), - a2_mult( 8, 1, 16, this, tr( "Freq. multiplier A2" ) ), - b1_mult( 8, 1, 16, this, tr( "Freq. multiplier B1" ) ), - b2_mult( 8, 1, 16, this, tr( "Freq. multiplier B2" ) ), + a1_mult( 8.0f, 1.0, 16.0, 1.0, this, tr( "Freq. multiplier A1" ) ), + a2_mult( 8.0f, 1.0, 16.0, 1.0, this, tr( "Freq. multiplier A2" ) ), + b1_mult( 8.0f, 1.0, 16.0, 1.0, this, tr( "Freq. multiplier B1" ) ), + b2_mult( 8.0f, 1.0, 16.0, 1.0, this, tr( "Freq. multiplier B2" ) ), a1_ltune( 0.0f, -600.0f, 600.0f, 1.0f, this, tr( "Left detune A1" ) ), a2_ltune( 0.0f, -600.0f, 600.0f, 1.0f, this, tr( "Left detune A2" ) ), @@ -272,30 +276,30 @@ WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : m_selectedGraph( 0, 0, 3, this, tr( "Selected graph" ) ) { - connect( &a1_vol, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( A1_OSC ) ) ); - connect( &a2_vol, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( A2_OSC ) ) ); - connect( &b1_vol, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( B1_OSC ) ) ); - connect( &b2_vol, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( B2_OSC ) ) ); + connect( &a1_vol, SIGNAL( dataChanged() ), this, SLOT( updateVolumes() ) ); + connect( &a2_vol, SIGNAL( dataChanged() ), this, SLOT( updateVolumes() ) ); + connect( &b1_vol, SIGNAL( dataChanged() ), this, SLOT( updateVolumes() ) ); + connect( &b2_vol, SIGNAL( dataChanged() ), this, SLOT( updateVolumes() ) ); - connect( &a1_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( A1_OSC ) ) ); - connect( &a2_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( A2_OSC ) ) ); - connect( &b1_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( B1_OSC ) ) ); - connect( &b2_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes( B2_OSC ) ) ); + connect( &a1_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes() ) ); + connect( &a2_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes() ) ); + connect( &b1_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes() ) ); + connect( &b2_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes() ) ); - connect( &a1_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult( A1_OSC ) ) ); - connect( &a2_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult( A2_OSC ) ) ); - connect( &b1_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult( B1_OSC ) ) ); - connect( &b2_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult( B2_OSC ) ) ); + connect( &a1_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult() ) ); + connect( &a2_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult() ) ); + connect( &b1_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult() ) ); + connect( &b2_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult() ) ); - connect( &a1_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( A1_OSC ) ) ); - connect( &a2_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( A2_OSC ) ) ); - connect( &b1_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( B1_OSC ) ) ); - connect( &b2_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( B2_OSC ) ) ); + connect( &a1_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); + connect( &a2_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); + connect( &b1_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); + connect( &b2_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); - connect( &a1_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( A1_OSC ) ) ); - connect( &a2_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( A2_OSC ) ) ); - connect( &b1_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( B1_OSC ) ) ); - connect( &b2_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes( B2_OSC ) ) ); + connect( &a1_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); + connect( &a2_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); + connect( &b1_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); + connect( &b2_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); a1_graph.setWaveToSine(); a2_graph.setWaveToSine(); @@ -345,21 +349,30 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, // update oscs if needed - if( m_volChanged[A1_OSC] ) w-> changeVolume( A1_OSC, leftCh( a1_vol.value(), a1_pan.value() ), rightCh( a1_vol.value(), a1_pan.value() ) ); - if( m_volChanged[A2_OSC] ) w-> changeVolume( A2_OSC, leftCh( a2_vol.value(), a2_pan.value() ), rightCh( a2_vol.value(), a2_pan.value() ) ); - if( m_volChanged[B1_OSC] ) w-> changeVolume( B1_OSC, leftCh( b1_vol.value(), b1_pan.value() ), rightCh( b1_vol.value(), b1_pan.value() ) ); - if( m_volChanged[B2_OSC] ) w-> changeVolume( B2_OSC, leftCh( b2_vol.value(), b2_pan.value() ), rightCh( b2_vol.value(), b2_pan.value() ) ); - - if( m_tuneChanged[A1_OSC] ) w-> changeTune( A1_OSC, a1_ltune.value(), a1_rtune.value() ); - if( m_tuneChanged[A2_OSC] ) w-> changeTune( A2_OSC, a2_ltune.value(), a2_rtune.value() ); - if( m_tuneChanged[B1_OSC] ) w-> changeTune( B1_OSC, b1_ltune.value(), b1_rtune.value() ); - if( m_tuneChanged[B2_OSC] ) w-> changeTune( B2_OSC, b2_ltune.value(), b2_rtune.value() ); - - if( m_multChanged[A1_OSC] ) w-> changeMult( A1_OSC, a1_mult.value() ); - if( m_multChanged[A2_OSC] ) w-> changeMult( A2_OSC, a2_mult.value() ); - if( m_multChanged[B1_OSC] ) w-> changeMult( B1_OSC, b1_mult.value() ); - if( m_multChanged[B2_OSC] ) w-> changeMult( B2_OSC, b2_mult.value() ); - + if( m_volChanged ) + { + w-> changeVolume( A1_OSC, leftCh( a1_vol.value(), a1_pan.value() ), rightCh( a1_vol.value(), a1_pan.value() ) ); + w-> changeVolume( A2_OSC, leftCh( a2_vol.value(), a2_pan.value() ), rightCh( a2_vol.value(), a2_pan.value() ) ); + w-> changeVolume( B1_OSC, leftCh( b1_vol.value(), b1_pan.value() ), rightCh( b1_vol.value(), b1_pan.value() ) ); + w-> changeVolume( B2_OSC, leftCh( b2_vol.value(), b2_pan.value() ), rightCh( b2_vol.value(), b2_pan.value() ) ); + } + if( m_tuneChanged ) + { + w-> changeTune( A1_OSC, a1_ltune.value(), a1_rtune.value() ); + w-> changeTune( A2_OSC, a2_ltune.value(), a2_rtune.value() ); + w-> changeTune( B1_OSC, b1_ltune.value(), b1_rtune.value() ); + w-> changeTune( B2_OSC, b2_ltune.value(), b2_rtune.value() ); + w-> updateFrequencies(); + } + if( m_multChanged ) + { + w-> changeMult( A1_OSC, a1_mult.value() ); + w-> changeMult( A2_OSC, a2_mult.value() ); + w-> changeMult( B1_OSC, b1_mult.value() ); + w-> changeMult( B2_OSC, b2_mult.value() ); + w-> updateFrequencies(); + } + sampleFrame * abuf = new sampleFrame[frames]; sampleFrame * bbuf = new sampleFrame[frames]; @@ -498,17 +511,17 @@ PluginView * WTSynthInstrument::instantiateView( QWidget * _parent ) } -void WTSynthInstrument::updateVolumes( int _osc ) +void WTSynthInstrument::updateVolumes() { - m_volChanged[_osc] = true; + m_volChanged = true; } -void WTSynthInstrument::updateMult( int _osc ) +void WTSynthInstrument::updateMult() { - m_multChanged[_osc] = true; + m_multChanged = true; } -void WTSynthInstrument::updateTunes( int _osc ) +void WTSynthInstrument::updateTunes() { - m_tuneChanged[_osc] = true; + m_tuneChanged = true; } @@ -519,8 +532,7 @@ WTSynthView::WTSynthView( Instrument * _instrument, setAutoFillBackground( true ); QPalette pal; - pal.setBrush( backgroundRole(), - PLUGIN_NAME::getIconPixmap( "artwork" ) ); + pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap( "artwork" ) ); setPalette( pal ); // knobs... lots of em @@ -558,6 +570,8 @@ WTSynthView::WTSynthView( Instrument * _instrument, b1_volKnob -> setVolumeKnob( true ); b2_volKnob -> setVolumeKnob( true ); + m_abmixKnob -> setFixedSize( 31, 31 ); + // button groups next. // graph select buttons @@ -611,7 +625,7 @@ WTSynthView::WTSynthView( Instrument * _instrument, toolTip::add( amod_rmButton, tr( "Ring-modulate A1 and A2" ) ); pixmapButton * amod_pmButton = new pixmapButton( this, NULL ); - amod_pmButton -> move( 4, 104 ); + amod_pmButton -> move( 4, 88 ); amod_pmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_active" ) ); amod_pmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_inactive" ) ); toolTip::add( amod_pmButton, tr( "Modulate phase of A1 with output of A2" ) ); @@ -642,7 +656,7 @@ WTSynthView::WTSynthView( Instrument * _instrument, toolTip::add( bmod_rmButton, tr( "Ring-modulate B1 and B2" ) ); pixmapButton * bmod_pmButton = new pixmapButton( this, NULL ); - bmod_pmButton -> move( 44, 104 ); + bmod_pmButton -> move( 44, 88 ); bmod_pmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_active" ) ); bmod_pmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_inactive" ) ); toolTip::add( bmod_pmButton, tr( "Modulate phase of B1 with output of B2" ) ); diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index 5512d1911..428969c2c 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -37,10 +37,11 @@ #define makeknob( name, x, y, hint, unit, oname ) \ - name = new knob( knobBright_26, this); \ + name = new knob( knobStyled, this); \ name ->move( x, y ); \ name ->setHintText( tr( hint ) + " ", unit ); \ - name ->setObjectName( oname ); + name ->setObjectName( oname ); \ + name ->setFixedSize( 19, 19 ); #define A1ROW 25 #define A2ROW 47 @@ -76,7 +77,7 @@ public: void updateFrequencies(); void changeVolume( int _osc, float _lvol, float _rvol ); - void changeMult( int _osc, int _mul ); + void changeMult( int _osc, float _mul ); void changeTune( int _osc, float _ltune, float _rtune ); private: @@ -87,7 +88,7 @@ private: float m_lvol [NUM_OSCS]; float m_rvol [NUM_OSCS]; - int m_mult [NUM_OSCS]; + float m_mult [NUM_OSCS]; float m_ltune [NUM_OSCS]; float m_rtune [NUM_OSCS]; @@ -132,10 +133,10 @@ public: virtual PluginView * instantiateView( QWidget * _parent ); -protected slots: - void updateVolumes( int _osc ); - void updateMult( int _osc ); - void updateTunes( int _osc ); +public slots: + void updateVolumes(); + void updateMult(); + void updateTunes(); private: inline float leftCh( float _vol, float _pan ) @@ -158,10 +159,10 @@ private: FloatModel b1_pan; FloatModel b2_pan; - IntModel a1_mult; - IntModel a2_mult; - IntModel b1_mult; - IntModel b2_mult; + FloatModel a1_mult; + FloatModel a2_mult; + FloatModel b1_mult; + FloatModel b2_mult; FloatModel a1_ltune; FloatModel a2_ltune; @@ -184,9 +185,9 @@ private: IntModel m_selectedGraph; - bool m_volChanged [NUM_OSCS]; - bool m_multChanged [NUM_OSCS]; - bool m_tuneChanged [NUM_OSCS]; + bool m_volChanged; + bool m_multChanged; + bool m_tuneChanged; friend class WTSynthView; }; From 95bf833aceda0976d85e85a9d302c4ec2e285393 Mon Sep 17 00:00:00 2001 From: Vesa Date: Fri, 21 Mar 2014 17:21:31 +0200 Subject: [PATCH 05/23] Updates, fixes etc --- plugins/wtsynth/WTSynth.cpp | 84 +++++++++++++++++++++---------------- plugins/wtsynth/WTSynth.h | 1 + src/gui/widgets/graph.cpp | 6 ++- 3 files changed, 53 insertions(+), 38 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index 52adbc7b6..63bfb3dbb 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -123,13 +123,13 @@ void WTSynthObject::renderOutput( sampleFrame * _abuf, sampleFrame * _bbuf, fpp_ // if phase mod, add to phases if( m_amod == MOD_PM ) { - A1_lphase = fmodf( A1_lphase + A2_L * WAVELEN, WAVELEN ); - A1_rphase = fmodf( A1_rphase + A2_R * WAVELEN, WAVELEN ); + A1_lphase = fmodf( A1_lphase + A2_L * PMOD_AMT, WAVELEN ); + A1_rphase = fmodf( A1_rphase + A2_R * PMOD_AMT, WAVELEN ); } if( m_bmod == MOD_PM ) { - B1_lphase = fmodf( B1_lphase + B2_L * WAVELEN, WAVELEN ); - B1_rphase = fmodf( B1_rphase + B2_R * WAVELEN, WAVELEN ); + B1_lphase = fmodf( B1_lphase + B2_L * PMOD_AMT, WAVELEN ); + B1_rphase = fmodf( B1_rphase + B2_R * PMOD_AMT, WAVELEN ); } // A1 @@ -179,8 +179,8 @@ void WTSynthObject::renderOutput( sampleFrame * _abuf, sampleFrame * _bbuf, fpp_ B1_R += B2_R; break; case MOD_AM: - B1_L *= qAbs( B2_L + 1.0f ); - B1_R *= qAbs( B2_R + 1.0f ); + B1_L *= qMax( 0.0f, B2_L + 1.0f ); + B1_R *= qMax( 0.0f, B2_R + 1.0f ); break; case MOD_RM: B1_L *= B2_L; @@ -339,6 +339,8 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, w -> changeVolume( A2_OSC, leftCh( a2_vol.value(), a2_pan.value() ), rightCh( a2_vol.value(), a2_pan.value() ) ); w -> changeVolume( B1_OSC, leftCh( b1_vol.value(), b1_pan.value() ), rightCh( b1_vol.value(), b1_pan.value() ) ); w -> changeVolume( B2_OSC, leftCh( b2_vol.value(), b2_pan.value() ), rightCh( b2_vol.value(), b2_pan.value() ) ); + + w -> updateFrequencies(); _n->m_pluginData = w; } @@ -705,20 +707,55 @@ WTSynthView::WTSynthView( Instrument * _instrument, // misc pushbuttons +// waveform modifications + + m_phaseLeftButton = new pixmapButton( this, tr( "Phase left" ) ); + m_phaseLeftButton -> move ( 200, 121 ); + m_phaseLeftButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "phl_active" ) ); + m_phaseLeftButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "phl_inactive" ) ); + toolTip::add( m_phaseLeftButton, tr( "Click to shift phase by -15 degrees" ) ); + + m_phaseRightButton = new pixmapButton( this, tr( "Phase right" ) ); + m_phaseRightButton -> move ( 216, 121 ); + m_phaseRightButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "phr_active" ) ); + m_phaseRightButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "phr_inactive" ) ); + toolTip::add( m_phaseRightButton, tr( "Click to shift phase by +15 degrees" ) ); + + m_normalizeButton = new pixmapButton( this, tr( "Normalize" ) ); + m_normalizeButton -> move ( 232, 121 ); + m_normalizeButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "norm_active" ) ); + m_normalizeButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "norm_inactive" ) ); + toolTip::add( m_normalizeButton, tr( "Click to normalize" ) ); + + + m_invertButton = new pixmapButton( this, tr( "Invert" ) ); + m_invertButton -> move ( 232, 138 ); + m_invertButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "inv_active" ) ); + m_invertButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "inv_inactive" ) ); + toolTip::add( m_invertButton, tr( "Click to invert" ) ); + + m_smoothButton = new pixmapButton( this, tr( "Smooth" ) ); + m_smoothButton -> move ( 232, 155 ); + m_smoothButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_active" ) ); + m_smoothButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_inactive" ) ); + toolTip::add( m_smoothButton, tr( "Click to smooth" ) ); + +// waveforms + m_sinWaveButton = new pixmapButton( this, tr( "Sine wave" ) ); - m_sinWaveButton -> move ( 232, 182 ); + m_sinWaveButton -> move ( 232, 176 ); m_sinWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "sin_active" ) ); m_sinWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "sin_inactive" ) ); toolTip::add( m_sinWaveButton, tr( "Click for sine wave" ) ); m_triWaveButton = new pixmapButton( this, tr( "Triangle wave" ) ); - m_triWaveButton -> move ( 232, 198 ); + m_triWaveButton -> move ( 232, 194 ); m_triWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "tri_active" ) ); m_triWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "tri_inactive" ) ); toolTip::add( m_triWaveButton, tr( "Click for triangle wave" ) ); m_sawWaveButton = new pixmapButton( this, tr( "Triangle wave" ) ); - m_sawWaveButton -> move ( 232, 214 ); + m_sawWaveButton -> move ( 232, 212 ); m_sawWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "saw_active" ) ); m_sawWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "saw_inactive" ) ); toolTip::add( m_sawWaveButton, tr( "Click for saw wave" ) ); @@ -729,35 +766,7 @@ WTSynthView::WTSynthView( Instrument * _instrument, m_sqrWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "sqr_inactive" ) ); toolTip::add( m_sqrWaveButton, tr( "Click for square wave" ) ); - m_normalizeButton = new pixmapButton( this, tr( "Normalize" ) ); - m_normalizeButton -> move ( 232, 134 ); - m_normalizeButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "norm_active" ) ); - m_normalizeButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "norm_inactive" ) ); - toolTip::add( m_normalizeButton, tr( "Click to normalize" ) ); - m_invertButton = new pixmapButton( this, tr( "Invert" ) ); - m_invertButton -> move ( 232, 150 ); - m_invertButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "inv_active" ) ); - m_invertButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "inv_inactive" ) ); - toolTip::add( m_invertButton, tr( "Click to invert" ) ); - - m_smoothButton = new pixmapButton( this, tr( "Smooth" ) ); - m_smoothButton -> move ( 232, 166 ); - m_smoothButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_active" ) ); - m_smoothButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_inactive" ) ); - toolTip::add( m_smoothButton, tr( "Click to smooth" ) ); - - m_phaseLeftButton = new pixmapButton( this, tr( "Phase left" ) ); - m_phaseLeftButton -> move ( 200, 134 ); - m_phaseLeftButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "phl_active" ) ); - m_phaseLeftButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "phl_inactive" ) ); - toolTip::add( m_phaseLeftButton, tr( "Click to shift phase by -15 degrees" ) ); - - m_phaseRightButton = new pixmapButton( this, tr( "Phase right" ) ); - m_phaseRightButton -> move ( 216, 134 ); - m_phaseRightButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "phr_active" ) ); - m_phaseRightButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "phr_inactive" ) ); - toolTip::add( m_phaseRightButton, tr( "Click to shift phase by +15 degrees" ) ); connect( m_sinWaveButton, SIGNAL( clicked() ), this, SLOT( sinWaveClicked() ) ); connect( m_triWaveButton, SIGNAL( clicked() ), this, SLOT( triWaveClicked() ) ); @@ -765,6 +774,7 @@ WTSynthView::WTSynthView( Instrument * _instrument, connect( m_sqrWaveButton, SIGNAL( clicked() ), this, SLOT( sqrWaveClicked() ) ); connect( m_normalizeButton, SIGNAL( clicked() ), this, SLOT( normalizeClicked() ) ); connect( m_invertButton, SIGNAL( clicked() ), this, SLOT( invertClicked() ) ); + connect( m_smoothButton, SIGNAL( clicked() ), this, SLOT( smoothClicked() ) ); connect( m_phaseLeftButton, SIGNAL( clicked() ), this, SLOT( phaseLeftClicked() ) ); connect( m_phaseRightButton, SIGNAL( clicked() ), this, SLOT( phaseRightClicked() ) ); diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index 428969c2c..181576aba 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -50,6 +50,7 @@ const int WAVELEN = 220; +const int PMOD_AMT = 110; const int MOD_MIX = 0; const int MOD_AM = 1; diff --git a/src/gui/widgets/graph.cpp b/src/gui/widgets/graph.cpp index a7011537c..fbf3b5a43 100644 --- a/src/gui/widgets/graph.cpp +++ b/src/gui/widgets/graph.cpp @@ -679,7 +679,11 @@ void graphModel::shiftPhase( int _deg ) // shift phase for( int i = 0; i < length(); i++ ) - m_samples[i] = temp[ ( i + offset ) % length() ]; + { + int o = ( i + offset ) % length(); + while( o < 0 ) o += length(); + m_samples[i] = temp[o]; + } emit samplesChanged( 0, length()-1 ); } From 42e44b739f50f78980655c411f2389db55f926e2 Mon Sep 17 00:00:00 2001 From: Vesa Date: Fri, 21 Mar 2014 18:05:24 +0200 Subject: [PATCH 06/23] Fixed multiplier weirdness --- plugins/wtsynth/WTSynth.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index 63bfb3dbb..a710c6956 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -74,7 +74,6 @@ WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, m_rphase[A2_OSC] = 0.0f; m_rphase[B1_OSC] = 0.0f; m_rphase[B2_OSC] = 0.0f; - updateFrequencies(); } @@ -357,6 +356,7 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, w-> changeVolume( A2_OSC, leftCh( a2_vol.value(), a2_pan.value() ), rightCh( a2_vol.value(), a2_pan.value() ) ); w-> changeVolume( B1_OSC, leftCh( b1_vol.value(), b1_pan.value() ), rightCh( b1_vol.value(), b1_pan.value() ) ); w-> changeVolume( B2_OSC, leftCh( b2_vol.value(), b2_pan.value() ), rightCh( b2_vol.value(), b2_pan.value() ) ); + m_volChanged = false; } if( m_tuneChanged ) { @@ -365,6 +365,7 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, w-> changeTune( B1_OSC, b1_ltune.value(), b1_rtune.value() ); w-> changeTune( B2_OSC, b2_ltune.value(), b2_rtune.value() ); w-> updateFrequencies(); + m_tuneChanged = false; } if( m_multChanged ) { @@ -373,6 +374,7 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, w-> changeMult( B1_OSC, b1_mult.value() ); w-> changeMult( B2_OSC, b2_mult.value() ); w-> updateFrequencies(); + m_multChanged = false; } sampleFrame * abuf = new sampleFrame[frames]; @@ -380,10 +382,11 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, sampleFrame * bbuf = new sampleFrame[frames]; w-> renderOutput( abuf, bbuf, frames ); + + const float bmix = ( ( m_abmix.value() + 100.0 ) / 200.0 ); + const float amix = 1.0 - bmix; for( fpp_t f=0; f < frames; f++ ) { - const float amix = ( ( m_abmix.value( f ) - 100.0 ) / -200.0 ); - const float bmix = 1.0 - amix; _working_buffer[f][0] = ( abuf[f][0] * amix ) + ( bbuf[f][0] * bmix ); _working_buffer[f][1] = ( abuf[f][1] * amix ) + From d8d9ac21cdf2e7437d57bab5d4b155780491d974 Mon Sep 17 00:00:00 2001 From: Vesa Date: Fri, 21 Mar 2014 18:33:29 +0200 Subject: [PATCH 07/23] Move stream buffers to the synth object --- plugins/wtsynth/WTSynth.cpp | 32 ++++++++++++++++++-------------- plugins/wtsynth/WTSynth.h | 24 +++++++++++++++++------- 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index a710c6956..98ba989d8 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -56,7 +56,7 @@ Plugin::Descriptor PLUGIN_EXPORT wtsynth_plugin_descriptor = WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, float * _B1wave, float * _B2wave, - int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph ) : + int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph, fpp_t _frames ) : m_A1wave( _A1wave ), m_A2wave( _A2wave ), m_B1wave( _B1wave ), @@ -64,8 +64,12 @@ WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, m_amod( _amod ), m_bmod( _bmod ), m_samplerate( _samplerate ), - m_nph( _nph ) + m_nph( _nph ), + m_fpp( _frames ) { + m_abuf = new sampleFrame[_frames]; + m_bbuf = new sampleFrame[_frames]; + m_lphase[A1_OSC] = 0.0f; m_lphase[A2_OSC] = 0.0f; m_lphase[B1_OSC] = 0.0f; @@ -80,10 +84,12 @@ WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, WTSynthObject::~WTSynthObject() { + delete[] m_abuf; + delete[] m_bbuf; } -void WTSynthObject::renderOutput( sampleFrame * _abuf, sampleFrame * _bbuf, fpp_t _frames ) +void WTSynthObject::renderOutput( fpp_t _frames ) { for( fpp_t frame = 0; frame < _frames; frame++ ) { @@ -167,8 +173,8 @@ void WTSynthObject::renderOutput( sampleFrame * _abuf, sampleFrame * _bbuf, fpp_ A1_R *= A2_R; break; } - _abuf[frame][0] = A1_L * m_lvol[A1_OSC]; - _abuf[frame][1] = A1_R * m_rvol[A1_OSC]; + m_abuf[frame][0] = A1_L * m_lvol[A1_OSC]; + m_abuf[frame][1] = A1_R * m_rvol[A1_OSC]; // B-series modulation (other than phase mod) switch( m_bmod ) @@ -186,8 +192,8 @@ void WTSynthObject::renderOutput( sampleFrame * _abuf, sampleFrame * _bbuf, fpp_ B1_R *= B2_R; break; } - _bbuf[frame][0] = B1_L * m_lvol[B1_OSC]; - _bbuf[frame][1] = B1_R * m_rvol[B1_OSC]; + m_bbuf[frame][0] = B1_L * m_lvol[B1_OSC]; + m_bbuf[frame][1] = B1_R * m_rvol[B1_OSC]; // update phases for( int i = 0; i < NUM_OSCS; i++ ) @@ -322,7 +328,8 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, const_cast( b1_graph.samples() ), const_cast( b2_graph.samples() ), m_amod.value(), m_bmod.value(), - engine::mixer()->processingSampleRate(), _n ); + engine::mixer()->processingSampleRate(), _n, + engine::mixer()->framesPerPeriod() ); w -> changeMult( A1_OSC, a1_mult.value() ); w -> changeMult( A2_OSC, a2_mult.value() ); @@ -377,11 +384,11 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, m_multChanged = false; } - sampleFrame * abuf = new sampleFrame[frames]; + sampleFrame * abuf = w->abuf(); - sampleFrame * bbuf = new sampleFrame[frames]; + sampleFrame * bbuf = w->bbuf(); - w-> renderOutput( abuf, bbuf, frames ); + w-> renderOutput( frames ); const float bmix = ( ( m_abmix.value() + 100.0 ) / 200.0 ); const float amix = 1.0 - bmix; @@ -393,9 +400,6 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, ( bbuf[f][1] * bmix ); } - delete[] abuf; - delete[] bbuf; - applyRelease( _working_buffer, _n ); instrumentTrack()->processAudioBuffer( _working_buffer, frames, _n ); diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index 181576aba..fc44abb48 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -70,10 +70,10 @@ class WTSynthObject public: WTSynthObject( float * _A1wave, float * _A2wave, float * _B1wave, float * _B2wave, - int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph ); + int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph, fpp_t _frames ); virtual ~WTSynthObject(); - void renderOutput( sampleFrame * _abuf, sampleFrame * _bbuf, fpp_t _frames ); + void renderOutput( fpp_t _frames ); void updateFrequencies(); @@ -81,6 +81,15 @@ public: void changeMult( int _osc, float _mul ); void changeTune( int _osc, float _ltune, float _rtune ); + inline sampleFrame * abuf() const + { + return m_abuf; + } + inline sampleFrame * bbuf() const + { + return m_bbuf; + } + private: sample_t * m_A1wave; sample_t * m_A2wave; @@ -99,14 +108,17 @@ private: const sample_rate_t m_samplerate; NotePlayHandle * m_nph; + fpp_t m_fpp; + + sampleFrame * m_abuf; + sampleFrame * m_bbuf; + float m_lphase [NUM_OSCS]; float m_rphase [NUM_OSCS]; float m_lfreq [NUM_OSCS]; float m_rfreq [NUM_OSCS]; - - friend class WTSynthInstrument; - friend class WTSynthView; + }; class WTSynthInstrument : public Instrument @@ -265,8 +277,6 @@ private: pixmapButton * m_smoothButton; pixmapButton * m_phaseLeftButton; pixmapButton * m_phaseRightButton; - - friend class WTSynthInstrument; }; From 861a7d1ce110b1fc2c0727ba6154815fa80ebe23 Mon Sep 17 00:00:00 2001 From: Vesa Date: Fri, 21 Mar 2014 19:04:02 +0200 Subject: [PATCH 08/23] Fix mixing / modulation behaviour, add some more buffer safeguards --- plugins/wtsynth/WTSynth.cpp | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index 98ba989d8..e6f393464 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -74,6 +74,7 @@ WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, m_lphase[A2_OSC] = 0.0f; m_lphase[B1_OSC] = 0.0f; m_lphase[B2_OSC] = 0.0f; + m_rphase[A1_OSC] = 0.0f; m_rphase[A2_OSC] = 0.0f; m_rphase[B1_OSC] = 0.0f; @@ -91,6 +92,11 @@ WTSynthObject::~WTSynthObject() void WTSynthObject::renderOutput( fpp_t _frames ) { + if( m_abuf == NULL ) + m_abuf = new sampleFrame[m_fpp]; + if( m_bbuf == NULL ) + m_bbuf = new sampleFrame[m_fpp]; + for( fpp_t frame = 0; frame < _frames; frame++ ) { float frac; @@ -110,13 +116,13 @@ void WTSynthObject::renderOutput( fpp_t _frames ) // B2 frac = fraction( m_lphase[B2_OSC] ); sample_t B2_L = - ( m_A2wave[ static_cast( m_lphase[B2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + + ( m_B2wave[ static_cast( m_lphase[B2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + ( m_B2wave[ static_cast( m_lphase[B2_OSC] + 1 ) % WAVELEN ] * frac ); B2_L *= m_lvol[B2_OSC]; frac = fraction( m_rphase[B2_OSC] ); sample_t B2_R = - ( m_A2wave[ static_cast( m_rphase[B2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + - ( m_A2wave[ static_cast( m_rphase[B2_OSC] + 1 ) % WAVELEN ] * frac ); + ( m_B2wave[ static_cast( m_rphase[B2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + + ( m_B2wave[ static_cast( m_rphase[B2_OSC] + 1 ) % WAVELEN ] * frac ); B2_R *= m_rvol[B2_OSC]; // put phases of 1-series oscs into variables because phase modulation might happen @@ -142,27 +148,31 @@ void WTSynthObject::renderOutput( fpp_t _frames ) sample_t A1_L = ( m_A1wave[ static_cast( A1_lphase ) % WAVELEN ] * ( 1.0f - frac ) ) + ( m_A1wave[ static_cast( A1_lphase + 1 ) % WAVELEN ] * frac ); + A1_L *= m_lvol[A1_OSC]; frac = fraction( A1_rphase ); sample_t A1_R = ( m_A1wave[ static_cast( A1_rphase ) % WAVELEN ] * ( 1.0f - frac ) ) + ( m_A1wave[ static_cast( A1_rphase + 1 ) % WAVELEN ] * frac ); + A1_R *= m_rvol[A1_OSC]; // B1 frac = fraction( B1_lphase ); sample_t B1_L = ( m_B1wave[ static_cast( B1_lphase ) % WAVELEN ] * ( 1.0f - frac ) ) + ( m_B1wave[ static_cast( B1_lphase + 1 ) % WAVELEN ] * frac ); + B1_L *= m_lvol[B1_OSC]; frac = fraction( B1_rphase ); sample_t B1_R = ( m_B1wave[ static_cast( B1_rphase ) % WAVELEN ] * ( 1.0f - frac ) ) + ( m_B1wave[ static_cast( B1_rphase + 1 ) % WAVELEN ] * frac ); - - // A-series modulation (other than phase mod) + B1_R *= m_rvol[B1_OSC]; + + // A-series modulation) switch( m_amod ) { case MOD_MIX: - A1_L += A2_L; - A1_R += A2_R; + A1_L = ( A1_L + A2_L ) / 2.0; + A1_R = ( A1_R + A2_R ) / 2.0; break; case MOD_AM: A1_L *= qMax( 0.0f, A2_L + 1.0f ); @@ -173,15 +183,15 @@ void WTSynthObject::renderOutput( fpp_t _frames ) A1_R *= A2_R; break; } - m_abuf[frame][0] = A1_L * m_lvol[A1_OSC]; - m_abuf[frame][1] = A1_R * m_rvol[A1_OSC]; + m_abuf[frame][0] = A1_L; + m_abuf[frame][1] = A1_R; // B-series modulation (other than phase mod) switch( m_bmod ) { case MOD_MIX: - B1_L += B2_L; - B1_R += B2_R; + B1_L = ( B1_L + B2_L ) / 2.0; + B1_R = ( B1_R + B2_R ) / 2.0; break; case MOD_AM: B1_L *= qMax( 0.0f, B2_L + 1.0f ); @@ -192,8 +202,8 @@ void WTSynthObject::renderOutput( fpp_t _frames ) B1_R *= B2_R; break; } - m_bbuf[frame][0] = B1_L * m_lvol[B1_OSC]; - m_bbuf[frame][1] = B1_R * m_rvol[B1_OSC]; + m_bbuf[frame][0] = B1_L; + m_bbuf[frame][1] = B1_R; // update phases for( int i = 0; i < NUM_OSCS; i++ ) @@ -385,7 +395,6 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, } sampleFrame * abuf = w->abuf(); - sampleFrame * bbuf = w->bbuf(); w-> renderOutput( frames ); From 89089886faff81abba7a0d9546d0a1b8b4f4784d Mon Sep 17 00:00:00 2001 From: Vesa Date: Fri, 21 Mar 2014 19:22:47 +0200 Subject: [PATCH 09/23] Correct phase mod algo (add below-bounds check) --- plugins/wtsynth/WTSynth.cpp | 51 +++++++++++++++++++++---------------- plugins/wtsynth/WTSynth.h | 8 +++--- 2 files changed, 33 insertions(+), 26 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index e6f393464..8fe84293a 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -135,12 +135,16 @@ void WTSynthObject::renderOutput( fpp_t _frames ) if( m_amod == MOD_PM ) { A1_lphase = fmodf( A1_lphase + A2_L * PMOD_AMT, WAVELEN ); + while( A1_lphase < 0 ) A1_lphase += WAVELEN; A1_rphase = fmodf( A1_rphase + A2_R * PMOD_AMT, WAVELEN ); + while( A1_rphase < 0 ) A1_rphase += WAVELEN; } if( m_bmod == MOD_PM ) { B1_lphase = fmodf( B1_lphase + B2_L * PMOD_AMT, WAVELEN ); + while( B1_lphase < 0 ) B1_lphase += WAVELEN; B1_rphase = fmodf( B1_rphase + B2_R * PMOD_AMT, WAVELEN ); + while( B1_rphase < 0 ) B1_rphase += WAVELEN; } // A1 @@ -399,10 +403,13 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, w-> renderOutput( frames ); - const float bmix = ( ( m_abmix.value() + 100.0 ) / 200.0 ); - const float amix = 1.0 - bmix; for( fpp_t f=0; f < frames; f++ ) { + // get knob values in sample-exact way + const float bmix = ( ( m_abmix.value( f ) + 100.0 ) / 200.0 ); + const float amix = 1.0 - bmix; + + // mix a/b streams according to mixing knob _working_buffer[f][0] = ( abuf[f][0] * amix ) + ( bbuf[f][0] * bmix ); _working_buffer[f][1] = ( abuf[f][1] * amix ) + @@ -555,30 +562,30 @@ WTSynthView::WTSynthView( Instrument * _instrument, // knobs... lots of em - makeknob( a1_volKnob, 96, A1ROW, "Volume", "%", "aKnob" ) - makeknob( a2_volKnob, 96, A2ROW, "Volume", "%", "aKnob" ) - makeknob( b1_volKnob, 96, B1ROW, "Volume", "%", "bKnob" ) - makeknob( b2_volKnob, 96, B2ROW, "Volume", "%", "bKnob" ) + makeknob( a1_volKnob, 118, A1ROW, "Volume", "%", "aKnob" ) + makeknob( a2_volKnob, 118, A2ROW, "Volume", "%", "aKnob" ) + makeknob( b1_volKnob, 118, B1ROW, "Volume", "%", "bKnob" ) + makeknob( b2_volKnob, 118, B2ROW, "Volume", "%", "bKnob" ) - makeknob( a1_panKnob, 121, A1ROW, "Panning", "", "aKnob" ) - makeknob( a2_panKnob, 121, A2ROW, "Panning", "", "aKnob" ) - makeknob( b1_panKnob, 121, B1ROW, "Panning", "", "bKnob" ) - makeknob( b2_panKnob, 121, B2ROW, "Panning", "", "bKnob" ) + makeknob( a1_panKnob, 146, A1ROW, "Panning", "", "aKnob" ) + makeknob( a2_panKnob, 146, A2ROW, "Panning", "", "aKnob" ) + makeknob( b1_panKnob, 146, B1ROW, "Panning", "", "bKnob" ) + makeknob( b2_panKnob, 146, B2ROW, "Panning", "", "bKnob" ) - makeknob( a1_multKnob, 146, A1ROW, "Freq. multiplier", "/8", "aKnob" ) - makeknob( a2_multKnob, 146, A2ROW, "Freq. multiplier", "/8", "aKnob" ) - makeknob( b1_multKnob, 146, B1ROW, "Freq. multiplier", "/8", "bKnob" ) - makeknob( b2_multKnob, 146, B2ROW, "Freq. multiplier", "/8", "bKnob" ) + makeknob( a1_multKnob, 172, A1ROW, "Freq. multiplier", "/8", "aKnob" ) + makeknob( a2_multKnob, 172, A2ROW, "Freq. multiplier", "/8", "aKnob" ) + makeknob( b1_multKnob, 172, B1ROW, "Freq. multiplier", "/8", "bKnob" ) + makeknob( b2_multKnob, 172, B2ROW, "Freq. multiplier", "/8", "bKnob" ) - makeknob( a1_ltuneKnob, 171, A1ROW, "Left detune", " cents", "aKnob" ) - makeknob( a2_ltuneKnob, 171, A2ROW, "Left detune", " cents", "aKnob" ) - makeknob( b1_ltuneKnob, 171, B1ROW, "Left detune", " cents", "bKnob" ) - makeknob( b2_ltuneKnob, 171, B2ROW, "Left detune", " cents", "bKnob" ) + makeknob( a1_ltuneKnob, 200, A1ROW, "Left detune", " cents", "aKnob" ) + makeknob( a2_ltuneKnob, 200, A2ROW, "Left detune", " cents", "aKnob" ) + makeknob( b1_ltuneKnob, 200, B1ROW, "Left detune", " cents", "bKnob" ) + makeknob( b2_ltuneKnob, 200, B2ROW, "Left detune", " cents", "bKnob" ) - makeknob( a1_rtuneKnob, 196, A1ROW, "Right detune", " cents", "aKnob" ) - makeknob( a2_rtuneKnob, 196, A2ROW, "Right detune", " cents", "aKnob" ) - makeknob( b1_rtuneKnob, 196, B1ROW, "Right detune", " cents", "bKnob" ) - makeknob( b2_rtuneKnob, 196, B2ROW, "Right detune", " cents", "bKnob" ) + makeknob( a1_rtuneKnob, 228, A1ROW, "Right detune", " cents", "aKnob" ) + makeknob( a2_rtuneKnob, 228, A2ROW, "Right detune", " cents", "aKnob" ) + makeknob( b1_rtuneKnob, 228, B1ROW, "Right detune", " cents", "bKnob" ) + makeknob( b2_rtuneKnob, 228, B2ROW, "Right detune", " cents", "bKnob" ) makeknob( m_abmixKnob, 4, 4, "A-B Mix", "", "mixKnob" ) diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index fc44abb48..37d3cec0e 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -43,10 +43,10 @@ name ->setObjectName( oname ); \ name ->setFixedSize( 19, 19 ); -#define A1ROW 25 -#define A2ROW 47 -#define B1ROW 69 -#define B2ROW 91 +#define A1ROW 26 +#define A2ROW 49 +#define B1ROW 72 +#define B2ROW 95 const int WAVELEN = 220; From 4924dadaa5e279ca738c6d2a011923bf9deec75a Mon Sep 17 00:00:00 2001 From: Vesa Date: Fri, 21 Mar 2014 21:37:18 +0200 Subject: [PATCH 10/23] Graphics --- data/themes/default/style.css | 18 +++---- plugins/wtsynth/WTSynth.cpp | 72 ++++++++++++++-------------- plugins/wtsynth/a1_active.png | Bin 169 -> 767 bytes plugins/wtsynth/a1_inactive.png | Bin 169 -> 462 bytes plugins/wtsynth/a2_active.png | Bin 169 -> 815 bytes plugins/wtsynth/a2_inactive.png | Bin 169 -> 500 bytes plugins/wtsynth/aam_active.png | Bin 0 -> 830 bytes plugins/wtsynth/aam_inactive.png | Bin 0 -> 480 bytes plugins/wtsynth/am_active.png | Bin 169 -> 0 bytes plugins/wtsynth/am_inactive.png | Bin 169 -> 0 bytes plugins/wtsynth/amix_active.png | Bin 0 -> 1006 bytes plugins/wtsynth/amix_inactive.png | Bin 0 -> 619 bytes plugins/wtsynth/apm_active.png | Bin 0 -> 829 bytes plugins/wtsynth/apm_inactive.png | Bin 0 -> 476 bytes plugins/wtsynth/arm_active.png | Bin 0 -> 889 bytes plugins/wtsynth/arm_inactive.png | Bin 0 -> 569 bytes plugins/wtsynth/artwork.png | Bin 625 -> 94710 bytes plugins/wtsynth/b1_active.png | Bin 169 -> 712 bytes plugins/wtsynth/b1_inactive.png | Bin 169 -> 431 bytes plugins/wtsynth/b2_active.png | Bin 169 -> 764 bytes plugins/wtsynth/b2_inactive.png | Bin 169 -> 490 bytes plugins/wtsynth/bam_active.png | Bin 0 -> 712 bytes plugins/wtsynth/bam_inactive.png | Bin 0 -> 451 bytes plugins/wtsynth/bmix_active.png | Bin 0 -> 931 bytes plugins/wtsynth/bmix_inactive.png | Bin 0 -> 630 bytes plugins/wtsynth/bpm_active.png | Bin 0 -> 729 bytes plugins/wtsynth/bpm_inactive.png | Bin 0 -> 443 bytes plugins/wtsynth/brm_active.png | Bin 0 -> 792 bytes plugins/wtsynth/brm_inactive.png | Bin 0 -> 540 bytes plugins/wtsynth/inv_active.png | Bin 305 -> 581 bytes plugins/wtsynth/inv_inactive.png | Bin 308 -> 489 bytes plugins/wtsynth/load_active.png | Bin 0 -> 628 bytes plugins/wtsynth/load_inactive.png | Bin 0 -> 537 bytes plugins/wtsynth/mix_active.png | Bin 169 -> 0 bytes plugins/wtsynth/mix_inactive.png | Bin 169 -> 0 bytes plugins/wtsynth/norm_active.png | Bin 305 -> 603 bytes plugins/wtsynth/norm_inactive.png | Bin 308 -> 502 bytes plugins/wtsynth/phl_active.png | Bin 305 -> 667 bytes plugins/wtsynth/phl_inactive.png | Bin 308 -> 517 bytes plugins/wtsynth/phr_active.png | Bin 305 -> 667 bytes plugins/wtsynth/phr_inactive.png | Bin 308 -> 536 bytes plugins/wtsynth/pm_active.png | Bin 169 -> 0 bytes plugins/wtsynth/pm_inactive.png | Bin 169 -> 0 bytes plugins/wtsynth/rm_active.png | Bin 169 -> 0 bytes plugins/wtsynth/rm_inactive.png | Bin 169 -> 0 bytes plugins/wtsynth/saw_active.png | Bin 305 -> 590 bytes plugins/wtsynth/saw_inactive.png | Bin 308 -> 426 bytes plugins/wtsynth/sin_active.png | Bin 305 -> 698 bytes plugins/wtsynth/sin_inactive.png | Bin 308 -> 585 bytes plugins/wtsynth/smooth_active.png | Bin 305 -> 653 bytes plugins/wtsynth/smooth_inactive.png | Bin 308 -> 567 bytes plugins/wtsynth/sqr_active.png | Bin 305 -> 611 bytes plugins/wtsynth/sqr_inactive.png | Bin 308 -> 506 bytes plugins/wtsynth/tri_active.png | Bin 305 -> 655 bytes plugins/wtsynth/tri_inactive.png | Bin 308 -> 532 bytes plugins/wtsynth/wavegraph.png | Bin 351 -> 612 bytes 56 files changed, 45 insertions(+), 45 deletions(-) create mode 100644 plugins/wtsynth/aam_active.png create mode 100644 plugins/wtsynth/aam_inactive.png delete mode 100644 plugins/wtsynth/am_active.png delete mode 100644 plugins/wtsynth/am_inactive.png create mode 100644 plugins/wtsynth/amix_active.png create mode 100644 plugins/wtsynth/amix_inactive.png create mode 100644 plugins/wtsynth/apm_active.png create mode 100644 plugins/wtsynth/apm_inactive.png create mode 100644 plugins/wtsynth/arm_active.png create mode 100644 plugins/wtsynth/arm_inactive.png create mode 100644 plugins/wtsynth/bam_active.png create mode 100644 plugins/wtsynth/bam_inactive.png create mode 100644 plugins/wtsynth/bmix_active.png create mode 100644 plugins/wtsynth/bmix_inactive.png create mode 100644 plugins/wtsynth/bpm_active.png create mode 100644 plugins/wtsynth/bpm_inactive.png create mode 100644 plugins/wtsynth/brm_active.png create mode 100644 plugins/wtsynth/brm_inactive.png create mode 100644 plugins/wtsynth/load_active.png create mode 100644 plugins/wtsynth/load_inactive.png delete mode 100644 plugins/wtsynth/mix_active.png delete mode 100644 plugins/wtsynth/mix_inactive.png delete mode 100644 plugins/wtsynth/pm_active.png delete mode 100644 plugins/wtsynth/pm_inactive.png delete mode 100644 plugins/wtsynth/rm_active.png delete mode 100644 plugins/wtsynth/rm_inactive.png diff --git a/data/themes/default/style.css b/data/themes/default/style.css index 5e6b6504a..bba01399d 100644 --- a/data/themes/default/style.css +++ b/data/themes/default/style.css @@ -609,30 +609,30 @@ sidInstrumentView knob { } WTSynthView knob#aKnob { - color: rgb( 255, 255, 255 ); - qproperty-outerColor: rgb( 255, 255, 255 ); + color: #43b2ff; + qproperty-outerColor: #43b2ff; qproperty-innerRadius: 1; - qproperty-outerRadius: 9; + qproperty-outerRadius: 8; qproperty-centerPointX: 9.5; qproperty-centerPointY: 9.5; qproperty-lineWidth: 2; } WTSynthView knob#bKnob { - color: rgb( 255, 255, 255 ); - qproperty-outerColor: rgb( 255, 255, 255 ); + color: #fc5431; + qproperty-outerColor: #fc5431; qproperty-innerRadius: 1; - qproperty-outerRadius: 9; + qproperty-outerRadius: 8; qproperty-centerPointX: 9.5; qproperty-centerPointY: 9.5; qproperty-lineWidth: 2; } WTSynthView knob#mixKnob { - color: rgb( 255, 255, 255 ); - qproperty-outerColor: rgb( 255, 255, 255 ); + color: #43ff82; + qproperty-outerColor: #43ff82; qproperty-innerRadius: 1; - qproperty-outerRadius: 15; + qproperty-outerRadius: 14; qproperty-centerPointX: 15.5; qproperty-centerPointY: 15.5; qproperty-lineWidth: 2; diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index 8fe84293a..e51c0ff96 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -567,10 +567,10 @@ WTSynthView::WTSynthView( Instrument * _instrument, makeknob( b1_volKnob, 118, B1ROW, "Volume", "%", "bKnob" ) makeknob( b2_volKnob, 118, B2ROW, "Volume", "%", "bKnob" ) - makeknob( a1_panKnob, 146, A1ROW, "Panning", "", "aKnob" ) - makeknob( a2_panKnob, 146, A2ROW, "Panning", "", "aKnob" ) - makeknob( b1_panKnob, 146, B1ROW, "Panning", "", "bKnob" ) - makeknob( b2_panKnob, 146, B2ROW, "Panning", "", "bKnob" ) + makeknob( a1_panKnob, 142, A1ROW, "Panning", "", "aKnob" ) + makeknob( a2_panKnob, 142, A2ROW, "Panning", "", "aKnob" ) + makeknob( b1_panKnob, 142, B1ROW, "Panning", "", "bKnob" ) + makeknob( b2_panKnob, 142, B2ROW, "Panning", "", "bKnob" ) makeknob( a1_multKnob, 172, A1ROW, "Freq. multiplier", "/8", "aKnob" ) makeknob( a2_multKnob, 172, A2ROW, "Freq. multiplier", "/8", "aKnob" ) @@ -582,10 +582,10 @@ WTSynthView::WTSynthView( Instrument * _instrument, makeknob( b1_ltuneKnob, 200, B1ROW, "Left detune", " cents", "bKnob" ) makeknob( b2_ltuneKnob, 200, B2ROW, "Left detune", " cents", "bKnob" ) - makeknob( a1_rtuneKnob, 228, A1ROW, "Right detune", " cents", "aKnob" ) - makeknob( a2_rtuneKnob, 228, A2ROW, "Right detune", " cents", "aKnob" ) - makeknob( b1_rtuneKnob, 228, B1ROW, "Right detune", " cents", "bKnob" ) - makeknob( b2_rtuneKnob, 228, B2ROW, "Right detune", " cents", "bKnob" ) + makeknob( a1_rtuneKnob, 224, A1ROW, "Right detune", " cents", "aKnob" ) + makeknob( a2_rtuneKnob, 224, A2ROW, "Right detune", " cents", "aKnob" ) + makeknob( b1_rtuneKnob, 224, B1ROW, "Right detune", " cents", "bKnob" ) + makeknob( b2_rtuneKnob, 224, B2ROW, "Right detune", " cents", "bKnob" ) makeknob( m_abmixKnob, 4, 4, "A-B Mix", "", "mixKnob" ) @@ -632,27 +632,27 @@ WTSynthView::WTSynthView( Instrument * _instrument, // A-modulation button group pixmapButton * amod_mixButton = new pixmapButton( this, NULL ); - amod_mixButton -> move( 4, 40 ); - amod_mixButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "mix_active" ) ); - amod_mixButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "mix_inactive" ) ); + amod_mixButton -> move( 4, 50 ); + amod_mixButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "amix_active" ) ); + amod_mixButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "amix_inactive" ) ); toolTip::add( amod_mixButton, tr( "Mix output of A2 to A1" ) ); pixmapButton * amod_amButton = new pixmapButton( this, NULL ); - amod_amButton -> move( 4, 56 ); - amod_amButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "am_active" ) ); - amod_amButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "am_inactive" ) ); + amod_amButton -> move( 4, 66 ); + amod_amButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "aam_active" ) ); + amod_amButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "aam_inactive" ) ); toolTip::add( amod_amButton, tr( "Modulate amplitude of A1 with output of A2" ) ); pixmapButton * amod_rmButton = new pixmapButton( this, NULL ); - amod_rmButton -> move( 4, 72 ); - amod_rmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "rm_active" ) ); - amod_rmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "rm_inactive" ) ); + amod_rmButton -> move( 4, 82 ); + amod_rmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "arm_active" ) ); + amod_rmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "arm_inactive" ) ); toolTip::add( amod_rmButton, tr( "Ring-modulate A1 and A2" ) ); pixmapButton * amod_pmButton = new pixmapButton( this, NULL ); - amod_pmButton -> move( 4, 88 ); - amod_pmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_active" ) ); - amod_pmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_inactive" ) ); + amod_pmButton -> move( 4, 98 ); + amod_pmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "apm_active" ) ); + amod_pmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "apm_inactive" ) ); toolTip::add( amod_pmButton, tr( "Modulate phase of A1 with output of A2" ) ); m_aModGroup = new automatableButtonGroup( this ); @@ -663,27 +663,27 @@ WTSynthView::WTSynthView( Instrument * _instrument, // B-modulation button group pixmapButton * bmod_mixButton = new pixmapButton( this, NULL ); - bmod_mixButton -> move( 44, 40 ); - bmod_mixButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "mix_active" ) ); - bmod_mixButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "mix_inactive" ) ); + bmod_mixButton -> move( 44, 50 ); + bmod_mixButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "bmix_active" ) ); + bmod_mixButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "bmix_inactive" ) ); toolTip::add( bmod_mixButton, tr( "Mix output of B2 to B1" ) ); pixmapButton * bmod_amButton = new pixmapButton( this, NULL ); - bmod_amButton -> move( 44, 56 ); - bmod_amButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "am_active" ) ); - bmod_amButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "am_inactive" ) ); + bmod_amButton -> move( 44, 66 ); + bmod_amButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "bam_active" ) ); + bmod_amButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "bam_inactive" ) ); toolTip::add( bmod_amButton, tr( "Modulate amplitude of B1 with output of B2" ) ); pixmapButton * bmod_rmButton = new pixmapButton( this, NULL ); - bmod_rmButton -> move( 44, 72 ); - bmod_rmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "rm_active" ) ); - bmod_rmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "rm_inactive" ) ); + bmod_rmButton -> move( 44, 82 ); + bmod_rmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "brm_active" ) ); + bmod_rmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "brm_inactive" ) ); toolTip::add( bmod_rmButton, tr( "Ring-modulate B1 and B2" ) ); pixmapButton * bmod_pmButton = new pixmapButton( this, NULL ); - bmod_pmButton -> move( 44, 88 ); - bmod_pmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_active" ) ); - bmod_pmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_inactive" ) ); + bmod_pmButton -> move( 44, 98 ); + bmod_pmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "bpm_active" ) ); + bmod_pmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "bpm_inactive" ) ); toolTip::add( bmod_pmButton, tr( "Modulate phase of B1 with output of B2" ) ); m_bModGroup = new automatableButtonGroup( this ); @@ -700,7 +700,7 @@ WTSynthView::WTSynthView( Instrument * _instrument, a1_graph = new graph( this, graph::LinearStyle, 224, 105 ); a1_graph->move( 4, 141 ); a1_graph->setAutoFillBackground( true ); - a1_graph->setGraphColor( QColor( 255, 255, 255 ) ); + a1_graph->setGraphColor( QColor( 0x43, 0xb2, 0xff ) ); toolTip::add( a1_graph, tr ( "Draw your own waveform here by dragging your mouse on this graph." ) ); a1_graph->setPalette( pal ); @@ -708,7 +708,7 @@ WTSynthView::WTSynthView( Instrument * _instrument, a2_graph = new graph( this, graph::LinearStyle, 224, 105 ); a2_graph->move( 4, 141 ); a2_graph->setAutoFillBackground( true ); - a2_graph->setGraphColor( QColor( 255, 255, 255 ) ); + a2_graph->setGraphColor( QColor( 0x43, 0xb2, 0xff ) ); toolTip::add( a2_graph, tr ( "Draw your own waveform here by dragging your mouse on this graph." ) ); a2_graph->setPalette( pal ); @@ -716,7 +716,7 @@ WTSynthView::WTSynthView( Instrument * _instrument, b1_graph = new graph( this, graph::LinearStyle, 224, 105 ); b1_graph->move( 4, 141 ); b1_graph->setAutoFillBackground( true ); - b1_graph->setGraphColor( QColor( 255, 255, 255 ) ); + b1_graph->setGraphColor( QColor( 0xfc, 0x54, 0x31 ) ); toolTip::add( b1_graph, tr ( "Draw your own waveform here by dragging your mouse on this graph." ) ); b1_graph->setPalette( pal ); @@ -724,7 +724,7 @@ WTSynthView::WTSynthView( Instrument * _instrument, b2_graph = new graph( this, graph::LinearStyle, 224, 105 ); b2_graph->move( 4, 141 ); b2_graph->setAutoFillBackground( true ); - b2_graph->setGraphColor( QColor( 255, 255, 255 ) ); + b2_graph->setGraphColor( QColor( 0xfc, 0x54, 0x31 ) ); toolTip::add( b2_graph, tr ( "Draw your own waveform here by dragging your mouse on this graph." ) ); b2_graph->setPalette( pal ); diff --git a/plugins/wtsynth/a1_active.png b/plugins/wtsynth/a1_active.png index c09789d32e7b2ea636f55e145fe074d4331f88fc..06dbee18579a0db54d887d6b3eec1800a35f45f5 100644 GIT binary patch delta 691 zcmV;k0!;m>0sjS%85#xv003myJ*@x$00v@9M??T003QG!fq_z#ks%-m6%q#olL;?E zkx3_i0%u7?K~zY`&6dAw6j2bzKQnLlHfIuIf|Z3J7B*fH0@?~z+W8j*5p07N3jP4G zFoh@$5aUtS@ju|#HFayb|VP;sGU}+5AcSj@wqG(v5Ha(AX0p7U+U>+!q zNw>aZNfYT%PjZAioPZ%dW#rgNG>m9|{fwCr42?2$WP)&b zlz4p&(iE*!**|`o_1CkIG$F3{1c+)`ITb}!(K2rSC~yg#Zp#9QAT9)8>EU^nW+vHq zH<$TP2R`M?^IO@w3rgpLb@7|WloASml2atuEt!wrc-3A6pJGV^AJ_LzX8y(sJ{Bu0 ztg*HX7{TxXTy+>R1M_*dDY+~~ih49jtM6<~UgBNY$43`fo;kp;=dL0_rEHMSI_a``b=%*6T!2&t zQ0-kX4F`Gy)UbjMjkR=Ehiy+32|`w$UE7u&4OpGM%j)bsFpoz25K-RWJOvn9sb<~$ zN1+xph&lkwIa8aS@0+d8aw-J1S`8mJSeUBeT!5&csu^qk)4{FdgVk6A=iRrAbr zm+up!)h!v6JzX3_EKVoeNIXAhAkfg6*l=LQ(Zyo@Q8rm0K@5JoZbl(z#N9mJ9xkE0JJ4CsOUDIKi!dp-! z4KfWbENvqf&0O z+4KPc*6TH@iikW_y(CF+9OoQRReON{L55*}$b3FWRROTpQdJdso&&I0Ebx6FV+>_k z-VE6T?8cmkT&3c4Iz?4E9*+Qco<|S_OePafr&D`L6h#~khnoSLhig~Cu5#BjfbDim zmSwF<&Et$Qz4@)@He>hEc!}fq;<~kVxGcWL{&II+*R6|P*S#1T_at1i=V1kRyB*d} zT4u8uQ4|fH(aOke^niD}c)#EG=0#CZ6h&_>P19iklO!3Rg3INyt$mK;oK=%&e;mYo de~tRP^#fCyOiYz^9FdgVk6A=iRbTbX z!$T9J)h!v6JzX3_EKVn1xpXN>g5$su1BZkwj{>{hb>+5JfEeuak1|+nV3;@G`hpVB O3 diff --git a/plugins/wtsynth/a2_active.png b/plugins/wtsynth/a2_active.png index c09789d32e7b2ea636f55e145fe074d4331f88fc..cd8963a4121cccfe8f6a1accdb33c070603d0028 100644 GIT binary patch delta 739 zcmV<90v!FR0j~y-85#xv003myJ*@x$00v@9M??T003QG!fq_z#ks%-m6%q#$XWg0; zkx3_i0+&fdK~zY`&6c}sR6!KRf9K51?k3qa4;3GvUe}E!_tq>Fu z5y3`56fG33Qi!N+3PB4I3(GVq1Q8Qofy4(96SKSbF&1}slg-|ZV4A%!F!!FB^L_K3 z$6UGn=%J^DAITNEyv_HZE{BM;1S#)5aZn_GT>Oc(E`!UpGk9mJrIedII{>9ctT6^- zEC5p%hlztS_!xXjlbgdwdk)qY&aKC6)rBsLL>L?G46QVq>tX z1~rjKhF` z`4{*3_Hvx~&#y#;H2;|_VtNuSjG}5#RYj#j5FiX7SWX{d8Hpo0`$tfhrTpUyrSG4K zOH1VU4&e&jh=31D#O38=gk{t^HuWDw@DP^Q@gGptT}4qr0Pz0$5u)NE;PG*k-WmRXrC>v; z*Ak*JNu*Ltt9l1M4x2jf9eYxn7iZrwbN3V?iWg0-;(88E2&&69zjkbGV%`_KpAm002ovPDHLkV1hupS$O~e delta 116 zcmZ3_wvuszqyZBH1HFdgVk6A=iRrAbr zm+up!)h!v6JzX3_EKVoeNIXAhAkfg6*l=LQ(Zyo@Q8rm0K@5JoZbl(z#S(muk zY=)W9Znp`7098dq2*WTF-|zR+z1-bn P00000NkvXXu0mjf2*$(q delta 116 zcmeyuypnN(qyZBH1HFdgVk6A=iRbTbX z!$T9J)h!v6JzX3_EKVn1xpXN>g5$su1BZkwj{>{hb>+5JfEeuak1|+nV3;@G`hpVB O3P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00O2-L_t(Y$IX^qh)q!xfWNi& zxqsbzWril1CqMaVC`l8U{N%wKFW!_Wk)o9R6iHr0kuoJulEfhN)ZZ!5uhZ~thn%!sU)wCbb@LO zNEDgphgKp!M8%@*9UDPaG)N*Y0AyUhF^ls+z&vI?(ydyX3(J@viT)icA|QeWDHfi* zS7i$7OoSyyh6iD!g2wqLu|WwE1lj3K@7&C+O$X6LDq3U4aPKqvuN=U9Nc+}PWaoGC z_Vi|aVGx|7b@f)-HtylW<^2r3xQj1-$ILgmsEIV>TI%NN0lmj6C9M1dv>s4>8cSEm zFJ6NtQk1{+gBdQ@LU!(QT(*Vq+dyO}NRnUF#kZ%oK^^%e>th3k56k%S56p)Rcu~Y$ zLu9onJ-J(zqE_K z?i~#E+#lb8fp@g5+CqBv0!p8I{}y1aC`QXZ8j46`y4pC2UX!8M4@kAm!OSSUepoAn zxP8^@ms;y;I1K8xSX7ZjDn9C(+stTzOzdvWi9*i6~@TF>8gCry~6StX3 z0fQ7lZpNgI`s4MZvA2e3z`(7u4BR?begAahcr_YtPHd>^9(;Tg%;PfC&{THPM%@Hx zafvTG^JvN(b)!rXV7bVXeH~NpvfzCLSSftP7o+QzpJLaopR8#6Tb=CAC;$Ke07*qo IM6N<$f>{1^CIA2c literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/aam_inactive.png b/plugins/wtsynth/aam_inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..979e48b937071770713ec129f66c43d9b62ffd11 GIT binary patch literal 480 zcmV<60U!Q}P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00BrzL_t(Y$L*HQYQjJig}=E` zL4}FgWD^j416_;nQu+>kkG@0clLXf;vM_=_i);lW0SyS5E=p2^ZK(|nS@f*#Fbte~ z&ixtn{Q6>^9v%@9Lecaa|A^j#eJbX0t{STPzl3f&laRyb%^pCX-tQ ze+tKO7!HSsyjO=Yh9pVYY&HOlMkBP=1VKQSWdOLYi|2W)*K3j_`P&*C3?Ov_|$&KaRBIaI`sSf>P>Pl#^dp~_gZT# z%c`VaC4%Sk8Gv@XU9$IDY1_67C2OC9tJR7y42k3T%LH84rPu2f$uw$E$8k)z+r=2e z@px<=!JO3TbmDTk)K`Ps?Y4A|qKGJpit}!_yV(W+`~AK;!Rd6`++FPZ{{L_0H+Tbu WB4`KX3qm*m00004nJa0`PlBg3pY5H=O_Iu1CqN1@b#rmUcvOa4nJa0`PlBg3pY5H=O_Iu1CqN@6;UmhL;3Q3l@MwB?`=jNv7l`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C z6)AhVIEGl9PQG&KQj!G6fg=VE30EEkcDw7!ZLI(?*ykT*u-L#bZ@%>fC7^N!Pgg&e IbxsLQ0E1jG%>V!Z diff --git a/plugins/wtsynth/amix_active.png b/plugins/wtsynth/amix_active.png new file mode 100644 index 0000000000000000000000000000000000000000..6c76d44ff5d48534f982bbf2d3ac71cb429e8fa6 GIT binary patch literal 1006 zcmVe zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00UM@L_t(Y$IX^aXdP7)$A9PC znK$nxX;Mv^szm$_Buz!7R=Y@0BZ3PTq6?*n6x_HFapA@fP$2}ma#L_$rS7DzRM15e zVyU8nU}6?3Xsafq&Btrsn>RD}xS01Q?lfBxrx&mDRHqm#xi9s$4` zuf2tfDu5s&#bo>U^&Dn~PwJ%Ai#b3SRXBWNepfN~-Kz&7uI2zCXX^Xc4`XQqX?jEi zR1p^}1#;K!kbb_&|8TL;egGLQsT_M|8-n8{)thS2y6aaOKY7<~vs*uL` z_zKpz0*xA^4a8@Nfd(b|Mkml9#JPaJgO3$j6%nLa2@zrKn@@?Ceq&(bC|ZixH+hU? zZHbjLA41lEqz*}~)6#?%|0;^AZUKmGvJD7U_*y%A?|mE%N|gGCs0@vCRH*ni!_t_g z&rT5T-Otc-?@_+#ZkE6J0AE|jk{EopDWz6SDZ&&<>rTbneb*seS1)@GJn|p6&|_(X z>f+Z_7thi&{4llOe`4*2&+$o&WsO|N*V<-wGQh0${v(*Ul1Uw zn^M?%nOf^b+RkL>490)|!VO2BrF_dU@zSqXPeKF@BYH;0>Av#;)_?qp^3B8a-Tx#S zMo18XTwCZZt6CXITN}}iY&RBWi3ab$%&0ER{R_>Cgk=Vwc$wtVpZxX7H1!LM3{1X+ ztMsC!3gUt`;mM}Rw=k=n=PD9LXt^7Wa+6XSaba;lb$%9r`XBS8)s-T#&RZhvJ@gc% zfm>ObJ%wc{D`!p;_6>65_|ZH@)K$dDtqTpy+W>ZGP=bh{rymt7v?9(SF68{jZ|7_R zKfg0s>{&f`8Zbly&Yya-NM!Zg>E>JxxVkWx?=z1p_n={=^P)7F)F9dp(3-8}zT;mjO&cMefSo9}EV!0Sk% c_xLpCABBM__OQ7v9RL6T07*qoM6N<$f|Zrbv;Y7A literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/amix_inactive.png b/plugins/wtsynth/amix_inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..846cbf6e7b3fbf7bc2eea40800b3a5fc63216491 GIT binary patch literal 619 zcmV-x0+juUP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00GlUL_t(Y$IX^Os^UNphX3jw zqPA#a)QARjp}B+L#*;kW9p)l)hha`4?u4w}h=LJ=L5*U93i?)^NyJg|V9p#_ioGuhZ#3RaMxwjmzZ%0I1b!Xf~S|kH^^UcCai9nx?0&z8@B2_y6^FwCo6Y8Xt2m7j5j0Ip0NztjTD+FiEV`&% z(gKEI2*WTSgg_XEPt`6I3Rth#5JEuL_0$Tc2HbA9$mMdlUa#brGjiW3)gi40L$ePilV?UjQ>-ElgT8Sy=~i(-}Agg zOxz#u^L;-t?puJpUhh2*3-UL|7z5`#u{po`@WAlq_63}ZhvdAU_!IyD002ovPDHLk FV1jVX3p4-# literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/apm_active.png b/plugins/wtsynth/apm_active.png new file mode 100644 index 0000000000000000000000000000000000000000..3011bfee40403a734cb5d538a4282da2af356a5b GIT binary patch literal 829 zcmV-D1H$}?P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00N~+L_t(Y$IX^sh)iJ^#((eo zeRF1~owY3O%|<2)E#*S8QAl#(Ldq3Ixsjq=p_HU3N{L(LLc%52lnW%eP{R5XC6vvd zkr`&rob!Dy&Y3wgJFHq^-+Jrxopavve9!y5&v)eX#S8wxu00r=Lsc=xAgZV+B7%s} zjJC_aAI{;TIu;;T9KhrYs4*BdhzhETFdpE)LFn=LMhzxEIa#%sT7Y7E(g^V zAPF-M_OC!(go;nv+s>dWY6HYrK)Uvvg@AW>?~=Nz*;*9hT@2oLBN71-)aF@m^kxf_ z?f6VoC;nE3xPhknO8^RDbJ*VL%-MN{;)0P(DpAOX>*x4%=L$nxkI_4SIWJCZ!d1#( z3%$wkS{3izPg&Dk4-{u~u5|!(4&SKbYE@jlGksXY$BhhF_#GF8 zs14{FUejVlZ9w0`RfsC6p>Ofpw7ADbVe($R`jh;IYt*{f)h>B@pR~-kr|a7Fi<6sq zetaV?3e&b{(YItBVgrJKAqqnaGZ}b~@2Z_E>*~7_(3r135pktV^ks~w`WYXGt$SZbZ;>A?;k~CadMC4=)Vexr zr`fcwafd+%gQAM$^6636Z8KtWzx1zm1}jf)F>Cd9YHywpRX(-z+`t7Adt!XpG=}C)45R>EG<-;u|o*r4(s$0Hy6}-a~rlI-X-x_rnK%WYH>B+lO z=BR68N&tp6?(ZF*dOr)!Vf*|0xpM6irMV??>D2fs^waPIM%*3DD~zPx00000NkvXX Hu0mjf`a*w* literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/apm_inactive.png b/plugins/wtsynth/apm_inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..2ecea068373ca6c254a55aee726da25d00a0b576 GIT binary patch literal 476 zcmV<20VDp2P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00BfvL_t(Y$IX_pZo)7ShCg2@ zk_C!k$&#f(yZ|%eU8=rA-=ptPb?-YwnE_=*u(7}ZLLvjg?$XdkX{A=6)cYA_PHjiIq|)r6~0^Zc2jZYL&rcGVuy*I-OPl0kSOfqQs-osP5oz zH5d#q#$49cTGs0|o6UwKNeIJ`JkPP#0uV(JaU8Q)EI1qv&Gq2`a+?QH84 literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/arm_active.png b/plugins/wtsynth/arm_active.png new file mode 100644 index 0000000000000000000000000000000000000000..cd70a1fd4f63fae0bea41aa05ac958832e7ed154 GIT binary patch literal 889 zcmV-<1BU#GP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00QAjL_t(Y$IX^aXk1kkfWLF@ z`?%W8mAR?uR z-3jeNB#WZmv}q!Zl-6R138~G`do%Cd>*7r&nM`LGgq9q*a3Am7bG~!#z2{sxe__P+ z9X*Eed{h-<45EsPA|i+g%d%?v_{Cam65|2*`KK{q6KV`b4WfdoBCG{`GK3C?D@HIs zmjOzUW9OGQSWj}Z|20r80g`3r`ia*Oo1o%QHK-pT#xL*fvL3iqrlcx;x5{D_aIVXme!Zv zK>ZM#6f!%dL7LzS5jI}TMlq_g>s6)Qm9~gV#XpAM0cY7Za2ZikbK^F3A7$y!-&Y+6 zprn8M%t36tn0ZPQa1Q4zIJ;6J>I2r6j>G3b4eA9f{WVroPt@@2!H27Q>;;EP4s;M_S`U4A-zad^VK(a8)_~2gBXujccvj(tKm}`^>XH#67)IEbZ z$KRKRNtYh3>Ix|UFMN2BZ391Ha`~0kBm$x<{?;@Dtvo-9_#q~2L4#cVZK%^#l7FX} z`tfY}`{Au$$`wF^rt*4G4+(N;*qjYNS7leuUl?(xPJYI&uWmF@s2@rC{~KDJLOs^M zo8p71?2@?BJ$mKy(RI`6mYFiZLd3P>UF+|$U~L9ioS(%;*>lUTv**@-kyRc_y&Ays P00000NkvXXu0mjf+P|28 literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/arm_inactive.png b/plugins/wtsynth/arm_inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..8fed339262a176957e4c3ee507ae90366c269a9e GIT binary patch literal 569 zcmV-90>=G`P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00E&%L_t(Y$L*HQiXt%-g}vY$D47>tzJ>uSVgSM_& z582lYFqurQax2PqgCGb9g5YDV4xrU)J#R1WbUOckGk=3$*AJR1&^@fd00000NkvXX Hu0mjfbbIeh literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/artwork.png b/plugins/wtsynth/artwork.png index 26b66f53503e776f05e86d8543410ff2aa8523c0..819f322c73eb4ccaea14fd555c23e6c10e675174 100644 GIT binary patch literal 94710 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 diff --git a/plugins/wtsynth/b1_active.png b/plugins/wtsynth/b1_active.png index c09789d32e7b2ea636f55e145fe074d4331f88fc..5788f45c06267b9ba6f48cfff2bc10c11b07e76b 100644 GIT binary patch delta 635 zcmV->0)+jk0mucA85#xv003myJ*@x$00v@9M??T003QG!fq_z#ks%-m6%q#^uL{eP zkx3_i0x(HLK~zY`&6d4uR6!KQf9KA7`;mwyCJ`*e!p2~e#zMp*h#LrbI-l+%$cWWFJCxQJT%v= z`+OQ`1Vd9o%7IQ6Y4i|jGWN2J!|05{5|Em>kcjo= zC2q|(t9RY#JpZxBt6#qXSYKXb<$RqdTW#L#?6a3Sy)n2YcHP9qU;sJ6;F!!X<-Kr! zi7w*6$Iq^dOe!GZAd7UPQ!}x;I0I(5jLe}KjQdNoL>XP5jCF zetIz_RUr>QZ}VWIMK?O3Sj&LNTe|=xWi3T4C(TkgMV{oeVt#skfdJG@eErj-@6d@( zBc6?WB`TQaq>pxIw3x-<@wjoWRz3fJ>|{71!*O(E|B1K*`3Je!X)9dYXtB1@q92{R z3ym|kn`Eepe<~PRJLwdU%AFkdxQ40nv{4{6%gL0ZS=d4^ zIv?5{5IG1f(<(wH$<>zVm>vZj|VD^`q5^)(o1F3?$k}BMWTC3pIW#( zGbYkBx1LEFH02zI2$pegZ(g37tFDsEm8C_WOO5)7tLuM~JB-e5FQRWd+f)6!^%val V#s&oOVkZCq002ovPDHLkV1j7UEiM26 delta 116 zcmX@Xx{`5%qyZBH1HFdgVk6A=iRrAbr zm+up!)h!v6JzX3_EKVoeNIXAhAkfg6*l=LQ(Zyo@Q8rm0K@5JoZbl(z#Mu zkx3_i0T)R`K~zY`&6YiihA+?gxU?Yy>7!7D!mIVMPioz(cvMi5)08mwx5pa2)LvbAd z_xj9|B!TbydM<=O*LCRoUaxze2hKUhal8zFsR1da+PT-K#Y+ePVB0njLO>}+7={>z z;gBSbW6bk>8BnoMLWoYL^gBaY(==d=K?reJ=bYCmu1m@DW7Q$ z_Wm{Y`dxEfSL=0M|BUgUxathOdqc(;7-Nu9A_#)#`{3OGX`243OQQf)I}k!(nkI8E y0Nb`b-BZ`~vw&HanfFFdgVk6A=iRbTbX z!$T9J)h!v6JzX3_EKVn1xpXN>g5$su1BZkwj{>{hb>+5JfEeuak1|+nV3;@G`hpVB O3C?QQ%wEbL8T z9UDOu1RKFx!9=i;SXc;A#E2o$BCH0J{hDVnA8eA@Ag0+11H;_+&O7(qk9oTP_)%a$ zEskS!uoj20ilgcb4G6ISY;_anUN7Jy?-{OtINr~k7%26oUwx)tuj8FLoO1wNe)E-P z5=ekhl6VtD65g~+?a;GFqSW6>0__m!mS9U@Kx|_E(s7(~48>Kvb5;=S$Y^xCG?Tzi z3;`7r2fUb_n&9GCt?;#yz=P!mPgZ^dFgrEA&EHM}bIT1Le*ZKR)i;l$EI)Y)B_tKgZ!WIU3Gm|F5u8AXpupWv>$q%@SL*kc*BJr{mwalS2Yz) zu@fM&luT~5Y$UXkz(STn$8JBQxL%@W>PxU{!n6m$$i!I1NcyBBAJli2){7b`x;zAY z_Nkx0YQj~ld{F23I~e+2wO*b-IxxSwoRd!iG?T!Ew<`m6S!gCHMSc0PHn7(%fWI4Q V+3@vWoTUH&002ovPDHLkV1lVnK%oEt delta 116 zcmeyvx{`5%qyZBH1HFdgVk6A=iRrAbr zm+up!)h!v6JzX3_EKVoeNIXAhAkfg6*l=LQ(Zyo@Q8rm0K@5JoZbl(z#sI`Kw54%@g2>h@CvO zFG(o{K%VC)r4SK1oerDL1^{CWd7j(YbAJ_y2m*M;VW$UIRgxqaV~C;%rIcNtrfDfI ziXuehs{M;tuTHImVQ4e7+wJUp5Cru5{huuS4r6X>7PT@M1c9{=hl5?;>-A_ho243R z+-|pz&){OQ0AMs4(QdbGjTM_GNn&g9R@DL=4u_@MJJ(<^u=akxXSrNH7O-eb#TEYN zzotXn1#q=m)$-pAI3ACk`yX4t`F!r=gF&TVnX|7MfNw=FdgVk6A=iRbTbX z!$T9J)h!v6JzX3_EKVn1xpXN>g5$su1BZkwj{>{hb>+5JfEeuak1|+nV3;@G`hpVB O3e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00J;cL_t(Y$IX^YYg17W$A5Ej zZ|_a2X_J=FM8s|s*Oov;rP41Tg1B?zM%^lY1iy@XahFAX1q2IXe5~w3B5F+n(&l}} z#l5LFH;LNlA_KEIkN^DVab}L>R#(&$!3c9DR$;qZ#qmT~b`72p=7pmI9jgF1M!+*d zrBs-!2$m|ffFN)fxviI<=~~5V;6+r7z=8+~0g>@ot122|i3nB$91$>)wVs83cs43B zv|)sDF@MO(i5}`&rO~sr?I?f{TueKLE4dW+)|c?YqE%IPessD2q0T_z!RZXeC6B8+ zUugC%4#M^PBDYVbx%>V*<$9a_fn}iM1bri9Tr;xn#0#@+m4m@JL9385%B75tXM|7f zJ_=+V!@0Ca#x;EHSO}fDnDKf1t%U(DXZ^$4>RP2WQ2G-H4mpfuE?%6I)P@S+hDf)n zd)$1p$9AI)Kq8j*t*no0;Dn#x?BYTg?ddk6IyHhvkw+VAzun(Rd!!x1W+wShk7Z_p zyRAN;thfn|J7yf%2p5)pHpBGJDrVM;cisjmeiEiQE*}qiTw6EwQ*0!7>con5*k+tR%){vRvqqa6g=4(i?@{mC z5u9W~rnZ^52|1Np)!agY7p20H8nvoo`PGEuje7EY{rg6JzEb1itJgsUhlk6>{M?MX uAt%RbFqlh~+I)T%I;u2#b}qkL06zhN740u4+v^Je0000e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00ApWL_t(Y$IX?^ii0o|Mvu`J zRERAFH-gYNsPF#@11<`qg|;r-3MxV?2xb<8j>7!lI5>W*+=NTc{c@9Nhr>a!QoTg4 z2v#nm8w5eHDzGpN$AH7h|JKkfV`}n#zsL7|gm~``r4&_Fal73BI3ABkDLJ3dv~3H3 z>$-TJ$Mt%ps;Wu*P42-sGBW&u8*PXIQX&FFZCPCJg%JGs~qce-3I z#Boef6kitLx-OPw^~Ed-_>+pFz%)&iQj}%6KEMv@@p#ZQ&2l|>zu!l3nx>>_+Q&(f teERTbSvDVVZQtDpa4p~5Vme zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00Rq2L_t(Y$IX_{Yg|EyNgqW#vW$5rl4(Zu}2iyD8|-o!~+Qsp8gU7i~bR0YSut zf*`FTjg+)bLX(*{@69_d-kX`sbc%L27Y^@n?z!iCe%GMLaEX8dp$gwTe;Vf;^?Dt3PKN>JqU`lyH#2r~ z<4$h0`;a1BI=jG?wH1=Uk)sr%ymhL<*7_>vnlXhcA3VLl*7_=;cf7G&?!CTLM^)LF zpJQu%mA6-qb7;cd9CmXXNoMTz%NPKhbA(}tiYh8)ekMW>p<^TInb5EHYbv}rpWvMm zIAwD_8Ky5H!#as5U*A6DW+&sqa-GmQ-dSmIJMHtu&H)+FHO6o{R$^O)rK6{m^(|dj zeJaIdaA0J!IUiF~;ZziG_E@btRR%b4V?fW~<3IO#B=o$0rpc2@z$bt0v!5H?0{RnJ zLm3Q%NLj&$9o}<|kcL-YZbc8YDS)&vw%aM&?JjF4B7V8oD2nhh zY!3|HMUD>dXdl3exX{irH%1bo`qv{=#vBYuw@D;pqnDOSL2~W)h z-0WmiZ4`)9*l0#P+X%UKr^A`KfLBk(L@H&l{{zc2VJ8!!l^jj>+jh$1ae$feT|1o~ zppL0#)V&a^;N^ZinZWWD{+Q!Pg~W{{aw84|xc*NUfL{+X z?)HkY#EvHV+CsugNPugP5@%`E| zn?LN(D@p=2#);YqV{o@QfaLw#XJZro4Q11uG;o?qg*?OS~HJP)$I02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00G`fL_t(Y$IX^q&*4BAhOe2C zmI|tZ?qrg?GtbO(%`?-c z;>(Y3C*D{>)3mn*{QC1dA*B=m^?LoS;2MnvmSz0`1ZXy!Zvj`U)lfC$ zl?sVO0>^PU9*+QIvssG8BJFmY)oMkxTE#R?TCEnDOomdaM6cIlI-O#gCe><{;c&=k zG)%ys0ksEQes(_-(E9;Fn8LV^8$ z&tx+BG|x2)fD}Ub3t#-Bc9CUS2qDmQooFyIGs+ouKQ_h zp-^DA+tKg$*>1Pwa=AcN3_)AxOxUH4{QkShB6`1p9QABAhcf7#vtkmSwv3!}G+PwKJ| Qx&QzG07*qoM6N<$f{)-6(f|Me literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/bpm_active.png b/plugins/wtsynth/bpm_active.png new file mode 100644 index 0000000000000000000000000000000000000000..250b5ff0c97bf685e7a5084335063ec9b2276e26 GIT binary patch literal 729 zcmV;~0w(>5P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00KctL_t(Y$IX^cYZGA*#((o> zH`%l$CQ-yxgj~deM+pQJDh0ud2cdZL?%A{8#gjKbfM39yUmyoj30TxiQLvx~sr`dZ zK$?G>eaFLY(%nr`A%bRLF1znM`^>!0%&eS0cUE&E7-6BzD!kg>#>t6LbPYKpEDA>j z`c?sOj6lu^&HCy>Rj}UN4G99{%5A*+!N4k3!z|)v1hOJz1VoaxRy{c_B3KPEM8L$J z`4)z%6WAjTMj&g1My)dD$6J_-tNSqMCR4*7d38-MI;xbSF)7lRgOesWRzHaxa=3P|7>W1TIHh$V?R?tY;>ZHUv8Z*w6eJF$*DBdS;T0QQsuJGyD z=V)LP82OBxI%d+JND$0MbLg}|{pd?;oIuGj1RB0`MR>f^8V~VXTYKZ!mxmp!Dus+; z$;clE^#s9DK%-V!m{m98e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00AROL_t(Y$IX__YJ@Npg-_xj z1SKkh8&`@i;QPNqK}Bdc;_QT}E)>Bm#MqVXq@A`n4vuG)gDYf z6bIL7X~c1SD6k|+RKV-OXY1Om)7r^l7{aow&%TrrRaK#`YXm_6&N=cthm;Zk;CUW= z-$zjt==**(?AjJB1mFTS3e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00MwXL_t(Y$IX^IXcSQthQD)X zACtsnHxD-?M1l%YurWel1q%rXVk*JLMzFB9vd}{80t$k?m8GWAK7}AIn8X(W38E=t zTocIC%|7QIi`h)}kj+yj@%*6cr&JHbjlk zE*KTaTLmCw1foVrC5PLpg2~jX4-g0{H~HZ=1*=#E5r~N32#8eIR#k)fVQX5BS-V#2 z=P4A+PXUZT#0aw!Ljk5xg+5QnCk?%6gW9RU$^X+~*!zm5ErC>w{g?7Vc8qC2E9%RkEHX>sfME@l?rL zWzX|RuDpAd7OEwu0;-@jNp5^vqonZW!XVBOTX$!qn~yt%ssrc9L5w}m0^sREE?cI= ze*T64kFv*S`f$n|`Iad(^m7CroQm-yTdG^@a)jxzegKxUB_4g>Y^oeB13Y&u63ka} zUPHeZzy5N2q?;3Nedwr>AWleH6E)K+z^VB(SLf2?JY}*02LWdOWLVhA6Fx-wH;R@k zb7?Xq+p^qL0hB-+u9#AydxhCo+|}j{<1K zKkA)Ea2@eg{6B2H;PG^MJ9vM$l?xQ0!!bcI9DxoabUOZUO?}Ii(ZqlzA`b79!%c;{ zQlJ|Nb<6FniBMlmt@3i=i+@P=)6Px|wN0zr#}u;aH|At&wLLEjc~!QGwk@w)0RI3j Wl@LW;7Suri0000e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00D$aL_t(Y$IX?^i|Q~G#eYc) zZqy>`rcm%};YP&&|6h2}Vr2#w3Mwcl6iV?6P4ZTDbVf(z`DS`nx%Zyj9Fjw>D3{BI zjN;Gx8~#Y3`Fy(G@Ao%(i^T%hb;;#&SH++Docr-59t?s2 z-}lj4-}E5Ba=9c)lB)ua$0NS)qm+966Q5v=`PPE~lgWg3yNzwz=^lVir-LyD%d#Fm z@4rlv!{NYmI!)s^j?*9D8F3HY;CMW~i2MEi)!JuX9LMR$A4L&S6#d(%%i_4Z5SW!Q e_ah#BCH?~2r<`6T2Q!EO0000uQ785#xv001BJ|6u?C00v@9M??Vs0RI60puMM)ks%-m6%!-?D-ZS! zkx3_i0j)_yK~y-)ZIaPVBS8>EU-j&cZG0d6Ac4eXzy-kl69NH|2O*FHgg^}bAp*`` z?@af7tarUDGg3=4(o|PckPfQSer@%{Zx6A|QpoVmHVK@vG<%xqF3#OX>Ym0ByM6e5EC zzx|+KyZtq>NMg6!@$vDo80q%*mZzsDBAjrLi9@%?0M_f(1eO{1zwdc|ex_|(B7#2; z4?O;Tr0;ubbwZ4PMizVDF?ua~ARo1EDf@8j`E zgySc6li}{{_xq_yDTU+lIDzMDx2vm0D>myj9)3!q`1<005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4G%$q(fN^ECw~B|NklX&bLI>KDS(NAL_lW^`T6-iK0eEqEhDVq?%lij z`T2Qyd0Vz@*|B5C-Me>jX<&h)cV1o|ey2~JIyEjX z4yu8jogI&n5GUNab!*Y0MGOoKjF=HuSy{=zz|h{_4(ERR_CgKrU`DJlou8jCAtCYU z)2DCWzHxDJrKF_5oxq4IX~f0FNlQy3D0?@WCqi1V6=NOO27-Q<)#u!2flu{_=zip#ex0X_>aUld^jI};6 z{S~aLs45~-SN;jV9H6Szs0Z{62C$F39}*El2zc+`!oN09)f!Vu=`B1MkaH%bg!lew zV;I0bqWO9ECoq6@&QVGsrG$voO>VbaZHh6{_xI*4TL1t6 delta 256 zcmV+b0ssE#1GEB=8889>005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4I5iq1%#1XCw~C0Nkl!ak(RgS4~FA8ga6NV}Dg7f3+x zA^te zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00G=dL_t(I%XO1IQY0}9g+IxS zXJFWZgkS;|;w7LUA?FSd&Rw_%7a=9&1OxO}!XO_z)IcH*wgb)ZJpsJIFpn%}+ zhzOsbpET}HjFF?GBSeH4BdR(v5rp+8DP?lbq?B-X+COb!uvqL*C~e#F@bJLL$H%vp z&d<*|JNtzjhzecbq5$*xY(oA0{!Z6*?Ck7tb92M(?JcLLrwqfu>+35y8!lBgp{dnH z1QFrq@iD8_3IQBQDIrq&o`goG_-_R&<(fQ>Bko2OqWCwuG_%Njf*`mXDJ8nD zWf(?sHgGR~smUe2ad%WU464d6FE2bkK5nlFKlb+#kttq9XzIKH%nY-F{`U3;z`?-* zS65f4>NM&CUUs6X)xs>(Py1_f<~- O0000e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00DtXL_t(I%axNcj_NQJMUO+0 z5{Zh25(;W+8fvz|9#{?=U^$4Q7?BS%lhMrSEakr3cYUpn z$D`+kAP4|(&H-SpC5j@Pb2#T{wOVMc(OLr#20?(emNZTI4bC}41n)h!+l|mU_a?sI z?<^Jz(lo{U|K`FlWIP@-8ja9eBO+v3_Tk`_^Z87k=frW$Y&IhdLsqL5Ns_SLZW#`T zSZe_&ih}U7#lc{}d_J$wB7#y15kW+-*1kJy+SPlHwHB>4#+W+PS8?Njr#R1ZvMj?G z^R2jXfVGw+NmwqIZ+~vL+g}GfKX~0)Yt89&!Z}B$(_u21pp>H9?f&e*T8l9Tt#zGr z9LMx}y~bVyuLY^9in1)JstTplTQi$b`~BW$S%!#E6a`vqoO9m>_L=MTN*F~E-g~O5 zLPTouX0u_vUeoXQnNFw8D?AHgj6p>BD{8mfd1DNh%cXuKzah_a9*@VzEgTL9%CfAJ b{|o;BO;Z(J@#uk100000NkvXXu0mjfrjOqZ literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/mix_active.png b/plugins/wtsynth/mix_active.png deleted file mode 100644 index c09789d32e7b2ea636f55e145fe074d4331f88fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<-!2~24nJa0`PlBg3pY5H=O_Iu1CqN1@b#rmUcvOa4nJa0`PlBg3pY5H=O_Iu1CqN@6;UmhL;3Q3l@MwB?`=jNv7l`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C z6)AhVIEGl9PQG&KQj!G6fg=VE30EEkcDw7!ZLI(?*ykT*u-L#bZ@%>fC7^N!Pgg&e IbxsLQ0E1jG%>V!Z diff --git a/plugins/wtsynth/norm_active.png b/plugins/wtsynth/norm_active.png index 16b72849b221c93898b7a135cf68f3dba7ffb793..bbf45313a992b822dfc0e1efa86c4b1902d6d555 100644 GIT binary patch delta 525 zcmV+o0`mQ_0^0D9%`F!Td%<$fSGn>s25xn=P>WxGY8kf2bgb=9f8Z+ba z?~(|{;|Z$D@pxpj*&rhPetYA`^D~$7!pENv%#77)#mmc2EP|*|lou3WFzDZ_Hs$_) zej*}ROgglcLx`BPvPnwN?Nb^d_xn9nRZ-P7Aq33sTBo*>JtSxk&5WWbQj+Vn9ZzR} zN_Snf-|wUDP5|j P00000NkvXXu0mjfL8toH delta 253 zcmV005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4G%$q(fN^ECw~B|NklX&bLI>KDS(NAL_lW^`T6-iK0eEqEhDVq?%lij z`T2Qyd0Vz@*|B5C-Me>jX<&h)cV1o|ey2~JIyEjX z4yu8jogI&n5GUNab!*Y0MGOoKjF=HuSy{=zz|h{_4(ERR_CgKrU`DJlou8jCAtCYU z)2DCWzHxDJrKF_5oxq4IX~f0FNlQy3D diff --git a/plugins/wtsynth/norm_inactive.png b/plugins/wtsynth/norm_inactive.png index d712c722a04f407aad3ce2dda983aeb727edfeea..7a0bd937d634aae0f48d86a04ed4721889419bb4 100644 GIT binary patch delta 423 zcmV;Y0a*UD0`>!t85#xv001BJ|6u?C00v@9M??Vs0RI60puMM)ks%-m6%!#3#>XGo zkx3_i0bWT&K~y-)jgvi&;!qHTzcDr`7eEMs2+Vyr0oUOq90rj9mL(!W0ubPzXI^(t zu<{ej4&JHA$yX|O)%!Y~PR5I(C;~uL0T2V;mNZR+s#2CE(Wj{U{T}ZW`9oi(V#3#vMdX6RrN10 z9Q`NQ%oq#?Y&IL}x(?7g+-Z=eDS4iAzu!N?08!ibYfY-kbUH;u$n*Ro{7-@wZpSlr z8jaZPcAdM3-UlKgVTJSgoZIczZQz{4%n*^#Z~M=a$%KBt-))d231${Lemz(m$INE4 zZUgT<-g}y+2?no9)3npzE6Xx#nuhcF93IJUR1^hORS^Rmk4Ngd{xQM-^bMhJ8IrPt Rk-z`|002ovPDHLkV1lI5zOVoQ delta 256 zcmV+b0ssE?1GEB=8889>005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4I5iq1%#1XCw~C0Nkl!ak(RgS4~FA8ga6NV}Dg7f3+x zA^t3;TXB;F7kcIea7*W$8BvVjQKu3_Mf@Hez4IGg8 zJV6RRBr4~8-0n__J)aFpRvPUV^WMCfc`N7V=f>I*5dc&bGb4mRp67%RNRouDtu5-h z#yLm7Uyv>V-g|a;ck$kn=Q&A|kR%DJ+C`FoC?J>_BEoz=Cp9zjJZEQT2N5C9b5ylc zA_(mh=RDqfoO75N)$b}Q7!1C2RYc@NpkM~hH8f3wS-=8_3X8fT1t^N%3iOF2xPT9y z#x(>V+8jX;KqA5C%BsqIKF7=`ih`zbgy5;F1tPGyx!L9ZlK|l6<_0t4=;(+n%McNN zZg0NQ09vBfrDMM#(X2DqC{0NCH(Cxn2ibl}lwv}#d6Bzi*E*LQYy z#`g9$)9IA5ECFRa9y1&cd3boBoR!^wkX55UbTAkoB3SFj(P%`LWjsDU^7p_0!B-T(jq07*qoM6N<$f^kO>Hvj+t delta 253 zcmV005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4G%$q(fN^ECw~B|NklX&bLI>KDS(NAL_lW^`T6-iK0eEqEhDVq?%lij z`T2Qyd0Vz@*|B5C-Me>jX<&h)cV1o|ey2~JIyEjX z4yu8jogI&n5GUNab!*Y0MGOoKjF=HuSy{=zz|h{_4(ERR_CgKrU`DJlou8jCAtCYU z)2DCWzHxDJrKF_5oxq4IX~f0FNlQy3Dxt)>vzQx!rDG6O?f+iUOq+#u%J)06ZQK;&;&X zdIg|fuLn5Kb3}wjqY>)fHt6^JhzPUU3;<&cqtOU}@pw$FR{L7|E4bZmBO)voivSM> z0|2JeX@LK0kYyR2PA9-hDbh6k0spJ$`@I1slL_8?hQnc4*nB<*pxf=fyy}k$mdho7 ztyYWGYDJo+!L`|Jve|4n9*^%Ec<(XB(ChVx?k6$QVPlS`8nhto!|b|C7Ys hZiiATWc)Y!1lhI*Doxi}od5s;07*p#PDHLkV1oE9&3XU; delta 256 zcmV+b0ssDm1hfK>8889>005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4I5iq1%#1XCw~C0Nkl!ak(RgS4~FA8ga6NV}Dg7f3+x zA^t^zv}(57oQLbScq3!BtHTo;w~eC#7BTY!~{Hnh0yUj zwve140%I>TJ9EK$y*76%wRVE3>aMODU0z;BwmwM!m>DrfLI~t}P6&Y{NjNw-psFgo z_Y_5+v<1|4&GGRubzPI^IZ2X`Bnf7=sU$IfK*Si4#A2}^jWLqvIfsXbNFvX3%xp7> z5bGn}*VJ{5_nsId%g<#q!C>%X(?!xwVGtvD?{Ll$V;}~QiB+{E1?cyC9q1cL@PRti zIPVB`Sl5XN&H%XieX}L4nF9%nF=ATV zWX8qC1u;ghudjJ~dqXnL&(A?H9*>#N=a?GFCSlutx4|jP5`d?tCnS)J)6-KV@%Z?- zZr)@fZS8Bp)9IASWWv$Wkg_Z>6Z83hoag6fhQlGF(P(XXBPAUS28~@YGMmkqOeSPm zMp>3f9XQJ}Mx)Wr9wd=E=a7t0dtP2%$g*rRt|b1vzV3j#u&w{&@i?BGoKUSQzT8*i zpSp+D1x(%Y)+F!m@1%QsdldaX%jL51_2z4SDLkNGXMYp07*qoM6N<$f|(K<6951J delta 253 zcmV005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4G%$q(fN^ECw~B|NklX&bLI>KDS(NAL_lW^`T6-iK0eEqEhDVq?%lij z`T2Qyd0Vz@*|B5C-Me>jX<&h)cV1o|ey2~JIyEjX z4yu8jogI&n5GUNab!*Y0MGOoKjF=HuSy{=zz|h{_4(ERR_CgKrU`DJlou8jCAtCYU z)2DCWzHxDJrKF_5oxq4IX~f0FNlQy3DOc@g&ki<-h#Wo-5rYKyBftr{35ZDeBpe{*jHhI<$Mfh7 zuJEpfuEbU}8g*6mRQG%xk4NDblu`hA?*VYm5r!e&d%X9wS}nBJXsrPVlu|h7xL&V( z0`EQ6T114~?MC3e|A;IiSZk@O3avHPTJk)9|JT7Mu2of0mLUL$}){ zNfH2t!y(Q&lv2cTjEFFw&)>)mffruxqtS@{evdJR<#Gu?6h&lN))aWn`vq$)Q54~S zoFk6oy6y3J48Ur&YScGEbk32cDeLu`e!tITGC@ShvW)F^%V035h28|b_oQh`k|YE{ zz<4}vki#&1BLgU{H6ns@j?HG%AOq}nyZ@2_z7B_jTrL;NvZN@Ade)!dbULA|we^Zx zYxygbF@{d3Q-6?8-5-y~Pl#!nQkG>Iz2kquH+P*Ecdfl1djJ3c07*qoM6N<$g7}8f A!vFvP delta 256 zcmV+b0ssD(1hfK>8889>005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4I5iq1%#1XCw~C0Nkl!ak(RgS4~FA8ga6NV}Dg7f3+x zA^t4nJa0`PlBg3pY5H=O_Iu1CqN1@b#rmUcvOa4nJa0`PlBg3pY5H=O_Iu1CqN@6;UmhL;3Q3l@MwB?`=jNv7l`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C z6)AhVIEGl9PQG&KQj!G6fg=VE30EEkcDw7!ZLI(?*ykT*u-L#bZ@%>fC7^N!Pgg&e IbxsLQ0E1jG%>V!Z diff --git a/plugins/wtsynth/rm_active.png b/plugins/wtsynth/rm_active.png deleted file mode 100644 index c09789d32e7b2ea636f55e145fe074d4331f88fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^8bB<-!2~24nJa0`PlBg3pY5H=O_Iu1CqN1@b#rmUcvOa4nJa0`PlBg3pY5H=O_Iu1CqN@6;UmhL;3Q3l@MwB?`=jNv7l`uFLr6!i7rYMwWmSiZnd-?{1H}Z)C z6)AhVIEGl9PQG&KQj!G6fg=VE30EEkcDw7!ZLI(?*ykT*u-L#bZ@%>fC7^N!Pgg&e IbxsLQ0E1jG%>V!Z diff --git a/plugins/wtsynth/saw_active.png b/plugins/wtsynth/saw_active.png index 16b72849b221c93898b7a135cf68f3dba7ffb793..c5fd4dba635b220a7378c9a628941a5c154b6007 100644 GIT binary patch delta 512 zcmV+b0{{K70?q`G85#xv001BJ|6u?C00v@9M??Vs0RI60puMM)ks%-m6%!*D=bhyZ zkx3_i0k%m*K~y-)ZIUrkBS8#B-`7ly4c>r+qI@_`K;|(Aa71Jb1Z=_)muO+_ad%4_ zjAv{EU8Sl{{+HgDv|6o#lP3uPGb18!cbcZb-KnaItE(%zt|RBn#l@6*5R_7w&*zj< zXqtwqs;H_8GaIX_3=k24BtAbssUw1>X}G?BzD5#F(_m)fBtjg%+5fBZf=Ie zupzLqq<#{>-AOsob$fEktk-L9Z*Rx2rJoGU00p!5$Dyq8|3mf!V$9?(Qez@7t03 zo2Uow;p%#3XS3O`ShScOMZ=_hZas?4W-}xahii-o9v>fR+b?1hvQvZ}qfRLy8D9Fa z*XuRQ005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4G%$q(fN^ECw~B|NklX&bLI>KDS(NAL_lW^`T6-iK0eEqEhDVq?%lij z`T2Qyd0Vz@*|B5C-Me>jX<&h)cV1o|ey2~JIyEjX z4yu8jogI&n5GUNab!*Y0MGOoKjF=HuSy{=zz|h{_4(ERR_CgKrU`DJlou8jCAtCYU z)2DCWzHxDJrKF_5oxq4IX~f0FNlQy3DK~y-)m6I`!!axi~9|O4r_oF3gkf=BST#$x}28jZYAQ?|=&lX70vTSyT z-@ora-=4|wc+7lL2mt_h2f)mzstR|<-I-3OhzKGAz$}D-nQ^&XD3QCPs^pxxUatgq zFM@N<^nK6ibYihsaJ${O-|x=^B~w#M#28tBuh-1ybKIS_ZTXj0Rbq^^ZOd}Gq^|2B z5io9$b4FDW5xTCUu4}g2?Ens?kHKb!h!A6>X&QFB-5We=PznRjE&P0QDg2he%t$FA zB1Q0vfxFZ9eevYMKtx_jYntZQwnq)Bsv6F6Y*l|6s4A+;YPDjs+3=|*`~5zrlsKO% t&%-Av(c|%;>pErthr@vwBWCt-f-e#=03P898xa5i002ovPDHLkV1mdAotFRr delta 256 zcmV+b0ssE01GEB=8889>005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4I5iq1%#1XCw~C0Nkl!ak(RgS4~FA8ga6NV}Dg7f3+x zA^t9 diff --git a/plugins/wtsynth/sin_active.png b/plugins/wtsynth/sin_active.png index 16b72849b221c93898b7a135cf68f3dba7ffb793..de78b98773a0bb37f5ad5fdf9004452e94a4e093 100644 GIT binary patch delta 621 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 delta 256 zcmV+b0ssED1hfK>8889>005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4I5iq1%#1XCw~C0Nkl!ak(RgS4~FA8ga6NV}Dg7f3+x zA^t^zv{Kd2K#{*#5sf`1j_*s2#F8@3GhS|PU-xBkvMGc z&QIUN>?}T5sioEYR998k=;`Unx%eajU}m^Gr4&L4lv3!rj+>hs`o1Tn#MRY;S-X&P zX1!jMb0&m9*L8GVhnY>)bp{A`M-rc(pUm8Uoe%=Ix3@?lgn*e%OoSMJNhy_a|lmi^UvCJUl!g37Ie% zyWNgb3d1lEQ>5fF?F#{_0A>b)^?Hq@Dgg)~Ac?*oC?(f(ldM|S0E8y9035i#|4mAN ziBj@^(zx)&=JPq$jmTz5HX4@r`1s2(3{$sO`~4q4AYtx~sk+{o;a*57jfOdIZ*NoQ zR_~$D(!06@pwdIgH{!=X2P28$HzxXDa073%dNB7XqfCGsnrKtE|*B+ z*O+5T-77I?NQ`M)h1FO}F!{NYgw;SjFCE005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4G%$q(fN^ECw~B|NklX&bLI>KDS(NAL_lW^`T6-iK0eEqEhDVq?%lij z`T2Qyd0Vz@*|B5C-Me>jX<&h)cV1o|ey2~JIyEjX z4yu8jogI&n5GUNab!*Y0MGOoKjF=HuSy{=zz|h{_4(ERR_CgKrU`DJlou8jCAtCYU z)2DCWzHxDJrKF_5oxq4IX~f0FNlQy3DX zkx3_i0b)r+K~y-)m69=z;y@5Z-xw^Ba0K8OoB?qN60X4^xB@W;A|XN$0Fo_%vAesf zYl4w`U>Wbu{?P6J`uDH;I2;bfld>!WAjSxQs*>k9F-BsH^m;v#b(SbUG!3KwZ~( z@88Uw05d~XDa(?ost6&Z?*PZ+@$Udt#W_a^fz#>qVg^{R*WZA4-mOFg=NwJbpsL(@ zZnwACKR#i#TA`|GOl|CcDFH^K5g~-s_Mfpk0nWKpTDu@WwcVwDp68euAp}H(7-KTG zeLT1R1`v_7q9XEgI2;bSUaxGo+fKm8Znrb}002ovPDHLkV1mwY$2$N3 delta 256 zcmV+b0ssE`1GEB=8889>005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4I5iq1%#1XCw~C0Nkl!ak(RgS4~FA8ga6NV}Dg7f3+x zA^tOc@iPj{?=C8j#{f)f5ycnHNL;z4#%#08MaU2suAc`WcudgYJ0_Pl;mwhhI2fX(r zNrLyDIF5;;h$xCs)h41y0l~}=5e|m~7iLC(9LL<<-60~xag3@qN(7-E;+)5Ok8=() z1l(_|5mCYH-3BEs|YGtQNiWr|Am<956FZrxT?s z2|m<&1VI2n&%l}xK~>poHatB&@%Z@2YPG_Zt_4l2^7jR*0PJ=<(lli{owDEWTP9L} zWj=G!UayBnb^WS{C~t3XWLd^=IAk;$k)|nmo_F|EIuJq443)Y~s+a|KyB*W%6z@GE z%4{~{^YgQnEn5Et?e^Quczu24{{EiZ+gnttY~%5S*=)vkyRAwP5UD(&-S&kL`1trB zP1Cy8GZ*=$;yfn;Iv5NP5e!(b*JN3L#&|rgH@38sWWszt=l%V?;UFStS(b<>!3XyH zJz17@vQ%KThC83nn~unt!|8OwEU;d!$g+%Nl6-TdHU<-tB;n!Vfz4*qu3ueUaoO*a z|IN9%8CEXqC}IVzIEIC@6}85W)|`@a=8<3{~YngAutA$g1ax Qg8%>k07*qoM6N<$f|EcJ*Z=?k delta 253 zcmV005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4G%$q(fN^ECw~B|NklX&bLI>KDS(NAL_lW^`T6-iK0eEqEhDVq?%lij z`T2Qyd0Vz@*|B5C-Me>jX<&h)cV1o|ey2~JIyEjX z4yu8jogI&n5GUNab!*Y0MGOoKjF=HuSy{=zz|h{_4(ERR_CgKrU`DJlou8jCAtCYU z)2DCWzHxDJrKF_5oxq4IX~f0FNlQy3D)@ow2 zkx3_i0eneBK~y-)m6JP;;y@Hd4+d|bg=NVs0DlmhU`?!o#TW=p#0n}yBt(b^OMt}3 zRj$tjEv#;}J=1fu3QoOKuion&k4MLsc%BD!yZns-gRVhVP zRn&EjF$RF=^GWY?I=Qkef57YYy6J(|n%QhdUDr70aPG5hWm(c$UI@WtG9gJ4gb*mD zzQIk?+u+q|#dJC)3`2q-AdX{-qWA%KULb@ZNs{KxS(dTe?OIK}_kX{W=Q&xH5d;B$ zbzK7xMGyD%IM*>1PZxwqf%ol=VP w`P?kYZ}NCNc)eZ>01k%(RaG@J{y+H@1I{P|Punp(p8x;=07*qoM6N<$f=ZUpEdT%j delta 256 zcmV+b0ssD#1hfK>8889>005AYXf^-<010qNS#tmY3ljhU3ljkVnw%H_000McNliru z-UAdC4I5iq1%#1XCw~C0Nkl!ak(RgS4~FA8ga6NV}Dg7f3+x zA^t|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&Z8pdfpRr>`sfJ!Vm1L5W#GYu*BdBuiW)N}Tg^b5rw57@Uhz6H8K4 z6v{J8G8EiBeFMT9`NSC*7|(dRIEGZ*dVAg1>#&1F!^8L9SsQj~zTCH6`27RbJ9dAI=3+{_9yY zoByz|lFYRVo4EH4u_N@;@Wxv z)j0|5EG!&M1TiBM6AMweiJ`GrqIB}Eb&GXQuMHG&O-V~hb8-34^6j$8*>?=Lx4m^f zea3E2VhIzAdw_s~f&+HUAt0cDAK%yjQlWQgI>SL(0TvDpEcng)sD=dgmTuEmYNfI6 zk<+3VYjmABbK*=#$3MO#5jcFKX|4Bg(OQ{BTAg}b8}PkN*J7rQWHy3QxwWGOEMJPJ$(bh8~Mb6 zif($kIEGZ*dV9%Gkb!~Yh(SW#|0=_S2PSyD*g9FH##AUFz(9kIwYkaBP(wllNF7`t zA;QxIq!I#nxY&*YDX@GJkRnPRWDGw2aCx9IZ02Li1C_Bh!|jL4KRm;vx|ZQv{LfF{ QfSzRVboFyt=akR{045G)G5`Po From f7e107ea2cd71415304438e253cc34cd8d6cca98 Mon Sep 17 00:00:00 2001 From: Vesa Date: Fri, 21 Mar 2014 23:45:53 +0200 Subject: [PATCH 11/23] Add some mixer locks --- plugins/wtsynth/WTSynth.cpp | 48 ++++++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index e51c0ff96..8b533ed4b 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -238,7 +238,7 @@ void WTSynthObject::changeVolume( int _osc, float _lvol, float _rvol ) { m_lvol[_osc] = _lvol / 100.0; m_rvol[_osc] = _rvol / 100.0; - qDebug( "osc %d vol %f %f", _osc, m_lvol[_osc], m_rvol[_osc] ); +// qDebug( "osc %d vol %f %f", _osc, m_lvol[_osc], m_rvol[_osc] ); } @@ -402,18 +402,34 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, sampleFrame * bbuf = w->bbuf(); w-> renderOutput( frames ); - - for( fpp_t f=0; f < frames; f++ ) + + if( engine::mixer()->currentQualitySettings().sampleExactControllers ) { - // get knob values in sample-exact way - const float bmix = ( ( m_abmix.value( f ) + 100.0 ) / 200.0 ); + for( fpp_t f=0; f < frames; f++ ) + { + // get knob values in sample-exact way + const float bmix = ( ( m_abmix.value( f ) + 100.0 ) / 200.0 ); + const float amix = 1.0 - bmix; + + // mix a/b streams according to mixing knob + _working_buffer[f][0] = ( abuf[f][0] * amix ) + + ( bbuf[f][0] * bmix ); + _working_buffer[f][1] = ( abuf[f][1] * amix ) + + ( bbuf[f][1] * bmix ); + } + } + else + { + const float bmix = ( ( m_abmix.value() + 100.0 ) / 200.0 ); const float amix = 1.0 - bmix; - - // mix a/b streams according to mixing knob - _working_buffer[f][0] = ( abuf[f][0] * amix ) + - ( bbuf[f][0] * bmix ); - _working_buffer[f][1] = ( abuf[f][1] * amix ) + - ( bbuf[f][1] * bmix ); + for( fpp_t f=0; f < frames; f++ ) + { + // mix a/b streams according to mixing knob + _working_buffer[f][0] = ( abuf[f][0] * amix ) + + ( bbuf[f][0] * bmix ); + _working_buffer[f][1] = ( abuf[f][1] * amix ) + + ( bbuf[f][1] * bmix ); + } } applyRelease( _working_buffer, _n ); @@ -947,6 +963,7 @@ void WTSynthView::sqrWaveClicked() void WTSynthView::normalizeClicked() { + engine::mixer()->lock(); switch( m_selectedGraphGroup->model()->value() ) { case A1_OSC: @@ -966,11 +983,13 @@ void WTSynthView::normalizeClicked() engine::getSong()->setModified(); break; } + engine::mixer()->unlock(); } void WTSynthView::invertClicked() { + engine::mixer()->lock(); switch( m_selectedGraphGroup->model()->value() ) { case A1_OSC: @@ -990,11 +1009,13 @@ void WTSynthView::invertClicked() engine::getSong()->setModified(); break; } + engine::mixer()->unlock(); } void WTSynthView::smoothClicked() { + engine::mixer()->lock(); switch( m_selectedGraphGroup->model()->value() ) { case A1_OSC: @@ -1014,11 +1035,13 @@ void WTSynthView::smoothClicked() engine::getSong()->setModified(); break; } + engine::mixer()->unlock(); } void WTSynthView::phaseLeftClicked() { + engine::mixer()->lock(); switch( m_selectedGraphGroup->model()->value() ) { case A1_OSC: @@ -1038,11 +1061,13 @@ void WTSynthView::phaseLeftClicked() engine::getSong()->setModified(); break; } + engine::mixer()->unlock(); } void WTSynthView::phaseRightClicked() { + engine::mixer()->lock(); switch( m_selectedGraphGroup->model()->value() ) { case A1_OSC: @@ -1062,6 +1087,7 @@ void WTSynthView::phaseRightClicked() engine::getSong()->setModified(); break; } + engine::mixer()->unlock(); } From b574e1c1ca4a22afee345bee3557f646ccdfdbc2 Mon Sep 17 00:00:00 2001 From: Vesa Date: Fri, 21 Mar 2014 23:53:15 +0200 Subject: [PATCH 12/23] Revert earlier --- plugins/wtsynth/WTSynth.cpp | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index 8b533ed4b..98fbab8e2 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -963,7 +963,6 @@ void WTSynthView::sqrWaveClicked() void WTSynthView::normalizeClicked() { - engine::mixer()->lock(); switch( m_selectedGraphGroup->model()->value() ) { case A1_OSC: @@ -983,13 +982,11 @@ void WTSynthView::normalizeClicked() engine::getSong()->setModified(); break; } - engine::mixer()->unlock(); } void WTSynthView::invertClicked() { - engine::mixer()->lock(); switch( m_selectedGraphGroup->model()->value() ) { case A1_OSC: @@ -1009,13 +1006,11 @@ void WTSynthView::invertClicked() engine::getSong()->setModified(); break; } - engine::mixer()->unlock(); } void WTSynthView::smoothClicked() { - engine::mixer()->lock(); switch( m_selectedGraphGroup->model()->value() ) { case A1_OSC: @@ -1035,13 +1030,11 @@ void WTSynthView::smoothClicked() engine::getSong()->setModified(); break; } - engine::mixer()->unlock(); } void WTSynthView::phaseLeftClicked() { - engine::mixer()->lock(); switch( m_selectedGraphGroup->model()->value() ) { case A1_OSC: @@ -1061,13 +1054,11 @@ void WTSynthView::phaseLeftClicked() engine::getSong()->setModified(); break; } - engine::mixer()->unlock(); } void WTSynthView::phaseRightClicked() { - engine::mixer()->lock(); switch( m_selectedGraphGroup->model()->value() ) { case A1_OSC: @@ -1087,7 +1078,6 @@ void WTSynthView::phaseRightClicked() engine::getSong()->setModified(); break; } - engine::mixer()->unlock(); } From 10994e3ae5c2bb601036461a3e658c194ec32ab9 Mon Sep 17 00:00:00 2001 From: Vesa Date: Sat, 22 Mar 2014 02:37:47 +0200 Subject: [PATCH 13/23] Copy wavegraphs to synthobject at note start, prevent hangups if wave edited while playing --- plugins/wtsynth/WTSynth.cpp | 10 ++++++---- plugins/wtsynth/WTSynth.h | 11 +++++------ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index 98fbab8e2..94ea69093 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -57,10 +57,6 @@ Plugin::Descriptor PLUGIN_EXPORT wtsynth_plugin_descriptor = WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, float * _B1wave, float * _B2wave, int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph, fpp_t _frames ) : - m_A1wave( _A1wave ), - m_A2wave( _A2wave ), - m_B1wave( _B1wave ), - m_B2wave( _B2wave ), m_amod( _amod ), m_bmod( _bmod ), m_samplerate( _samplerate ), @@ -79,6 +75,12 @@ WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, m_rphase[A2_OSC] = 0.0f; m_rphase[B1_OSC] = 0.0f; m_rphase[B2_OSC] = 0.0f; + + // copy wavegraphs to the synth object to prevent race conditions + memcpy( &m_A1wave, _A1wave, sizeof( m_A1wave ) ); + memcpy( &m_A2wave, _A2wave, sizeof( m_A2wave ) ); + memcpy( &m_B1wave, _B1wave, sizeof( m_B1wave ) ); + memcpy( &m_B2wave, _B2wave, sizeof( m_B2wave ) ); } diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index 37d3cec0e..0484fa7da 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -91,11 +91,6 @@ public: } private: - sample_t * m_A1wave; - sample_t * m_A2wave; - sample_t * m_B1wave; - sample_t * m_B2wave; - float m_lvol [NUM_OSCS]; float m_rvol [NUM_OSCS]; float m_mult [NUM_OSCS]; @@ -118,7 +113,11 @@ private: float m_lfreq [NUM_OSCS]; float m_rfreq [NUM_OSCS]; - + + float m_A1wave [WAVELEN]; + float m_A2wave [WAVELEN]; + float m_B1wave [WAVELEN]; + float m_B2wave [WAVELEN]; }; class WTSynthInstrument : public Instrument From ed2b63b1fffe8d3f6db7736754f2596652b2647c Mon Sep 17 00:00:00 2001 From: Vesa Date: Sat, 22 Mar 2014 22:26:41 +0200 Subject: [PATCH 14/23] Added simple mix envelope --- data/themes/default/style.css | 15 ++- plugins/wtsynth/WTSynth.cpp | 173 ++++++++++++++++++++++++---------- plugins/wtsynth/WTSynth.h | 15 ++- plugins/wtsynth/artwork.png | Bin 94710 -> 95609 bytes 4 files changed, 151 insertions(+), 52 deletions(-) diff --git a/data/themes/default/style.css b/data/themes/default/style.css index bba01399d..c2e91bd05 100644 --- a/data/themes/default/style.css +++ b/data/themes/default/style.css @@ -612,7 +612,7 @@ WTSynthView knob#aKnob { color: #43b2ff; qproperty-outerColor: #43b2ff; qproperty-innerRadius: 1; - qproperty-outerRadius: 8; + qproperty-outerRadius: 7; qproperty-centerPointX: 9.5; qproperty-centerPointY: 9.5; qproperty-lineWidth: 2; @@ -622,7 +622,7 @@ WTSynthView knob#bKnob { color: #fc5431; qproperty-outerColor: #fc5431; qproperty-innerRadius: 1; - qproperty-outerRadius: 8; + qproperty-outerRadius: 7; qproperty-centerPointX: 9.5; qproperty-centerPointY: 9.5; qproperty-lineWidth: 2; @@ -632,12 +632,21 @@ WTSynthView knob#mixKnob { color: #43ff82; qproperty-outerColor: #43ff82; qproperty-innerRadius: 1; - qproperty-outerRadius: 14; + qproperty-outerRadius: 13; qproperty-centerPointX: 15.5; qproperty-centerPointY: 15.5; qproperty-lineWidth: 2; } +WTSynthView knob#mixenvKnob { + color: #43ff82; + qproperty-outerColor: #43ff82; + qproperty-innerRadius: 1; + qproperty-outerRadius: 7; + qproperty-centerPointX: 9.5; + qproperty-centerPointY: 9.5; + qproperty-lineWidth: 2; +} /* palette information - each colour definition must be on a single line, and the line must begin with "palette:", with no leading whitespace * colour codes MUST be of the form #RRGGBB */ diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index 94ea69093..82fa8dba6 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -65,17 +65,17 @@ WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, { m_abuf = new sampleFrame[_frames]; m_bbuf = new sampleFrame[_frames]; - + m_lphase[A1_OSC] = 0.0f; m_lphase[A2_OSC] = 0.0f; m_lphase[B1_OSC] = 0.0f; m_lphase[B2_OSC] = 0.0f; - + m_rphase[A1_OSC] = 0.0f; m_rphase[A2_OSC] = 0.0f; m_rphase[B1_OSC] = 0.0f; m_rphase[B2_OSC] = 0.0f; - + // copy wavegraphs to the synth object to prevent race conditions memcpy( &m_A1wave, _A1wave, sizeof( m_A1wave ) ); memcpy( &m_A2wave, _A2wave, sizeof( m_A2wave ) ); @@ -98,31 +98,31 @@ void WTSynthObject::renderOutput( fpp_t _frames ) m_abuf = new sampleFrame[m_fpp]; if( m_bbuf == NULL ) m_bbuf = new sampleFrame[m_fpp]; - + for( fpp_t frame = 0; frame < _frames; frame++ ) { float frac; // A2 frac = fraction( m_lphase[A2_OSC] ); - sample_t A2_L = + sample_t A2_L = ( m_A2wave[ static_cast( m_lphase[A2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + ( m_A2wave[ static_cast( m_lphase[A2_OSC] + 1 ) % WAVELEN ] * frac ); A2_L *= m_lvol[A2_OSC]; frac = fraction( m_rphase[A2_OSC] ); - sample_t A2_R = + sample_t A2_R = ( m_A2wave[ static_cast( m_rphase[A2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + ( m_A2wave[ static_cast( m_rphase[A2_OSC] + 1 ) % WAVELEN ] * frac ); A2_R *= m_rvol[A2_OSC]; // B2 frac = fraction( m_lphase[B2_OSC] ); - sample_t B2_L = + sample_t B2_L = ( m_B2wave[ static_cast( m_lphase[B2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + ( m_B2wave[ static_cast( m_lphase[B2_OSC] + 1 ) % WAVELEN ] * frac ); B2_L *= m_lvol[B2_OSC]; frac = fraction( m_rphase[B2_OSC] ); - sample_t B2_R = + sample_t B2_R = ( m_B2wave[ static_cast( m_rphase[B2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + ( m_B2wave[ static_cast( m_rphase[B2_OSC] + 1 ) % WAVELEN ] * frac ); B2_R *= m_rvol[B2_OSC]; @@ -151,28 +151,28 @@ void WTSynthObject::renderOutput( fpp_t _frames ) // A1 frac = fraction( A1_lphase ); - sample_t A1_L = + sample_t A1_L = ( m_A1wave[ static_cast( A1_lphase ) % WAVELEN ] * ( 1.0f - frac ) ) + ( m_A1wave[ static_cast( A1_lphase + 1 ) % WAVELEN ] * frac ); A1_L *= m_lvol[A1_OSC]; frac = fraction( A1_rphase ); - sample_t A1_R = + sample_t A1_R = ( m_A1wave[ static_cast( A1_rphase ) % WAVELEN ] * ( 1.0f - frac ) ) + ( m_A1wave[ static_cast( A1_rphase + 1 ) % WAVELEN ] * frac ); A1_R *= m_rvol[A1_OSC]; // B1 frac = fraction( B1_lphase ); - sample_t B1_L = + sample_t B1_L = ( m_B1wave[ static_cast( B1_lphase ) % WAVELEN ] * ( 1.0f - frac ) ) + ( m_B1wave[ static_cast( B1_lphase + 1 ) % WAVELEN ] * frac ); B1_L *= m_lvol[B1_OSC]; frac = fraction( B1_rphase ); - sample_t B1_R = + sample_t B1_R = ( m_B1wave[ static_cast( B1_rphase ) % WAVELEN ] * ( 1.0f - frac ) ) + ( m_B1wave[ static_cast( B1_rphase + 1 ) % WAVELEN ] * frac ); B1_R *= m_rvol[B1_OSC]; - + // A-series modulation) switch( m_amod ) { @@ -271,10 +271,10 @@ WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : b1_pan( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "Panning B1" ) ), b2_pan( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "Panning B2" ) ), - a1_mult( 8.0f, 1.0, 16.0, 1.0, this, tr( "Freq. multiplier A1" ) ), - a2_mult( 8.0f, 1.0, 16.0, 1.0, this, tr( "Freq. multiplier A2" ) ), - b1_mult( 8.0f, 1.0, 16.0, 1.0, this, tr( "Freq. multiplier B1" ) ), - b2_mult( 8.0f, 1.0, 16.0, 1.0, this, tr( "Freq. multiplier B2" ) ), + a1_mult( 8.0f, 1.0, 24.0, 1.0, this, tr( "Freq. multiplier A1" ) ), + a2_mult( 8.0f, 1.0, 24.0, 1.0, this, tr( "Freq. multiplier A2" ) ), + b1_mult( 8.0f, 1.0, 24.0, 1.0, this, tr( "Freq. multiplier B1" ) ), + b2_mult( 8.0f, 1.0, 24.0, 1.0, this, tr( "Freq. multiplier B2" ) ), a1_ltune( 0.0f, -600.0f, 600.0f, 1.0f, this, tr( "Left detune A1" ) ), a2_ltune( 0.0f, -600.0f, 600.0f, 1.0f, this, tr( "Left detune A2" ) ), @@ -292,6 +292,10 @@ WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : b2_graph( -1.0f, 1.0f, WAVELEN, this ), m_abmix( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "A-B Mix" ) ), + m_envAmt( 0.0f, -200.0f, 200.0f, 0.1f, this, tr( "A-B Mix envelope amount" ) ), + m_envAtt( 0.0f, 0.0f, 2000.0f, 1.0f, this, tr( "A-B Mix envelope attack" ) ), + m_envDec( 0.0f, 0.0f, 2000.0f, 1.0f, this, tr( "A-B Mix envelope decay" ) ), + m_amod( 0, 0, 3, this, tr( "A2-A1 modulation" ) ), m_bmod( 0, 0, 3, this, tr( "B2-B1 modulation" ) ), @@ -361,7 +365,7 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, w -> changeVolume( A2_OSC, leftCh( a2_vol.value(), a2_pan.value() ), rightCh( a2_vol.value(), a2_pan.value() ) ); w -> changeVolume( B1_OSC, leftCh( b1_vol.value(), b1_pan.value() ), rightCh( b1_vol.value(), b1_pan.value() ) ); w -> changeVolume( B2_OSC, leftCh( b2_vol.value(), b2_pan.value() ), rightCh( b2_vol.value(), b2_pan.value() ) ); - + w -> updateFrequencies(); _n->m_pluginData = w; @@ -399,20 +403,42 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, w-> updateFrequencies(); m_multChanged = false; } - + sampleFrame * abuf = w->abuf(); sampleFrame * bbuf = w->bbuf(); w-> renderOutput( frames ); - + + // envelope parameters + const float envAmt = m_envAmt.value(); + const float envAtt = ( m_envAtt.value() * w->samplerate() ) / 1000.0f; + const float envDec = ( m_envDec.value() * w->samplerate() ) / 1000.0f; + const float envLen = envAtt + envDec; + const float tfp_ = static_cast( _n->totalFramesPlayed() ); + + // if sample-exact is enabled, use sample-exact calculations... if( engine::mixer()->currentQualitySettings().sampleExactControllers ) { for( fpp_t f=0; f < frames; f++ ) { + const float tfp = tfp_ + f; + // handle mixing envelope + float mixvalue = m_abmix.value( f ); + if( envAmt != 0.0f && tfp < envLen ) + { + if( tfp < envAtt ) + { + mixvalue = qBound( -100.0f, mixvalue + ( tfp / envAtt * envAmt ), 100.0f ); + } + else + { + mixvalue = qBound( -100.0f, mixvalue + envAmt - ( ( tfp - envAtt ) / envDec * envAmt ), 100.0f ); + } + } // get knob values in sample-exact way - const float bmix = ( ( m_abmix.value( f ) + 100.0 ) / 200.0 ); + const float bmix = ( ( mixvalue + 100.0 ) / 200.0 ); const float amix = 1.0 - bmix; - + // mix a/b streams according to mixing knob _working_buffer[f][0] = ( abuf[f][0] * amix ) + ( bbuf[f][0] * bmix ); @@ -420,18 +446,52 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, ( bbuf[f][1] * bmix ); } } - else + + // if sample-exact is not enabled, use simpler calculations: + // if mix envelope is active, and we haven't gone past the envelope end, use envelope-aware calculation... + else if( envAmt != 0.0f && tfp_ < envLen ) { - const float bmix = ( ( m_abmix.value() + 100.0 ) / 200.0 ); - const float amix = 1.0 - bmix; + const float mixvalue_ = m_abmix.value(); for( fpp_t f=0; f < frames; f++ ) - { + { + float mixvalue = mixvalue_; + const float tfp = tfp_ + f; + // handle mixing envelope + if( tfp < envAtt ) + { + mixvalue = qBound( -100.0f, mixvalue + ( tfp / envAtt * envAmt ), 100.0f ); + } + else + { + mixvalue = qBound( -100.0f, mixvalue + envAmt - ( ( tfp - envAtt ) / envDec * envAmt ), 100.0f ); + } + + // get knob values + const float bmix = ( ( mixvalue + 100.0 ) / 200.0 ); + const float amix = 1.0 - bmix; + // mix a/b streams according to mixing knob _working_buffer[f][0] = ( abuf[f][0] * amix ) + ( bbuf[f][0] * bmix ); _working_buffer[f][1] = ( abuf[f][1] * amix ) + ( bbuf[f][1] * bmix ); - } + } + } + + // ... mix envelope is inactive or we've past the end of envelope, so use a faster calculation to save cpu + else + { + // get knob values + const float bmix = ( ( m_abmix.value() + 100.0 ) / 200.0 ); + const float amix = 1.0 - bmix; + for( fpp_t f=0; f < frames; f++ ) + { + // mix a/b streams according to mixing knob + _working_buffer[f][0] = ( abuf[f][0] * amix ) + + ( bbuf[f][0] * bmix ); + _working_buffer[f][1] = ( abuf[f][1] * amix ) + + ( bbuf[f][1] * bmix ); + } } applyRelease( _working_buffer, _n ); @@ -487,6 +547,10 @@ void WTSynthInstrument::saveSettings( QDomDocument & _doc, _this.setAttribute( "b2_wave", sampleString ); m_abmix.saveSettings( _doc, _this, "abmix" ); + m_envAmt.saveSettings( _doc, _this, "envAmt" ); + m_envAtt.saveSettings( _doc, _this, "envAtt" ); + m_envDec.saveSettings( _doc, _this, "envDec" ); + m_amod.saveSettings( _doc, _this, "amod" ); m_bmod.saveSettings( _doc, _this, "bmod" ); m_selectedGraph.saveSettings( _doc, _this, "selgraph" ); @@ -536,6 +600,11 @@ void WTSynthInstrument::loadSettings( const QDomElement & _this ) delete[] dst; m_abmix.loadSettings( _this, "abmix" ); + + m_envAmt.loadSettings( _this, "envAmt" ); + m_envAtt.loadSettings( _this, "envAtt" ); + m_envDec.loadSettings( _this, "envDec" ); + m_amod.loadSettings( _this, "amod" ); m_bmod.loadSettings( _this, "bmod" ); m_selectedGraph.loadSettings( _this, "selgraph" ); @@ -580,32 +649,36 @@ WTSynthView::WTSynthView( Instrument * _instrument, // knobs... lots of em - makeknob( a1_volKnob, 118, A1ROW, "Volume", "%", "aKnob" ) - makeknob( a2_volKnob, 118, A2ROW, "Volume", "%", "aKnob" ) - makeknob( b1_volKnob, 118, B1ROW, "Volume", "%", "bKnob" ) - makeknob( b2_volKnob, 118, B2ROW, "Volume", "%", "bKnob" ) + makeknob( a1_volKnob, 130, A1ROW, "Volume", "%", "aKnob" ) + makeknob( a2_volKnob, 130, A2ROW, "Volume", "%", "aKnob" ) + makeknob( b1_volKnob, 130, B1ROW, "Volume", "%", "bKnob" ) + makeknob( b2_volKnob, 130, B2ROW, "Volume", "%", "bKnob" ) - makeknob( a1_panKnob, 142, A1ROW, "Panning", "", "aKnob" ) - makeknob( a2_panKnob, 142, A2ROW, "Panning", "", "aKnob" ) - makeknob( b1_panKnob, 142, B1ROW, "Panning", "", "bKnob" ) - makeknob( b2_panKnob, 142, B2ROW, "Panning", "", "bKnob" ) + makeknob( a1_panKnob, 154, A1ROW, "Panning", "", "aKnob" ) + makeknob( a2_panKnob, 154, A2ROW, "Panning", "", "aKnob" ) + makeknob( b1_panKnob, 154, B1ROW, "Panning", "", "bKnob" ) + makeknob( b2_panKnob, 154, B2ROW, "Panning", "", "bKnob" ) - makeknob( a1_multKnob, 172, A1ROW, "Freq. multiplier", "/8", "aKnob" ) - makeknob( a2_multKnob, 172, A2ROW, "Freq. multiplier", "/8", "aKnob" ) - makeknob( b1_multKnob, 172, B1ROW, "Freq. multiplier", "/8", "bKnob" ) - makeknob( b2_multKnob, 172, B2ROW, "Freq. multiplier", "/8", "bKnob" ) + makeknob( a1_multKnob, 178, A1ROW, "Freq. multiplier", "/8", "aKnob" ) + makeknob( a2_multKnob, 178, A2ROW, "Freq. multiplier", "/8", "aKnob" ) + makeknob( b1_multKnob, 178, B1ROW, "Freq. multiplier", "/8", "bKnob" ) + makeknob( b2_multKnob, 178, B2ROW, "Freq. multiplier", "/8", "bKnob" ) - makeknob( a1_ltuneKnob, 200, A1ROW, "Left detune", " cents", "aKnob" ) - makeknob( a2_ltuneKnob, 200, A2ROW, "Left detune", " cents", "aKnob" ) - makeknob( b1_ltuneKnob, 200, B1ROW, "Left detune", " cents", "bKnob" ) - makeknob( b2_ltuneKnob, 200, B2ROW, "Left detune", " cents", "bKnob" ) + makeknob( a1_ltuneKnob, 202, A1ROW, "Left detune", " cents", "aKnob" ) + makeknob( a2_ltuneKnob, 202, A2ROW, "Left detune", " cents", "aKnob" ) + makeknob( b1_ltuneKnob, 202, B1ROW, "Left detune", " cents", "bKnob" ) + makeknob( b2_ltuneKnob, 202, B2ROW, "Left detune", " cents", "bKnob" ) - makeknob( a1_rtuneKnob, 224, A1ROW, "Right detune", " cents", "aKnob" ) - makeknob( a2_rtuneKnob, 224, A2ROW, "Right detune", " cents", "aKnob" ) - makeknob( b1_rtuneKnob, 224, B1ROW, "Right detune", " cents", "bKnob" ) - makeknob( b2_rtuneKnob, 224, B2ROW, "Right detune", " cents", "bKnob" ) + makeknob( a1_rtuneKnob, 226, A1ROW, "Right detune", " cents", "aKnob" ) + makeknob( a2_rtuneKnob, 226, A2ROW, "Right detune", " cents", "aKnob" ) + makeknob( b1_rtuneKnob, 226, B1ROW, "Right detune", " cents", "bKnob" ) + makeknob( b2_rtuneKnob, 226, B2ROW, "Right detune", " cents", "bKnob" ) - makeknob( m_abmixKnob, 4, 4, "A-B Mix", "", "mixKnob" ) + makeknob( m_abmixKnob, 4, 3, "A-B Mix", "", "mixKnob" ) + + makeknob( m_envAmtKnob, 88, 3, "Mix envelope amount", "", "mixenvKnob" ) + makeknob( m_envAttKnob, 88, A1ROW, "Mix envelope attack", " ms", "mixenvKnob" ) + makeknob( m_envDecKnob, 88, A2ROW, "Mix envelope decay", " ms", "mixenvKnob" ) // let's set volume knobs a1_volKnob -> setVolumeKnob( true ); @@ -1124,6 +1197,10 @@ void WTSynthView::modelChanged() b1_graph -> setModel( &w -> b1_graph ); b2_graph -> setModel( &w -> b2_graph ); + m_envAmtKnob -> setModel( &w -> m_envAmt ); + m_envAttKnob -> setModel( &w -> m_envAtt ); + m_envDecKnob -> setModel( &w -> m_envDec ); + } diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index 0484fa7da..3b09d3003 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -89,6 +89,10 @@ public: { return m_bbuf; } + inline sample_rate_t samplerate() const + { + return m_samplerate; + } private: float m_lvol [NUM_OSCS]; @@ -113,7 +117,7 @@ private: float m_lfreq [NUM_OSCS]; float m_rfreq [NUM_OSCS]; - + float m_A1wave [WAVELEN]; float m_A2wave [WAVELEN]; float m_B1wave [WAVELEN]; @@ -192,6 +196,11 @@ private: graphModel b2_graph; FloatModel m_abmix; + + FloatModel m_envAmt; + FloatModel m_envAtt; + FloatModel m_envDec; + IntModel m_amod; IntModel m_bmod; @@ -258,6 +267,10 @@ private: knob * m_abmixKnob; + knob * m_envAmtKnob; + knob * m_envAttKnob; + knob * m_envDecKnob; + automatableButtonGroup * m_selectedGraphGroup; automatableButtonGroup * m_aModGroup; automatableButtonGroup * m_bModGroup; diff --git a/plugins/wtsynth/artwork.png b/plugins/wtsynth/artwork.png index 819f322c73eb4ccaea14fd555c23e6c10e675174..c908695efe8cd6b0eb88effe5fc8805299b45454 100644 GIT binary patch literal 95609 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 Date: Sat, 22 Mar 2014 22:27:26 +0200 Subject: [PATCH 15/23] Adjust previous --- plugins/wtsynth/WTSynth.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index 82fa8dba6..c59d8d0d4 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -292,7 +292,7 @@ WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : b2_graph( -1.0f, 1.0f, WAVELEN, this ), m_abmix( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "A-B Mix" ) ), - m_envAmt( 0.0f, -200.0f, 200.0f, 0.1f, this, tr( "A-B Mix envelope amount" ) ), + m_envAmt( 0.0f, -200.0f, 200.0f, 1.0f, this, tr( "A-B Mix envelope amount" ) ), m_envAtt( 0.0f, 0.0f, 2000.0f, 1.0f, this, tr( "A-B Mix envelope attack" ) ), m_envDec( 0.0f, 0.0f, 2000.0f, 1.0f, this, tr( "A-B Mix envelope decay" ) ), From e58e55660a17e1ee01dbb160a7da933327d9f708 Mon Sep 17 00:00:00 2001 From: Vesa Date: Sun, 23 Mar 2014 14:13:53 +0200 Subject: [PATCH 16/23] Add hold knob --- plugins/wtsynth/WTSynth.cpp | 24 +++++++++++++++++++----- plugins/wtsynth/WTSynth.h | 21 ++++++++++++++++----- plugins/wtsynth/artwork.png | Bin 95609 -> 95662 bytes 3 files changed, 35 insertions(+), 10 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index c59d8d0d4..1c7272200 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -412,8 +412,9 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, // envelope parameters const float envAmt = m_envAmt.value(); const float envAtt = ( m_envAtt.value() * w->samplerate() ) / 1000.0f; + const float envHold = ( m_envHold.value() * w->samplerate() ) / 1000.0f; const float envDec = ( m_envDec.value() * w->samplerate() ) / 1000.0f; - const float envLen = envAtt + envDec; + const float envLen = envAtt + envDec + envHold; const float tfp_ = static_cast( _n->totalFramesPlayed() ); // if sample-exact is enabled, use sample-exact calculations... @@ -430,9 +431,13 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, { mixvalue = qBound( -100.0f, mixvalue + ( tfp / envAtt * envAmt ), 100.0f ); } + else if ( tfp >= envAtt && tfp < envAtt + envHold ) + { + mixvalue = qBound( -100.0f, mixvalue + envAmt, 100.0f ); + } else { - mixvalue = qBound( -100.0f, mixvalue + envAmt - ( ( tfp - envAtt ) / envDec * envAmt ), 100.0f ); + mixvalue = qBound( -100.0f, mixvalue + envAmt - ( ( tfp - ( envAtt + envHold ) ) / envDec * envAmt ), 100.0f ); } } // get knob values in sample-exact way @@ -461,9 +466,13 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, { mixvalue = qBound( -100.0f, mixvalue + ( tfp / envAtt * envAmt ), 100.0f ); } + else if ( tfp >= envAtt && tfp < envAtt + envHold ) + { + mixvalue = qBound( -100.0f, mixvalue + envAmt, 100.0f ); + } else { - mixvalue = qBound( -100.0f, mixvalue + envAmt - ( ( tfp - envAtt ) / envDec * envAmt ), 100.0f ); + mixvalue = qBound( -100.0f, mixvalue + envAmt - ( ( tfp - ( envAtt + envHold ) ) / envDec * envAmt ), 100.0f ); } // get knob values @@ -549,6 +558,7 @@ void WTSynthInstrument::saveSettings( QDomDocument & _doc, m_abmix.saveSettings( _doc, _this, "abmix" ); m_envAmt.saveSettings( _doc, _this, "envAmt" ); m_envAtt.saveSettings( _doc, _this, "envAtt" ); + m_envHold.saveSettings( _doc, _this, "envHold" ); m_envDec.saveSettings( _doc, _this, "envDec" ); m_amod.saveSettings( _doc, _this, "amod" ); @@ -603,6 +613,7 @@ void WTSynthInstrument::loadSettings( const QDomElement & _this ) m_envAmt.loadSettings( _this, "envAmt" ); m_envAtt.loadSettings( _this, "envAtt" ); + m_envHold.loadSettings( _this, "envHold" ); m_envDec.loadSettings( _this, "envDec" ); m_amod.loadSettings( _this, "amod" ); @@ -677,8 +688,10 @@ WTSynthView::WTSynthView( Instrument * _instrument, makeknob( m_abmixKnob, 4, 3, "A-B Mix", "", "mixKnob" ) makeknob( m_envAmtKnob, 88, 3, "Mix envelope amount", "", "mixenvKnob" ) - makeknob( m_envAttKnob, 88, A1ROW, "Mix envelope attack", " ms", "mixenvKnob" ) - makeknob( m_envDecKnob, 88, A2ROW, "Mix envelope decay", " ms", "mixenvKnob" ) + + maketsknob( m_envAttKnob, 88, A1ROW, "Mix envelope attack", " ms", "mixenvKnob" ) + maketsknob( m_envHoldKnob, 88, A2ROW, "Mix envelope hold", " ms", "mixenvKnob" ) + maketsknob( m_envDecKnob, 88, B1ROW, "Mix envelope decay", " ms", "mixenvKnob" ) // let's set volume knobs a1_volKnob -> setVolumeKnob( true ); @@ -1199,6 +1212,7 @@ void WTSynthView::modelChanged() m_envAmtKnob -> setModel( &w -> m_envAmt ); m_envAttKnob -> setModel( &w -> m_envAtt ); + m_envHoldKnob -> setModel( &w -> m_envHold ); m_envDecKnob -> setModel( &w -> m_envDec ); } diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index 3b09d3003..599d0d487 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -37,7 +37,14 @@ #define makeknob( name, x, y, hint, unit, oname ) \ - name = new knob( knobStyled, this); \ + name = new knob( knobStyled, this ); \ + name ->move( x, y ); \ + name ->setHintText( tr( hint ) + " ", unit ); \ + name ->setObjectName( oname ); \ + name ->setFixedSize( 19, 19 ); + +#define maketsknob( name, x, y, hint, unit, oname ) \ + name = new TempoSyncKnob( knobStyled, this ); \ name ->move( x, y ); \ name ->setHintText( tr( hint ) + " ", unit ); \ name ->setObjectName( oname ); \ @@ -198,8 +205,10 @@ private: FloatModel m_abmix; FloatModel m_envAmt; - FloatModel m_envAtt; - FloatModel m_envDec; + + TempoSyncKnobModel m_envAtt; + TempoSyncKnobModel m_envHold; + TempoSyncKnobModel m_envDec; IntModel m_amod; IntModel m_bmod; @@ -268,8 +277,10 @@ private: knob * m_abmixKnob; knob * m_envAmtKnob; - knob * m_envAttKnob; - knob * m_envDecKnob; + + TempoSyncKnob * m_envAttKnob; + TempoSyncKnob * m_envHoldKnob; + TempoSyncKnob * m_envDecKnob; automatableButtonGroup * m_selectedGraphGroup; automatableButtonGroup * m_aModGroup; diff --git a/plugins/wtsynth/artwork.png b/plugins/wtsynth/artwork.png index c908695efe8cd6b0eb88effe5fc8805299b45454..56413dcea32e35f177f97d88db55b7d9c46b25e1 100644 GIT binary patch delta 77550 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 wr%}}<@#P%vH`dO1Ux!kxo^aW3X&rln?T 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%0D}01br!8J6#xYoYQl&9 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 Hu0mjf|AH Date: Sun, 23 Mar 2014 14:20:24 +0200 Subject: [PATCH 17/23] fix previous --- plugins/wtsynth/WTSynth.cpp | 6 ++++-- plugins/wtsynth/WTSynth.h | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index 1c7272200..42df80133 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -293,8 +293,10 @@ WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : m_abmix( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "A-B Mix" ) ), m_envAmt( 0.0f, -200.0f, 200.0f, 1.0f, this, tr( "A-B Mix envelope amount" ) ), - m_envAtt( 0.0f, 0.0f, 2000.0f, 1.0f, this, tr( "A-B Mix envelope attack" ) ), - m_envDec( 0.0f, 0.0f, 2000.0f, 1.0f, this, tr( "A-B Mix envelope decay" ) ), + + m_envAtt( 0.0f, 0.0f, 2000.0f, 1.0f, 1.0f, this, tr( "A-B Mix envelope attack" ) ), + m_envHold( 0.0f, 0.0f, 2000.0f, 1.0f, 1.0f, this, tr( "A-B Mix envelope hold" ) ), + m_envDec( 0.0f, 0.0f, 2000.0f, 1.0f, 1.0f, this, tr( "A-B Mix envelope decay" ) ), m_amod( 0, 0, 3, this, tr( "A2-A1 modulation" ) ), m_bmod( 0, 0, 3, this, tr( "B2-B1 modulation" ) ), diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index 599d0d487..3a3fe7d0b 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -31,7 +31,7 @@ #include "graph.h" #include "AutomatableModel.h" #include "automatable_button.h" -#include "knob.h" +#include "TempoSyncKnob.h" #include "NotePlayHandle.h" #include "pixmap_button.h" From 6eca2b422c6e54ce87ab845215c8d113af080929 Mon Sep 17 00:00:00 2001 From: Vesa Date: Sun, 23 Mar 2014 14:26:02 +0200 Subject: [PATCH 18/23] fix env tempo sync --- plugins/wtsynth/WTSynth.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index 42df80133..7b236507f 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -294,9 +294,9 @@ WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : m_abmix( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "A-B Mix" ) ), m_envAmt( 0.0f, -200.0f, 200.0f, 1.0f, this, tr( "A-B Mix envelope amount" ) ), - m_envAtt( 0.0f, 0.0f, 2000.0f, 1.0f, 1.0f, this, tr( "A-B Mix envelope attack" ) ), - m_envHold( 0.0f, 0.0f, 2000.0f, 1.0f, 1.0f, this, tr( "A-B Mix envelope hold" ) ), - m_envDec( 0.0f, 0.0f, 2000.0f, 1.0f, 1.0f, this, tr( "A-B Mix envelope decay" ) ), + m_envAtt( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "A-B Mix envelope attack" ) ), + m_envHold( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "A-B Mix envelope hold" ) ), + m_envDec( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "A-B Mix envelope decay" ) ), m_amod( 0, 0, 3, this, tr( "A2-A1 modulation" ) ), m_bmod( 0, 0, 3, this, tr( "B2-B1 modulation" ) ), From e38ef81e032f154d4d6d7afd7475b0be70f25286 Mon Sep 17 00:00:00 2001 From: Vesa Date: Sun, 23 Mar 2014 18:47:02 +0200 Subject: [PATCH 19/23] Add waveform load button, better button graphics --- plugins/wtsynth/WTSynth.cpp | 50 +++++++++++++++++++++++----- plugins/wtsynth/WTSynth.h | 2 ++ plugins/wtsynth/inv_active.png | Bin 581 -> 655 bytes plugins/wtsynth/inv_inactive.png | Bin 489 -> 596 bytes plugins/wtsynth/load_active.png | Bin 628 -> 676 bytes plugins/wtsynth/load_inactive.png | Bin 537 -> 631 bytes plugins/wtsynth/norm_active.png | Bin 603 -> 702 bytes plugins/wtsynth/norm_inactive.png | Bin 502 -> 641 bytes plugins/wtsynth/phl_active.png | Bin 667 -> 734 bytes plugins/wtsynth/phl_inactive.png | Bin 517 -> 693 bytes plugins/wtsynth/phr_active.png | Bin 667 -> 708 bytes plugins/wtsynth/phr_inactive.png | Bin 536 -> 671 bytes plugins/wtsynth/saw_active.png | Bin 590 -> 706 bytes plugins/wtsynth/saw_inactive.png | Bin 426 -> 646 bytes plugins/wtsynth/sin_active.png | Bin 698 -> 734 bytes plugins/wtsynth/sin_inactive.png | Bin 585 -> 699 bytes plugins/wtsynth/smooth_active.png | Bin 653 -> 709 bytes plugins/wtsynth/smooth_inactive.png | Bin 567 -> 649 bytes plugins/wtsynth/sqr_active.png | Bin 611 -> 687 bytes plugins/wtsynth/sqr_inactive.png | Bin 506 -> 640 bytes plugins/wtsynth/tri_active.png | Bin 655 -> 738 bytes plugins/wtsynth/tri_inactive.png | Bin 532 -> 699 bytes 22 files changed, 43 insertions(+), 9 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index 7b236507f..54e4580f1 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -838,33 +838,39 @@ WTSynthView::WTSynthView( Instrument * _instrument, // misc pushbuttons // waveform modifications + m_loadButton = new pixmapButton( this, tr( "Load waveform" ) ); + m_loadButton -> move ( 176, 121 ); + m_loadButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "load_active" ) ); + m_loadButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "load_inactive" ) ); + toolTip::add( m_loadButton, tr( "Click to load a waveform from a sample file" ) ); + m_phaseLeftButton = new pixmapButton( this, tr( "Phase left" ) ); - m_phaseLeftButton -> move ( 200, 121 ); + m_phaseLeftButton -> move ( 196, 121 ); m_phaseLeftButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "phl_active" ) ); m_phaseLeftButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "phl_inactive" ) ); toolTip::add( m_phaseLeftButton, tr( "Click to shift phase by -15 degrees" ) ); m_phaseRightButton = new pixmapButton( this, tr( "Phase right" ) ); - m_phaseRightButton -> move ( 216, 121 ); + m_phaseRightButton -> move ( 213, 121 ); m_phaseRightButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "phr_active" ) ); m_phaseRightButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "phr_inactive" ) ); toolTip::add( m_phaseRightButton, tr( "Click to shift phase by +15 degrees" ) ); m_normalizeButton = new pixmapButton( this, tr( "Normalize" ) ); - m_normalizeButton -> move ( 232, 121 ); + m_normalizeButton -> move ( 230, 121 ); m_normalizeButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "norm_active" ) ); m_normalizeButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "norm_inactive" ) ); toolTip::add( m_normalizeButton, tr( "Click to normalize" ) ); m_invertButton = new pixmapButton( this, tr( "Invert" ) ); - m_invertButton -> move ( 232, 138 ); + m_invertButton -> move ( 230, 138 ); m_invertButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "inv_active" ) ); m_invertButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "inv_inactive" ) ); toolTip::add( m_invertButton, tr( "Click to invert" ) ); m_smoothButton = new pixmapButton( this, tr( "Smooth" ) ); - m_smoothButton -> move ( 232, 155 ); + m_smoothButton -> move ( 230, 155 ); m_smoothButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_active" ) ); m_smoothButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_inactive" ) ); toolTip::add( m_smoothButton, tr( "Click to smooth" ) ); @@ -872,25 +878,25 @@ WTSynthView::WTSynthView( Instrument * _instrument, // waveforms m_sinWaveButton = new pixmapButton( this, tr( "Sine wave" ) ); - m_sinWaveButton -> move ( 232, 176 ); + m_sinWaveButton -> move ( 230, 176 ); m_sinWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "sin_active" ) ); m_sinWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "sin_inactive" ) ); toolTip::add( m_sinWaveButton, tr( "Click for sine wave" ) ); m_triWaveButton = new pixmapButton( this, tr( "Triangle wave" ) ); - m_triWaveButton -> move ( 232, 194 ); + m_triWaveButton -> move ( 230, 194 ); m_triWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "tri_active" ) ); m_triWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "tri_inactive" ) ); toolTip::add( m_triWaveButton, tr( "Click for triangle wave" ) ); m_sawWaveButton = new pixmapButton( this, tr( "Triangle wave" ) ); - m_sawWaveButton -> move ( 232, 212 ); + m_sawWaveButton -> move ( 230, 212 ); m_sawWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "saw_active" ) ); m_sawWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "saw_inactive" ) ); toolTip::add( m_sawWaveButton, tr( "Click for saw wave" ) ); m_sqrWaveButton = new pixmapButton( this, tr( "Square wave" ) ); - m_sqrWaveButton -> move ( 232, 230 ); + m_sqrWaveButton -> move ( 230, 230 ); m_sqrWaveButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "sqr_active" ) ); m_sqrWaveButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "sqr_inactive" ) ); toolTip::add( m_sqrWaveButton, tr( "Click for square wave" ) ); @@ -906,6 +912,7 @@ WTSynthView::WTSynthView( Instrument * _instrument, connect( m_smoothButton, SIGNAL( clicked() ), this, SLOT( smoothClicked() ) ); connect( m_phaseLeftButton, SIGNAL( clicked() ), this, SLOT( phaseLeftClicked() ) ); connect( m_phaseRightButton, SIGNAL( clicked() ), this, SLOT( phaseRightClicked() ) ); + connect( m_loadButton, SIGNAL( clicked() ), this, SLOT( loadClicked() ) ); connect( a1_selectButton, SIGNAL( clicked() ), this, SLOT( updateLayout() ) ); connect( a2_selectButton, SIGNAL( clicked() ), this, SLOT( updateLayout() ) ); @@ -1171,6 +1178,31 @@ void WTSynthView::phaseRightClicked() } +void WTSynthView::loadClicked() +{ + QString fileName; + switch( m_selectedGraphGroup->model()->value() ) + { + case A1_OSC: + a1_graph->model()->setWaveToUser(); + engine::getSong()->setModified(); + break; + case A2_OSC: + a2_graph->model()->setWaveToUser(); + engine::getSong()->setModified(); + break; + case B1_OSC: + b1_graph->model()->setWaveToUser(); + engine::getSong()->setModified(); + break; + case B2_OSC: + b2_graph->model()->setWaveToUser(); + engine::getSong()->setModified(); + break; + } +} + + void WTSynthView::modelChanged() { WTSynthInstrument * w = castModel(); diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index 3a3fe7d0b..df7aa908b 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -244,6 +244,7 @@ protected slots: void invertClicked(); void phaseLeftClicked(); void phaseRightClicked(); + void loadClicked(); private: virtual void modelChanged(); @@ -300,6 +301,7 @@ private: pixmapButton * m_smoothButton; pixmapButton * m_phaseLeftButton; pixmapButton * m_phaseRightButton; + pixmapButton * m_loadButton; }; diff --git a/plugins/wtsynth/inv_active.png b/plugins/wtsynth/inv_active.png index 791133686ff20c40c3eeb78200b852d1a40c5d6b..31aacc62123f6af736cc06c2d9ba4fdcbc7c38ba 100644 GIT binary patch delta 588 zcmV-S0<-{K~5Y&3`L)-YnV|cNI^p+B&2NEpa9!!5NocG zJA~uFI%i;$9f#ly><}PL1Wb3iY-iCutr=p;QdOz^?f<_8;Oy+|+RT0e3x*I8B4RuP zq?E`xALPlj*pL@c6WCd zv)OFpqaXrF1U3Mw8C~1bwk@mGinq77=j`r_>2ylYdF*m{c*ysY6PlE0nudtr?(UA| za*3*9X5^fSh(&gHCX)#wGLHWE_{i()D;F0RxI4GEx3q1GsuB@M5)z4sAiFy$rLlX{ zG^C-knbCC}T~~kbL7R_}BVsICb9Hx0Db!jqGayJ!0}=lTno~+!h-NnOETzNDx9r?3 zMx>v>+;MkAgi;En6mrg#qC`Ngb*pf+7RUgqh5icf@9(H8v)K$)MUr5(!T_)?lwtA= zVAY5SRF$@EN5RaT6utkl0Wfgw0dmeG@2=}ct0t2P?nZxv3_`L+VI66$cyCt^aBy(I z`T03!hM94BdC7D-rPjKY0CIG6^faH(7pv6@RUO0x0vL2b=rvk57D$p%)#qk^fB##p z^@o{JR0((71CPMN`}829cWS+Os)~sGZeCtq{_K6(`>Lu(5%KBcruCL>zYUh(JUl#H a{R4@XP`?m^p{6SU00007p delta 513 zcmV+c0{;Dv1;qrADlz{6{{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6C?mD5B3d_TPT06Nkle)q9Z3L~84-cIlXJ%1NhxuCeNESO zlv3Di)-)ra*2>-89ko_+&ZLw`DPd+)rDTAJ2qf|S{Y?`Q(vC78TY^M zd47JTZCfIOKMxN){(YqHdunw;qiv!Y4U;rg(`Hs}1|TA^lxUmwY&5gKKQ#adz}=~} z;_hcpq@l&hmu7#pT4Bi$0tq1^oKgzzK7p1s=s+5_U^*)pUGDpyh*;!ftnt4|G~>QG zNp?T8&t)%06i7oRY`#8sr|y)w!*>>rJB$~eOkqobw zrY)PC*%$BQ@koT@Cw7zJ?(FybsYxk?op#JN}~As`r_^FjZzAd z`276j{rw%Afe(knpyKuQHM*{&>$)ET^HT=qz8L=j<#5jZZKg^d00000NkvXXu0mjf D;^g!& diff --git a/plugins/wtsynth/inv_inactive.png b/plugins/wtsynth/inv_inactive.png index 06089449b693563e66b097fe232c0703b62001c8..637bf5390aef3e6e3c7355f59815f79036933aaf 100644 GIT binary patch delta 528 zcmV+r0`L9l1JneNDlq^60002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^l05D_nmpnoutTPT0LNklnp=BtQENF`<|}rzGTihIb%*Z(dAR>ei2q7?=&G6ojJ^ycKw6#Wv0YLzGdwV0r#QAwo zj1dINk-*^S1&Dk|C^^%b5o2T+25POi&QVG^^#8b@%m5&zOwO5M7^b4lX0u7!xSxUp zCgul!_Uy{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6CoiQ5fT=WTPS}~NklQvr|xArJtO5E&a1U{4NY02?GE z#Hx`%qEXk!uA0RY^`>V)Fn4MBSoXa($K$c^P1affa?Sv#D$Y4_&g7hFnuZVpAp`(M z)>>4R%jLo+$~hw>sTxn#2A^)W=yA3nx-M8gsKA2wk@M)YdYr`kH;8e>fOc|LI{*nDCNIxqgS_< zQmSzw1Y(S}J}~_itg5IgB2riW3BMems@13m^b7{DkGvle5kd%f@880|Hc-_XQ%dPA zJQ$F3CZ&Y;{$pquz&@h+dG{wUfOXDMN+G3$h}2DPw_9zBG1B+_^8q4)h!A5$L;yG( z4lI|;n*C<8VZB~I9bk65U5PQ$w(TIcce>y2^nL&D6ZiW)-uwD6f6*7Y+bE>|WEAlL O0000S=bCokbW8P6!;Z2?0b%<|@8} zIS$0Wg=4OO1OX06NC2^z#a?EnYr5LO%#Qgfsif-GtH1Y301gfgPGXGTfRf%sgp|?{ z132gK-eYC}r|0MA$Fje_e`03eN23wbq9B@)Wf>y!!B?h1Sv-F)Xqx6!_V)H3Ha0fO z@p$|SD2RX)fma3E7-{O7x~{3Jisf=S_hwe+d5-rU5n(!=a(H-1p67@N&N-ZO+}_@D zc6NrU5@W=BPfDruX2#mu8X`iLWlSa$mdhn~cXwQ0Uo#qwI669FeSIBOC8dNo!Qn_L z;mr)^+_2+fvEYC5@)CfyZHZ=t5U`$`_vTYdWLY*85fRLcwrx>WoO1vlFhhYAU}Z5z zRF&P`U3PYM1}Uqm`jCuBH$gPR%n%Vm2!s&G^PCtX7Z(@I=X2`1Ug`f|TEGLS2D&G_ zyu6^Qga7&ahv&rt`p&CF=_mI9v5lmZP}QN+)zvS? zO*2R}ofed3$^HF3u?N3C^MOR`WeOqCG|d1mih|9}O`LP6>YJoD@oYAGD2k%2stQ%@ z$pjM6^McTEw8|53;!xFjw!OXmrES}(ka}Rh=fKlqT;lt&{BSUoZLT&CSj6KiQ}~v3RymCjbBd07*qoM6N<$f-R9AbpQYW delta 561 zcmV-10?z%U1@r`vDlz{6{{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6C?+YBpPzr9H11A}k)xv{M1&Y4 zsyZlyG<2KW$;KSnN+IZQJtj@W98%$G4Ww&(AqK`-K~b3SHl#0Q325 zLjC>zPSnk}ME>$+6sntaU5#i_YF{{-I0USsvAyWFD zghrNjf*`mXDJ8nDWf(?sHgGR~smUe2ad%WU z464d6FE2bkK5nlFKlb+#kttq9XzIKH%nY-F{`U3;z`?-*S65f4>NM&CUUs6Xe);d;Pbdtl2cfFyL<38eK&};Q9HPr>7@QPENSKzDD$G3sb?py*+m4bIh&${6ces z8dTA(DbNcs@TPT0uNklvl57c1VqD@#q2l$2S5m}z#ZT? za0iyGX2$_o4H6ds2??ZRl8k_d-TrA7AweTxz+1Pgy2@1ou)n{5?3_CgkpbU0W`?Ss zoS&Z`$==@HvG@M4)9K(uurD6hT8S|-9*=3;_QV4ROG`^MP4j;xb4rQl=VzXto={cV zwmtBrl!5nt0kFEd%FfOX-EJ4Nw|#DIZa6zTBZNTC8Sg!2Ht?ksnx;WSXqtw8zt40! zWipv?b#+Cj(_wdamtL<&j1e=#Ifru&GsEYc5fMZLGh;X$G8&BlP}RlSb0X*5KeD`; zy}Otj6=Pg5HBEo>p-+DPEoO#@kaH%+$kx^to12@IQZO?fA0Iz7)|(kAB>+T(5CS0t zy4^0S%EiS6_xJa-ZA&TTJwUCM5Ceh$@bK_}MkR(ojFIWzDU<W%#4+l6*hM^Hn_dLT}b>CAjY`RJ|FJ) z`>d_4;hg&~fNXDXkDPOZc|1$42sRV^rucRGwM-aJ9IE=q=bTSf^{|wJri9h{WhcD% zXi|XF=I-w9*ZTVU4^{nXwf4SK=Q<-fxxT(WdI7$tG7l!Y05<>t002ovPDHLkV1jSn B0;T`} delta 469 zcmV;`0V@9Y1epYoDlz{6{{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6Co)S%9n_tg&+t3aLxf>ttE;goO3wm zXti2stM-|s9I3(|iy#ryx}!Z2h!9y1z^ z&{`uRWLfs%;Fa_FOrGb&am;KsBMd`Us})I-u-$GM4u@E40Vs-s@Uz9iV8DDnug@Za zQVJ14M6lMrJ8Rn2dylmitu@A&I@DKj2!a>IY+0{VKSMZl%m`1{_Mb7i!lbRb)9q^$Mkx=#$E)k1*xivvMi~p z3Z>LrGn-KR{oZF;hKNuU1zKyIbKeH`nd|jR7)24@d#b8JL~8M7vthkn)9?40PN&T) zJPTrsK}7f~YPZ{YV+@zerG6y8Ah1%CBXM9b+!8mlAq2wCXYn26 zab)dV_yYO@vty%>5Df{JL=1B-)m81{%uGhDKP*Cf<=21nFS@R~l;h*$hpnxx z@y5o+3Q-V&AOb4|vKd|5(zY#4)9~{0@|fIxyuQ9pN(m9+=;(-(lM^&&zJB=v!1?(( zJ3Bi}r&F%3t}ruFN|aK@!QH8<3K1d3NJ@#667}XL2L}g~QkEV2zNeIegn?U1A-Fps z1VRV^#2BfniYk94_V)H@+m^2D@wqoCC8|`BQUV~AQiw4ULKw7$!K_)+FdB{K(gw}~ ztA?gU=S8?VUDt7ce@_U);o;$6D*tZ-5ke^ib0_Ca&UvnP(ERP&clP)9F*C9a|EfyP z88btG0HE5Vs`PzN(=>E#OIGFP=7tahqt~x-Gi-r*0TzD+EE}rIY&N59TQn=0GfmU* z^T$s@jF|hfK(>Jo5K>B*8C};cSG5??%(%Y3#_~LIMMBPbFwx!V`<}k<>ALQ(bf2`O@pf9?uY;dU`~`_4~r`TK?17!7y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6C*0W^{E_@TPJ@3!%0LzR5;6Rl3#A(Kn#aJd&=`De>|y*4_Zhyb9fm>Drfy!XTyan3QFPASWh zx~>@x2RyX_Aq284BZPqW9_Jj+IaKv#&M6?686v{@eCEl_@ZNtjo6Qgry!WW;jYJR{ zm%0vw5UA@KGvo5_k_g7*398ERcx1ELAR_#Jd*jFRGnewh$Da?(jMZwz%gawJf~ZiG z7ZhMH=-;b0<^FztA|hB!I<%ETh?umpNlMV|QyL-n`#n`vQPnje1kCPQr?!$kBxn!K zjG`z~lIyh{PiKEhcU`pK@1yQc0O@8jnXuh%i7}>^W*}|l#DNHEW~ej-sz5@W&*z*@ zC$234pe?p&^B1%`Z_IAXljk`Ahr{89-dZZ2Xtmpa8*FBbMkBH;W4GJgccLXwMK!ge zSkNyy;}+yRaQ zcOWF%jEtBRq6MUpNOnMC>>ju6c5N_p3sy)_(hnTet6xm)3)uo1&%j2H>rQB>dVS0C045y-g{z< zv~7EA`@WxAYe&G|-X62rj1U5smzR`MI5;?9dwZMf>uYXqZpb-ftwmL*rtf>IszOAt z){dG?ChYF+qN;fBan8|o9jb~kW&mJv&WH#if~rzg)d<+37t`!z5|y!YJyxkrp4>kU02kHM)6?&!X@15Se`zT{zH`oHUF7`X;oy{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6Cn@A#~;~|TPS~CNklTX;Gbt+cTceL6Uz?XsmRG!DtFcUI-O3&i=rq3Kve+{5t1Z9RZ&%Xy&ldvoO1xg zQ4}E}TrL-WBUQzFkC}13UWrvTz=y+u^?D7!a=BzU98weotJQxBGh?w>FdmO_&f&f1 z@purmk>9o5Zo{{kp{i6>MOl_KO@pdZmL<`rsQdjM?>!=dh~T~F`FtWGm>Fh&PWREE zEK9O13vpHTFEAYaC)msw3*aaMMTK+ z{3HBNf);MaGa7Y`*zI*jonx+W`uS(Oj)8H%1GHaTK^Z6Ve$!}B?1yxlM100V>>bm|h b!TG+IvV)Pp00000NkvXXu0mjfbw$5_ diff --git a/plugins/wtsynth/phl_active.png b/plugins/wtsynth/phl_active.png index c2d0bede0c6d89c34de26edfb20b92f502d4f8b8..b4e34246ddd11ca49f401c9edd10371327f602d9 100644 GIT binary patch delta 667 zcmV;M0%ZN01>OaaDlq^60002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^l05ELM1XqM!WTPS}_V)G=UckI~Jy#G_QB^(zHKC<@Nc&nc^t{$RlBYMU4$my-##_w4NK&}y{^ab6E#thK}#an4beC3Rgh znM`obvAz9?5CSnqE-o&pT}{8=Cxr0woz2b7w6?ZJUDr70h%xe3EDmpRxok@5E`-o^ z&f&dBRS{nS62K!!K<3Bu+lWC#?y_F5_aTHZj4@JsPf|rSp(&wB=c$R5=1x5=p7$OR z`I*gTv$M{-&bs&hV@hfDE$NHa1CJ`@^ycQ~_#a^y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6C@Eqzt;beTPS}6Nkl zgb+xQgsrVD>bk}`N55Z?E&<+qc6WF2-jnA!Ns^Ex398yfk|=*5m>D9%d_E^NGx9uV zXJ-cyAJdYDk>NZzI0VY-H?A(qd#;o7$728>&DS&M3!Yd zK0fmL8UY6f2V_~s^v9IhY}P7?w%4X<5K)2;gb)BalBcI9q*Zu$c-Rp~f_8IPS68;T zw@1CGd2imq;((VQYh|#t;k7Nly}glcY;4dk3aYB=2J{zLB=*e8sf)z|5hcyCjGxcX m)OAe=Vf7q|*6#m>s`3W`YuBNY&j;QB0000i+i;`V>`ma;5&EYQ!gj5JN3 zb@txloTDfTM1-;|`!u@AvyS=h)lZ!#Rhlvazv&szJ343hj;J!I6KSF>ubuQAjW@4R3*=I5`fx!MxzmTcXu2f z9+DS1pXcXkwOZ7^W^i(Xt11>27I@ui;p_ULn*=~){6Oyae0+S2bB?*WIlT9H?->jR zf5ZUH;^Lw<8V#zdqN=LD&iOAn=ddxx8xiR^=MWJ>j2M*hr!Y^6-&aLROagFY>$*M= zkec`N N002ovPDHLkV1j;ZBDDYj delta 450 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 N002ovPDHLkV1hM-^Pd0! diff --git a/plugins/wtsynth/saw_inactive.png b/plugins/wtsynth/saw_inactive.png index 40b4abf5e48359aa0fbbf598bcce8df027c14aa3..570dab73fec86eb2c40402bc732c8bad52c1f3f7 100644 GIT binary patch delta 579 zcmV-J0=)gI1BL~VDlq^60002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^l05D^N&q^oz4TPT0-Nkl714A*=OeS&g z9rSVZ5eCeKNyH~G5p)sO#LQ%N0`>OX{<+;7+!;aKRSQniMOW21bxHvC_V!McQimea z;R{hpA%t*xd3kv(ySuw5#+akU#YL0|<&)1jXT0}JCKH@wU)KDHH`r1fZ1ct1@ArE+uK-c`F(%S_4W1pt)$dqJ^_C~2<=GyexDEmqtS@TWb$7# zy`cc$y=Q-apO=>xhQr~9Zd_Vg;*D-wTU%qLRA+9_CTE1w5}xVu8Zy_SphOWu_+wH^ zXCZ{6rfCQy{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6Ceym)qf(9TPS}LNkl0+1jX zPi)T?NYS!vc8A};??2z3$?md;^Zjf_ERS^-ouA{DNw%hFh4yBL5W`>9mW29*scDvmhJZex11J5n| zd~+%MmcYzNDIp?7@QZ=F)AxPx*7$Vzb%s zsV4jVKBts8pU)}7Cn?e6@u2HEW&nr7ffyrZ_HlwQ5-|WC;RzcN00000NkvXXu0mjf DV6mQS diff --git a/plugins/wtsynth/sin_active.png b/plugins/wtsynth/sin_active.png index de78b98773a0bb37f5ad5fdf9004452e94a4e093..c3cbffc43fc2c3432af168687b1320ec17e220e8 100644 GIT binary patch delta 667 zcmV;M0%ZNV1>OaaDlq^60002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^l05EBFxD&+E!TPS}{K~5V%5Jg}0v<-@FDVFhw1&RQB;RUcGD-M!7 zgyV#DZjlS%1Hcvp3oHv^Wh{YZ?3wPa%EHEhq@(}qoboAs`|ZNuhVQaNUCI6hKT&vZxw&4!1K#9Wm#UxU@-XI zYPCAs+uQFR3L@Y{;N5_j66JEqa=B!&STLW@3$Lo3t*tG*_lO7w2M6r$?~`R2_xJZa zJUjqwL?HxHN_g)vvyM|$YPA|7Lciaqo9B$jW9IWYhlhu>+iez$#YSvqh!e6b!_081 zigOO<9KBwjyxV_eG#YVrbwx^vX0u6IR_L0I_nw-s;k^gIn;BV_(eL+}&0ZLf$EYeX zM!fgrc@7vZ%fReEpx!wLK%VD#@0m;{lx0Z>f!S<^nSEI2dody_2T7ITaEORdRTWiL z5kjDjkB{eRF%uiO9b!$Ayf#f$*-@kD_DPPHsXX7BZ#oOyUXi*PEi!3 zlvWV{QcRc`Aq1AoC8~<5a(jEr-rgQDB}9ailM_UQ%i-`Z1MfX4B|-?B>~EPLA0MgL z>ztmRGMyGYJv~tr1u@3I15|aByDZC%HGs)vLbKUqFc{EkwYa;x0Dlz{6{{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6C(zVEye$lTPS}bNkl|PfpuV5XOHqCQcwt6A6$AU570fAh72M^aMy; zf;*HQV$VH@vqPe5*atR%BAPhwy_qiT7^+$t$FFsbxI>JA5CZOo z8;AFi~D!UTC#i z^)uM$cDslO=1xkfX&FGj|DE^u_iDKYd3=22U^GIcvZWyeL=;PgnKgb@m7Sd(dc9uV z%*w`OGGTmt+?;i_TH$V3&90(Nm0PVAhlhvU-rgcAOp1c>c-*`f5p-*7i_K04^UAlZ z{npux$74ITx3{_ab%g>aCntyq%jL3CaeaO5Wm!^|WfR`l-}?U!d}*O7e*rHx`w0Si RjCcS5002ovPDHLkV1j#xAE5vM diff --git a/plugins/wtsynth/sin_inactive.png b/plugins/wtsynth/sin_inactive.png index fc13e59aab8f8dc6a5c6636a6c26ed60715aa985..afa36345d6b89e5e3f881659bc5eae45520d92db 100644 GIT binary patch delta 633 zcmV-<0*3v`1iJ;0Dlq^60002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^l05D+bWwJ%+fTPJ@4BS}O-R5;6xlfO!1K^VnnrQ)>$KZ#CX)%{@fc$aDJ7(oGXSLb9w7um2sSr2SzcadFc@%g zae;G=#l=Ocs$zdeq?97hbMia~K&6z(vW!lr!*Dp{=H_N@RF-8FMZv5lrGG6}v$YgO zL7wN_-`}IPrmkyVUS0?xkW%_@^Lzs59H*zJ2qCEJn!2tr#!yw&Z07(p8V$PLF5Y{3 zz1{~vjFH;Z2m}D5(FkiSAxyoI0`D9ED=RCE-rgw767PTg9|_($VoVrg&{`8hAjU|) z-)D7o6*n#3-rfeFcXsyK18W`5IkeVTYv-Ep?(WF*oZa1B%Ch9);eoO&anp(B0LGZP z_P-w=A0KHpn{+xIn$0FxS65tKUVbuB?Ck6erIfAN_Y5&2NPL7se71agO(dj{SZjYP z@BN9j_8>ikfOU=(y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6CXC%2aK$dTPJ@3u}MThR5;6(k}u9GK@h}$-@FH}Yb!V6}f*(eL*ekH^06oWmG{ z)*7W0#uy%t2SI7MBm>N5GftzS%%j7jp#!!ADhjFe!uU@)>`WII;Yc# zq9}a-Uw8qnHQj%1*RM_~MW@r@d_I4Wr_ukTUI7 zt3|C=dlOhLmkfu)r$88nIOiye0%Hs!;%BZ_s|*GM=JQJVS293gjPWOGjQI#@I2_V! zHi@Fh*RS~5?RHLU&E<0O_J4yUNyxH{D!_ifC(m=Nwfrys0DDeGEMrVXI{*Lx07*qo IM6N<$f=veL`v3p{ diff --git a/plugins/wtsynth/smooth_active.png b/plugins/wtsynth/smooth_active.png index 7da2cef11d691085ef02f8e1e8265879afce2b58..e23abe245ae09245abe1230dc03462a406807fd0 100644 GIT binary patch delta 643 zcmV-}0(||A1;quBDlq^60002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^l05EKK&59gMVTPJ@4ElET{R5;6JlD$r2Nf3p<>TY9$LAGT!Az(*>fB*uLCFL>p z9d;gPi1#fvBA*RNED;b75+d-RHP*%V-s-N};MyLTDXD*|e@>q|rv>2R;^IpwD9%^Yb&`zCDss1fbvVb9Hsa z(a{mJ*{suG;|!1hR9m_f-rn9&Roo17V|Q;4E2XnB=k9-DK-SC?K*v>8kQA$BoX_|)7Xw0Wizq4E}d3bmr=S;~33G&0n_ad4ZZQIheEltx< z*DLl9_L)p393LOAe_&?$-*W8;9{}X!V z9vy{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6C*OLnK4R{TPJ@3^+`lQR5;6RlEF?JK@db=^$dftEdmFSoI7yGNyI;J@+a{h z`~o>}>%A=S)h8 z5CSPBoO5h#ZBf@XP1CTk(ZSCfVvGz117eJX5OB`noWso8a?XDMk#j~8udlE8oHHQ= zc6N4R+uK`&5U8q(v$O9lnD?Heqa*hA_S*X<;pce+q?G9Q`;0~-o}QlCysxi+ zaex1Zo0}W<_xESyWheYRzWLTor&G*~-Q8V4n2Ec)JAi){u=JEse6QC-5-De5jP0el zVI`S`>x(Mqemb2Z87UUWR~j`l*0i!v<*dB@+uIvCC(?}l;qL>NKP~|{K0YRdK+`lU zz{|1wZnw)ur$bd$NMiHTW}CwK`FWdybB@o0LEAi;Op1!r)6-nnHFaHourPcuyH=F^ Z2M%4!$B_>LHoO1;002ovPDHLkV1kvM4}Aat diff --git a/plugins/wtsynth/smooth_inactive.png b/plugins/wtsynth/smooth_inactive.png index 791f48fedb15d18814c8fdc963ff82db54388d22..7f9511427d1c18b58edee395565dbd3dbd614da9 100644 GIT binary patch delta 582 zcmV-M0=fOS1c?QZDlq^60002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^l05D_Nxe8-fLTPT0=Nkl2J5J-%#_%ZklvVJb`G`ET|Jz+f;qGsYZ?i02zsYbC~b zesgnkDu;)MXU@5kwY4>j2=$BMQVJmiUSD5nn $DK|GYwdrR%&N+CI%P7M5M!ii znq!x9_RhH_K(E(he}5n69JT(@^Yrw@<>e)9+mcdR^u5bDW35F*u-4+eXMKI0mzNi= zudgx2u)DjvWUaMgjKLT~treG2LPQV|YOPpnan9kKTgc?<>IzlG7=ws>vgH;-#+Xk* zO{Y^r2uoIL?I(XrOMu0*)LIb{Mxzn$@9%WGU5<{9NGXwX=JD~7ySuwpfLbf63V?_( z91eMScvyzm>2x?aIAD8wo7>yl6&0?OLK|9ynYWLR4`PVqoXDlH@neHDCs0*b0L-&+ z07;cnDj@`#rXlA{DTP@tp()MIDXl61h*42hnx?^f&(43&4sUO7+~41$s!NNi`fq>` z0&UyUwk?y%gw4%Oy!Z6`eP#ra@pw#(aV13A+uIu%WBlTy}UBnnqa?V6m>fHPP$~i~W2ykJapPzqjZEf{pjQv_l_dDx65BPjI9G?CL0D(dm U5krVm000UA07*qoM6N<$g38?r@c;k- delta 499 zcmVy{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6CoKg6RL=jTPS~@NkloL~u=%=`q{_}T9>L90Eu=^il^KGm&Tw_aIM6d9gi+cp4NYXFo|c%FyW8m%>s z;~<1U2myd=+crum&gV1lKx>VZ5@QUP%LP|!T^T+ekId(DZnu9M#{4zsI1asDkHKJo z5CSPB_xt_R!877G=6byXFr7}R)oQF(D>j=AyWNg7O;Jh#kftf_cZ<(k8;u5@=P??M z==b{+MS)VP!f}7Q)fj`660J2^mQfVN%Yt78j4>EvNRk9&3`J4kx-OPwy>MRy+U+*= zdYvRmn9XM8M#q0~7!HSYyWI-kilWGzPN(wWE8YEmPnKl>tk-M8Fr?GzFquqB?%{B# zI#5cH=Q&zyTCG-jP7nl@a#f1=T#%wD{u$U$u!Rs9V^B(!1^Ei`9k`z7l}Sq}3B!=( zatXkAJjVC^($S9sQc9$hd`~ldLAYsPJbf5qL002ovPDHLkV1h5+;LZR5 diff --git a/plugins/wtsynth/sqr_active.png b/plugins/wtsynth/sqr_active.png index 11ade0c8318fb83ce1f88034809a9eab7d38946c..444bcead25b968266ad512f4659e7611edfc50ab 100644 GIT binary patch delta 621 zcmV-z0+RjX1g`~gnB;%nC_%a}9_WK|Kk11i?4R zJ0y=2&v^^q!%GA&3X+_Xg#?|Qp6;s3p=SpZ3mT@or~drDUkkwL>FF0${RpfWLqu@* z=^G$~K#UPH1Gv1tzWyvHCnsOb?9+TcXW6!>8BNn5A}`i1@{oV|{pU9+rAs+FI{LZ4 zzrWhs+k5t-AOb-Io)svnq`s%`d$!vxPft(3qM5B0iv{QB=R7_>A|iwk5D}KkC3p9C z+~3_#NjYa!l^7%LzKUkXY&Ii=K-YDA|M8=C2F}jTSifC!^X-Pd@5wpi?nn><0e2^w z86gCkrXi()ZP$MhLa17ErrUO;G+-l}|0B9PP17)&&4{tWGc!slY&IK8DS#822Hal& zjk|8U3soiOOwM^s<{vwsCnG{|chrolt1E7AZzovW?Us}h^ZA@o3aUyeg@c0wE-o%m zRRoAt>wr)zcU@OujWUWBv=kUSYbls2s#+z~L&e?6In#glJ!XcPp=y{KMRgio$9>MZ z7KkxUx>HJ%RrRvL-D%r)VzAg-Omcu~<1h>i!$3-D8Vz6=2HLje`1rU2L|E=GtF*Cz z93CG2Y}-GA5DdmHzGK}!d9COFq>N3aOCN?1i za?Xgz*Jd%Z*<8JO{pMZH`Ow{8{r}Rc_y3;NDdqCv;ojB delta 544 zcmV+*0^j|w1>*#eDlz{6{{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6C)sBAV30b1rO`+*n4IfNqw%K;Dwi4Xw^ z@I(|&>HL6^IBf6EPv67rEIwGNrPcgYS5?>O>FLS2_#^>fX1F`06ha7;Qs}ylo0}W@ zz9*%`)zyMoyO48cyQu2S&xbVg1^EuXy$Yw}38kYF@_{%U1Q@2+8{U1OeVeXEpy55=L zUPvj8hBuatS3r?p~)u*omtJR9b;lOUU8|VHd;e0+<7B4R^-uFFy i-~TZ0`}ltPV*CR|2Gt!`ygBUv0000b_J1AqmPDlq^60002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^l05D^he!D5?{TPT0%NklA2`hl* zKum^M!DMWJyfXr_PG(wyrt4L?KAzz9dqax=ELC9H_u9T?8-Vlk^BZgJg)wHzH%wI# zk=w_|$7^$Tc6Q^vzuMZ`!Wx5q0dB34Qev@K5JI^1z{O-T!8w2TW#ybRUDvT%tq>7H z2p7KAI`!Ujd3niVvDg6Y?(Q<1&6v$*gb;Xte<#LBDFyF6syg+xR-AJfV|aai<@xz} zBse`i<>26er>7@Ys}(6FR26G2)>>2*UrNCkgE58>0&j0`7-IlPDY0BG>AH@gkhONB zORuUp=kVT-It+h8&F6DOgds=uv&4S*mLXV5A*Do&aRh&ieL&#z>5j zloDOnvA4H}h>U>4!$Xdaj<~H$PDIcGu$8*_g<=V-05v$Hc2OePa@&YJ{- zXfehy01#tjdwZMXy{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6CfB|53661TPS~GNklo;24|%aR?Hw!6CQ;F$W?c zLJ$CwErGGSyQ*t~k$Yen@6P_v?f?4sulhI~4#tzRECV3M2!N`R=Q%M(VvO{9J)Cnm z=K$zuS%#`o6a~Lgj1dvR%qYu}evFZ#C|E9+jK|}bpU>wrv)O-)`FxIO}elNZ2XFd)k^nx;u+GsEn=wyf)| zX2x_nC4@j-*Ld&W%$)!;LscoulB%i*A*AmB$K&zu09C~~M+kw_>GWa-Sg+ULfOg)k zLD4iM1&Y)GPiv^xBdnYk+h;B@^UyF4!K^hY`5D^z{hU4Gw(f@%O%DCjjF1muIsN= f-tYHmZ2zlIIdUg`bEU?N00000NkvXXu0mjfq3*~D diff --git a/plugins/wtsynth/tri_active.png b/plugins/wtsynth/tri_active.png index c28c75e4a51c6bb4c9ceb2581674bafe79ac5b0b..690d1ebde8036da8682705cff3d1940d4b37c55f 100644 GIT binary patch delta 672 zcmV;R0$=@)1>yyeDlq^60002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^l05EByM{!ycmTPJ@4N=ZaPR5;6JlTA(=K@f$%>S@Esj!lpq7Jv*0S#~5)SY^dQ za))pnSmzcwK{x;+U<)K92MHGZ2+W^ny1P1yu}3&5saoBwSFfsHRSUrO_V#`V;TzCo zVj@C}vD^a~W3bkussIN^M@M_IwY9acs^914=J-&n5mZT%1QCDv&!^^c$K&XcEXxk0 z*X!NZ>-A=urtg4)2pAD~N8m#s8;==}$GpA0@$&L=XH~U1KR=JPw#+gO*xlVljBxnt zuncm}5kkOPON_B;RFz7lf{2hL3D#PywRAci(ln)FD=aTBm%%Yc#1z;VBSuv*#$b#A zC`mr|dR$ywaCU!o#@gB%I?={jOT|{O))vCX7-uqz2pbz4jGmsjzP{$_>WVBI)9rRK z#>`+RoiV((YPH7F(h}$A=iJ=f@bK`!aQKIIyUoJF!b~?1DJlr6c<=Gv(`eLDjhvjE zkmothIR=9P)>@j)CeAs$_k<7-zyLT`0Mj(3)oStk_!xhe=Qx++gC}^;pxko?Cjt}fd??wT0#hgaHA2!;jrv= z2%#+3d(Ut<7Zn&Dk4Axm?$nF#ZsP)7@Tu=NvqXrd+)!75XhY)s-hav7}2POYa~WRwQyq$ z&N)QnM{<9E|8w!<;wR_aW{k1QKUVyU*}I}jIk>#M-1`fh)ofS9?sZ)N0000y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6C)4w@qJs7TPJ@3_en%SR5;6JlU-8kKoCYxcdUSN9~878Z)%(UU@-X8WD$`jmdhm~!t?Vp&Xts9iCMq`hziHziwl5$zt$I|z?u+2RoQGdJUu<}`1r_bwZfII1x>5+_XVl|>~=fS zG-W!SvfuApCQ^T8K6BAtuZKo;{i=v4Z*Om8S;lZUWHcI)rYU)zclcB~5JAlhmAXx; zm<4vb9n!>QY&PTb^RtyLTK@&@_S?*OeSPKr{+`?0TU4uTwtA>2$&@uwJdmvW#Ssd~>8W1{0Db;o;$d z&1TcCUtL{s+3%D8&AGW5Rxax(XdY5+ve9Tnp648o$4bRwv9O{jD2jp*!Vkmn?QQ%F bRpmc}5xEh_s^^M>00000NkvXXu0mjf)r}Mk diff --git a/plugins/wtsynth/tri_inactive.png b/plugins/wtsynth/tri_inactive.png index 97814a5f7b63ec452299f9248716b8b52c95c448..1e8f13c5c0f960e06e012eea84f4b7fe8d5235c9 100644 GIT binary patch delta 633 zcmV-<0*3vR1iJ;0Dlq^60002_L%V+f000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^l05D@?&aYAX4TPJ@4BS}O-R5;6xlg}<>K^Vn#MrAX3=gNnVC?@SyZLIbIy0FJ_WG5yL+Uy z-d9T1_`(VyAR@v4B?$Nl|1X_~UJu`#??0zj9~62c(=YPHJz{5+jb zhsVc9o}Zt&xw)ZUuQNS8{Z~#pgn)AnYc1AVrlzLw-g9wrL6&8R2(4BNV+^yivpDC5 z0MJEI(6@c8wTz98F*i5I`OkA~e{d#F@Xpa{Hd$O;q&j~wfp-q?{d)`k&B6NmIxjCT zTsAMUB6#od&f~nN-RY2J8IA32ocHez07M)sD=T!nU9PXM5s?p8OWfYxk|YUhYil0~ zthFpGEHFMkPP5tkFG0KAW^!_pdc8g*P>n|8m)5#ge$TupPy_};p*}|bwhaWd(uhdc zc<)a{t9X6BoSd=EuY`N}vK1Cis0hlj)8V0v2} TdUv@i00000NkvXXu0mjfaXBE4 delta 465 zcmV;?0WSW#1(XDkDlz{6{{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2i^k}6CeZDYGSjITPJ@3d`Uz>R5;6(lRJ*$Koms}25+E+Wyvf6e-N8sO{{{&7zjHYN5_|Vo(F)n764-mzVBnL#ac_h z-$zP`loEh}=Xn@oxLhv$Ce~WC);Q<5Uat(SwVm){u>fE`pW}a=Lu-vv3MnO8Ywq{^ zr$JY4w_8(HDMeLP)OC$927u@DN$+$zxw0&O!0Yw8>4Dao*=$B#*Er{J?z3%WS<+cv z2*G4BAxRR15GbX-!A;ZK;MHoybUGyrLxLb6j$?|V_yKobAcP=ElIG1>ma*IIT1~z8 zf4`IGIa!tw1Ob0_T>}tB5owyT*=+u9V2nWs!FW7w;J0>~rmYs<*8$1%oH&jN!|)pn zFdB_oEj%eD&bg*~9LKHQ?y~TF-^V$}a=9c;Q=%wpg}W>~tu Date: Mon, 24 Mar 2014 02:01:16 +0200 Subject: [PATCH 20/23] Add crosstalk knob, some code changes --- data/themes/default/style.css | 10 ++ plugins/wtsynth/WTSynth.cpp | 232 ++++++++++++++++------------------ plugins/wtsynth/WTSynth.h | 80 +++++++----- plugins/wtsynth/artwork.png | Bin 95662 -> 97631 bytes 4 files changed, 168 insertions(+), 154 deletions(-) diff --git a/data/themes/default/style.css b/data/themes/default/style.css index c2e91bd05..7d41a8f07 100644 --- a/data/themes/default/style.css +++ b/data/themes/default/style.css @@ -648,6 +648,16 @@ WTSynthView knob#mixenvKnob { qproperty-lineWidth: 2; } +WTSynthView knob#xtalkKnob { + color: #fb50fb; + qproperty-outerColor: #fb50fb; + qproperty-innerRadius: 1; + qproperty-outerRadius: 7; + qproperty-centerPointX: 9.5; + qproperty-centerPointY: 9.5; + qproperty-lineWidth: 2; +} + /* palette information - each colour definition must be on a single line, and the line must begin with "palette:", with no leading whitespace * colour codes MUST be of the form #RRGGBB */ diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index 54e4580f1..bbbb2bcf9 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -54,6 +54,17 @@ Plugin::Descriptor PLUGIN_EXPORT wtsynth_plugin_descriptor = } +// these need to be here + +float WTSynthObject::s_lvol [NUM_OSCS]; +float WTSynthObject::s_rvol [NUM_OSCS]; +float WTSynthObject::s_mult [NUM_OSCS]; +float WTSynthObject::s_ltune [NUM_OSCS]; +float WTSynthObject::s_rtune [NUM_OSCS]; +float WTSynthObject::s_xtalk; + + + WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, float * _B1wave, float * _B2wave, int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph, fpp_t _frames ) : @@ -94,6 +105,13 @@ WTSynthObject::~WTSynthObject() void WTSynthObject::renderOutput( fpp_t _frames ) { + // calculate frequencies + for( int i = 0; i < NUM_OSCS; i++ ) + { + m_lfreq[i] = ( s_mult[i] / 8 ) * powf( 2, s_ltune[i] / 1200 ); + m_rfreq[i] = ( s_mult[i] / 8 ) * powf( 2, s_rtune[i] / 1200 ); + } + if( m_abuf == NULL ) m_abuf = new sampleFrame[m_fpp]; if( m_bbuf == NULL ) @@ -101,38 +119,21 @@ void WTSynthObject::renderOutput( fpp_t _frames ) for( fpp_t frame = 0; frame < _frames; frame++ ) { - float frac; - - // A2 - frac = fraction( m_lphase[A2_OSC] ); - sample_t A2_L = - ( m_A2wave[ static_cast( m_lphase[A2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + - ( m_A2wave[ static_cast( m_lphase[A2_OSC] + 1 ) % WAVELEN ] * frac ); - A2_L *= m_lvol[A2_OSC]; - frac = fraction( m_rphase[A2_OSC] ); - sample_t A2_R = - ( m_A2wave[ static_cast( m_rphase[A2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + - ( m_A2wave[ static_cast( m_rphase[A2_OSC] + 1 ) % WAVELEN ] * frac ); - A2_R *= m_rvol[A2_OSC]; - - // B2 - frac = fraction( m_lphase[B2_OSC] ); - sample_t B2_L = - ( m_B2wave[ static_cast( m_lphase[B2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + - ( m_B2wave[ static_cast( m_lphase[B2_OSC] + 1 ) % WAVELEN ] * frac ); - B2_L *= m_lvol[B2_OSC]; - frac = fraction( m_rphase[B2_OSC] ); - sample_t B2_R = - ( m_B2wave[ static_cast( m_rphase[B2_OSC] ) % WAVELEN ] * ( 1.0f - frac ) ) + - ( m_B2wave[ static_cast( m_rphase[B2_OSC] + 1 ) % WAVELEN ] * frac ); - B2_R *= m_rvol[B2_OSC]; - // put phases of 1-series oscs into variables because phase modulation might happen float A1_lphase = m_lphase[A1_OSC]; float A1_rphase = m_rphase[A1_OSC]; float B1_lphase = m_lphase[B1_OSC]; float B1_rphase = m_rphase[B1_OSC]; + ///////////// A-series ///////////////// + + // A2 + sample_t A2_L = interpolate( m_A2wave[ static_cast( m_lphase[A2_OSC] ) % WAVELEN ], + m_A2wave[ static_cast( m_lphase[A2_OSC] + 1 ) % WAVELEN ], + fraction( m_lphase[A2_OSC] ) ) * s_lvol[A2_OSC]; + sample_t A2_R = interpolate( m_A2wave[ static_cast( m_rphase[A2_OSC] ) % WAVELEN ], + m_A2wave[ static_cast( m_rphase[A2_OSC] + 1 ) % WAVELEN ], + fraction( m_rphase[A2_OSC] ) ) * s_rvol[A2_OSC]; // if phase mod, add to phases if( m_amod == MOD_PM ) { @@ -141,6 +142,32 @@ void WTSynthObject::renderOutput( fpp_t _frames ) A1_rphase = fmodf( A1_rphase + A2_R * PMOD_AMT, WAVELEN ); while( A1_rphase < 0 ) A1_rphase += WAVELEN; } + // A1 + sample_t A1_L = interpolate( m_A1wave[ static_cast( A1_lphase ) % WAVELEN ], + m_A1wave[ static_cast( A1_lphase + 1 ) % WAVELEN ], + fraction( A1_lphase ) ) * s_lvol[A1_OSC]; + sample_t A1_R = interpolate( m_A1wave[ static_cast( A1_rphase ) % WAVELEN ], + m_A1wave[ static_cast( A1_rphase + 1 ) % WAVELEN ], + fraction( A1_rphase ) ) * s_rvol[A1_OSC]; + + ///////////// B-series ///////////////// + + // B2 + sample_t B2_L = interpolate( m_B2wave[ static_cast( m_lphase[B2_OSC] ) % WAVELEN ], + m_B2wave[ static_cast( m_lphase[B2_OSC] + 1 ) % WAVELEN ], + fraction( m_lphase[B2_OSC] ) ) * s_lvol[B2_OSC]; + sample_t B2_R = interpolate( m_B2wave[ static_cast( m_rphase[B2_OSC] ) % WAVELEN ], + m_B2wave[ static_cast( m_rphase[B2_OSC] + 1 ) % WAVELEN ], + fraction( m_rphase[B2_OSC] ) ) * s_rvol[B2_OSC]; + + // if crosstalk active, add a1 + if( s_xtalk > 0.0 ) + { + B2_L += ( A1_L * s_xtalk ) / 100.0f; + B2_R += ( A1_R * s_xtalk ) / 100.0f; + } + + // if phase mod, add to phases if( m_bmod == MOD_PM ) { B1_lphase = fmodf( B1_lphase + B2_L * PMOD_AMT, WAVELEN ); @@ -148,30 +175,14 @@ void WTSynthObject::renderOutput( fpp_t _frames ) B1_rphase = fmodf( B1_rphase + B2_R * PMOD_AMT, WAVELEN ); while( B1_rphase < 0 ) B1_rphase += WAVELEN; } - - // A1 - frac = fraction( A1_lphase ); - sample_t A1_L = - ( m_A1wave[ static_cast( A1_lphase ) % WAVELEN ] * ( 1.0f - frac ) ) + - ( m_A1wave[ static_cast( A1_lphase + 1 ) % WAVELEN ] * frac ); - A1_L *= m_lvol[A1_OSC]; - frac = fraction( A1_rphase ); - sample_t A1_R = - ( m_A1wave[ static_cast( A1_rphase ) % WAVELEN ] * ( 1.0f - frac ) ) + - ( m_A1wave[ static_cast( A1_rphase + 1 ) % WAVELEN ] * frac ); - A1_R *= m_rvol[A1_OSC]; - // B1 - frac = fraction( B1_lphase ); - sample_t B1_L = - ( m_B1wave[ static_cast( B1_lphase ) % WAVELEN ] * ( 1.0f - frac ) ) + - ( m_B1wave[ static_cast( B1_lphase + 1 ) % WAVELEN ] * frac ); - B1_L *= m_lvol[B1_OSC]; - frac = fraction( B1_rphase ); - sample_t B1_R = - ( m_B1wave[ static_cast( B1_rphase ) % WAVELEN ] * ( 1.0f - frac ) ) + - ( m_B1wave[ static_cast( B1_rphase + 1 ) % WAVELEN ] * frac ); - B1_R *= m_rvol[B1_OSC]; + sample_t B1_L = interpolate( m_B1wave[ static_cast( B1_lphase ) % WAVELEN ], + m_B1wave[ static_cast( B1_lphase + 1 ) % WAVELEN ], + fraction( B1_lphase ) ) * s_lvol[B1_OSC]; + sample_t B1_R = interpolate( m_B1wave[ static_cast( B1_rphase ) % WAVELEN ], + m_B1wave[ static_cast( B1_rphase + 1 ) % WAVELEN ], + fraction( B1_rphase ) ) * s_rvol[B1_OSC]; + // A-series modulation) switch( m_amod ) @@ -224,40 +235,27 @@ void WTSynthObject::renderOutput( fpp_t _frames ) } -void WTSynthObject::updateFrequencies() -{ - // calculate frequencies - for( int i = 0; i < NUM_OSCS; i++ ) - { - m_lfreq[i] = ( m_mult[i] / 8 ) * powf( 2, m_ltune[i] / 1200 ); - m_rfreq[i] = ( m_mult[i] / 8 ) * powf( 2, m_rtune[i] / 1200 ); - } -} - - - void WTSynthObject::changeVolume( int _osc, float _lvol, float _rvol ) { - m_lvol[_osc] = _lvol / 100.0; - m_rvol[_osc] = _rvol / 100.0; + WTSynthObject::s_lvol[_osc] = _lvol / 100.0; + WTSynthObject::s_rvol[_osc] = _rvol / 100.0; // qDebug( "osc %d vol %f %f", _osc, m_lvol[_osc], m_rvol[_osc] ); } void WTSynthObject::changeMult( int _osc, float _mul ) { - m_mult[_osc] = _mul; + s_mult[_osc] = _mul; } void WTSynthObject::changeTune( int _osc, float _ltune, float _rtune ) { - m_ltune[_osc] = _ltune; - m_rtune[_osc] = _rtune; + s_ltune[_osc] = _ltune; + s_rtune[_osc] = _rtune; } - WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : Instrument( _instrument_track, &wtsynth_plugin_descriptor ), @@ -293,11 +291,13 @@ WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : m_abmix( 0.0f, -100.0f, 100.0f, 0.1f, this, tr( "A-B Mix" ) ), m_envAmt( 0.0f, -200.0f, 200.0f, 1.0f, this, tr( "A-B Mix envelope amount" ) ), - + m_envAtt( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "A-B Mix envelope attack" ) ), m_envHold( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "A-B Mix envelope hold" ) ), m_envDec( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "A-B Mix envelope decay" ) ), + m_xtalk( 0.0f, 0.0f, 100.0f, 0.1f, this, tr( "A1-B2 Crosstalk" ) ), + m_amod( 0, 0, 3, this, tr( "A2-A1 modulation" ) ), m_bmod( 0, 0, 3, this, tr( "B2-B1 modulation" ) ), @@ -328,10 +328,17 @@ WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : connect( &b1_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); connect( &b2_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); + connect( &m_xtalk, SIGNAL( dataChanged() ), this, SLOT( updateXtalk() ) ); + a1_graph.setWaveToSine(); a2_graph.setWaveToSine(); b1_graph.setWaveToSine(); b2_graph.setWaveToSine(); + + updateMult(); + updateTunes(); + updateVolumes(); + updateXtalk(); } @@ -353,23 +360,6 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, engine::mixer()->processingSampleRate(), _n, engine::mixer()->framesPerPeriod() ); - w -> changeMult( A1_OSC, a1_mult.value() ); - w -> changeMult( A2_OSC, a2_mult.value() ); - w -> changeMult( B1_OSC, b1_mult.value() ); - w -> changeMult( B2_OSC, b2_mult.value() ); - - w -> changeTune( A1_OSC, a1_ltune.value(), a1_rtune.value() ); - w -> changeTune( A2_OSC, a2_ltune.value(), a2_rtune.value() ); - w -> changeTune( B1_OSC, b1_ltune.value(), b1_rtune.value() ); - w -> changeTune( B2_OSC, b2_ltune.value(), b2_rtune.value() ); - - w -> changeVolume( A1_OSC, leftCh( a1_vol.value(), a1_pan.value() ), rightCh( a1_vol.value(), a1_pan.value() ) ); - w -> changeVolume( A2_OSC, leftCh( a2_vol.value(), a2_pan.value() ), rightCh( a2_vol.value(), a2_pan.value() ) ); - w -> changeVolume( B1_OSC, leftCh( b1_vol.value(), b1_pan.value() ), rightCh( b1_vol.value(), b1_pan.value() ) ); - w -> changeVolume( B2_OSC, leftCh( b2_vol.value(), b2_pan.value() ), rightCh( b2_vol.value(), b2_pan.value() ) ); - - w -> updateFrequencies(); - _n->m_pluginData = w; } @@ -377,35 +367,6 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, WTSynthObject * w = static_cast( _n->m_pluginData ); - // update oscs if needed - - if( m_volChanged ) - { - w-> changeVolume( A1_OSC, leftCh( a1_vol.value(), a1_pan.value() ), rightCh( a1_vol.value(), a1_pan.value() ) ); - w-> changeVolume( A2_OSC, leftCh( a2_vol.value(), a2_pan.value() ), rightCh( a2_vol.value(), a2_pan.value() ) ); - w-> changeVolume( B1_OSC, leftCh( b1_vol.value(), b1_pan.value() ), rightCh( b1_vol.value(), b1_pan.value() ) ); - w-> changeVolume( B2_OSC, leftCh( b2_vol.value(), b2_pan.value() ), rightCh( b2_vol.value(), b2_pan.value() ) ); - m_volChanged = false; - } - if( m_tuneChanged ) - { - w-> changeTune( A1_OSC, a1_ltune.value(), a1_rtune.value() ); - w-> changeTune( A2_OSC, a2_ltune.value(), a2_rtune.value() ); - w-> changeTune( B1_OSC, b1_ltune.value(), b1_rtune.value() ); - w-> changeTune( B2_OSC, b2_ltune.value(), b2_rtune.value() ); - w-> updateFrequencies(); - m_tuneChanged = false; - } - if( m_multChanged ) - { - w-> changeMult( A1_OSC, a1_mult.value() ); - w-> changeMult( A2_OSC, a2_mult.value() ); - w-> changeMult( B1_OSC, b1_mult.value() ); - w-> changeMult( B2_OSC, b2_mult.value() ); - w-> updateFrequencies(); - m_multChanged = false; - } - sampleFrame * abuf = w->abuf(); sampleFrame * bbuf = w->bbuf(); @@ -453,7 +414,7 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, ( bbuf[f][1] * bmix ); } } - + // if sample-exact is not enabled, use simpler calculations: // if mix envelope is active, and we haven't gone past the envelope end, use envelope-aware calculation... else if( envAmt != 0.0f && tfp_ < envLen ) @@ -487,7 +448,7 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, _working_buffer[f][1] = ( abuf[f][1] * amix ) + ( bbuf[f][1] * bmix ); } - } + } // ... mix envelope is inactive or we've past the end of envelope, so use a faster calculation to save cpu else @@ -563,6 +524,8 @@ void WTSynthInstrument::saveSettings( QDomDocument & _doc, m_envHold.saveSettings( _doc, _this, "envHold" ); m_envDec.saveSettings( _doc, _this, "envDec" ); + m_xtalk.saveSettings( _doc, _this, "xtalk" ); + m_amod.saveSettings( _doc, _this, "amod" ); m_bmod.saveSettings( _doc, _this, "bmod" ); m_selectedGraph.saveSettings( _doc, _this, "selgraph" ); @@ -618,6 +581,8 @@ void WTSynthInstrument::loadSettings( const QDomElement & _this ) m_envHold.loadSettings( _this, "envHold" ); m_envDec.loadSettings( _this, "envDec" ); + m_xtalk.loadSettings( _this, "xtalk" ); + m_amod.loadSettings( _this, "amod" ); m_bmod.loadSettings( _this, "bmod" ); m_selectedGraph.loadSettings( _this, "selgraph" ); @@ -638,16 +603,30 @@ PluginView * WTSynthInstrument::instantiateView( QWidget * _parent ) void WTSynthInstrument::updateVolumes() { - m_volChanged = true; + WTSynthObject::changeVolume( A1_OSC, leftCh( a1_vol.value(), a1_pan.value() ), rightCh( a1_vol.value(), a1_pan.value() ) ); + WTSynthObject::changeVolume( A2_OSC, leftCh( a2_vol.value(), a2_pan.value() ), rightCh( a2_vol.value(), a2_pan.value() ) ); + WTSynthObject::changeVolume( B1_OSC, leftCh( b1_vol.value(), b1_pan.value() ), rightCh( b1_vol.value(), b1_pan.value() ) ); + WTSynthObject::changeVolume( B2_OSC, leftCh( b2_vol.value(), b2_pan.value() ), rightCh( b2_vol.value(), b2_pan.value() ) ); } void WTSynthInstrument::updateMult() { - m_multChanged = true; + WTSynthObject::changeMult( A1_OSC, a1_mult.value() ); + WTSynthObject::changeMult( A2_OSC, a2_mult.value() ); + WTSynthObject::changeMult( B1_OSC, b1_mult.value() ); + WTSynthObject::changeMult( B2_OSC, b2_mult.value() ); } void WTSynthInstrument::updateTunes() { - m_tuneChanged = true; + WTSynthObject::changeTune( A1_OSC, a1_ltune.value(), a1_rtune.value() ); + WTSynthObject::changeTune( A2_OSC, a2_ltune.value(), a2_rtune.value() ); + WTSynthObject::changeTune( B1_OSC, b1_ltune.value(), b1_rtune.value() ); + WTSynthObject::changeTune( B2_OSC, b2_ltune.value(), b2_rtune.value() ); } +void WTSynthInstrument::updateXtalk() +{ + WTSynthObject::changeXtalk( m_xtalk.value() ); +} + WTSynthView::WTSynthView( Instrument * _instrument, @@ -690,11 +669,13 @@ WTSynthView::WTSynthView( Instrument * _instrument, makeknob( m_abmixKnob, 4, 3, "A-B Mix", "", "mixKnob" ) makeknob( m_envAmtKnob, 88, 3, "Mix envelope amount", "", "mixenvKnob" ) - + maketsknob( m_envAttKnob, 88, A1ROW, "Mix envelope attack", " ms", "mixenvKnob" ) maketsknob( m_envHoldKnob, 88, A2ROW, "Mix envelope hold", " ms", "mixenvKnob" ) maketsknob( m_envDecKnob, 88, B1ROW, "Mix envelope decay", " ms", "mixenvKnob" ) + makeknob( m_xtalkKnob, 88, B2ROW, "Crosstalk", "", "xtalkKnob" ) + // let's set volume knobs a1_volKnob -> setVolumeKnob( true ); a2_volKnob -> setVolumeKnob( true ); @@ -839,19 +820,19 @@ WTSynthView::WTSynthView( Instrument * _instrument, // waveform modifications m_loadButton = new pixmapButton( this, tr( "Load waveform" ) ); - m_loadButton -> move ( 176, 121 ); + m_loadButton -> move ( 173, 121 ); m_loadButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "load_active" ) ); m_loadButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "load_inactive" ) ); toolTip::add( m_loadButton, tr( "Click to load a waveform from a sample file" ) ); m_phaseLeftButton = new pixmapButton( this, tr( "Phase left" ) ); - m_phaseLeftButton -> move ( 196, 121 ); + m_phaseLeftButton -> move ( 193, 121 ); m_phaseLeftButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "phl_active" ) ); m_phaseLeftButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "phl_inactive" ) ); toolTip::add( m_phaseLeftButton, tr( "Click to shift phase by -15 degrees" ) ); m_phaseRightButton = new pixmapButton( this, tr( "Phase right" ) ); - m_phaseRightButton -> move ( 213, 121 ); + m_phaseRightButton -> move ( 210, 121 ); m_phaseRightButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "phr_active" ) ); m_phaseRightButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "phr_inactive" ) ); toolTip::add( m_phaseRightButton, tr( "Click to shift phase by +15 degrees" ) ); @@ -912,7 +893,7 @@ WTSynthView::WTSynthView( Instrument * _instrument, connect( m_smoothButton, SIGNAL( clicked() ), this, SLOT( smoothClicked() ) ); connect( m_phaseLeftButton, SIGNAL( clicked() ), this, SLOT( phaseLeftClicked() ) ); connect( m_phaseRightButton, SIGNAL( clicked() ), this, SLOT( phaseRightClicked() ) ); - connect( m_loadButton, SIGNAL( clicked() ), this, SLOT( loadClicked() ) ); + connect( m_loadButton, SIGNAL( clicked() ), this, SLOT( loadClicked() ) ); connect( a1_selectButton, SIGNAL( clicked() ), this, SLOT( updateLayout() ) ); connect( a2_selectButton, SIGNAL( clicked() ), this, SLOT( updateLayout() ) ); @@ -1180,7 +1161,7 @@ void WTSynthView::phaseRightClicked() void WTSynthView::loadClicked() { - QString fileName; + QString fileName; switch( m_selectedGraphGroup->model()->value() ) { case A1_OSC: @@ -1249,6 +1230,7 @@ void WTSynthView::modelChanged() m_envHoldKnob -> setModel( &w -> m_envHold ); m_envDecKnob -> setModel( &w -> m_envDec ); + m_xtalkKnob -> setModel( &w -> m_xtalk ); } diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index df7aa908b..c412199f4 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -56,20 +56,20 @@ #define B2ROW 95 -const int WAVELEN = 220; -const int PMOD_AMT = 110; +extern const int WAVELEN = 220; +extern const int PMOD_AMT = 110; -const int MOD_MIX = 0; -const int MOD_AM = 1; -const int MOD_RM = 2; -const int MOD_PM = 3; -const int NUM_MODS = 4; +extern const int MOD_MIX = 0; +extern const int MOD_AM = 1; +extern const int MOD_RM = 2; +extern const int MOD_PM = 3; +extern const int NUM_MODS = 4; -const int A1_OSC = 0; -const int A2_OSC = 1; -const int B1_OSC = 2; -const int B2_OSC = 3; -const int NUM_OSCS = 4; +extern const int A1_OSC = 0; +extern const int A2_OSC = 1; +extern const int B1_OSC = 2; +extern const int B2_OSC = 3; +extern const int NUM_OSCS = 4; class WTSynthObject @@ -80,14 +80,17 @@ public: int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph, fpp_t _frames ); virtual ~WTSynthObject(); + static void changeVolume( int _osc, float _lvol, float _rvol ); + static void changeMult( int _osc, float _mul ); + static void changeTune( int _osc, float _ltune, float _rtune ); + + static inline void changeXtalk( float _xtalk ) + { + s_xtalk = _xtalk; + }; + void renderOutput( fpp_t _frames ); - void updateFrequencies(); - - void changeVolume( int _osc, float _lvol, float _rvol ); - void changeMult( int _osc, float _mul ); - void changeTune( int _osc, float _ltune, float _rtune ); - inline sampleFrame * abuf() const { return m_abuf; @@ -102,11 +105,29 @@ public: } private: - float m_lvol [NUM_OSCS]; - float m_rvol [NUM_OSCS]; - float m_mult [NUM_OSCS]; - float m_ltune [NUM_OSCS]; - float m_rtune [NUM_OSCS]; + static float s_lvol [NUM_OSCS]; + static float s_rvol [NUM_OSCS]; + static float s_mult [NUM_OSCS]; + static float s_ltune [NUM_OSCS]; + static float s_rtune [NUM_OSCS]; + static float s_xtalk; + + // linear interpolation +/* inline sample_t interpolate( sample_t s1, sample_t s2, float x ) + { + return s1 + ( s2 - s1 ) * x; + }*/ + // quick and dirty approximation of cubic interpolation + inline sample_t interpolate( sample_t s1, sample_t s2, float x ) + { + const float x2 = powf( x, 2 ); + const float x3 = powf( x, 3 ); + const float m = s2 - s1; + + return ( ( x3 * 2.0 - x2 * 3.0 + 1.0 ) * s1 ) + + ( ( x3 * -2.0 + x2 * 3.0 ) * s2 ) + + ( ( x + x3 * 2.0 - x2 * 3.0 ) * m ); + } int m_amod; int m_bmod; @@ -160,6 +181,7 @@ public slots: void updateVolumes(); void updateMult(); void updateTunes(); + void updateXtalk(); private: inline float leftCh( float _vol, float _pan ) @@ -205,20 +227,18 @@ private: FloatModel m_abmix; FloatModel m_envAmt; - + TempoSyncKnobModel m_envAtt; TempoSyncKnobModel m_envHold; TempoSyncKnobModel m_envDec; + FloatModel m_xtalk; + IntModel m_amod; IntModel m_bmod; IntModel m_selectedGraph; - bool m_volChanged; - bool m_multChanged; - bool m_tuneChanged; - friend class WTSynthView; }; @@ -278,11 +298,13 @@ private: knob * m_abmixKnob; knob * m_envAmtKnob; - + TempoSyncKnob * m_envAttKnob; TempoSyncKnob * m_envHoldKnob; TempoSyncKnob * m_envDecKnob; + knob * m_xtalkKnob; + automatableButtonGroup * m_selectedGraphGroup; automatableButtonGroup * m_aModGroup; automatableButtonGroup * m_bModGroup; diff --git a/plugins/wtsynth/artwork.png b/plugins/wtsynth/artwork.png index 56413dcea32e35f177f97d88db55b7d9c46b25e1..bd321cdbd1a2bf1832deff70f018efd73592a3bc 100644 GIT binary patch delta 96334 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 Hu0mjfrxrTo delta 94371 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 Date: Mon, 24 Mar 2014 03:55:43 +0200 Subject: [PATCH 21/23] Changes again - moved frequency calculations to a static method... for some reason this saves a lot of cpu. --- plugins/wtsynth/WTSynth.cpp | 27 +++++++++++++++++---------- plugins/wtsynth/WTSynth.h | 6 +++--- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index bbbb2bcf9..d9c7f7351 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -62,7 +62,8 @@ float WTSynthObject::s_mult [NUM_OSCS]; float WTSynthObject::s_ltune [NUM_OSCS]; float WTSynthObject::s_rtune [NUM_OSCS]; float WTSynthObject::s_xtalk; - +float WTSynthObject::s_lfreq [NUM_OSCS]; +float WTSynthObject::s_rfreq [NUM_OSCS]; WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, @@ -105,13 +106,6 @@ WTSynthObject::~WTSynthObject() void WTSynthObject::renderOutput( fpp_t _frames ) { - // calculate frequencies - for( int i = 0; i < NUM_OSCS; i++ ) - { - m_lfreq[i] = ( s_mult[i] / 8 ) * powf( 2, s_ltune[i] / 1200 ); - m_rfreq[i] = ( s_mult[i] / 8 ) * powf( 2, s_rtune[i] / 1200 ); - } - if( m_abuf == NULL ) m_abuf = new sampleFrame[m_fpp]; if( m_bbuf == NULL ) @@ -225,9 +219,9 @@ void WTSynthObject::renderOutput( fpp_t _frames ) // update phases for( int i = 0; i < NUM_OSCS; i++ ) { - m_lphase[i] += ( static_cast( WAVELEN ) / ( m_samplerate / ( m_nph->frequency() * m_lfreq[i] ) ) ); + m_lphase[i] += ( static_cast( WAVELEN ) / ( m_samplerate / ( m_nph->frequency() * s_lfreq[i] ) ) ); m_lphase[i] = fmodf( m_lphase[i], WAVELEN ); - m_rphase[i] += ( static_cast( WAVELEN ) / ( m_samplerate / ( m_nph->frequency() * m_rfreq[i] ) ) ); + m_rphase[i] += ( static_cast( WAVELEN ) / ( m_samplerate / ( m_nph->frequency() * s_rfreq[i] ) ) ); m_rphase[i] = fmodf( m_rphase[i], WAVELEN ); } } @@ -256,6 +250,17 @@ void WTSynthObject::changeTune( int _osc, float _ltune, float _rtune ) } +void WTSynthObject::updateFrequency() +{ + // calculate frequencies + for( int i = 0; i < NUM_OSCS; i++ ) + { + s_lfreq[i] = ( s_mult[i] / 8 ) * powf( 2, s_ltune[i] / 1200 ); + s_rfreq[i] = ( s_mult[i] / 8 ) * powf( 2, s_rtune[i] / 1200 ); + } +} + + WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : Instrument( _instrument_track, &wtsynth_plugin_descriptor ), @@ -614,6 +619,7 @@ void WTSynthInstrument::updateMult() WTSynthObject::changeMult( A2_OSC, a2_mult.value() ); WTSynthObject::changeMult( B1_OSC, b1_mult.value() ); WTSynthObject::changeMult( B2_OSC, b2_mult.value() ); + WTSynthObject::updateFrequency(); } void WTSynthInstrument::updateTunes() { @@ -621,6 +627,7 @@ void WTSynthInstrument::updateTunes() WTSynthObject::changeTune( A2_OSC, a2_ltune.value(), a2_rtune.value() ); WTSynthObject::changeTune( B1_OSC, b1_ltune.value(), b1_rtune.value() ); WTSynthObject::changeTune( B2_OSC, b2_ltune.value(), b2_rtune.value() ); + WTSynthObject::updateFrequency(); } void WTSynthInstrument::updateXtalk() { diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index c412199f4..145bed795 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -83,6 +83,7 @@ public: static void changeVolume( int _osc, float _lvol, float _rvol ); static void changeMult( int _osc, float _mul ); static void changeTune( int _osc, float _ltune, float _rtune ); + static void updateFrequency(); static inline void changeXtalk( float _xtalk ) { @@ -111,6 +112,8 @@ private: static float s_ltune [NUM_OSCS]; static float s_rtune [NUM_OSCS]; static float s_xtalk; + static float s_lfreq [NUM_OSCS]; + static float s_rfreq [NUM_OSCS]; // linear interpolation /* inline sample_t interpolate( sample_t s1, sample_t s2, float x ) @@ -143,9 +146,6 @@ private: float m_lphase [NUM_OSCS]; float m_rphase [NUM_OSCS]; - float m_lfreq [NUM_OSCS]; - float m_rfreq [NUM_OSCS]; - float m_A1wave [WAVELEN]; float m_A2wave [WAVELEN]; float m_B1wave [WAVELEN]; From 8109d38f2efc5d4cec44757eaf98dcd33fe3ff56 Mon Sep 17 00:00:00 2001 From: Vesa Date: Mon, 24 Mar 2014 05:26:54 +0200 Subject: [PATCH 22/23] I forgot how to think... fix all stupidity of the last commit --- plugins/wtsynth/WTSynth.cpp | 156 ++++++++++++++---------------------- plugins/wtsynth/WTSynth.h | 43 ++++------ 2 files changed, 75 insertions(+), 124 deletions(-) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/wtsynth/WTSynth.cpp index d9c7f7351..8ba27e38b 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/wtsynth/WTSynth.cpp @@ -54,26 +54,18 @@ Plugin::Descriptor PLUGIN_EXPORT wtsynth_plugin_descriptor = } -// these need to be here - -float WTSynthObject::s_lvol [NUM_OSCS]; -float WTSynthObject::s_rvol [NUM_OSCS]; -float WTSynthObject::s_mult [NUM_OSCS]; -float WTSynthObject::s_ltune [NUM_OSCS]; -float WTSynthObject::s_rtune [NUM_OSCS]; -float WTSynthObject::s_xtalk; -float WTSynthObject::s_lfreq [NUM_OSCS]; -float WTSynthObject::s_rfreq [NUM_OSCS]; WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, float * _B1wave, float * _B2wave, - int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph, fpp_t _frames ) : + int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph, fpp_t _frames, + WTSynthInstrument * _w ) : m_amod( _amod ), m_bmod( _bmod ), m_samplerate( _samplerate ), m_nph( _nph ), - m_fpp( _frames ) + m_fpp( _frames ), + m_parent( _w ) { m_abuf = new sampleFrame[_frames]; m_bbuf = new sampleFrame[_frames]; @@ -124,10 +116,10 @@ void WTSynthObject::renderOutput( fpp_t _frames ) // A2 sample_t A2_L = interpolate( m_A2wave[ static_cast( m_lphase[A2_OSC] ) % WAVELEN ], m_A2wave[ static_cast( m_lphase[A2_OSC] + 1 ) % WAVELEN ], - fraction( m_lphase[A2_OSC] ) ) * s_lvol[A2_OSC]; + fraction( m_lphase[A2_OSC] ) ) * m_parent->m_lvol[A2_OSC]; sample_t A2_R = interpolate( m_A2wave[ static_cast( m_rphase[A2_OSC] ) % WAVELEN ], m_A2wave[ static_cast( m_rphase[A2_OSC] + 1 ) % WAVELEN ], - fraction( m_rphase[A2_OSC] ) ) * s_rvol[A2_OSC]; + fraction( m_rphase[A2_OSC] ) ) * m_parent->m_rvol[A2_OSC]; // if phase mod, add to phases if( m_amod == MOD_PM ) { @@ -139,26 +131,27 @@ void WTSynthObject::renderOutput( fpp_t _frames ) // A1 sample_t A1_L = interpolate( m_A1wave[ static_cast( A1_lphase ) % WAVELEN ], m_A1wave[ static_cast( A1_lphase + 1 ) % WAVELEN ], - fraction( A1_lphase ) ) * s_lvol[A1_OSC]; + fraction( A1_lphase ) ) * m_parent->m_lvol[A1_OSC]; sample_t A1_R = interpolate( m_A1wave[ static_cast( A1_rphase ) % WAVELEN ], m_A1wave[ static_cast( A1_rphase + 1 ) % WAVELEN ], - fraction( A1_rphase ) ) * s_rvol[A1_OSC]; + fraction( A1_rphase ) ) * m_parent->m_rvol[A1_OSC]; ///////////// B-series ///////////////// // B2 sample_t B2_L = interpolate( m_B2wave[ static_cast( m_lphase[B2_OSC] ) % WAVELEN ], m_B2wave[ static_cast( m_lphase[B2_OSC] + 1 ) % WAVELEN ], - fraction( m_lphase[B2_OSC] ) ) * s_lvol[B2_OSC]; + fraction( m_lphase[B2_OSC] ) ) * m_parent->m_lvol[B2_OSC]; sample_t B2_R = interpolate( m_B2wave[ static_cast( m_rphase[B2_OSC] ) % WAVELEN ], m_B2wave[ static_cast( m_rphase[B2_OSC] + 1 ) % WAVELEN ], - fraction( m_rphase[B2_OSC] ) ) * s_rvol[B2_OSC]; + fraction( m_rphase[B2_OSC] ) ) * m_parent->m_rvol[B2_OSC]; // if crosstalk active, add a1 - if( s_xtalk > 0.0 ) + const float xt = m_parent->m_xtalk.value(); + if( xt > 0.0 ) { - B2_L += ( A1_L * s_xtalk ) / 100.0f; - B2_R += ( A1_R * s_xtalk ) / 100.0f; + B2_L += ( A1_L * xt ) / 100.0f; + B2_R += ( A1_R * xt ) / 100.0f; } // if phase mod, add to phases @@ -172,10 +165,10 @@ void WTSynthObject::renderOutput( fpp_t _frames ) // B1 sample_t B1_L = interpolate( m_B1wave[ static_cast( B1_lphase ) % WAVELEN ], m_B1wave[ static_cast( B1_lphase + 1 ) % WAVELEN ], - fraction( B1_lphase ) ) * s_lvol[B1_OSC]; + fraction( B1_lphase ) ) * m_parent->m_lvol[B1_OSC]; sample_t B1_R = interpolate( m_B1wave[ static_cast( B1_rphase ) % WAVELEN ], m_B1wave[ static_cast( B1_rphase + 1 ) % WAVELEN ], - fraction( B1_rphase ) ) * s_rvol[B1_OSC]; + fraction( B1_rphase ) ) * m_parent->m_rvol[B1_OSC]; // A-series modulation) @@ -219,9 +212,9 @@ void WTSynthObject::renderOutput( fpp_t _frames ) // update phases for( int i = 0; i < NUM_OSCS; i++ ) { - m_lphase[i] += ( static_cast( WAVELEN ) / ( m_samplerate / ( m_nph->frequency() * s_lfreq[i] ) ) ); + m_lphase[i] += ( static_cast( WAVELEN ) / ( m_samplerate / ( m_nph->frequency() * m_parent->m_lfreq[i] ) ) ); m_lphase[i] = fmodf( m_lphase[i], WAVELEN ); - m_rphase[i] += ( static_cast( WAVELEN ) / ( m_samplerate / ( m_nph->frequency() * s_rfreq[i] ) ) ); + m_rphase[i] += ( static_cast( WAVELEN ) / ( m_samplerate / ( m_nph->frequency() * m_parent->m_rfreq[i] ) ) ); m_rphase[i] = fmodf( m_rphase[i], WAVELEN ); } } @@ -229,37 +222,6 @@ void WTSynthObject::renderOutput( fpp_t _frames ) } -void WTSynthObject::changeVolume( int _osc, float _lvol, float _rvol ) -{ - WTSynthObject::s_lvol[_osc] = _lvol / 100.0; - WTSynthObject::s_rvol[_osc] = _rvol / 100.0; -// qDebug( "osc %d vol %f %f", _osc, m_lvol[_osc], m_rvol[_osc] ); -} - - -void WTSynthObject::changeMult( int _osc, float _mul ) -{ - s_mult[_osc] = _mul; -} - - -void WTSynthObject::changeTune( int _osc, float _ltune, float _rtune ) -{ - s_ltune[_osc] = _ltune; - s_rtune[_osc] = _rtune; -} - - -void WTSynthObject::updateFrequency() -{ - // calculate frequencies - for( int i = 0; i < NUM_OSCS; i++ ) - { - s_lfreq[i] = ( s_mult[i] / 8 ) * powf( 2, s_ltune[i] / 1200 ); - s_rfreq[i] = ( s_mult[i] / 8 ) * powf( 2, s_rtune[i] / 1200 ); - } -} - WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : Instrument( _instrument_track, &wtsynth_plugin_descriptor ), @@ -318,32 +280,28 @@ WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : connect( &b1_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes() ) ); connect( &b2_pan, SIGNAL( dataChanged() ), this, SLOT( updateVolumes() ) ); - connect( &a1_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult() ) ); - connect( &a2_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult() ) ); - connect( &b1_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult() ) ); - connect( &b2_mult, SIGNAL( dataChanged() ), this, SLOT( updateMult() ) ); + connect( &a1_mult, SIGNAL( dataChanged() ), this, SLOT( updateFreq() ) ); + connect( &a2_mult, SIGNAL( dataChanged() ), this, SLOT( updateFreq() ) ); + connect( &b1_mult, SIGNAL( dataChanged() ), this, SLOT( updateFreq() ) ); + connect( &b2_mult, SIGNAL( dataChanged() ), this, SLOT( updateFreq() ) ); - connect( &a1_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); - connect( &a2_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); - connect( &b1_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); - connect( &b2_ltune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); + connect( &a1_ltune, SIGNAL( dataChanged() ), this, SLOT( updateFreq() ) ); + connect( &a2_ltune, SIGNAL( dataChanged() ), this, SLOT( updateFreq() ) ); + connect( &b1_ltune, SIGNAL( dataChanged() ), this, SLOT( updateFreq() ) ); + connect( &b2_ltune, SIGNAL( dataChanged() ), this, SLOT( updateFreq() ) ); - connect( &a1_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); - connect( &a2_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); - connect( &b1_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); - connect( &b2_rtune, SIGNAL( dataChanged() ), this, SLOT( updateTunes() ) ); - - connect( &m_xtalk, SIGNAL( dataChanged() ), this, SLOT( updateXtalk() ) ); + connect( &a1_rtune, SIGNAL( dataChanged() ), this, SLOT( updateFreq() ) ); + connect( &a2_rtune, SIGNAL( dataChanged() ), this, SLOT( updateFreq() ) ); + connect( &b1_rtune, SIGNAL( dataChanged() ), this, SLOT( updateFreq() ) ); + connect( &b2_rtune, SIGNAL( dataChanged() ), this, SLOT( updateFreq() ) ); a1_graph.setWaveToSine(); a2_graph.setWaveToSine(); b1_graph.setWaveToSine(); b2_graph.setWaveToSine(); - updateMult(); - updateTunes(); updateVolumes(); - updateXtalk(); + updateFreq(); } @@ -363,7 +321,7 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, const_cast( b2_graph.samples() ), m_amod.value(), m_bmod.value(), engine::mixer()->processingSampleRate(), _n, - engine::mixer()->framesPerPeriod() ); + engine::mixer()->framesPerPeriod(), this ); _n->m_pluginData = w; } @@ -608,32 +566,34 @@ PluginView * WTSynthInstrument::instantiateView( QWidget * _parent ) void WTSynthInstrument::updateVolumes() { - WTSynthObject::changeVolume( A1_OSC, leftCh( a1_vol.value(), a1_pan.value() ), rightCh( a1_vol.value(), a1_pan.value() ) ); - WTSynthObject::changeVolume( A2_OSC, leftCh( a2_vol.value(), a2_pan.value() ), rightCh( a2_vol.value(), a2_pan.value() ) ); - WTSynthObject::changeVolume( B1_OSC, leftCh( b1_vol.value(), b1_pan.value() ), rightCh( b1_vol.value(), b1_pan.value() ) ); - WTSynthObject::changeVolume( B2_OSC, leftCh( b2_vol.value(), b2_pan.value() ), rightCh( b2_vol.value(), b2_pan.value() ) ); -} -void WTSynthInstrument::updateMult() -{ - WTSynthObject::changeMult( A1_OSC, a1_mult.value() ); - WTSynthObject::changeMult( A2_OSC, a2_mult.value() ); - WTSynthObject::changeMult( B1_OSC, b1_mult.value() ); - WTSynthObject::changeMult( B2_OSC, b2_mult.value() ); - WTSynthObject::updateFrequency(); -} -void WTSynthInstrument::updateTunes() -{ - WTSynthObject::changeTune( A1_OSC, a1_ltune.value(), a1_rtune.value() ); - WTSynthObject::changeTune( A2_OSC, a2_ltune.value(), a2_rtune.value() ); - WTSynthObject::changeTune( B1_OSC, b1_ltune.value(), b1_rtune.value() ); - WTSynthObject::changeTune( B2_OSC, b2_ltune.value(), b2_rtune.value() ); - WTSynthObject::updateFrequency(); -} -void WTSynthInstrument::updateXtalk() -{ - WTSynthObject::changeXtalk( m_xtalk.value() ); + m_lvol[A1_OSC] = leftCh( a1_vol.value(), a1_pan.value() ); + m_rvol[A1_OSC] = rightCh( a1_vol.value(), a1_pan.value() ); + + m_lvol[A2_OSC] = leftCh( a2_vol.value(), a2_pan.value() ); + m_rvol[A2_OSC] = rightCh( a2_vol.value(), a2_pan.value() ); + + m_lvol[B1_OSC] = leftCh( b1_vol.value(), b1_pan.value() ); + m_rvol[B1_OSC] = rightCh( b1_vol.value(), b1_pan.value() ); + + m_lvol[B2_OSC] = leftCh( b2_vol.value(), b2_pan.value() ); + m_rvol[B2_OSC] = rightCh( b2_vol.value(), b2_pan.value() ); } +void WTSynthInstrument::updateFreq() +{ + // calculate frequencies + m_lfreq[A1_OSC] = ( a1_mult.value() / 8 ) * powf( 2, a1_ltune.value() / 1200 ); + m_rfreq[A1_OSC] = ( a1_mult.value() / 8 ) * powf( 2, a1_rtune.value() / 1200 ); + + m_lfreq[A2_OSC] = ( a2_mult.value() / 8 ) * powf( 2, a2_ltune.value() / 1200 ); + m_rfreq[A2_OSC] = ( a2_mult.value() / 8 ) * powf( 2, a2_rtune.value() / 1200 ); + + m_lfreq[B1_OSC] = ( b1_mult.value() / 8 ) * powf( 2, b1_ltune.value() / 1200 ); + m_rfreq[B1_OSC] = ( b1_mult.value() / 8 ) * powf( 2, b1_rtune.value() / 1200 ); + + m_lfreq[B2_OSC] = ( b2_mult.value() / 8 ) * powf( 2, b2_ltune.value() / 1200 ); + m_rfreq[B2_OSC] = ( b2_mult.value() / 8 ) * powf( 2, b2_rtune.value() / 1200 ); +} WTSynthView::WTSynthView( Instrument * _instrument, diff --git a/plugins/wtsynth/WTSynth.h b/plugins/wtsynth/WTSynth.h index 145bed795..6513e9141 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/wtsynth/WTSynth.h @@ -71,25 +71,17 @@ extern const int B1_OSC = 2; extern const int B2_OSC = 3; extern const int NUM_OSCS = 4; +class WTSynthInstrument; class WTSynthObject { public: WTSynthObject( float * _A1wave, float * _A2wave, float * _B1wave, float * _B2wave, - int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph, fpp_t _frames ); + int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph, fpp_t _frames, + WTSynthInstrument * _w ); virtual ~WTSynthObject(); - static void changeVolume( int _osc, float _lvol, float _rvol ); - static void changeMult( int _osc, float _mul ); - static void changeTune( int _osc, float _ltune, float _rtune ); - static void updateFrequency(); - - static inline void changeXtalk( float _xtalk ) - { - s_xtalk = _xtalk; - }; - void renderOutput( fpp_t _frames ); inline sampleFrame * abuf() const @@ -106,15 +98,6 @@ public: } private: - static float s_lvol [NUM_OSCS]; - static float s_rvol [NUM_OSCS]; - static float s_mult [NUM_OSCS]; - static float s_ltune [NUM_OSCS]; - static float s_rtune [NUM_OSCS]; - static float s_xtalk; - static float s_lfreq [NUM_OSCS]; - static float s_rfreq [NUM_OSCS]; - // linear interpolation /* inline sample_t interpolate( sample_t s1, sample_t s2, float x ) { @@ -140,6 +123,8 @@ private: fpp_t m_fpp; + WTSynthInstrument * m_parent; + sampleFrame * m_abuf; sampleFrame * m_bbuf; @@ -176,22 +161,27 @@ public: } virtual PluginView * instantiateView( QWidget * _parent ); - + public slots: void updateVolumes(); - void updateMult(); - void updateTunes(); - void updateXtalk(); + void updateFreq(); + +protected: + float m_lvol [NUM_OSCS]; + float m_rvol [NUM_OSCS]; + + float m_lfreq [NUM_OSCS]; + float m_rfreq [NUM_OSCS]; private: inline float leftCh( float _vol, float _pan ) { - return ( _pan <= 0 ? 1.0 : 1.0 - ( _pan / 100.0 ) ) * _vol; + return ( _pan <= 0 ? 1.0 : 1.0 - ( _pan / 100.0 ) ) * _vol / 100.0; } inline float rightCh( float _vol, float _pan ) { - return ( _pan >= 0 ? 1.0 : 1.0 + ( _pan / 100.0 ) ) * _vol; + return ( _pan >= 0 ? 1.0 : 1.0 + ( _pan / 100.0 ) ) * _vol / 100.0; } FloatModel a1_vol; @@ -239,6 +229,7 @@ private: IntModel m_selectedGraph; + friend class WTSynthObject; friend class WTSynthView; }; From b118c23123b4734f2e9032a53fad3f44eee1c8cf Mon Sep 17 00:00:00 2001 From: Vesa Date: Tue, 25 Mar 2014 02:15:03 +0200 Subject: [PATCH 23/23] Rename & refactor to Watsyn, add logo, tweak some algorithms --- data/themes/default/style.css | 46 ++++------ plugins/CMakeLists.txt | 2 +- plugins/watsyn/CMakeLists.txt | 3 + .../WTSynth.cpp => watsyn/Watsyn.cpp} | 82 +++++++++--------- .../{wtsynth/WTSynth.h => watsyn/Watsyn.h} | 58 ++++++++----- plugins/{wtsynth => watsyn}/a1_active.png | Bin plugins/{wtsynth => watsyn}/a1_inactive.png | Bin plugins/{wtsynth => watsyn}/a2_active.png | Bin plugins/{wtsynth => watsyn}/a2_inactive.png | Bin plugins/{wtsynth => watsyn}/aam_active.png | Bin plugins/{wtsynth => watsyn}/aam_inactive.png | Bin plugins/{wtsynth => watsyn}/amix_active.png | Bin plugins/{wtsynth => watsyn}/amix_inactive.png | Bin plugins/{wtsynth => watsyn}/apm_active.png | Bin plugins/{wtsynth => watsyn}/apm_inactive.png | Bin plugins/{wtsynth => watsyn}/arm_active.png | Bin plugins/{wtsynth => watsyn}/arm_inactive.png | Bin plugins/{wtsynth => watsyn}/artwork.png | Bin plugins/{wtsynth => watsyn}/b1_active.png | Bin plugins/{wtsynth => watsyn}/b1_inactive.png | Bin plugins/{wtsynth => watsyn}/b2_active.png | Bin plugins/{wtsynth => watsyn}/b2_inactive.png | Bin plugins/{wtsynth => watsyn}/bam_active.png | Bin plugins/{wtsynth => watsyn}/bam_inactive.png | Bin plugins/{wtsynth => watsyn}/bmix_active.png | Bin plugins/{wtsynth => watsyn}/bmix_inactive.png | Bin plugins/{wtsynth => watsyn}/bpm_active.png | Bin plugins/{wtsynth => watsyn}/bpm_inactive.png | Bin plugins/{wtsynth => watsyn}/brm_active.png | Bin plugins/{wtsynth => watsyn}/brm_inactive.png | Bin plugins/{wtsynth => watsyn}/inv_active.png | Bin plugins/{wtsynth => watsyn}/inv_inactive.png | Bin plugins/{wtsynth => watsyn}/load_active.png | Bin plugins/{wtsynth => watsyn}/load_inactive.png | Bin plugins/watsyn/logo.png | Bin 0 -> 4425 bytes plugins/{wtsynth => watsyn}/norm_active.png | Bin plugins/{wtsynth => watsyn}/norm_inactive.png | Bin plugins/{wtsynth => watsyn}/phl_active.png | Bin plugins/{wtsynth => watsyn}/phl_inactive.png | Bin plugins/{wtsynth => watsyn}/phr_active.png | Bin plugins/{wtsynth => watsyn}/phr_inactive.png | Bin plugins/{wtsynth => watsyn}/saw_active.png | Bin plugins/{wtsynth => watsyn}/saw_inactive.png | Bin plugins/{wtsynth => watsyn}/sin_active.png | Bin plugins/{wtsynth => watsyn}/sin_inactive.png | Bin plugins/{wtsynth => watsyn}/smooth_active.png | Bin .../{wtsynth => watsyn}/smooth_inactive.png | Bin plugins/{wtsynth => watsyn}/sqr_active.png | Bin plugins/{wtsynth => watsyn}/sqr_inactive.png | Bin plugins/{wtsynth => watsyn}/tri_active.png | Bin plugins/{wtsynth => watsyn}/tri_inactive.png | Bin plugins/{wtsynth => watsyn}/wavegraph.png | Bin plugins/wtsynth/CMakeLists.txt | 3 - plugins/wtsynth/logo.png | Bin 174 -> 0 bytes 54 files changed, 98 insertions(+), 96 deletions(-) create mode 100644 plugins/watsyn/CMakeLists.txt rename plugins/{wtsynth/WTSynth.cpp => watsyn/Watsyn.cpp} (95%) rename plugins/{wtsynth/WTSynth.h => watsyn/Watsyn.h} (84%) rename plugins/{wtsynth => watsyn}/a1_active.png (100%) rename plugins/{wtsynth => watsyn}/a1_inactive.png (100%) rename plugins/{wtsynth => watsyn}/a2_active.png (100%) rename plugins/{wtsynth => watsyn}/a2_inactive.png (100%) rename plugins/{wtsynth => watsyn}/aam_active.png (100%) rename plugins/{wtsynth => watsyn}/aam_inactive.png (100%) rename plugins/{wtsynth => watsyn}/amix_active.png (100%) rename plugins/{wtsynth => watsyn}/amix_inactive.png (100%) rename plugins/{wtsynth => watsyn}/apm_active.png (100%) rename plugins/{wtsynth => watsyn}/apm_inactive.png (100%) rename plugins/{wtsynth => watsyn}/arm_active.png (100%) rename plugins/{wtsynth => watsyn}/arm_inactive.png (100%) rename plugins/{wtsynth => watsyn}/artwork.png (100%) rename plugins/{wtsynth => watsyn}/b1_active.png (100%) rename plugins/{wtsynth => watsyn}/b1_inactive.png (100%) rename plugins/{wtsynth => watsyn}/b2_active.png (100%) rename plugins/{wtsynth => watsyn}/b2_inactive.png (100%) rename plugins/{wtsynth => watsyn}/bam_active.png (100%) rename plugins/{wtsynth => watsyn}/bam_inactive.png (100%) rename plugins/{wtsynth => watsyn}/bmix_active.png (100%) rename plugins/{wtsynth => watsyn}/bmix_inactive.png (100%) rename plugins/{wtsynth => watsyn}/bpm_active.png (100%) rename plugins/{wtsynth => watsyn}/bpm_inactive.png (100%) rename plugins/{wtsynth => watsyn}/brm_active.png (100%) rename plugins/{wtsynth => watsyn}/brm_inactive.png (100%) rename plugins/{wtsynth => watsyn}/inv_active.png (100%) rename plugins/{wtsynth => watsyn}/inv_inactive.png (100%) rename plugins/{wtsynth => watsyn}/load_active.png (100%) rename plugins/{wtsynth => watsyn}/load_inactive.png (100%) create mode 100644 plugins/watsyn/logo.png rename plugins/{wtsynth => watsyn}/norm_active.png (100%) rename plugins/{wtsynth => watsyn}/norm_inactive.png (100%) rename plugins/{wtsynth => watsyn}/phl_active.png (100%) rename plugins/{wtsynth => watsyn}/phl_inactive.png (100%) rename plugins/{wtsynth => watsyn}/phr_active.png (100%) rename plugins/{wtsynth => watsyn}/phr_inactive.png (100%) rename plugins/{wtsynth => watsyn}/saw_active.png (100%) rename plugins/{wtsynth => watsyn}/saw_inactive.png (100%) rename plugins/{wtsynth => watsyn}/sin_active.png (100%) rename plugins/{wtsynth => watsyn}/sin_inactive.png (100%) rename plugins/{wtsynth => watsyn}/smooth_active.png (100%) rename plugins/{wtsynth => watsyn}/smooth_inactive.png (100%) rename plugins/{wtsynth => watsyn}/sqr_active.png (100%) rename plugins/{wtsynth => watsyn}/sqr_inactive.png (100%) rename plugins/{wtsynth => watsyn}/tri_active.png (100%) rename plugins/{wtsynth => watsyn}/tri_inactive.png (100%) rename plugins/{wtsynth => watsyn}/wavegraph.png (100%) delete mode 100644 plugins/wtsynth/CMakeLists.txt delete mode 100644 plugins/wtsynth/logo.png diff --git a/data/themes/default/style.css b/data/themes/default/style.css index 7d41a8f07..b68ef0658 100644 --- a/data/themes/default/style.css +++ b/data/themes/default/style.css @@ -238,7 +238,7 @@ TrackContainerView QFrame{ /* autoscroll, loop, stop behaviour toggle buttons */ -nStateButton { +nStateButton { max-height: 26px; max-width: 26px; min-height: 26px; @@ -366,7 +366,7 @@ toolButton#playButton { toolButton#stopButton { border-top-right-radius: 5px 15px; - border-bottom-right-radius: 5px 15px; + border-bottom-right-radius: 5px 15px; } /* record and record-accompany can be styled with #recordButton and #recordAccompanyButton respectively */ @@ -608,54 +608,40 @@ sidInstrumentView knob { qproperty-lineWidth: 2; } -WTSynthView knob#aKnob { +WatsynView knob { + qproperty-innerRadius: 1; + qproperty-outerRadius: 7; + qproperty-centerPointX: 9.5; + qproperty-centerPointY: 9.5; + qproperty-lineWidth: 2; +} + +WatsynView knob#aKnob { color: #43b2ff; qproperty-outerColor: #43b2ff; - qproperty-innerRadius: 1; - qproperty-outerRadius: 7; - qproperty-centerPointX: 9.5; - qproperty-centerPointY: 9.5; - qproperty-lineWidth: 2; } -WTSynthView knob#bKnob { +WatsynView knob#bKnob { color: #fc5431; qproperty-outerColor: #fc5431; - qproperty-innerRadius: 1; - qproperty-outerRadius: 7; - qproperty-centerPointX: 9.5; - qproperty-centerPointY: 9.5; - qproperty-lineWidth: 2; } -WTSynthView knob#mixKnob { +WatsynView knob#mixKnob { color: #43ff82; qproperty-outerColor: #43ff82; - qproperty-innerRadius: 1; qproperty-outerRadius: 13; qproperty-centerPointX: 15.5; - qproperty-centerPointY: 15.5; - qproperty-lineWidth: 2; + qproperty-centerPointY: 15.5; } -WTSynthView knob#mixenvKnob { +WatsynView knob#mixenvKnob { color: #43ff82; qproperty-outerColor: #43ff82; - qproperty-innerRadius: 1; - qproperty-outerRadius: 7; - qproperty-centerPointX: 9.5; - qproperty-centerPointY: 9.5; - qproperty-lineWidth: 2; } -WTSynthView knob#xtalkKnob { +WatsynView knob#xtalkKnob { color: #fb50fb; qproperty-outerColor: #fb50fb; - qproperty-innerRadius: 1; - qproperty-outerRadius: 7; - qproperty-centerPointX: 9.5; - qproperty-centerPointY: 9.5; - qproperty-lineWidth: 2; } /* palette information - each colour definition must be on a single line, and the line must begin with "palette:", with no leading whitespace diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index aba116025..b1247ce18 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -28,7 +28,7 @@ ADD_SUBDIRECTORY(triple_oscillator) ADD_SUBDIRECTORY(vestige) ADD_SUBDIRECTORY(vst_base) ADD_SUBDIRECTORY(VstEffect) +ADD_SUBDIRECTORY(watsyn) ADD_SUBDIRECTORY(waveshaper) -ADD_SUBDIRECTORY(wtsynth) ADD_SUBDIRECTORY(vibed) ADD_SUBDIRECTORY(zynaddsubfx) diff --git a/plugins/watsyn/CMakeLists.txt b/plugins/watsyn/CMakeLists.txt new file mode 100644 index 000000000..c5344f7e7 --- /dev/null +++ b/plugins/watsyn/CMakeLists.txt @@ -0,0 +1,3 @@ +INCLUDE(BuildPlugin) + +BUILD_PLUGIN(watsyn Watsyn.cpp Watsyn.h MOCFILES Watsyn.h EMBEDDED_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.png) diff --git a/plugins/wtsynth/WTSynth.cpp b/plugins/watsyn/Watsyn.cpp similarity index 95% rename from plugins/wtsynth/WTSynth.cpp rename to plugins/watsyn/Watsyn.cpp index 8ba27e38b..b3b720d4d 100644 --- a/plugins/wtsynth/WTSynth.cpp +++ b/plugins/watsyn/Watsyn.cpp @@ -1,5 +1,5 @@ /* - * WTSynth.cpp - work in process, name pending + * Watsyn.cpp - a 4-oscillator modulating wavetable synth * * Copyright (c) 2014 Vesa Kivimäki * @@ -24,7 +24,7 @@ #include -#include "WTSynth.h" +#include "Watsyn.h" #include "engine.h" #include "InstrumentTrack.h" #include "templates.h" @@ -37,10 +37,10 @@ extern "C" { -Plugin::Descriptor PLUGIN_EXPORT wtsynth_plugin_descriptor = +Plugin::Descriptor PLUGIN_EXPORT watsyn_plugin_descriptor = { STRINGIFY( PLUGIN_NAME ), - "WTSynth", + "Watsyn", QT_TRANSLATE_NOOP( "pluginBrowser", "4-oscillator modulatable wavetable synth" ), "Vesa Kivimäki ", @@ -56,10 +56,10 @@ Plugin::Descriptor PLUGIN_EXPORT wtsynth_plugin_descriptor = -WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, +WatsynObject::WatsynObject( float * _A1wave, float * _A2wave, float * _B1wave, float * _B2wave, int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph, fpp_t _frames, - WTSynthInstrument * _w ) : + WatsynInstrument * _w ) : m_amod( _amod ), m_bmod( _bmod ), m_samplerate( _samplerate ), @@ -89,14 +89,14 @@ WTSynthObject::WTSynthObject( float * _A1wave, float * _A2wave, -WTSynthObject::~WTSynthObject() +WatsynObject::~WatsynObject() { delete[] m_abuf; delete[] m_bbuf; } -void WTSynthObject::renderOutput( fpp_t _frames ) +void WatsynObject::renderOutput( fpp_t _frames ) { if( m_abuf == NULL ) m_abuf = new sampleFrame[m_fpp]; @@ -223,8 +223,8 @@ void WTSynthObject::renderOutput( fpp_t _frames ) -WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : - Instrument( _instrument_track, &wtsynth_plugin_descriptor ), +WatsynInstrument::WatsynInstrument( InstrumentTrack * _instrument_track ) : + Instrument( _instrument_track, &watsyn_plugin_descriptor ), a1_vol( 100.0f, 0.0f, 200.0f, 0.1f, this, tr( "Volume A1" ) ), a2_vol( 100.0f, 0.0f, 200.0f, 0.1f, this, tr( "Volume A2" ) ), @@ -305,17 +305,17 @@ WTSynthInstrument::WTSynthInstrument( InstrumentTrack * _instrument_track ) : } -WTSynthInstrument::~WTSynthInstrument() +WatsynInstrument::~WatsynInstrument() { } -void WTSynthInstrument::playNote( NotePlayHandle * _n, +void WatsynInstrument::playNote( NotePlayHandle * _n, sampleFrame * _working_buffer ) { if ( _n->totalFramesPlayed() == 0 || _n->m_pluginData == NULL ) { - WTSynthObject * w = new WTSynthObject( const_cast( a1_graph.samples() ), + WatsynObject * w = new WatsynObject( const_cast( a1_graph.samples() ), const_cast( a2_graph.samples() ), const_cast( b1_graph.samples() ), const_cast( b2_graph.samples() ), @@ -328,7 +328,7 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, const fpp_t frames = _n->framesLeftForCurrentPeriod(); - WTSynthObject * w = static_cast( _n->m_pluginData ); + WatsynObject * w = static_cast( _n->m_pluginData ); sampleFrame * abuf = w->abuf(); sampleFrame * bbuf = w->bbuf(); @@ -435,13 +435,13 @@ void WTSynthInstrument::playNote( NotePlayHandle * _n, } -void WTSynthInstrument::deleteNotePluginData( NotePlayHandle * _n ) +void WatsynInstrument::deleteNotePluginData( NotePlayHandle * _n ) { - delete static_cast( _n->m_pluginData ); + delete static_cast( _n->m_pluginData ); } -void WTSynthInstrument::saveSettings( QDomDocument & _doc, +void WatsynInstrument::saveSettings( QDomDocument & _doc, QDomElement & _this ) { a1_vol.saveSettings( _doc, _this, "a1_vol" ); @@ -495,7 +495,7 @@ void WTSynthInstrument::saveSettings( QDomDocument & _doc, } -void WTSynthInstrument::loadSettings( const QDomElement & _this ) +void WatsynInstrument::loadSettings( const QDomElement & _this ) { a1_vol.loadSettings( _this, "a1_vol" ); a2_vol.loadSettings( _this, "a2_vol" ); @@ -552,19 +552,19 @@ void WTSynthInstrument::loadSettings( const QDomElement & _this ) } -QString WTSynthInstrument::nodeName() const +QString WatsynInstrument::nodeName() const { - return( wtsynth_plugin_descriptor.name ); + return( watsyn_plugin_descriptor.name ); } -PluginView * WTSynthInstrument::instantiateView( QWidget * _parent ) +PluginView * WatsynInstrument::instantiateView( QWidget * _parent ) { - return( new WTSynthView( this, _parent ) ); + return( new WatsynView( this, _parent ) ); } -void WTSynthInstrument::updateVolumes() +void WatsynInstrument::updateVolumes() { m_lvol[A1_OSC] = leftCh( a1_vol.value(), a1_pan.value() ); m_rvol[A1_OSC] = rightCh( a1_vol.value(), a1_pan.value() ); @@ -579,7 +579,7 @@ void WTSynthInstrument::updateVolumes() m_rvol[B2_OSC] = rightCh( b2_vol.value(), b2_pan.value() ); } -void WTSynthInstrument::updateFreq() +void WatsynInstrument::updateFreq() { // calculate frequencies m_lfreq[A1_OSC] = ( a1_mult.value() / 8 ) * powf( 2, a1_ltune.value() / 1200 ); @@ -596,7 +596,7 @@ void WTSynthInstrument::updateFreq() } -WTSynthView::WTSynthView( Instrument * _instrument, +WatsynView::WatsynView( Instrument * _instrument, QWidget * _parent ) : InstrumentView( _instrument, _parent ) { @@ -871,13 +871,13 @@ WTSynthView::WTSynthView( Instrument * _instrument, } -WTSynthView::~WTSynthView() +WatsynView::~WatsynView() { } -void WTSynthView::updateLayout() +void WatsynView::updateLayout() { switch( m_selectedGraphGroup->model()->value() ) { @@ -910,7 +910,7 @@ void WTSynthView::updateLayout() -void WTSynthView::sinWaveClicked() +void WatsynView::sinWaveClicked() { switch( m_selectedGraphGroup->model()->value() ) { @@ -934,7 +934,7 @@ void WTSynthView::sinWaveClicked() } -void WTSynthView::triWaveClicked() +void WatsynView::triWaveClicked() { switch( m_selectedGraphGroup->model()->value() ) { @@ -958,7 +958,7 @@ void WTSynthView::triWaveClicked() } -void WTSynthView::sawWaveClicked() +void WatsynView::sawWaveClicked() { switch( m_selectedGraphGroup->model()->value() ) { @@ -982,7 +982,7 @@ void WTSynthView::sawWaveClicked() } -void WTSynthView::sqrWaveClicked() +void WatsynView::sqrWaveClicked() { switch( m_selectedGraphGroup->model()->value() ) { @@ -1006,7 +1006,7 @@ void WTSynthView::sqrWaveClicked() } -void WTSynthView::normalizeClicked() +void WatsynView::normalizeClicked() { switch( m_selectedGraphGroup->model()->value() ) { @@ -1030,7 +1030,7 @@ void WTSynthView::normalizeClicked() } -void WTSynthView::invertClicked() +void WatsynView::invertClicked() { switch( m_selectedGraphGroup->model()->value() ) { @@ -1054,7 +1054,7 @@ void WTSynthView::invertClicked() } -void WTSynthView::smoothClicked() +void WatsynView::smoothClicked() { switch( m_selectedGraphGroup->model()->value() ) { @@ -1078,7 +1078,7 @@ void WTSynthView::smoothClicked() } -void WTSynthView::phaseLeftClicked() +void WatsynView::phaseLeftClicked() { switch( m_selectedGraphGroup->model()->value() ) { @@ -1102,7 +1102,7 @@ void WTSynthView::phaseLeftClicked() } -void WTSynthView::phaseRightClicked() +void WatsynView::phaseRightClicked() { switch( m_selectedGraphGroup->model()->value() ) { @@ -1126,7 +1126,7 @@ void WTSynthView::phaseRightClicked() } -void WTSynthView::loadClicked() +void WatsynView::loadClicked() { QString fileName; switch( m_selectedGraphGroup->model()->value() ) @@ -1151,9 +1151,9 @@ void WTSynthView::loadClicked() } -void WTSynthView::modelChanged() +void WatsynView::modelChanged() { - WTSynthInstrument * w = castModel(); + WatsynInstrument * w = castModel(); a1_volKnob -> setModel( &w -> a1_vol ); a2_volKnob -> setModel( &w -> a2_vol ); @@ -1210,11 +1210,11 @@ extern "C" // necessary for getting instance out of shared lib Plugin * PLUGIN_EXPORT lmms_plugin_main( Model *, void * _data ) { - return( new WTSynthInstrument( static_cast( _data ) ) ); + return( new WatsynInstrument( static_cast( _data ) ) ); } } -#include "moc_WTSynth.cxx" +#include "moc_Watsyn.cxx" diff --git a/plugins/wtsynth/WTSynth.h b/plugins/watsyn/Watsyn.h similarity index 84% rename from plugins/wtsynth/WTSynth.h rename to plugins/watsyn/Watsyn.h index 6513e9141..a6860cbed 100644 --- a/plugins/wtsynth/WTSynth.h +++ b/plugins/watsyn/Watsyn.h @@ -1,5 +1,5 @@ /* - * WTSynth.h - work in process, name pending + * Watsyn.h - a 4-oscillator modulating wavetable synth * * Copyright (c) 2014 Vesa Kivimäki * @@ -23,8 +23,8 @@ */ -#ifndef WTSYNTH_H -#define WTSYNTH_H +#ifndef WATSYN_H +#define WATSYN_H #include "Instrument.h" #include "InstrumentView.h" @@ -71,16 +71,16 @@ extern const int B1_OSC = 2; extern const int B2_OSC = 3; extern const int NUM_OSCS = 4; -class WTSynthInstrument; +class WatsynInstrument; -class WTSynthObject +class WatsynObject { public: - WTSynthObject( float * _A1wave, float * _A2wave, + WatsynObject( float * _A1wave, float * _A2wave, float * _B1wave, float * _B2wave, int _amod, int _bmod, const sample_rate_t _samplerate, NotePlayHandle * _nph, fpp_t _frames, - WTSynthInstrument * _w ); - virtual ~WTSynthObject(); + WatsynInstrument * _w ); + virtual ~WatsynObject(); void renderOutput( fpp_t _frames ); @@ -103,17 +103,33 @@ private: { return s1 + ( s2 - s1 ) * x; }*/ + // quick and dirty approximation of cubic interpolation inline sample_t interpolate( sample_t s1, sample_t s2, float x ) { const float x2 = powf( x, 2 ); const float x3 = powf( x, 3 ); - const float m = s2 - s1; + //const float m = s2 - s1; + + return ( ( x3 * 2.0 - x2 * 3.0 + 1.0 ) * s1 ) + + ( ( x3 * -2.0 + x2 * 3.0 ) * s2 );// + + //( ( x + x3 * 2.0 - x2 * 3.0 ) * m ); + } + + // more accurate cubic interpolation... + // consumes more cpu than ^ but doesn't bring a marked increase in sound quality IMO +/* inline sample_t interpolate( sample_t s0, sample_t s1, sample_t s2, sample_t s3, float x ) + { + const float x2 = powf( x, 2 ); + const float x3 = powf( x, 3 ); + const float m1 = ( s2 - s0 ) / 2; + const float m2 = ( s3 - s1 ) / 2; return ( ( x3 * 2.0 - x2 * 3.0 + 1.0 ) * s1 ) + ( ( x3 * -2.0 + x2 * 3.0 ) * s2 ) + - ( ( x + x3 * 2.0 - x2 * 3.0 ) * m ); - } + ( ( x3 - x2 * 2 + x ) * m1 ) + + ( ( x3 - x2 ) * m2 ); + }*/ int m_amod; int m_bmod; @@ -123,7 +139,7 @@ private: fpp_t m_fpp; - WTSynthInstrument * m_parent; + WatsynInstrument * m_parent; sampleFrame * m_abuf; sampleFrame * m_bbuf; @@ -137,12 +153,12 @@ private: float m_B2wave [WAVELEN]; }; -class WTSynthInstrument : public Instrument +class WatsynInstrument : public Instrument { Q_OBJECT public: - WTSynthInstrument( InstrumentTrack * _instrument_track ); - virtual ~WTSynthInstrument(); + WatsynInstrument( InstrumentTrack * _instrument_track ); + virtual ~WatsynInstrument(); virtual void playNote( NotePlayHandle * _n, sampleFrame * _working_buffer ); @@ -161,7 +177,7 @@ public: } virtual PluginView * instantiateView( QWidget * _parent ); - + public slots: void updateVolumes(); void updateFreq(); @@ -229,18 +245,18 @@ private: IntModel m_selectedGraph; - friend class WTSynthObject; - friend class WTSynthView; + friend class WatsynObject; + friend class WatsynView; }; -class WTSynthView : public InstrumentView +class WatsynView : public InstrumentView { Q_OBJECT public: - WTSynthView( Instrument * _instrument, + WatsynView( Instrument * _instrument, QWidget * _parent ); - virtual ~WTSynthView(); + virtual ~WatsynView(); protected slots: void updateLayout(); diff --git a/plugins/wtsynth/a1_active.png b/plugins/watsyn/a1_active.png similarity index 100% rename from plugins/wtsynth/a1_active.png rename to plugins/watsyn/a1_active.png diff --git a/plugins/wtsynth/a1_inactive.png b/plugins/watsyn/a1_inactive.png similarity index 100% rename from plugins/wtsynth/a1_inactive.png rename to plugins/watsyn/a1_inactive.png diff --git a/plugins/wtsynth/a2_active.png b/plugins/watsyn/a2_active.png similarity index 100% rename from plugins/wtsynth/a2_active.png rename to plugins/watsyn/a2_active.png diff --git a/plugins/wtsynth/a2_inactive.png b/plugins/watsyn/a2_inactive.png similarity index 100% rename from plugins/wtsynth/a2_inactive.png rename to plugins/watsyn/a2_inactive.png diff --git a/plugins/wtsynth/aam_active.png b/plugins/watsyn/aam_active.png similarity index 100% rename from plugins/wtsynth/aam_active.png rename to plugins/watsyn/aam_active.png diff --git a/plugins/wtsynth/aam_inactive.png b/plugins/watsyn/aam_inactive.png similarity index 100% rename from plugins/wtsynth/aam_inactive.png rename to plugins/watsyn/aam_inactive.png diff --git a/plugins/wtsynth/amix_active.png b/plugins/watsyn/amix_active.png similarity index 100% rename from plugins/wtsynth/amix_active.png rename to plugins/watsyn/amix_active.png diff --git a/plugins/wtsynth/amix_inactive.png b/plugins/watsyn/amix_inactive.png similarity index 100% rename from plugins/wtsynth/amix_inactive.png rename to plugins/watsyn/amix_inactive.png diff --git a/plugins/wtsynth/apm_active.png b/plugins/watsyn/apm_active.png similarity index 100% rename from plugins/wtsynth/apm_active.png rename to plugins/watsyn/apm_active.png diff --git a/plugins/wtsynth/apm_inactive.png b/plugins/watsyn/apm_inactive.png similarity index 100% rename from plugins/wtsynth/apm_inactive.png rename to plugins/watsyn/apm_inactive.png diff --git a/plugins/wtsynth/arm_active.png b/plugins/watsyn/arm_active.png similarity index 100% rename from plugins/wtsynth/arm_active.png rename to plugins/watsyn/arm_active.png diff --git a/plugins/wtsynth/arm_inactive.png b/plugins/watsyn/arm_inactive.png similarity index 100% rename from plugins/wtsynth/arm_inactive.png rename to plugins/watsyn/arm_inactive.png diff --git a/plugins/wtsynth/artwork.png b/plugins/watsyn/artwork.png similarity index 100% rename from plugins/wtsynth/artwork.png rename to plugins/watsyn/artwork.png diff --git a/plugins/wtsynth/b1_active.png b/plugins/watsyn/b1_active.png similarity index 100% rename from plugins/wtsynth/b1_active.png rename to plugins/watsyn/b1_active.png diff --git a/plugins/wtsynth/b1_inactive.png b/plugins/watsyn/b1_inactive.png similarity index 100% rename from plugins/wtsynth/b1_inactive.png rename to plugins/watsyn/b1_inactive.png diff --git a/plugins/wtsynth/b2_active.png b/plugins/watsyn/b2_active.png similarity index 100% rename from plugins/wtsynth/b2_active.png rename to plugins/watsyn/b2_active.png diff --git a/plugins/wtsynth/b2_inactive.png b/plugins/watsyn/b2_inactive.png similarity index 100% rename from plugins/wtsynth/b2_inactive.png rename to plugins/watsyn/b2_inactive.png diff --git a/plugins/wtsynth/bam_active.png b/plugins/watsyn/bam_active.png similarity index 100% rename from plugins/wtsynth/bam_active.png rename to plugins/watsyn/bam_active.png diff --git a/plugins/wtsynth/bam_inactive.png b/plugins/watsyn/bam_inactive.png similarity index 100% rename from plugins/wtsynth/bam_inactive.png rename to plugins/watsyn/bam_inactive.png diff --git a/plugins/wtsynth/bmix_active.png b/plugins/watsyn/bmix_active.png similarity index 100% rename from plugins/wtsynth/bmix_active.png rename to plugins/watsyn/bmix_active.png diff --git a/plugins/wtsynth/bmix_inactive.png b/plugins/watsyn/bmix_inactive.png similarity index 100% rename from plugins/wtsynth/bmix_inactive.png rename to plugins/watsyn/bmix_inactive.png diff --git a/plugins/wtsynth/bpm_active.png b/plugins/watsyn/bpm_active.png similarity index 100% rename from plugins/wtsynth/bpm_active.png rename to plugins/watsyn/bpm_active.png diff --git a/plugins/wtsynth/bpm_inactive.png b/plugins/watsyn/bpm_inactive.png similarity index 100% rename from plugins/wtsynth/bpm_inactive.png rename to plugins/watsyn/bpm_inactive.png diff --git a/plugins/wtsynth/brm_active.png b/plugins/watsyn/brm_active.png similarity index 100% rename from plugins/wtsynth/brm_active.png rename to plugins/watsyn/brm_active.png diff --git a/plugins/wtsynth/brm_inactive.png b/plugins/watsyn/brm_inactive.png similarity index 100% rename from plugins/wtsynth/brm_inactive.png rename to plugins/watsyn/brm_inactive.png diff --git a/plugins/wtsynth/inv_active.png b/plugins/watsyn/inv_active.png similarity index 100% rename from plugins/wtsynth/inv_active.png rename to plugins/watsyn/inv_active.png diff --git a/plugins/wtsynth/inv_inactive.png b/plugins/watsyn/inv_inactive.png similarity index 100% rename from plugins/wtsynth/inv_inactive.png rename to plugins/watsyn/inv_inactive.png diff --git a/plugins/wtsynth/load_active.png b/plugins/watsyn/load_active.png similarity index 100% rename from plugins/wtsynth/load_active.png rename to plugins/watsyn/load_active.png diff --git a/plugins/wtsynth/load_inactive.png b/plugins/watsyn/load_inactive.png similarity index 100% rename from plugins/wtsynth/load_inactive.png rename to plugins/watsyn/load_inactive.png diff --git a/plugins/watsyn/logo.png b/plugins/watsyn/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3e77966ff7431d50d581506636e01d9f0af828ea GIT binary patch literal 4425 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 P00000NkvXXu0mjf6lriw literal 0 HcmV?d00001 diff --git a/plugins/wtsynth/norm_active.png b/plugins/watsyn/norm_active.png similarity index 100% rename from plugins/wtsynth/norm_active.png rename to plugins/watsyn/norm_active.png diff --git a/plugins/wtsynth/norm_inactive.png b/plugins/watsyn/norm_inactive.png similarity index 100% rename from plugins/wtsynth/norm_inactive.png rename to plugins/watsyn/norm_inactive.png diff --git a/plugins/wtsynth/phl_active.png b/plugins/watsyn/phl_active.png similarity index 100% rename from plugins/wtsynth/phl_active.png rename to plugins/watsyn/phl_active.png diff --git a/plugins/wtsynth/phl_inactive.png b/plugins/watsyn/phl_inactive.png similarity index 100% rename from plugins/wtsynth/phl_inactive.png rename to plugins/watsyn/phl_inactive.png diff --git a/plugins/wtsynth/phr_active.png b/plugins/watsyn/phr_active.png similarity index 100% rename from plugins/wtsynth/phr_active.png rename to plugins/watsyn/phr_active.png diff --git a/plugins/wtsynth/phr_inactive.png b/plugins/watsyn/phr_inactive.png similarity index 100% rename from plugins/wtsynth/phr_inactive.png rename to plugins/watsyn/phr_inactive.png diff --git a/plugins/wtsynth/saw_active.png b/plugins/watsyn/saw_active.png similarity index 100% rename from plugins/wtsynth/saw_active.png rename to plugins/watsyn/saw_active.png diff --git a/plugins/wtsynth/saw_inactive.png b/plugins/watsyn/saw_inactive.png similarity index 100% rename from plugins/wtsynth/saw_inactive.png rename to plugins/watsyn/saw_inactive.png diff --git a/plugins/wtsynth/sin_active.png b/plugins/watsyn/sin_active.png similarity index 100% rename from plugins/wtsynth/sin_active.png rename to plugins/watsyn/sin_active.png diff --git a/plugins/wtsynth/sin_inactive.png b/plugins/watsyn/sin_inactive.png similarity index 100% rename from plugins/wtsynth/sin_inactive.png rename to plugins/watsyn/sin_inactive.png diff --git a/plugins/wtsynth/smooth_active.png b/plugins/watsyn/smooth_active.png similarity index 100% rename from plugins/wtsynth/smooth_active.png rename to plugins/watsyn/smooth_active.png diff --git a/plugins/wtsynth/smooth_inactive.png b/plugins/watsyn/smooth_inactive.png similarity index 100% rename from plugins/wtsynth/smooth_inactive.png rename to plugins/watsyn/smooth_inactive.png diff --git a/plugins/wtsynth/sqr_active.png b/plugins/watsyn/sqr_active.png similarity index 100% rename from plugins/wtsynth/sqr_active.png rename to plugins/watsyn/sqr_active.png diff --git a/plugins/wtsynth/sqr_inactive.png b/plugins/watsyn/sqr_inactive.png similarity index 100% rename from plugins/wtsynth/sqr_inactive.png rename to plugins/watsyn/sqr_inactive.png diff --git a/plugins/wtsynth/tri_active.png b/plugins/watsyn/tri_active.png similarity index 100% rename from plugins/wtsynth/tri_active.png rename to plugins/watsyn/tri_active.png diff --git a/plugins/wtsynth/tri_inactive.png b/plugins/watsyn/tri_inactive.png similarity index 100% rename from plugins/wtsynth/tri_inactive.png rename to plugins/watsyn/tri_inactive.png diff --git a/plugins/wtsynth/wavegraph.png b/plugins/watsyn/wavegraph.png similarity index 100% rename from plugins/wtsynth/wavegraph.png rename to plugins/watsyn/wavegraph.png diff --git a/plugins/wtsynth/CMakeLists.txt b/plugins/wtsynth/CMakeLists.txt deleted file mode 100644 index eb50e0544..000000000 --- a/plugins/wtsynth/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -INCLUDE(BuildPlugin) - -BUILD_PLUGIN( wtsynth WTSynth.cpp WTSynth.h MOCFILES WTSynth.h EMBEDDED_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.png) diff --git a/plugins/wtsynth/logo.png b/plugins/wtsynth/logo.png deleted file mode 100644 index 4378e3ab4d2db625a31a9ebd03f040c28b72e924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sfJ!TP66_agUlKDU($r9Iy66gHf+|;}h2Ir#G#FEq$h4Rdj3