Merge branch 'master' into groove
This commit is contained in:
@@ -38,9 +38,9 @@
|
||||
#include "AudioDevice.h"
|
||||
|
||||
|
||||
class AudioAlsa : public AudioDevice, public QThread
|
||||
class AudioAlsa : public QThread, public AudioDevice
|
||||
{
|
||||
// Public classes and enums
|
||||
Q_OBJECT
|
||||
public:
|
||||
/**
|
||||
* @brief Contains the relevant information about available ALSA devices
|
||||
|
||||
@@ -31,8 +31,9 @@
|
||||
#include "Mixer.h"
|
||||
|
||||
|
||||
class AudioDummy : public AudioDevice, public QThread
|
||||
class AudioDummy : public QThread, public AudioDevice
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
AudioDummy( bool & _success_ful, Mixer* mixer ) :
|
||||
AudioDevice( DEFAULT_CHANNELS, mixer )
|
||||
|
||||
@@ -39,8 +39,9 @@ class LcdSpinBox;
|
||||
class QLineEdit;
|
||||
|
||||
|
||||
class AudioOss : public AudioDevice, public QThread
|
||||
class AudioOss : public QThread, public AudioDevice
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
AudioOss( bool & _success_ful, Mixer* mixer );
|
||||
virtual ~AudioOss();
|
||||
|
||||
@@ -41,8 +41,9 @@ class LcdSpinBox;
|
||||
class QLineEdit;
|
||||
|
||||
|
||||
class AudioPulseAudio : public AudioDevice, public QThread
|
||||
class AudioPulseAudio : public QThread, public AudioDevice
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
AudioPulseAudio( bool & _success_ful, Mixer* mixer );
|
||||
virtual ~AudioPulseAudio();
|
||||
|
||||
@@ -40,8 +40,9 @@ class LcdSpinBox;
|
||||
class QLineEdit;
|
||||
|
||||
|
||||
class AudioSndio : public AudioDevice, public QThread
|
||||
class AudioSndio : public QThread, public AudioDevice
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
AudioSndio( bool & _success_ful, Mixer * _mixer );
|
||||
virtual ~AudioSndio();
|
||||
|
||||
@@ -39,13 +39,6 @@ class EXPORT CaptionMenu : public QMenu
|
||||
public:
|
||||
CaptionMenu( const QString & _title, QWidget * _parent = 0 );
|
||||
virtual ~CaptionMenu();
|
||||
|
||||
///
|
||||
/// \brief Adds a "Help" action displaying the Menu's parent's WhatsThis
|
||||
/// text when selected.
|
||||
///
|
||||
void addHelpAction();
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
@@ -60,7 +60,6 @@ public:
|
||||
public slots:
|
||||
void editControls();
|
||||
void deleteController();
|
||||
void displayHelp();
|
||||
void closeControls();
|
||||
void renameController();
|
||||
|
||||
|
||||
@@ -63,7 +63,6 @@ public slots:
|
||||
void moveUp();
|
||||
void moveDown();
|
||||
void deletePlugin();
|
||||
void displayHelp();
|
||||
void closeEffects();
|
||||
|
||||
|
||||
|
||||
@@ -107,7 +107,6 @@ private slots:
|
||||
void removeUnusedChannels();
|
||||
void moveChannelLeft();
|
||||
void moveChannelRight();
|
||||
void displayHelp();
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -139,7 +139,6 @@ protected:
|
||||
|
||||
private slots:
|
||||
virtual void enterValue();
|
||||
void displayHelp();
|
||||
void friendlyUpdate();
|
||||
void toggleScale();
|
||||
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
#include <QtCore/QTimer>
|
||||
#include <QtCore/QList>
|
||||
#include <QMainWindow>
|
||||
#include <QThread>
|
||||
|
||||
#include "ConfigManager.h"
|
||||
#include "SubWindow.h"
|
||||
@@ -148,7 +147,6 @@ public slots:
|
||||
void resetWindowTitle();
|
||||
|
||||
void emptySlot();
|
||||
void enterWhatsThisMode();
|
||||
void createNewProject();
|
||||
void createNewProjectFromTemplate( QAction * _idx );
|
||||
void openProject();
|
||||
|
||||
@@ -37,11 +37,11 @@
|
||||
|
||||
|
||||
struct pollfd;
|
||||
class QLineEdit;
|
||||
|
||||
|
||||
class MidiAlsaRaw : public MidiClientRaw , public QThread
|
||||
class MidiAlsaRaw : public QThread, public MidiClientRaw
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MidiAlsaRaw();
|
||||
virtual ~MidiAlsaRaw();
|
||||
|
||||
@@ -39,7 +39,6 @@
|
||||
|
||||
|
||||
struct pollfd;
|
||||
class QLineEdit;
|
||||
|
||||
|
||||
class MidiAlsaSeq : public QThread, public MidiClient
|
||||
|
||||
@@ -35,11 +35,10 @@
|
||||
#include "MidiClient.h"
|
||||
|
||||
|
||||
class QLineEdit;
|
||||
|
||||
|
||||
class MidiOss : public MidiClientRaw, public QThread
|
||||
class MidiOss : public QThread, public MidiClientRaw
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MidiOss();
|
||||
virtual ~MidiOss();
|
||||
|
||||
@@ -124,6 +124,8 @@ public:
|
||||
return m_writablePorts;
|
||||
}
|
||||
|
||||
void invalidateCilent();
|
||||
|
||||
MidiPortMenu* m_readablePortsMenu;
|
||||
MidiPortMenu* m_writablePortsMenu;
|
||||
|
||||
|
||||
@@ -37,11 +37,10 @@
|
||||
|
||||
#include "MidiClient.h"
|
||||
|
||||
class QLineEdit;
|
||||
|
||||
|
||||
class MidiSndio : public MidiClientRaw, public QThread
|
||||
class MidiSndio : public QThread, public MidiClientRaw
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MidiSndio( void );
|
||||
virtual ~MidiSndio();
|
||||
|
||||
@@ -35,6 +35,7 @@ class ThreadableJob;
|
||||
|
||||
class MixerWorkerThread : public QThread
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
// internal representation of the job queue - all functions are thread-safe
|
||||
class JobQueue
|
||||
@@ -46,10 +47,10 @@ public:
|
||||
Dynamic // jobs can be added while processing queue
|
||||
} ;
|
||||
|
||||
#define JOB_QUEUE_SIZE 1024
|
||||
#define JOB_QUEUE_SIZE 8192
|
||||
JobQueue() :
|
||||
m_items(),
|
||||
m_queueSize( 0 ),
|
||||
m_writeIndex( 0 ),
|
||||
m_itemsDone( 0 ),
|
||||
m_opMode( Static )
|
||||
{
|
||||
@@ -65,7 +66,7 @@ public:
|
||||
|
||||
private:
|
||||
std::atomic<ThreadableJob*> m_items[JOB_QUEUE_SIZE];
|
||||
std::atomic_int m_queueSize;
|
||||
std::atomic_int m_writeIndex;
|
||||
std::atomic_int m_itemsDone;
|
||||
OperationMode m_opMode;
|
||||
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
#include <QtCore/QVector>
|
||||
#include <QWidget>
|
||||
#include <QDialog>
|
||||
#include <QtCore/QThread>
|
||||
#include <QPixmap>
|
||||
#include <QStaticText>
|
||||
|
||||
|
||||
@@ -749,12 +749,10 @@ class RemotePlugin;
|
||||
|
||||
class ProcessWatcher : public QThread
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ProcessWatcher( RemotePlugin * );
|
||||
virtual ~ProcessWatcher()
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~ProcessWatcher() = default;
|
||||
|
||||
void quit()
|
||||
{
|
||||
|
||||
@@ -70,7 +70,6 @@ private slots:
|
||||
// general settings widget
|
||||
void setBufferSize( int _value );
|
||||
void resetBufSize();
|
||||
void displayBufSizeHelp();
|
||||
|
||||
// path settings widget
|
||||
void setWorkingDir( const QString & _wd );
|
||||
@@ -86,15 +85,12 @@ private slots:
|
||||
// performance settings widget
|
||||
void setAutoSaveInterval( int time );
|
||||
void resetAutoSave();
|
||||
void displaySaveIntervalHelp();
|
||||
|
||||
// audio settings widget
|
||||
void audioInterfaceChanged( const QString & _driver );
|
||||
void displayAudioHelp();
|
||||
|
||||
// MIDI settings widget
|
||||
void midiInterfaceChanged( const QString & _driver );
|
||||
void displayMIDIHelp();
|
||||
|
||||
|
||||
void toggleToolTips( bool _enabled );
|
||||
|
||||
@@ -55,13 +55,13 @@ BitcrushControlDialog::BitcrushControlDialog( BitcrushControls * controls ) :
|
||||
inGain->move( 16, 32 );
|
||||
inGain->setModel( & controls->m_inGain );
|
||||
inGain->setLabel( tr( "GAIN" ) );
|
||||
inGain->setHintText( tr( "Input Gain:" ) + " ", " dBFS" );
|
||||
inGain->setHintText( tr( "Input gain:" ) , " dBFS" );
|
||||
|
||||
Knob * inNoise = new Knob( knobBright_26, this );
|
||||
inNoise->move( 14, 76 );
|
||||
inNoise->setModel( & controls->m_inNoise );
|
||||
inNoise->setLabel( tr( "NOISE" ) );
|
||||
inNoise->setHintText( tr( "Input Noise:" ) + " ", "%" );
|
||||
inNoise->setHintText( tr( "Input noise:" ) , "%" );
|
||||
|
||||
|
||||
// output knobs
|
||||
@@ -69,25 +69,25 @@ BitcrushControlDialog::BitcrushControlDialog( BitcrushControls * controls ) :
|
||||
outGain->move( 138, 32 );
|
||||
outGain->setModel( & controls->m_outGain );
|
||||
outGain->setLabel( tr( "GAIN" ) );
|
||||
outGain->setHintText( tr( "Output Gain:" ) + " ", " dBFS" );
|
||||
outGain->setHintText( tr( "Output gain:" ) , " dBFS" );
|
||||
|
||||
Knob * outClip = new Knob( knobBright_26, this );
|
||||
outClip->move( 138, 76 );
|
||||
outClip->setModel( & controls->m_outClip );
|
||||
outClip->setLabel( tr( "CLIP" ) );
|
||||
outClip->setHintText( tr( "Output Clip:" ) + " ", "%" );
|
||||
outClip->setHintText( tr( "Output clip:" ) , "%" );
|
||||
|
||||
|
||||
// leds
|
||||
LedCheckBox * rateEnabled = new LedCheckBox( "", this, tr( "Rate Enabled" ), LedCheckBox::Green );
|
||||
LedCheckBox * rateEnabled = new LedCheckBox( "", this, tr( "Rate enabled" ), LedCheckBox::Green );
|
||||
rateEnabled->move( 64, 14 );
|
||||
rateEnabled->setModel( & controls->m_rateEnabled );
|
||||
ToolTip::add( rateEnabled, tr( "Enable samplerate-crushing" ) );
|
||||
ToolTip::add( rateEnabled, tr( "Enable sample-rate crushing" ) );
|
||||
|
||||
LedCheckBox * depthEnabled = new LedCheckBox( "", this, tr( "Depth Enabled" ), LedCheckBox::Green );
|
||||
LedCheckBox * depthEnabled = new LedCheckBox( "", this, tr( "Depth enabled" ), LedCheckBox::Green );
|
||||
depthEnabled->move( 101, 14 );
|
||||
depthEnabled->setModel( & controls->m_depthEnabled );
|
||||
ToolTip::add( depthEnabled, tr( "Enable bitdepth-crushing" ) );
|
||||
ToolTip::add( depthEnabled, tr( "Enable bit-depth crushing" ) );
|
||||
|
||||
|
||||
// rate crushing knobs
|
||||
@@ -95,13 +95,13 @@ BitcrushControlDialog::BitcrushControlDialog( BitcrushControls * controls ) :
|
||||
rate->move( 59, 32 );
|
||||
rate->setModel( & controls->m_rate );
|
||||
rate->setLabel( tr( "FREQ" ) );
|
||||
rate->setHintText( tr( "Sample rate:" ) + " ", " Hz" );
|
||||
rate->setHintText( tr( "Sample rate:" ) , " Hz" );
|
||||
|
||||
Knob * stereoDiff = new Knob( knobBright_26, this );
|
||||
stereoDiff->move( 72, 76 );
|
||||
stereoDiff->setModel( & controls->m_stereoDiff );
|
||||
stereoDiff->setLabel( tr( "STEREO" ) );
|
||||
stereoDiff->setHintText( tr( "Stereo difference:" ) + " ", "%" );
|
||||
stereoDiff->setHintText( tr( "Stereo difference:" ) , "%" );
|
||||
|
||||
|
||||
// depth crushing knob
|
||||
@@ -109,5 +109,5 @@ BitcrushControlDialog::BitcrushControlDialog( BitcrushControls * controls ) :
|
||||
levels->move( 92, 32 );
|
||||
levels->setModel( & controls->m_levels );
|
||||
levels->setLabel( tr( "QUANT" ) );
|
||||
levels->setHintText( tr( "Levels:" ) + " ", "" );
|
||||
levels->setHintText( tr( "Levels:" ) , "" );
|
||||
}
|
||||
|
||||
@@ -34,15 +34,15 @@
|
||||
BitcrushControls::BitcrushControls( BitcrushEffect * eff ) :
|
||||
EffectControls( eff ),
|
||||
m_effect( eff ),
|
||||
m_inGain( 0.0f, -20.0f, 20.0f, 0.1f, this, "Input gain" ),
|
||||
m_inNoise( 0.0f, 0.0f, 100.0f, 0.1f, this, "Input noise" ),
|
||||
m_outGain( 0.0f, -20.0f, 20.0f, 0.1f, this, "Output gain" ),
|
||||
m_outClip( 0.0f, -20.0f, 20.0f, 0.1f, this, "Output clip" ),
|
||||
m_rate( 44100.f, 20.f, 44100.f, 1.0f, this, "Samplerate" ),
|
||||
m_stereoDiff( 0.f, 0.f, 50.f, 0.1f, this, "Stereo difference" ),
|
||||
m_levels( 256.f, 1.f, 256.f, 1.0f, this, "Levels" ),
|
||||
m_rateEnabled( true, this, "Rate enabled" ),
|
||||
m_depthEnabled( true, this, "Depth enabled" )
|
||||
m_inGain( 0.0f, -20.0f, 20.0f, 0.1f, this, tr( "Input gain" ) ),
|
||||
m_inNoise( 0.0f, 0.0f, 100.0f, 0.1f, this, tr( "Input noise" ) ),
|
||||
m_outGain( 0.0f, -20.0f, 20.0f, 0.1f, this, tr( "Output gain" ) ),
|
||||
m_outClip( 0.0f, -20.0f, 20.0f, 0.1f, this, tr( "Output clip" ) ),
|
||||
m_rate( 44100.f, 20.f, 44100.f, 1.0f, this, tr( "Sample rate" ) ),
|
||||
m_stereoDiff( 0.f, 0.f, 50.f, 0.1f, this, tr( "Stereo difference" ) ),
|
||||
m_levels( 256.f, 1.f, 256.f, 1.0f, this, tr( "Levels" ) ),
|
||||
m_rateEnabled( true, this, tr( "Rate enabled" ) ),
|
||||
m_depthEnabled( true, this, tr( "Depth enabled" ) )
|
||||
{
|
||||
m_rate.setStrictStepSize( true );
|
||||
m_levels.setStrictStepSize( true );
|
||||
|
||||
@@ -49,67 +49,67 @@ CrossoverEQControlDialog::CrossoverEQControlDialog( CrossoverEQControls * contro
|
||||
xover12->move( 29, 11 );
|
||||
xover12->setModel( & controls->m_xover12 );
|
||||
xover12->setLabel( "1/2" );
|
||||
xover12->setHintText( tr( "Band 1/2 Crossover:" ), " Hz" );
|
||||
xover12->setHintText( tr( "Band 1/2 crossover:" ), " Hz" );
|
||||
|
||||
Knob * xover23 = new Knob( knobBright_26, this );
|
||||
xover23->move( 69, 11 );
|
||||
xover23->setModel( & controls->m_xover23 );
|
||||
xover23->setLabel( "2/3" );
|
||||
xover23->setHintText( tr( "Band 2/3 Crossover:" ), " Hz" );
|
||||
xover23->setHintText( tr( "Band 2/3 crossover:" ), " Hz" );
|
||||
|
||||
Knob * xover34 = new Knob( knobBright_26, this );
|
||||
xover34->move( 109, 11 );
|
||||
xover34->setModel( & controls->m_xover34 );
|
||||
xover34->setLabel( "3/4" );
|
||||
xover34->setHintText( tr( "Band 3/4 Crossover:" ), " Hz" );
|
||||
xover34->setHintText( tr( "Band 3/4 crossover:" ), " Hz" );
|
||||
|
||||
m_fader_bg = QPixmap( PLUGIN_NAME::getIconPixmap( "fader_bg" ) );
|
||||
m_fader_empty = QPixmap( PLUGIN_NAME::getIconPixmap( "fader_empty" ) );
|
||||
m_fader_knob = QPixmap( PLUGIN_NAME::getIconPixmap( "fader_knob2" ) );
|
||||
|
||||
// faders
|
||||
Fader * gain1 = new Fader( &controls->m_gain1, "Band 1 Gain", this,
|
||||
Fader * gain1 = new Fader( &controls->m_gain1, tr( "Band 1 gain" ), this,
|
||||
&m_fader_bg, &m_fader_empty, &m_fader_knob );
|
||||
gain1->move( 7, 56 );
|
||||
gain1->setDisplayConversion( false );
|
||||
gain1->setHintText( tr( "Band 1 Gain:" ), " dBFS" );
|
||||
gain1->setHintText( tr( "Band 1 gain:" ), " dBFS" );
|
||||
|
||||
Fader * gain2 = new Fader( &controls->m_gain2, "Band 2 Gain", this,
|
||||
Fader * gain2 = new Fader( &controls->m_gain2, tr( "Band 2 gain" ), this,
|
||||
&m_fader_bg, &m_fader_empty, &m_fader_knob );
|
||||
gain2->move( 47, 56 );
|
||||
gain2->setDisplayConversion( false );
|
||||
gain2->setHintText( tr( "Band 2 Gain:" ), " dBFS" );
|
||||
gain2->setHintText( tr( "Band 2 gain:" ), " dBFS" );
|
||||
|
||||
Fader * gain3 = new Fader( &controls->m_gain3, "Band 3 Gain", this,
|
||||
Fader * gain3 = new Fader( &controls->m_gain3, tr( "Band 3 gain" ), this,
|
||||
&m_fader_bg, &m_fader_empty, &m_fader_knob );
|
||||
gain3->move( 87, 56 );
|
||||
gain3->setDisplayConversion( false );
|
||||
gain3->setHintText( tr( "Band 3 Gain:" ), " dBFS" );
|
||||
gain3->setHintText( tr( "Band 3 gain:" ), " dBFS" );
|
||||
|
||||
Fader * gain4 = new Fader( &controls->m_gain4, "Band 4 Gain", this,
|
||||
Fader * gain4 = new Fader( &controls->m_gain4, tr( "Band 4 gain" ), this,
|
||||
&m_fader_bg, &m_fader_empty, &m_fader_knob );
|
||||
gain4->move( 127, 56 );
|
||||
gain4->setDisplayConversion( false );
|
||||
gain4->setHintText( tr( "Band 4 Gain:" ), " dBFS" );
|
||||
gain4->setHintText( tr( "Band 4 gain:" ), " dBFS" );
|
||||
|
||||
// leds
|
||||
LedCheckBox * mute1 = new LedCheckBox( "", this, tr( "Band 1 Mute" ), LedCheckBox::Green );
|
||||
LedCheckBox * mute1 = new LedCheckBox( "", this, tr( "Band 1 mute" ), LedCheckBox::Green );
|
||||
mute1->move( 15, 154 );
|
||||
mute1->setModel( & controls->m_mute1 );
|
||||
ToolTip::add( mute1, tr( "Mute Band 1" ) );
|
||||
ToolTip::add( mute1, tr( "Mute band 1" ) );
|
||||
|
||||
LedCheckBox * mute2 = new LedCheckBox( "", this, tr( "Band 2 Mute" ), LedCheckBox::Green );
|
||||
LedCheckBox * mute2 = new LedCheckBox( "", this, tr( "Band 2 mute" ), LedCheckBox::Green );
|
||||
mute2->move( 55, 154 );
|
||||
mute2->setModel( & controls->m_mute2 );
|
||||
ToolTip::add( mute2, tr( "Mute Band 2" ) );
|
||||
ToolTip::add( mute2, tr( "Mute band 2" ) );
|
||||
|
||||
LedCheckBox * mute3 = new LedCheckBox( "", this, tr( "Band 3 Mute" ), LedCheckBox::Green );
|
||||
LedCheckBox * mute3 = new LedCheckBox( "", this, tr( "Band 3 mute" ), LedCheckBox::Green );
|
||||
mute3->move( 95, 154 );
|
||||
mute3->setModel( & controls->m_mute3 );
|
||||
ToolTip::add( mute3, tr( "Mute Band 3" ) );
|
||||
ToolTip::add( mute3, tr( "Mute band 3" ) );
|
||||
|
||||
LedCheckBox * mute4 = new LedCheckBox( "", this, tr( "Band 4 Mute" ), LedCheckBox::Green );
|
||||
LedCheckBox * mute4 = new LedCheckBox( "", this, tr( "Band 4 mute" ), LedCheckBox::Green );
|
||||
mute4->move( 135, 154 );
|
||||
mute4->setModel( & controls->m_mute4 );
|
||||
ToolTip::add( mute4, tr( "Mute Band 4" ) );
|
||||
ToolTip::add( mute4, tr( "Mute band 4" ) );
|
||||
}
|
||||
|
||||
@@ -32,10 +32,10 @@
|
||||
DelayControls::DelayControls( DelayEffect* effect ):
|
||||
EffectControls( effect ),
|
||||
m_effect ( effect ),
|
||||
m_delayTimeModel( 0.5, 0.01, 5.0, 0.0001, 5000.0, this, tr( "Delay Samples" )) ,
|
||||
m_delayTimeModel( 0.5, 0.01, 5.0, 0.0001, 5000.0, this, tr( "Delay samples" )) ,
|
||||
m_feedbackModel(0.0f,0.0f,1.0f,0.01f,this,tr( "Feedback" ) ),
|
||||
m_lfoTimeModel(2.0, 0.01, 5.0, 0.0001, 20000.0, this, tr( "Lfo Frequency" ) ),
|
||||
m_lfoAmountModel(0.0, 0.0, 0.5, 0.0001, 2000.0, this, tr ( "Lfo Amount" ) ),
|
||||
m_lfoTimeModel(2.0, 0.01, 5.0, 0.0001, 20000.0, this, tr( "LFO frequency" ) ),
|
||||
m_lfoAmountModel(0.0, 0.0, 0.5, 0.0001, 2000.0, this, tr ( "LFO amount" ) ),
|
||||
m_outGainModel( 0.0, -60.0, 20.0, 0.01, this, tr( "Output gain" ) )
|
||||
{
|
||||
connect( Engine::mixer(), SIGNAL( sampleRateChanged() ), this, SLOT( changeSampleRate() ) );
|
||||
|
||||
@@ -47,30 +47,30 @@ DelayControlsDialog::DelayControlsDialog( DelayControls *controls ) :
|
||||
sampleDelayKnob->setVolumeKnob( false );
|
||||
sampleDelayKnob->setModel( &controls->m_delayTimeModel );
|
||||
sampleDelayKnob->setLabel( tr( "DELAY" ) );
|
||||
sampleDelayKnob->setHintText( tr( "Delay Time" ) + " ", " s" );
|
||||
sampleDelayKnob->setHintText( tr( "Delay time" ) + " ", " s" );
|
||||
|
||||
Knob * feedbackKnob = new Knob( knobBright_26, this );
|
||||
feedbackKnob->move( 11, 58 );
|
||||
feedbackKnob->setVolumeKnob( true) ;
|
||||
feedbackKnob->setModel( &controls->m_feedbackModel);
|
||||
feedbackKnob->setLabel( tr( "FDBK" ) );
|
||||
feedbackKnob->setHintText( tr ( "Feedback Amount" ) + " " , "" );
|
||||
feedbackKnob->setHintText( tr ( "Feedback amount" ) + " " , "" );
|
||||
|
||||
TempoSyncKnob * lfoFreqKnob = new TempoSyncKnob( knobBright_26, this );
|
||||
lfoFreqKnob->move( 11, 119 );
|
||||
lfoFreqKnob->setVolumeKnob( false );
|
||||
lfoFreqKnob->setModel( &controls->m_lfoTimeModel );
|
||||
lfoFreqKnob->setLabel( tr( "RATE" ) );
|
||||
lfoFreqKnob->setHintText( tr ( "Lfo") + " ", " s" );
|
||||
lfoFreqKnob->setHintText( tr ( "LFO frequency") + " ", " s" );
|
||||
|
||||
TempoSyncKnob * lfoAmtKnob = new TempoSyncKnob( knobBright_26, this );
|
||||
lfoAmtKnob->move( 11, 159 );
|
||||
lfoAmtKnob->setVolumeKnob( false );
|
||||
lfoAmtKnob->setModel( &controls->m_lfoAmountModel );
|
||||
lfoAmtKnob->setLabel( tr( "AMNT" ) );
|
||||
lfoAmtKnob->setHintText( tr ( "Lfo Amt" ) + " " , " s" );
|
||||
lfoAmtKnob->setHintText( tr ( "LFO amount" ) + " " , " s" );
|
||||
|
||||
EqFader * outFader = new EqFader( &controls->m_outGainModel,tr( "Out Gain" ),
|
||||
EqFader * outFader = new EqFader( &controls->m_outGainModel,tr( "Out gain" ),
|
||||
this, &controls->m_outPeakL, &controls->m_outPeakR );
|
||||
outFader->setMaximumHeight( 196 );
|
||||
outFader->move( 263, 45 );
|
||||
|
||||
@@ -69,10 +69,10 @@ DualFilterControlDialog::DualFilterControlDialog( DualFilterControls* controls )
|
||||
|
||||
enabled1Toggle -> move( 12, 11 );
|
||||
enabled1Toggle -> setModel( &controls -> m_enabled1Model );
|
||||
ToolTip::add( enabled1Toggle, tr( "Click to enable/disable Filter 1" ) );
|
||||
ToolTip::add( enabled1Toggle, tr( "Enable/disable filter 1" ) );
|
||||
enabled2Toggle -> move( 210, 11 );
|
||||
enabled2Toggle -> setModel( &controls -> m_enabled2Model );
|
||||
ToolTip::add( enabled2Toggle, tr( "Click to enable/disable Filter 2" ) );
|
||||
ToolTip::add( enabled2Toggle, tr( "Enable/disable filter 2" ) );
|
||||
|
||||
ComboBox * m_filter1ComboBox = new ComboBox( this );
|
||||
m_filter1ComboBox->setGeometry( 19, 70, 137, 22 );
|
||||
|
||||
@@ -40,7 +40,7 @@ DualFilterControls::DualFilterControls( DualFilterEffect* effect ) :
|
||||
|
||||
m_enabled1Model( true, this, tr( "Filter 1 enabled" ) ),
|
||||
m_filter1Model( this, tr( "Filter 1 type" ) ),
|
||||
m_cut1Model( 7000.0f, 1.0f, 20000.0f, 1.0f, this, tr( "Cutoff 1 frequency" ) ),
|
||||
m_cut1Model( 7000.0f, 1.0f, 20000.0f, 1.0f, this, tr( "Cutoff frequency 1" ) ),
|
||||
m_res1Model( 0.5, BasicFilters<>::minQ(), 10.0, 0.01, this, tr( "Q/Resonance 1" ) ),
|
||||
m_gain1Model( 100.0f, 0.0f, 200.0f, 0.1f, this, tr( "Gain 1" ) ),
|
||||
|
||||
@@ -48,52 +48,52 @@ DualFilterControls::DualFilterControls( DualFilterEffect* effect ) :
|
||||
|
||||
m_enabled2Model( true, this, tr( "Filter 2 enabled" ) ),
|
||||
m_filter2Model( this, tr( "Filter 2 type" ) ),
|
||||
m_cut2Model( 7000.0f, 1.0f, 20000.0f, 1.0f, this, tr( "Cutoff 2 frequency" ) ),
|
||||
m_cut2Model( 7000.0f, 1.0f, 20000.0f, 1.0f, this, tr( "Cutoff frequency 2" ) ),
|
||||
m_res2Model( 0.5, BasicFilters<>::minQ(), 10.0, 0.01, this, tr( "Q/Resonance 2" ) ),
|
||||
m_gain2Model( 100.0f, 0.0f, 200.0f, 0.1f, this, tr( "Gain 2" ) )
|
||||
{
|
||||
m_filter1Model.addItem( tr( "LowPass" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter1Model.addItem( tr( "HiPass" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter1Model.addItem( tr( "BandPass csg" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter1Model.addItem( tr( "BandPass czpg" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter1Model.addItem( tr( "Low-pass" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter1Model.addItem( tr( "Hi-pass" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter1Model.addItem( tr( "Band-pass csg" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter1Model.addItem( tr( "Band-pass czpg" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter1Model.addItem( tr( "Notch" ), make_unique<PixmapLoader>( "filter_notch" ) );
|
||||
m_filter1Model.addItem( tr( "Allpass" ), make_unique<PixmapLoader>( "filter_ap" ) );
|
||||
m_filter1Model.addItem( tr( "All-pass" ), make_unique<PixmapLoader>( "filter_ap" ) );
|
||||
m_filter1Model.addItem( tr( "Moog" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter1Model.addItem( tr( "2x LowPass" ), make_unique<PixmapLoader>( "filter_2lp" ) );
|
||||
m_filter1Model.addItem( tr( "RC LowPass 12dB" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter1Model.addItem( tr( "RC BandPass 12dB" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter1Model.addItem( tr( "RC HighPass 12dB" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter1Model.addItem( tr( "RC LowPass 24dB" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter1Model.addItem( tr( "RC BandPass 24dB" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter1Model.addItem( tr( "RC HighPass 24dB" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter1Model.addItem( tr( "Vocal Formant Filter" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter1Model.addItem( tr( "2x Low-pass" ), make_unique<PixmapLoader>( "filter_2lp" ) );
|
||||
m_filter1Model.addItem( tr( "RC Low-pass 12 dB/oct" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter1Model.addItem( tr( "RC Band-pass 12 dB/oct" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter1Model.addItem( tr( "RC High-pass 12 dB/oct" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter1Model.addItem( tr( "RC Low-pass 24 dB/oct" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter1Model.addItem( tr( "RC Band-pass 24 dB/oct" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter1Model.addItem( tr( "RC High-pass 24 dB/oct" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter1Model.addItem( tr( "Vocal Formant" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter1Model.addItem( tr( "2x Moog" ), make_unique<PixmapLoader>( "filter_2lp" ) );
|
||||
m_filter1Model.addItem( tr( "SV LowPass" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter1Model.addItem( tr( "SV BandPass" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter1Model.addItem( tr( "SV HighPass" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter1Model.addItem( tr( "SV Low-pass" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter1Model.addItem( tr( "SV Band-pass" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter1Model.addItem( tr( "SV High-pass" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter1Model.addItem( tr( "SV Notch" ), make_unique<PixmapLoader>( "filter_notch" ) );
|
||||
m_filter1Model.addItem( tr( "Fast Formant" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter1Model.addItem( tr( "Tripole" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
|
||||
m_filter2Model.addItem( tr( "LowPass" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter2Model.addItem( tr( "HiPass" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter2Model.addItem( tr( "BandPass csg" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter2Model.addItem( tr( "BandPass czpg" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter2Model.addItem( tr( "Low-pass" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter2Model.addItem( tr( "Hi-pass" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter2Model.addItem( tr( "Band-pass csg" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter2Model.addItem( tr( "Band-pass czpg" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter2Model.addItem( tr( "Notch" ), make_unique<PixmapLoader>( "filter_notch" ) );
|
||||
m_filter2Model.addItem( tr( "Allpass" ), make_unique<PixmapLoader>( "filter_ap" ) );
|
||||
m_filter2Model.addItem( tr( "All-pass" ), make_unique<PixmapLoader>( "filter_ap" ) );
|
||||
m_filter2Model.addItem( tr( "Moog" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter2Model.addItem( tr( "2x LowPass" ), make_unique<PixmapLoader>( "filter_2lp" ) );
|
||||
m_filter2Model.addItem( tr( "RC LowPass 12dB" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter2Model.addItem( tr( "RC BandPass 12dB" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter2Model.addItem( tr( "RC HighPass 12dB" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter2Model.addItem( tr( "RC LowPass 24dB" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter2Model.addItem( tr( "RC BandPass 24dB" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter2Model.addItem( tr( "RC HighPass 24dB" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter2Model.addItem( tr( "Vocal Formant Filter" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter2Model.addItem( tr( "2x Low-pass" ), make_unique<PixmapLoader>( "filter_2lp" ) );
|
||||
m_filter2Model.addItem( tr( "RC Low-pass 12 dB/oct" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter2Model.addItem( tr( "RC Band-pass 12 dB/oct" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter2Model.addItem( tr( "RC High-pass 12 dB/oct" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter2Model.addItem( tr( "RC Low-pass 24 dB/oct" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter2Model.addItem( tr( "RC Band-pass 24 dB/oct" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter2Model.addItem( tr( "RC High-pass 24 dB/oct" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter2Model.addItem( tr( "Vocal Formant" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter2Model.addItem( tr( "2x Moog" ), make_unique<PixmapLoader>( "filter_2lp" ) );
|
||||
m_filter2Model.addItem( tr( "SV LowPass" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter2Model.addItem( tr( "SV BandPass" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter2Model.addItem( tr( "SV HighPass" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter2Model.addItem( tr( "SV Low-pass" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filter2Model.addItem( tr( "SV Band-pass" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filter2Model.addItem( tr( "SV High-pass" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter2Model.addItem( tr( "SV Notch" ), make_unique<PixmapLoader>( "filter_notch" ) );
|
||||
m_filter2Model.addItem( tr( "Fast Formant" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filter2Model.addItem( tr( "Tripole" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
|
||||
@@ -36,35 +36,35 @@ EqControls::EqControls( EqEffect *effect ) :
|
||||
m_effect( effect ),
|
||||
m_inGainModel( 0.0, -60.0, 20.0, 0.01, this, tr( "Input gain") ),
|
||||
m_outGainModel( -.0, -60.0, 20.0, 0.01, this, tr( "Output gain" ) ),
|
||||
m_lowShelfGainModel( 0.0 , -18, 18, 0.001, this, tr( "Low shelf gain" ) ),
|
||||
m_lowShelfGainModel( 0.0 , -18, 18, 0.001, this, tr( "Low-shelf gain" ) ),
|
||||
m_para1GainModel( 0.0 , -18, 18, 0.001, this, tr( "Peak 1 gain" ) ),
|
||||
m_para2GainModel( 0.0 , -18, 18, 0.001, this, tr( "Peak 2 gain" ) ),
|
||||
m_para3GainModel( 0.0 , -18, 18, 0.001, this, tr( "Peak 3 gain" ) ),
|
||||
m_para4GainModel( 0.0 , -18, 18, 0.001, this, tr( "Peak 4 gain" ) ),
|
||||
m_highShelfGainModel( 0.0 , -18, 18, 0.001, this, tr( "High Shelf gain" ) ),
|
||||
m_highShelfGainModel( 0.0 , -18, 18, 0.001, this, tr( "High-shelf gain" ) ),
|
||||
m_hpResModel( 0.707,0.003, 10.0 , 0.001, this, tr( "HP res" ) ),
|
||||
m_lowShelfResModel( 1.4,0.55, 10.0 , 0.001, this , tr( "Low Shelf res" ) ),
|
||||
m_lowShelfResModel( 1.4,0.55, 10.0 , 0.001, this , tr( "Low-shelf res" ) ),
|
||||
m_para1BwModel( 0.3, 0.1, 4 , 0.001, this , tr( "Peak 1 BW" ) ),
|
||||
m_para2BwModel( 0.3, 0.1, 4 , 0.001, this , tr( "Peak 2 BW" ) ),
|
||||
m_para3BwModel( 0.3, 0.1, 4 , 0.001, this , tr( "Peak 3 BW" ) ),
|
||||
m_para4BwModel( 0.3, 0.1, 4 , 0.001, this , tr( "Peak 4 BW" ) ),
|
||||
m_highShelfResModel( 1.4, 0.55, 10.0 , 0.001, this , tr( "High Shelf res" ) ),
|
||||
m_highShelfResModel( 1.4, 0.55, 10.0 , 0.001, this , tr( "High-shelf res" ) ),
|
||||
m_lpResModel( 0.707,0.003, 10.0 , 0.001, this , tr( "LP res" ) ),
|
||||
m_hpFeqModel( 31.0, 20.0, 20000, 0.001, this , tr( "HP freq" ) ),
|
||||
m_lowShelfFreqModel( 80.0, 20.0, 20000, 0.001, this , tr( "Low Shelf freq" ) ),
|
||||
m_lowShelfFreqModel( 80.0, 20.0, 20000, 0.001, this , tr( "Low-shelf freq" ) ),
|
||||
m_para1FreqModel( 120.0, 20.0, 20000, 0.001, this , tr( "Peak 1 freq" ) ),
|
||||
m_para2FreqModel( 250.0, 20.0, 20000, 0.001, this, tr( "Peak 2 freq" ) ),
|
||||
m_para3FreqModel( 2000.0, 20.0, 20000, 0.001, this , tr( "Peak 3 freq" ) ),
|
||||
m_para4FreqModel( 4000.0, 20.0, 20000, 0.001, this , tr( "Peak 4 freq" ) ),
|
||||
m_highShelfFreqModel( 12000.0, 20.0, 20000, 0.001, this , tr( "High shelf freq" ) ),
|
||||
m_highShelfFreqModel( 12000.0, 20.0, 20000, 0.001, this , tr( "High-shelf freq" ) ),
|
||||
m_lpFreqModel( 18000.0, 20.0, 20000, 0.001, this , tr( "LP freq" ) ),
|
||||
m_hpActiveModel( false, this , tr( "HP active" ) ),
|
||||
m_lowShelfActiveModel( false, this , tr( "Low shelf active" ) ),
|
||||
m_lowShelfActiveModel( false, this , tr( "Low-shelf active" ) ),
|
||||
m_para1ActiveModel( false, this , tr( "Peak 1 active" ) ),
|
||||
m_para2ActiveModel( false, this , tr( "Peak 2 active" ) ),
|
||||
m_para3ActiveModel( false, this , tr( "Peak 3 active" ) ),
|
||||
m_para4ActiveModel( false, this , tr( "Peak 4 active" ) ),
|
||||
m_highShelfActiveModel( false, this , tr( "High shelf active" ) ),
|
||||
m_highShelfActiveModel( false, this , tr( "High-shelf active" ) ),
|
||||
m_lpActiveModel( false, this , tr( "LP active" ) ),
|
||||
m_lp12Model( false, this , tr( "LP 12" ) ),
|
||||
m_lp24Model( false, this , tr( "LP 24" ) ),
|
||||
@@ -72,8 +72,8 @@ EqControls::EqControls( EqEffect *effect ) :
|
||||
m_hp12Model( false, this , tr( "HP 12" ) ),
|
||||
m_hp24Model( false, this , tr( "HP 24" ) ),
|
||||
m_hp48Model( false, this , tr( "HP 48" ) ),
|
||||
m_lpTypeModel( 0,0,2, this, tr( "low pass type" ) ) ,
|
||||
m_hpTypeModel( 0,0,2, this, tr( "high pass type" ) ),
|
||||
m_lpTypeModel( 0,0,2, this, tr( "Low-pass type" ) ) ,
|
||||
m_hpTypeModel( 0,0,2, this, tr( "High-pass type" ) ),
|
||||
m_analyseInModel( true, this , tr( "Analyse IN" ) ),
|
||||
m_analyseOutModel( true, this, tr( "Analyse OUT" ) )
|
||||
{
|
||||
|
||||
@@ -65,24 +65,24 @@ EqControlsDialog::EqControlsDialog( EqControls *controls ) :
|
||||
m_parameterWidget->move( 26, 17 );
|
||||
|
||||
setBand( 0, &controls->m_hpActiveModel, &controls->m_hpFeqModel, &controls->m_hpResModel, 0, QColor(255 ,255, 255), tr( "HP" ) ,0,0, &controls->m_hp12Model, &controls->m_hp24Model, &controls->m_hp48Model,0,0,0);
|
||||
setBand( 1, &controls->m_lowShelfActiveModel, &controls->m_lowShelfFreqModel, &controls->m_lowShelfResModel, &controls->m_lowShelfGainModel, QColor(255 ,255, 255), tr( "Low Shelf" ), &controls->m_lowShelfPeakL , &controls->m_lowShelfPeakR,0,0,0,0,0,0 );
|
||||
setBand( 1, &controls->m_lowShelfActiveModel, &controls->m_lowShelfFreqModel, &controls->m_lowShelfResModel, &controls->m_lowShelfGainModel, QColor(255 ,255, 255), tr( "Low-shelf" ), &controls->m_lowShelfPeakL , &controls->m_lowShelfPeakR,0,0,0,0,0,0 );
|
||||
setBand( 2, &controls->m_para1ActiveModel, &controls->m_para1FreqModel, &controls->m_para1BwModel, &controls->m_para1GainModel, QColor(255 ,255, 255), tr( "Peak 1" ), &controls->m_para1PeakL, &controls->m_para1PeakR,0,0,0,0,0,0 );
|
||||
setBand( 3, &controls->m_para2ActiveModel, &controls->m_para2FreqModel, &controls->m_para2BwModel, &controls->m_para2GainModel, QColor(255 ,255, 255), tr( "Peak 2" ), &controls->m_para2PeakL, &controls->m_para2PeakR,0,0,0,0,0,0 );
|
||||
setBand( 4, &controls->m_para3ActiveModel, &controls->m_para3FreqModel, &controls->m_para3BwModel, &controls->m_para3GainModel, QColor(255 ,255, 255), tr( "Peak 3" ), &controls->m_para3PeakL, &controls->m_para3PeakR,0,0,0,0,0,0 );
|
||||
setBand( 5, &controls->m_para4ActiveModel, &controls->m_para4FreqModel, &controls->m_para4BwModel, &controls->m_para4GainModel, QColor(255 ,255, 255), tr( "Peak 4" ), &controls->m_para4PeakL, &controls->m_para4PeakR,0,0,0,0,0,0 );
|
||||
setBand( 6, &controls->m_highShelfActiveModel, &controls->m_highShelfFreqModel, &controls->m_highShelfResModel, &controls->m_highShelfGainModel, QColor(255 ,255, 255), tr( "High Shelf" ), &controls->m_highShelfPeakL, &controls->m_highShelfPeakR,0,0,0,0,0,0 );
|
||||
setBand( 6, &controls->m_highShelfActiveModel, &controls->m_highShelfFreqModel, &controls->m_highShelfResModel, &controls->m_highShelfGainModel, QColor(255 ,255, 255), tr( "High-shelf" ), &controls->m_highShelfPeakL, &controls->m_highShelfPeakR,0,0,0,0,0,0 );
|
||||
setBand( 7, &controls->m_lpActiveModel, &controls->m_lpFreqModel, &controls->m_lpResModel, 0, QColor(255 ,255, 255), tr( "LP" ) ,0,0,0,0,0, &controls->m_lp12Model, &controls->m_lp24Model, &controls->m_lp48Model);
|
||||
|
||||
QPixmap * faderBg = new QPixmap( PLUGIN_NAME::getIconPixmap( "faderback" ) );
|
||||
QPixmap * faderLeds = new QPixmap( PLUGIN_NAME::getIconPixmap( "faderleds" ) );
|
||||
QPixmap * faderKnob = new QPixmap( PLUGIN_NAME::getIconPixmap( "faderknob" ) );
|
||||
|
||||
EqFader * GainFaderIn = new EqFader( &controls->m_inGainModel, tr( "In Gain" ), this, faderBg, faderLeds, faderKnob, &controls->m_inPeakL, &controls->m_inPeakR );
|
||||
EqFader * GainFaderIn = new EqFader( &controls->m_inGainModel, tr( "Input gain" ), this, faderBg, faderLeds, faderKnob, &controls->m_inPeakL, &controls->m_inPeakR );
|
||||
GainFaderIn->move( 23, 295 );
|
||||
GainFaderIn->setDisplayConversion( false );
|
||||
GainFaderIn->setHintText( tr( "Gain" ), "dBv");
|
||||
|
||||
EqFader * GainFaderOut = new EqFader( &controls->m_outGainModel, tr( "Out Gain" ), this, faderBg, faderLeds, faderKnob, &controls->m_outPeakL, &controls->m_outPeakR );
|
||||
EqFader * GainFaderOut = new EqFader( &controls->m_outGainModel, tr( "Output gain" ), this, faderBg, faderLeds, faderKnob, &controls->m_outPeakL, &controls->m_outPeakR );
|
||||
GainFaderOut->move( 453, 295);
|
||||
GainFaderOut->setDisplayConversion( false );
|
||||
GainFaderOut->setHintText( tr( "Gain" ), "dBv" );
|
||||
@@ -197,13 +197,13 @@ EqControlsDialog::EqControlsDialog( EqControls *controls ) :
|
||||
QObject::connect( m_parameterWidget->getBandModels( 7 )->lp24 , SIGNAL ( dataChanged() ), m_parameterWidget, SLOT( updateHandle()));
|
||||
QObject::connect( m_parameterWidget->getBandModels( 7 )->lp48 , SIGNAL ( dataChanged() ), m_parameterWidget, SLOT( updateHandle()));
|
||||
|
||||
automatableButtonGroup *lpBtnGrp = new automatableButtonGroup(this,tr ( "lp grp" ) );
|
||||
automatableButtonGroup *lpBtnGrp = new automatableButtonGroup( this, tr( "LP group" ) );
|
||||
lpBtnGrp->addButton( lp12Button );
|
||||
lpBtnGrp->addButton( lp24Button );
|
||||
lpBtnGrp->addButton( lp48Button );
|
||||
lpBtnGrp->setModel( &m_controls->m_lpTypeModel, false);
|
||||
|
||||
automatableButtonGroup *hpBtnGrp = new automatableButtonGroup( this, tr( "hp grp" ) );
|
||||
automatableButtonGroup *hpBtnGrp = new automatableButtonGroup( this, tr( "HP group" ) );
|
||||
hpBtnGrp->addButton( hp12Button );
|
||||
hpBtnGrp->addButton( hp24Button );
|
||||
hpBtnGrp->addButton( hp48Button );
|
||||
|
||||
@@ -122,9 +122,7 @@ bool EqEffect::processAudioBuffer( sampleFrame *buf, const fpp_t frames )
|
||||
m_hp12.setParameters( sampleRate, hpFreq, hpRes, 1 );
|
||||
m_hp24.setParameters( sampleRate, hpFreq, hpRes, 1 );
|
||||
m_hp480.setParameters( sampleRate, hpFreq, hpRes, 1 );
|
||||
m_lp480.setParameters( sampleRate, lpFreq, lpRes, 1 );
|
||||
m_hp481.setParameters( sampleRate, hpFreq, hpRes, 1 );
|
||||
m_lp481.setParameters( sampleRate, hpFreq, hpRes, 1 );
|
||||
m_lowShelf.setParameters( sampleRate, lowShelfFreq, lowShelfRes, lowShelfGain );
|
||||
m_para1.setParameters( sampleRate, para1Freq, para1Bw, para1Gain );
|
||||
m_para2.setParameters( sampleRate, para2Freq, para2Bw, para2Gain );
|
||||
@@ -134,7 +132,7 @@ bool EqEffect::processAudioBuffer( sampleFrame *buf, const fpp_t frames )
|
||||
m_lp12.setParameters( sampleRate, lpFreq, lpRes, 1 );
|
||||
m_lp24.setParameters( sampleRate, lpFreq, lpRes, 1 );
|
||||
m_lp480.setParameters( sampleRate, lpFreq, lpRes, 1 );
|
||||
m_lp480.setParameters( sampleRate, lpFreq, lpRes, 1 );
|
||||
m_lp481.setParameters( sampleRate, lpFreq, lpRes, 1 );
|
||||
|
||||
|
||||
|
||||
@@ -165,7 +163,7 @@ bool EqEffect::processAudioBuffer( sampleFrame *buf, const fpp_t frames )
|
||||
const float outGain = m_outGain;
|
||||
sampleFrame m_inPeak = { 0, 0 };
|
||||
|
||||
if(m_eqControls.m_analyseInModel.value( true ) && outSum > 0 )
|
||||
if(m_eqControls.m_analyseInModel.value( true ) && outSum > 0 && m_eqControls.isViewVisible() )
|
||||
{
|
||||
m_eqControls.m_inFftBands.analyze( buf, frames );
|
||||
}
|
||||
@@ -276,7 +274,7 @@ bool EqEffect::processAudioBuffer( sampleFrame *buf, const fpp_t frames )
|
||||
|
||||
checkGate( outSum / frames );
|
||||
|
||||
if(m_eqControls.m_analyseOutModel.value( true ) && outSum > 0 )
|
||||
if(m_eqControls.m_analyseOutModel.value( true ) && outSum > 0 && m_eqControls.isViewVisible() )
|
||||
{
|
||||
m_eqControls.m_outFftBands.analyze( buf, frames );
|
||||
setBandPeaks( &m_eqControls.m_outFftBands , ( int )( sampleRate ) );
|
||||
|
||||
@@ -196,8 +196,6 @@ EqSpectrumView::EqSpectrumView(EqAnalyser *b, QWidget *_parent) :
|
||||
|
||||
void EqSpectrumView::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
//only analyse if the view is visible
|
||||
m_analyser->setActive( isVisible() );
|
||||
const float energy = m_analyser->getEnergy();
|
||||
if( energy <= 0 && m_peakSum <= 0 )
|
||||
{
|
||||
@@ -209,6 +207,7 @@ void EqSpectrumView::paintEvent(QPaintEvent *event)
|
||||
const int LOWER_Y = -36; // dB
|
||||
QPainter painter( this );
|
||||
painter.setPen( QPen( m_color, 1, Qt::SolidLine, Qt::RoundCap, Qt::BevelJoin ) );
|
||||
painter.setRenderHint(QPainter::Antialiasing, true);
|
||||
|
||||
if( m_analyser->getInProgress() || m_periodicalUpdate == false )
|
||||
{
|
||||
@@ -291,5 +290,6 @@ float EqSpectrumView::bandToFreq( int index )
|
||||
void EqSpectrumView::periodicalUpdate()
|
||||
{
|
||||
m_periodicalUpdate = true;
|
||||
m_analyser->setActive( isVisible() );
|
||||
update();
|
||||
}
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
FlangerControls::FlangerControls( FlangerEffect *effect ) :
|
||||
EffectControls ( effect ),
|
||||
m_effect ( effect ),
|
||||
m_delayTimeModel(0.001, 0.0001, 0.050, 0.0001, this, tr( "Delay Samples" ) ) ,
|
||||
m_lfoFrequencyModel( 0.25, 0.01, 60, 0.0001, 60000.0 ,this, tr( "Lfo Frequency" ) ),
|
||||
m_delayTimeModel(0.001, 0.0001, 0.050, 0.0001, this, tr( "Delay samples" ) ) ,
|
||||
m_lfoFrequencyModel( 0.25, 0.01, 60, 0.0001, 60000.0 ,this, tr( "LFO frequency" ) ),
|
||||
m_lfoAmountModel( 0.0, 0.0, 0.0025 , 0.0001 , this , tr( "Seconds" ) ),
|
||||
m_feedbackModel( 0.0 , 0.0 , 1.0 , 0.0001, this, tr( "Regen" ) ),
|
||||
m_whiteNoiseAmountModel( 0.0 , 0.0 , 0.05 , 0.0001, this, tr( "Noise" ) ),
|
||||
@@ -43,6 +43,7 @@ FlangerControls::FlangerControls( FlangerEffect *effect ) :
|
||||
|
||||
{
|
||||
connect( Engine::mixer(), SIGNAL( sampleRateChanged() ), this, SLOT( changedSampleRate() ) );
|
||||
connect( Engine::getSong(), SIGNAL( playbackStateChanged() ), this, SLOT( changedPlaybackState() ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -81,3 +82,9 @@ void FlangerControls::changedSampleRate()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void FlangerControls::changedPlaybackState()
|
||||
{
|
||||
m_effect->restartLFO();
|
||||
}
|
||||
|
||||
@@ -57,6 +57,7 @@ public:
|
||||
|
||||
private slots:
|
||||
void changedSampleRate();
|
||||
void changedPlaybackState();
|
||||
|
||||
private:
|
||||
FlangerEffect* m_effect;
|
||||
|
||||
@@ -45,35 +45,35 @@ FlangerControlsDialog::FlangerControlsDialog( FlangerControls *controls ) :
|
||||
delayKnob->setVolumeKnob( false );
|
||||
delayKnob->setModel( &controls->m_delayTimeModel );
|
||||
delayKnob->setLabel( tr( "DELAY" ) );
|
||||
delayKnob->setHintText( tr( "Delay Time:" ) + " ", "s" );
|
||||
delayKnob->setHintText( tr( "Delay time:" ) + " ", "s" );
|
||||
|
||||
TempoSyncKnob * lfoFreqKnob = new TempoSyncKnob( knobBright_26, this );
|
||||
lfoFreqKnob->move( 48,10 );
|
||||
lfoFreqKnob->setVolumeKnob( false );
|
||||
lfoFreqKnob->setModel( &controls->m_lfoFrequencyModel );
|
||||
lfoFreqKnob->setLabel( tr( "RATE" ) );
|
||||
lfoFreqKnob->setHintText( tr ( "Period:" ) , " Sec" );
|
||||
lfoFreqKnob->setHintText( tr( "Period:" ) , " Sec" );
|
||||
|
||||
Knob * lfoAmtKnob = new Knob( knobBright_26, this );
|
||||
lfoAmtKnob->move( 85,10 );
|
||||
lfoAmtKnob->setVolumeKnob( false );
|
||||
lfoAmtKnob->setModel( &controls->m_lfoAmountModel );
|
||||
lfoAmtKnob->setLabel( tr( "AMNT" ) );
|
||||
lfoAmtKnob->setHintText( tr ( "Amount:" ) , "" );
|
||||
lfoAmtKnob->setHintText( tr( "Amount:" ) , "" );
|
||||
|
||||
Knob * feedbackKnob = new Knob( knobBright_26, this );
|
||||
feedbackKnob->move( 122,10 );
|
||||
feedbackKnob->setVolumeKnob( true) ;
|
||||
feedbackKnob->setModel( &controls->m_feedbackModel );
|
||||
feedbackKnob->setLabel( tr( "FDBK" ) );
|
||||
feedbackKnob->setHintText( tr ( "Feedback Amount:" ) , "" );
|
||||
feedbackKnob->setHintText( tr( "Feedback amount:" ) , "" );
|
||||
|
||||
Knob * whiteNoiseKnob = new Knob( knobBright_26, this );
|
||||
whiteNoiseKnob->move( 156,10 );
|
||||
whiteNoiseKnob->setVolumeKnob( true) ;
|
||||
whiteNoiseKnob->setModel( &controls->m_whiteNoiseAmountModel );
|
||||
whiteNoiseKnob->setLabel( tr( "NOISE" ) );
|
||||
whiteNoiseKnob->setHintText( tr ( "White Noise Amount:" ) , "" );
|
||||
whiteNoiseKnob->setHintText( tr( "White noise amount:" ) , "" );
|
||||
|
||||
LedCheckBox * invertCb = new LedCheckBox( tr( "Invert" ), this );
|
||||
invertCb->move( 10,53 );
|
||||
|
||||
@@ -68,7 +68,7 @@ FlangerEffect::~FlangerEffect()
|
||||
{
|
||||
delete m_rDelay;
|
||||
}
|
||||
if(m_lfo )
|
||||
if( m_lfo )
|
||||
{
|
||||
delete m_lfo;
|
||||
}
|
||||
@@ -139,6 +139,15 @@ void FlangerEffect::changeSampleRate()
|
||||
|
||||
|
||||
|
||||
|
||||
void FlangerEffect::restartLFO()
|
||||
{
|
||||
m_lfo->restart();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
extern "C"
|
||||
{
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@ public:
|
||||
return &m_flangerControls;
|
||||
}
|
||||
void changeSampleRate();
|
||||
void restartLFO();
|
||||
|
||||
private:
|
||||
FlangerControls m_flangerControls;
|
||||
|
||||
@@ -53,6 +53,14 @@ public:
|
||||
|
||||
|
||||
|
||||
inline void restart()
|
||||
{
|
||||
m_phase = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
inline void setSampleRate ( int samplerate )
|
||||
{
|
||||
m_samplerate = samplerate;
|
||||
|
||||
@@ -70,9 +70,9 @@ FreeBoyInstrument::FreeBoyInstrument( InstrumentTrack * _instrument_track ) :
|
||||
m_ch1SweepTimeModel( 4.0f, 0.0f, 7.0f, 1.0f, this, tr( "Sweep time" ) ),
|
||||
m_ch1SweepDirModel( false, this, tr( "Sweep direction" ) ),
|
||||
m_ch1SweepRtShiftModel( 4.0f, 0.0f, 7.0f, 1.0f, this,
|
||||
tr( "Sweep RtShift amount" ) ),
|
||||
tr( "Sweep rate shift amount" ) ),
|
||||
m_ch1WavePatternDutyModel( 2.0f, 0.0f, 3.0f, 1.0f, this,
|
||||
tr( "Wave Pattern Duty" ) ),
|
||||
tr( "Wave pattern duty cycle" ) ),
|
||||
m_ch1VolumeModel( 15.0f, 0.0f, 15.0f, 1.0f, this,
|
||||
tr( "Channel 1 volume" ) ),
|
||||
m_ch1VolSweepDirModel( false, this,
|
||||
@@ -81,7 +81,7 @@ FreeBoyInstrument::FreeBoyInstrument( InstrumentTrack * _instrument_track ) :
|
||||
tr( "Length of each step in sweep" ) ),
|
||||
|
||||
m_ch2WavePatternDutyModel( 2.0f, 0.0f, 3.0f, 1.0f, this,
|
||||
tr( "Wave Pattern Duty" ) ),
|
||||
tr( "Wave pattern duty cycle" ) ),
|
||||
m_ch2VolumeModel( 15.0f, 0.0f, 15.0f, 1.0f, this,
|
||||
tr( "Channel 2 volume" ) ),
|
||||
m_ch2VolSweepDirModel( false, this,
|
||||
@@ -102,8 +102,8 @@ FreeBoyInstrument::FreeBoyInstrument( InstrumentTrack * _instrument_track ) :
|
||||
m_ch4ShiftRegWidthModel( false, this,
|
||||
tr( "Shift Register width" ) ),
|
||||
|
||||
m_so1VolumeModel( 7.0f, 0.0f, 7.0f, 1.0f, this, tr( "Right Output level") ),
|
||||
m_so2VolumeModel( 7.0f, 0.0f, 7.0f, 1.0f, this, tr( "Left Output level" ) ),
|
||||
m_so1VolumeModel( 7.0f, 0.0f, 7.0f, 1.0f, this, tr( "Right output level") ),
|
||||
m_so2VolumeModel( 7.0f, 0.0f, 7.0f, 1.0f, this, tr( "Left output level" ) ),
|
||||
m_ch1So1Model( true, this, tr( "Channel 1 to SO2 (Left)" ) ),
|
||||
m_ch2So1Model( true, this, tr( "Channel 2 to SO2 (Left)" ) ),
|
||||
m_ch3So1Model( true, this, tr( "Channel 3 to SO2 (Left)" ) ),
|
||||
@@ -464,102 +464,85 @@ FreeBoyInstrumentView::FreeBoyInstrumentView( Instrument * _instrument,
|
||||
setPalette( pal );
|
||||
|
||||
m_ch1SweepTimeKnob = new FreeBoyKnob( this );
|
||||
m_ch1SweepTimeKnob->setHintText( tr( "Sweep Time:" ), "" );
|
||||
m_ch1SweepTimeKnob->setHintText( tr( "Sweep time:" ), "" );
|
||||
m_ch1SweepTimeKnob->move( 5 + 4*32, 106 );
|
||||
ToolTip::add( m_ch1SweepTimeKnob, tr( "Sweep Time" ) );
|
||||
m_ch1SweepTimeKnob->setWhatsThis( tr( "The amount of increase or"
|
||||
" decrease in frequency" ) );
|
||||
ToolTip::add( m_ch1SweepTimeKnob, tr( "Sweep time" ) );
|
||||
|
||||
m_ch1SweepRtShiftKnob = new FreeBoyKnob( this );
|
||||
m_ch1SweepRtShiftKnob->setHintText( tr( "Sweep RtShift amount:" )
|
||||
m_ch1SweepRtShiftKnob->setHintText( tr( "Sweep rate shift amount:" )
|
||||
, "" );
|
||||
m_ch1SweepRtShiftKnob->move( 5 + 3*32, 106 );
|
||||
ToolTip::add( m_ch1SweepRtShiftKnob, tr( "Sweep RtShift amount" ) );
|
||||
m_ch1SweepRtShiftKnob->setWhatsThis( tr( "The rate at which increase or"
|
||||
" decrease in frequency occurs" ) );
|
||||
ToolTip::add( m_ch1SweepRtShiftKnob, tr( "Sweep rate shift amount" ) );
|
||||
|
||||
m_ch1WavePatternDutyKnob = new FreeBoyKnob( this );
|
||||
m_ch1WavePatternDutyKnob->setHintText( tr( "Wave pattern duty:" )
|
||||
m_ch1WavePatternDutyKnob->setHintText( tr( "Wave pattern duty cycle:" )
|
||||
, "" );
|
||||
m_ch1WavePatternDutyKnob->move( 5 + 2*32, 106 );
|
||||
ToolTip::add( m_ch1WavePatternDutyKnob, tr( "Wave Pattern Duty" ) );
|
||||
m_ch1WavePatternDutyKnob->setWhatsThis( tr( "The duty cycle is the ratio of"
|
||||
" the duration (time) that a signal is ON"
|
||||
" versus the total period of the signal." ) );
|
||||
ToolTip::add( m_ch1WavePatternDutyKnob, tr( "Wave pattern duty cycle" ) );
|
||||
|
||||
m_ch1VolumeKnob = new FreeBoyKnob( this );
|
||||
m_ch1VolumeKnob->setHintText( tr( "Square Channel 1 Volume:" )
|
||||
m_ch1VolumeKnob->setHintText( tr( "Square channel 1 volume:" )
|
||||
, "" );
|
||||
m_ch1VolumeKnob->move( 5, 106 );
|
||||
ToolTip::add( m_ch1VolumeKnob, tr( "Square Channel 1 Volume:" ) );
|
||||
m_ch1VolumeKnob->setWhatsThis( tr( "Square Channel 1 Volume" ) );
|
||||
ToolTip::add( m_ch1VolumeKnob, tr( "Square channel 1 volume" ) );
|
||||
|
||||
m_ch1SweepStepLengthKnob = new FreeBoyKnob( this );
|
||||
m_ch1SweepStepLengthKnob->setHintText( tr( "Length of each step in sweep:" )
|
||||
, "" );
|
||||
m_ch1SweepStepLengthKnob->move( 5 + 32, 106 );
|
||||
ToolTip::add( m_ch1SweepStepLengthKnob, tr( "Length of each step in sweep" ) );
|
||||
m_ch1SweepStepLengthKnob->setWhatsThis( tr( "The delay between step change" ) );
|
||||
|
||||
|
||||
|
||||
m_ch2WavePatternDutyKnob = new FreeBoyKnob( this );
|
||||
m_ch2WavePatternDutyKnob->setHintText( tr( "Wave pattern duty:" )
|
||||
m_ch2WavePatternDutyKnob->setHintText( tr( "Wave pattern duty cycle:" )
|
||||
, "" );
|
||||
m_ch2WavePatternDutyKnob->move( 5 + 2*32, 155 );
|
||||
ToolTip::add( m_ch2WavePatternDutyKnob, tr( "Wave pattern duty" ) );
|
||||
m_ch2WavePatternDutyKnob->setWhatsThis( tr( "The duty cycle is the ratio of"
|
||||
" the duration (time) that a signal is ON"
|
||||
" versus the total period of the signal." ) );
|
||||
ToolTip::add( m_ch2WavePatternDutyKnob, tr( "Wave pattern duty cycle" ) );
|
||||
|
||||
m_ch2VolumeKnob = new FreeBoyKnob( this );
|
||||
m_ch2VolumeKnob->setHintText( tr( "Square Channel 2 Volume:" )
|
||||
m_ch2VolumeKnob->setHintText( tr( "Square channel 2 volume:" )
|
||||
, "" );
|
||||
m_ch2VolumeKnob->move( 5, 155 );
|
||||
ToolTip::add( m_ch2VolumeKnob, tr( "Square Channel 2 Volume" ) );
|
||||
m_ch2VolumeKnob->setWhatsThis( tr( "Square Channel 2 Volume" ) );
|
||||
ToolTip::add( m_ch2VolumeKnob, tr( "Square channel 2 volume" ) );
|
||||
|
||||
m_ch2SweepStepLengthKnob = new FreeBoyKnob( this );
|
||||
m_ch2SweepStepLengthKnob->setHintText( tr( "Length of each step in sweep:" )
|
||||
, "" );
|
||||
m_ch2SweepStepLengthKnob->move( 5 + 32, 155 );
|
||||
ToolTip::add( m_ch2SweepStepLengthKnob, tr( "Length of each step in sweep" ) );
|
||||
m_ch2SweepStepLengthKnob->setWhatsThis( tr( "The delay between step change" ) );
|
||||
|
||||
|
||||
|
||||
m_ch3VolumeKnob = new FreeBoyKnob( this );
|
||||
m_ch3VolumeKnob->setHintText( tr( "Wave Channel Volume:" ), "" );
|
||||
m_ch3VolumeKnob->setHintText( tr( "Wave pattern channel volume:" ), "" );
|
||||
m_ch3VolumeKnob->move( 5, 204 );
|
||||
ToolTip::add( m_ch3VolumeKnob, tr( "Wave Channel Volume" ) );
|
||||
m_ch3VolumeKnob->setWhatsThis( tr( "Wave Channel Volume" ) );
|
||||
ToolTip::add( m_ch3VolumeKnob, tr( "Wave pattern channel volume" ) );
|
||||
|
||||
|
||||
|
||||
m_ch4VolumeKnob = new FreeBoyKnob( this );
|
||||
m_ch4VolumeKnob->setHintText( tr( "Noise Channel Volume:" ), "" );
|
||||
m_ch4VolumeKnob->setHintText( tr( "Noise channel volume:" ), "" );
|
||||
m_ch4VolumeKnob->move( 144, 155 );
|
||||
ToolTip::add( m_ch4VolumeKnob, tr( "Noise Channel Volume" ) );
|
||||
m_ch4VolumeKnob->setWhatsThis( tr( "Noise Channel Volume" ) );
|
||||
ToolTip::add( m_ch4VolumeKnob, tr( "Noise channel volume" ) );
|
||||
|
||||
m_ch4SweepStepLengthKnob = new FreeBoyKnob( this );
|
||||
m_ch4SweepStepLengthKnob->setHintText( tr( "Length of each step in sweep:" )
|
||||
, "" );
|
||||
m_ch4SweepStepLengthKnob->move( 144 + 32, 155 );
|
||||
ToolTip::add( m_ch4SweepStepLengthKnob, tr( "Length of each step in sweep" ) );
|
||||
m_ch4SweepStepLengthKnob->setWhatsThis( tr( "The delay between step change" ) );
|
||||
|
||||
|
||||
|
||||
m_so1VolumeKnob = new FreeBoyKnob( this );
|
||||
m_so1VolumeKnob->setHintText( tr( "SO1 Volume (Right):" ), "" );
|
||||
m_so1VolumeKnob->setHintText( tr( "SO1 volume (Right):" ), "" );
|
||||
m_so1VolumeKnob->move( 5, 58 );
|
||||
ToolTip::add( m_so1VolumeKnob, tr( "SO1 Volume (Right)" ) );
|
||||
ToolTip::add( m_so1VolumeKnob, tr( "SO1 volume (Right)" ) );
|
||||
|
||||
m_so2VolumeKnob = new FreeBoyKnob( this );
|
||||
m_so2VolumeKnob->setHintText( tr( "SO2 Volume (Left):" ), "" );
|
||||
m_so2VolumeKnob->setHintText( tr( "SO2 volume (Left):" ), "" );
|
||||
m_so2VolumeKnob->move( 5 + 32, 58 );
|
||||
ToolTip::add( m_so2VolumeKnob, tr( "SO2 Volume (Left)" ) );
|
||||
ToolTip::add( m_so2VolumeKnob, tr( "SO2 volume (Left)" ) );
|
||||
|
||||
m_trebleKnob = new FreeBoyKnob( this );
|
||||
m_trebleKnob->setHintText( tr( "Treble:" ), "" );
|
||||
@@ -578,7 +561,7 @@ FreeBoyInstrumentView::FreeBoyInstrumentView( Instrument * _instrument,
|
||||
PLUGIN_NAME::getIconPixmap( "btn_down" ) );
|
||||
m_ch1SweepDirButton->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "btn_up" ) );
|
||||
ToolTip::add( m_ch1SweepDirButton, tr( "Sweep Direction" ) );
|
||||
ToolTip::add( m_ch1SweepDirButton, tr( "Sweep direction" ) );
|
||||
|
||||
m_ch1VolSweepDirButton = new PixmapButton( this, NULL );
|
||||
m_ch1VolSweepDirButton->setCheckable( true );
|
||||
@@ -587,32 +570,32 @@ FreeBoyInstrumentView::FreeBoyInstrumentView( Instrument * _instrument,
|
||||
PLUGIN_NAME::getIconPixmap( "btn_up" ) );
|
||||
m_ch1VolSweepDirButton->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "btn_down" ) );
|
||||
ToolTip::add( m_ch1VolSweepDirButton, tr( "Volume Sweep Direction" ) );
|
||||
ToolTip::add( m_ch1VolSweepDirButton, tr( "Volume sweep direction" ) );
|
||||
|
||||
|
||||
|
||||
m_ch2VolSweepDirButton = new PixmapButton( this,
|
||||
tr( "Volume Sweep Direction" ) );
|
||||
tr( "Volume sweep direction" ) );
|
||||
m_ch2VolSweepDirButton->setCheckable( true );
|
||||
m_ch2VolSweepDirButton->move( 102, 156 );
|
||||
m_ch2VolSweepDirButton->setActiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "btn_up" ) );
|
||||
m_ch2VolSweepDirButton->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "btn_down" ) );
|
||||
ToolTip::add( m_ch2VolSweepDirButton, tr( "Volume Sweep Direction" ) );
|
||||
ToolTip::add( m_ch2VolSweepDirButton, tr( "Volume sweep direction" ) );
|
||||
|
||||
//m_ch3OnButton = new PixmapButton( this, NULL );
|
||||
//m_ch3OnButton->move( 176, 53 );
|
||||
|
||||
m_ch4VolSweepDirButton = new PixmapButton( this,
|
||||
tr( "Volume Sweep Direction" ) );
|
||||
tr( "Volume sweep direction" ) );
|
||||
m_ch4VolSweepDirButton->setCheckable( true );
|
||||
m_ch4VolSweepDirButton->move( 207, 157 );
|
||||
m_ch4VolSweepDirButton->setActiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "btn_up" ) );
|
||||
m_ch4VolSweepDirButton->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "btn_down" ) );
|
||||
ToolTip::add( m_ch4VolSweepDirButton, tr( "Volume Sweep Direction" ) );
|
||||
ToolTip::add( m_ch4VolSweepDirButton, tr( "Volume sweep direction" ) );
|
||||
|
||||
m_ch4ShiftRegWidthButton = new PixmapButton( this, NULL );
|
||||
m_ch4ShiftRegWidthButton->setCheckable( true );
|
||||
@@ -621,7 +604,7 @@ FreeBoyInstrumentView::FreeBoyInstrumentView( Instrument * _instrument,
|
||||
PLUGIN_NAME::getIconPixmap( "btn_7" ) );
|
||||
m_ch4ShiftRegWidthButton->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "btn_15" ) );
|
||||
ToolTip::add( m_ch4ShiftRegWidthButton, tr( "Shift Register Width" ) );
|
||||
ToolTip::add( m_ch4ShiftRegWidthButton, tr( "Shift register width" ) );
|
||||
|
||||
|
||||
|
||||
@@ -631,21 +614,21 @@ FreeBoyInstrumentView::FreeBoyInstrumentView( Instrument * _instrument,
|
||||
m_ch1So1Button->move( 208, 51 );
|
||||
m_ch1So1Button->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "btn_on" ) );
|
||||
m_ch1So1Button->setInactiveGraphic( PLUGIN_NAME::getIconPixmap("btn_off") );
|
||||
ToolTip::add( m_ch1So1Button, tr( "Channel1 to SO1 (Right)" ) );
|
||||
ToolTip::add( m_ch1So1Button, tr( "Channel 1 to SO1 (Right)" ) );
|
||||
|
||||
m_ch2So1Button = new PixmapButton( this, NULL );
|
||||
m_ch2So1Button->setCheckable( true );
|
||||
m_ch2So1Button->move( 208, 51 + 12 );
|
||||
m_ch2So1Button->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "btn_on" ) );
|
||||
m_ch2So1Button->setInactiveGraphic( PLUGIN_NAME::getIconPixmap("btn_off") );
|
||||
ToolTip::add( m_ch2So1Button, tr( "Channel2 to SO1 (Right)" ) );
|
||||
ToolTip::add( m_ch2So1Button, tr( "Channel 2 to SO1 (Right)" ) );
|
||||
|
||||
m_ch3So1Button = new PixmapButton( this, NULL );
|
||||
m_ch3So1Button->setCheckable( true );
|
||||
m_ch3So1Button->move( 208, 51 + 2*12 );
|
||||
m_ch3So1Button->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "btn_on" ) );
|
||||
m_ch3So1Button->setInactiveGraphic( PLUGIN_NAME::getIconPixmap("btn_off") );
|
||||
ToolTip::add( m_ch3So1Button, tr( "Channel3 to SO1 (Right)" ) );
|
||||
ToolTip::add( m_ch3So1Button, tr( "Channel 3 to SO1 (Right)" ) );
|
||||
|
||||
m_ch4So1Button = new PixmapButton( this, NULL );
|
||||
m_ch4So1Button->setCheckable( true );
|
||||
@@ -653,28 +636,28 @@ FreeBoyInstrumentView::FreeBoyInstrumentView( Instrument * _instrument,
|
||||
m_ch4So1Button->move( 208, 51 + 3*12 );
|
||||
m_ch4So1Button->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "btn_on" ) );
|
||||
m_ch4So1Button->setInactiveGraphic( PLUGIN_NAME::getIconPixmap("btn_off") );
|
||||
ToolTip::add( m_ch4So1Button, tr( "Channel4 to SO1 (Right)" ) );
|
||||
ToolTip::add( m_ch4So1Button, tr( "Channel 4 to SO1 (Right)" ) );
|
||||
|
||||
m_ch1So2Button = new PixmapButton( this, NULL );
|
||||
m_ch1So2Button->setCheckable( true );
|
||||
m_ch1So2Button->move( 148, 51 );
|
||||
m_ch1So2Button->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "btn_on" ) );
|
||||
m_ch1So2Button->setInactiveGraphic( PLUGIN_NAME::getIconPixmap("btn_off") );
|
||||
ToolTip::add( m_ch1So2Button, tr( "Channel1 to SO2 (Left)" ) );
|
||||
ToolTip::add( m_ch1So2Button, tr( "Channel 1 to SO2 (Left)" ) );
|
||||
|
||||
m_ch2So2Button = new PixmapButton( this, NULL );
|
||||
m_ch2So2Button->setCheckable( true );
|
||||
m_ch2So2Button->move( 148, 51 + 12 );
|
||||
m_ch2So2Button->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "btn_on" ) );
|
||||
m_ch2So2Button->setInactiveGraphic( PLUGIN_NAME::getIconPixmap("btn_off") );
|
||||
ToolTip::add( m_ch2So2Button, tr( "Channel2 to SO2 (Left)" ) );
|
||||
ToolTip::add( m_ch2So2Button, tr( "Channel 2 to SO2 (Left)" ) );
|
||||
|
||||
m_ch3So2Button = new PixmapButton( this, NULL );
|
||||
m_ch3So2Button->setCheckable( true );
|
||||
m_ch3So2Button->move( 148, 51 + 2*12 );
|
||||
m_ch3So2Button->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "btn_on" ) );
|
||||
m_ch3So2Button->setInactiveGraphic( PLUGIN_NAME::getIconPixmap("btn_off") );
|
||||
ToolTip::add( m_ch3So2Button, tr( "Channel3 to SO2 (Left)" ) );
|
||||
ToolTip::add( m_ch3So2Button, tr( "Channel 3 to SO2 (Left)" ) );
|
||||
|
||||
m_ch4So2Button = new PixmapButton( this, NULL );
|
||||
m_ch4So2Button->setCheckable( true );
|
||||
@@ -682,7 +665,7 @@ FreeBoyInstrumentView::FreeBoyInstrumentView( Instrument * _instrument,
|
||||
m_ch4So2Button->move( 148, 51 + 3*12 );
|
||||
m_ch4So2Button->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "btn_on" ) );
|
||||
m_ch4So2Button->setInactiveGraphic( PLUGIN_NAME::getIconPixmap("btn_off") );
|
||||
ToolTip::add( m_ch4So2Button, tr( "Channel4 to SO2 (Left)" ) );
|
||||
ToolTip::add( m_ch4So2Button, tr( "Channel 4 to SO2 (Left)" ) );
|
||||
|
||||
|
||||
m_graph = new Graph( this );
|
||||
@@ -690,8 +673,7 @@ FreeBoyInstrumentView::FreeBoyInstrumentView( Instrument * _instrument,
|
||||
m_graph->setGraphColor( QColor(0x4E, 0x83, 0x2B) );
|
||||
m_graph->move( 37, 199 );
|
||||
m_graph->resize(208, 47);
|
||||
ToolTip::add( m_graph, tr( "Wave Pattern" ) );
|
||||
m_graph->setWhatsThis( tr( "Draw the wave here" ) );
|
||||
ToolTip::add( m_graph, tr( "Wave pattern graph" ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -938,9 +938,7 @@ GigInstrumentView::GigInstrumentView( Instrument * _instrument, QWidget * _paren
|
||||
|
||||
connect( m_fileDialogButton, SIGNAL( clicked() ), this, SLOT( showFileDialog() ) );
|
||||
|
||||
ToolTip::add( m_fileDialogButton, tr( "Open other GIG file" ) );
|
||||
|
||||
m_fileDialogButton->setWhatsThis( tr( "Click here to open another GIG file" ) );
|
||||
ToolTip::add( m_fileDialogButton, tr( "Open GIG file" ) );
|
||||
|
||||
// Patch Button
|
||||
m_patchDialogButton = new PixmapButton( this );
|
||||
@@ -952,9 +950,7 @@ GigInstrumentView::GigInstrumentView( Instrument * _instrument, QWidget * _paren
|
||||
|
||||
connect( m_patchDialogButton, SIGNAL( clicked() ), this, SLOT( showPatchDialog() ) );
|
||||
|
||||
ToolTip::add( m_patchDialogButton, tr( "Choose the patch" ) );
|
||||
|
||||
m_patchDialogButton->setWhatsThis( tr( "Click here to change which patch of the GIG file to use" ) );
|
||||
ToolTip::add( m_patchDialogButton, tr( "Choose patch" ) );
|
||||
|
||||
// LCDs
|
||||
m_bankNumLcd = new LcdSpinBox( 3, "21pink", this );
|
||||
@@ -963,23 +959,16 @@ GigInstrumentView::GigInstrumentView( Instrument * _instrument, QWidget * _paren
|
||||
m_patchNumLcd = new LcdSpinBox( 3, "21pink", this );
|
||||
m_patchNumLcd->move( 161, 150 );
|
||||
|
||||
m_bankNumLcd->setWhatsThis( tr( "Change which instrument of the GIG file is being played" ) );
|
||||
m_patchNumLcd->setWhatsThis( tr( "Change which instrument of the GIG file is being played" ) );
|
||||
|
||||
// Next row
|
||||
m_filenameLabel = new QLabel( this );
|
||||
m_filenameLabel->setGeometry( 61, 70, 156, 14 );
|
||||
m_patchLabel = new QLabel( this );
|
||||
m_patchLabel->setGeometry( 61, 94, 156, 14 );
|
||||
|
||||
m_filenameLabel->setWhatsThis( tr( "Which GIG file is currently being used" ) );
|
||||
m_patchLabel->setWhatsThis( tr( "Which patch of the GIG file is currently being used" ) );
|
||||
|
||||
// Gain
|
||||
m_gainKnob = new gigKnob( this );
|
||||
m_gainKnob->setHintText( tr( "Gain" ) + " ", "" );
|
||||
m_gainKnob->setHintText( tr( "Gain:" ) + " ", "" );
|
||||
m_gainKnob->move( 32, 140 );
|
||||
m_gainKnob->setWhatsThis( tr( "Factor to multiply samples by" ) );
|
||||
|
||||
setAutoFillBackground( true );
|
||||
QPalette pal;
|
||||
|
||||
@@ -88,17 +88,17 @@ MultitapEchoControlDialog::MultitapEchoControlDialog( MultitapEchoControls * con
|
||||
dryGain->move( 150, 245 );
|
||||
dryGain->setModel( & controls->m_dryGain );
|
||||
dryGain->setLabel( tr( "Dry" ) );
|
||||
dryGain->setHintText( tr( "Dry Gain:" ) , " dBFS" );
|
||||
dryGain->setHintText( tr( "Dry gain:" ) , " dBFS" );
|
||||
|
||||
Knob * stages = new Knob( knobBright_26, this );
|
||||
stages->move( 200, 245 );
|
||||
stages->setModel( & controls->m_stages );
|
||||
stages->setLabel( tr( "Stages" ) );
|
||||
stages->setHintText( tr( "Lowpass stages:" ) , "x" );
|
||||
stages->setHintText( tr( "Low-pass stages:" ) , "x" );
|
||||
// switch led
|
||||
|
||||
LedCheckBox * swapInputs = new LedCheckBox( "Swap inputs", this, tr( "Swap inputs" ), LedCheckBox::Green );
|
||||
swapInputs->move( 20, 275 );
|
||||
swapInputs->setModel( & controls->m_swapInputs );
|
||||
ToolTip::add( swapInputs, tr( "Swap left and right input channel for reflections" ) );
|
||||
ToolTip::add( swapInputs, tr( "Swap left and right input channels for reflections" ) );
|
||||
}
|
||||
|
||||
@@ -94,45 +94,45 @@ const unsigned int adlib_opadd[OPL2_VOICES] = {0x00, 0x01, 0x02, 0x08, 0x09, 0x0
|
||||
OpulenzInstrument::OpulenzInstrument( InstrumentTrack * _instrument_track ) :
|
||||
Instrument( _instrument_track, &opulenz_plugin_descriptor ),
|
||||
m_patchModel( 0, 0, 127, this, tr( "Patch" ) ),
|
||||
op1_a_mdl(14.0, 0.0, 15.0, 1.0, this, tr( "Op 1 Attack" ) ),
|
||||
op1_d_mdl(14.0, 0.0, 15.0, 1.0, this, tr( "Op 1 Decay" ) ),
|
||||
op1_s_mdl(3.0, 0.0, 15.0, 1.0, this, tr( "Op 1 Sustain" ) ),
|
||||
op1_r_mdl(10.0, 0.0, 15.0, 1.0, this, tr( "Op 1 Release" ) ),
|
||||
op1_lvl_mdl(62.0, 0.0, 63.0, 1.0, this, tr( "Op 1 Level" ) ),
|
||||
op1_scale_mdl(0.0, 0.0, 3.0, 1.0, this, tr( "Op 1 Level Scaling" ) ),
|
||||
op1_mul_mdl(0.0, 0.0, 15.0, 1.0, this, tr( "Op 1 Frequency Multiple" ) ),
|
||||
feedback_mdl(0.0, 0.0, 7.0, 1.0, this, tr( "Op 1 Feedback" ) ),
|
||||
op1_ksr_mdl(false, this, tr( "Op 1 Key Scaling Rate" ) ),
|
||||
op1_perc_mdl(false, this, tr( "Op 1 Percussive Envelope" ) ),
|
||||
op1_trem_mdl(true, this, tr( "Op 1 Tremolo" ) ),
|
||||
op1_vib_mdl(false, this, tr( "Op 1 Vibrato" ) ),
|
||||
op1_a_mdl(14.0, 0.0, 15.0, 1.0, this, tr( "Op 1 attack" ) ),
|
||||
op1_d_mdl(14.0, 0.0, 15.0, 1.0, this, tr( "Op 1 decay" ) ),
|
||||
op1_s_mdl(3.0, 0.0, 15.0, 1.0, this, tr( "Op 1 sustain" ) ),
|
||||
op1_r_mdl(10.0, 0.0, 15.0, 1.0, this, tr( "Op 1 release" ) ),
|
||||
op1_lvl_mdl(62.0, 0.0, 63.0, 1.0, this, tr( "Op 1 level" ) ),
|
||||
op1_scale_mdl(0.0, 0.0, 3.0, 1.0, this, tr( "Op 1 level scaling" ) ),
|
||||
op1_mul_mdl(0.0, 0.0, 15.0, 1.0, this, tr( "Op 1 frequency multiplier" ) ),
|
||||
feedback_mdl(0.0, 0.0, 7.0, 1.0, this, tr( "Op 1 feedback" ) ),
|
||||
op1_ksr_mdl(false, this, tr( "Op 1 key scaling rate" ) ),
|
||||
op1_perc_mdl(false, this, tr( "Op 1 percussive envelope" ) ),
|
||||
op1_trem_mdl(true, this, tr( "Op 1 tremolo" ) ),
|
||||
op1_vib_mdl(false, this, tr( "Op 1 vibrato" ) ),
|
||||
op1_w0_mdl( ),
|
||||
op1_w1_mdl( ),
|
||||
op1_w2_mdl( ),
|
||||
op1_w3_mdl( ),
|
||||
op1_waveform_mdl(0,0,3,this, tr( "Op 1 Waveform" ) ),
|
||||
op1_waveform_mdl(0,0,3,this, tr( "Op 1 waveform" ) ),
|
||||
|
||||
|
||||
op2_a_mdl(1.0, 0.0, 15.0, 1.0, this, tr( "Op 2 Attack" ) ),
|
||||
op2_d_mdl(3.0, 0.0, 15.0, 1.0, this, tr( "Op 2 Decay" ) ),
|
||||
op2_s_mdl(14.0, 0.0, 15.0, 1.0, this, tr( "Op 2 Sustain" ) ),
|
||||
op2_r_mdl(12.0, 0.0, 15.0, 1.0, this, tr( "Op 2 Release" ) ),
|
||||
op2_lvl_mdl(63.0, 0.0, 63.0, 1.0, this, tr( "Op 2 Level" ) ),
|
||||
op2_scale_mdl(0.0, 0.0, 3.0, 1.0, this, tr( "Op 2 Level Scaling" ) ),
|
||||
op2_mul_mdl(1.0, 0.0, 15.0, 1.0, this, tr( "Op 2 Frequency Multiple" ) ),
|
||||
op2_ksr_mdl(false, this, tr( "Op 2 Key Scaling Rate" ) ),
|
||||
op2_perc_mdl(false, this, tr( "Op 2 Percussive Envelope" ) ),
|
||||
op2_trem_mdl(false, this, tr( "Op 2 Tremolo" ) ),
|
||||
op2_vib_mdl(true, this, tr( "Op 2 Vibrato" ) ),
|
||||
op2_a_mdl(1.0, 0.0, 15.0, 1.0, this, tr( "Op 2 attack" ) ),
|
||||
op2_d_mdl(3.0, 0.0, 15.0, 1.0, this, tr( "Op 2 decay" ) ),
|
||||
op2_s_mdl(14.0, 0.0, 15.0, 1.0, this, tr( "Op 2 sustain" ) ),
|
||||
op2_r_mdl(12.0, 0.0, 15.0, 1.0, this, tr( "Op 2 release" ) ),
|
||||
op2_lvl_mdl(63.0, 0.0, 63.0, 1.0, this, tr( "Op 2 level" ) ),
|
||||
op2_scale_mdl(0.0, 0.0, 3.0, 1.0, this, tr( "Op 2 level scaling" ) ),
|
||||
op2_mul_mdl(1.0, 0.0, 15.0, 1.0, this, tr( "Op 2 frequency multiplier" ) ),
|
||||
op2_ksr_mdl(false, this, tr( "Op 2 key scaling rate" ) ),
|
||||
op2_perc_mdl(false, this, tr( "Op 2 percussive envelope" ) ),
|
||||
op2_trem_mdl(false, this, tr( "Op 2 tremolo" ) ),
|
||||
op2_vib_mdl(true, this, tr( "Op 2 vibrato" ) ),
|
||||
op2_w0_mdl( ),
|
||||
op2_w1_mdl( ),
|
||||
op2_w2_mdl( ),
|
||||
op2_w3_mdl( ),
|
||||
op2_waveform_mdl(0,0,3,this, tr( "Op 2 Waveform" ) ),
|
||||
op2_waveform_mdl(0,0,3,this, tr( "Op 2 waveform" ) ),
|
||||
|
||||
fm_mdl(true, this, tr( "FM" ) ),
|
||||
vib_depth_mdl(false, this, tr( "Vibrato Depth" ) ),
|
||||
trem_depth_mdl(false, this, tr( "Tremolo Depth" ) )
|
||||
vib_depth_mdl(false, this, tr( "Vibrato depth" ) ),
|
||||
trem_depth_mdl(false, this, tr( "Tremolo depth" ) )
|
||||
{
|
||||
|
||||
// Create an emulator - samplerate, 16 bit, mono
|
||||
|
||||
@@ -41,7 +41,7 @@ ReverbSCControlDialog::ReverbSCControlDialog( ReverbSCControls* controls ) :
|
||||
inputGainKnob -> move( 16, 10 );
|
||||
inputGainKnob->setModel( &controls->m_inputGainModel );
|
||||
inputGainKnob->setLabel( tr( "Input" ) );
|
||||
inputGainKnob->setHintText( tr( "Input Gain:" ) , "dB" );
|
||||
inputGainKnob->setHintText( tr( "Input gain:" ) , "dB" );
|
||||
|
||||
Knob * sizeKnob = new Knob( knobBright_26, this);
|
||||
sizeKnob -> move( 57, 10 );
|
||||
@@ -59,5 +59,5 @@ ReverbSCControlDialog::ReverbSCControlDialog( ReverbSCControls* controls ) :
|
||||
outputGainKnob -> move( 139, 10 );
|
||||
outputGainKnob->setModel( &controls->m_outputGainModel );
|
||||
outputGainKnob->setLabel( tr( "Output" ) );
|
||||
outputGainKnob->setHintText( tr( "Output Gain:" ) , "dB" );
|
||||
outputGainKnob->setHintText( tr( "Output gain:" ) , "dB" );
|
||||
}
|
||||
|
||||
@@ -33,10 +33,10 @@
|
||||
ReverbSCControls::ReverbSCControls( ReverbSCEffect* effect ) :
|
||||
EffectControls( effect ),
|
||||
m_effect( effect ),
|
||||
m_inputGainModel( 0.0f, -60.0f, 15, 0.1f, this, tr( "Input Gain" ) ),
|
||||
m_inputGainModel( 0.0f, -60.0f, 15, 0.1f, this, tr( "Input gain" ) ),
|
||||
m_sizeModel( 0.89f, 0.0f, 1.0f, 0.01f, this, tr( "Size" ) ),
|
||||
m_colorModel( 10000.0f, 100.0f, 15000.0f, 0.1f, this, tr( "Color" ) ),
|
||||
m_outputGainModel( 0.0f, -60.0f, 15, 0.1f, this, tr( "Output Gain" ) )
|
||||
m_outputGainModel( 0.0f, -60.0f, 15, 0.1f, this, tr( "Output gain" ) )
|
||||
{
|
||||
connect( Engine::mixer(), SIGNAL( sampleRateChanged() ), this, SLOT( changeSampleRate() ));
|
||||
}
|
||||
|
||||
@@ -105,10 +105,7 @@ VstEffectControlDialog::VstEffectControlDialog( VstEffectControls * _ctl ) :
|
||||
"controls" ) );
|
||||
connect( m_managePluginButton, SIGNAL( clicked() ), _ctl,
|
||||
SLOT( managePlugin() ) );
|
||||
ToolTip::add( m_managePluginButton, tr( "Control VST-plugin from LMMS host" ) );
|
||||
|
||||
m_managePluginButton->setWhatsThis(
|
||||
tr( "Click here, if you want to control VST-plugin from host." ) );
|
||||
ToolTip::add( m_managePluginButton, tr( "Control VST plugin from LMMS host" ) );
|
||||
|
||||
m_managePluginButton->setMinimumWidth( 26 );
|
||||
m_managePluginButton->setMaximumWidth( 26 );
|
||||
@@ -124,10 +121,7 @@ VstEffectControlDialog::VstEffectControlDialog( VstEffectControls * _ctl ) :
|
||||
"project_open" ) );
|
||||
connect( m_openPresetButton, SIGNAL( clicked() ), _ctl,
|
||||
SLOT( openPreset() ) );
|
||||
ToolTip::add( m_openPresetButton, tr( "Open VST-plugin preset" ) );
|
||||
|
||||
m_openPresetButton->setWhatsThis(
|
||||
tr( "Click here, if you want to open another *.fxp, *.fxb VST-plugin preset." ) );
|
||||
ToolTip::add( m_openPresetButton, tr( "Open VST plugin preset" ) );
|
||||
|
||||
m_openPresetButton->setMinimumWidth( 16 );
|
||||
m_openPresetButton->setMaximumWidth( 16 );
|
||||
@@ -151,9 +145,6 @@ VstEffectControlDialog::VstEffectControlDialog( VstEffectControls * _ctl ) :
|
||||
|
||||
m_rolLPresetButton->setShortcut( Qt::Key_Minus );
|
||||
|
||||
m_rolLPresetButton->setWhatsThis(
|
||||
tr( "Click here, if you want to switch to another VST-plugin preset program." ) );
|
||||
|
||||
m_rolLPresetButton->setMinimumWidth( 16 );
|
||||
m_rolLPresetButton->setMaximumWidth( 16 );
|
||||
m_rolLPresetButton->setMinimumHeight( 16 );
|
||||
@@ -176,9 +167,6 @@ VstEffectControlDialog::VstEffectControlDialog( VstEffectControls * _ctl ) :
|
||||
|
||||
m_rolRPresetButton->setShortcut( Qt::Key_Plus );
|
||||
|
||||
m_rolRPresetButton->setWhatsThis(
|
||||
tr( "Click here, if you want to switch to another VST-plugin preset program." ) );
|
||||
|
||||
m_rolRPresetButton->setMinimumWidth( 16 );
|
||||
m_rolRPresetButton->setMaximumWidth( 16 );
|
||||
m_rolRPresetButton->setMinimumHeight( 16 );
|
||||
@@ -189,8 +177,6 @@ VstEffectControlDialog::VstEffectControlDialog( VstEffectControls * _ctl ) :
|
||||
_ctl->m_selPresetButton->setCheckable( false );
|
||||
_ctl->m_selPresetButton->setCursor( Qt::PointingHandCursor );
|
||||
_ctl->m_selPresetButton->setIcon( embed::getIconPixmap( "stepper-down" ) );
|
||||
_ctl->m_selPresetButton->setWhatsThis(
|
||||
tr( "Click here to select presets that are currently loaded in VST." ) );
|
||||
|
||||
QMenu * menu = new QMenu;
|
||||
connect( menu, SIGNAL( aboutToShow() ), _ctl, SLOT( updateMenu() ) );
|
||||
@@ -213,9 +199,6 @@ VstEffectControlDialog::VstEffectControlDialog( VstEffectControls * _ctl ) :
|
||||
SLOT( savePreset() ) );
|
||||
ToolTip::add( m_savePresetButton, tr( "Save preset" ) );
|
||||
|
||||
m_savePresetButton->setWhatsThis(
|
||||
tr( "Click here, if you want to save current VST-plugin preset program." ) );
|
||||
|
||||
m_savePresetButton->setMinimumWidth( 21 );
|
||||
m_savePresetButton->setMaximumWidth( 21 );
|
||||
m_savePresetButton->setMinimumHeight( 21 );
|
||||
|
||||
@@ -313,19 +313,15 @@ manageVSTEffectView::manageVSTEffectView( VstEffect * _eff, VstEffectControls *
|
||||
l->setVerticalSpacing( 10 );
|
||||
l->setHorizontalSpacing( 23 );
|
||||
|
||||
m_syncButton = new QPushButton( tr( "VST Sync" ), widget );
|
||||
m_syncButton = new QPushButton( tr( "VST sync" ), widget );
|
||||
connect( m_syncButton, SIGNAL( clicked() ), this,
|
||||
SLOT( syncPlugin() ) );
|
||||
m_syncButton->setWhatsThis(
|
||||
tr( "Click here if you want to synchronize all parameters with VST plugin." ) );
|
||||
|
||||
l->addWidget( m_syncButton, 0, 0, 1, 2, Qt::AlignLeft );
|
||||
|
||||
m_displayAutomatedOnly = new QPushButton( tr( "Automated" ), widget );
|
||||
connect( m_displayAutomatedOnly, SIGNAL( clicked() ), this,
|
||||
SLOT( displayAutomatedOnly() ) );
|
||||
m_displayAutomatedOnly->setWhatsThis(
|
||||
tr( "Click here if you want to display automated parameters only." ) );
|
||||
|
||||
l->addWidget( m_displayAutomatedOnly, 0, 1, 1, 2, Qt::AlignLeft );
|
||||
|
||||
@@ -333,8 +329,6 @@ manageVSTEffectView::manageVSTEffectView( VstEffect * _eff, VstEffectControls *
|
||||
m_closeButton = new QPushButton( tr( " Close " ), widget );
|
||||
connect( m_closeButton, SIGNAL( clicked() ), this,
|
||||
SLOT( closeWindow() ) );
|
||||
m_closeButton->setWhatsThis(
|
||||
tr( "Close VST effect knob-controller window." ) );
|
||||
|
||||
l->addWidget( m_closeButton, 0, 2, 1, 7, Qt::AlignLeft );
|
||||
|
||||
|
||||
@@ -95,9 +95,9 @@ Xpressive::Xpressive(InstrumentTrack* instrument_track) :
|
||||
m_interpolateW1(false, this),
|
||||
m_interpolateW2(false, this),
|
||||
m_interpolateW3(false, this),
|
||||
m_panning1( 1, -1.0f, 1.0f, 0.01f, this, tr("PAN1")),
|
||||
m_panning2(-1, -1.0f, 1.0f, 0.01f, this, tr("PAN2")),
|
||||
m_relTransition(50.0f, 0.0f, 500.0f, 1.0f, this, tr("REL TRANS")),
|
||||
m_panning1( 1, -1.0f, 1.0f, 0.01f, this, tr("Panning 1")),
|
||||
m_panning2(-1, -1.0f, 1.0f, 0.01f, this, tr("Panning 2")),
|
||||
m_relTransition(50.0f, 0.0f, 500.0f, 1.0f, this, tr("Rel trans")),
|
||||
m_W1(GRAPH_LENGTH),
|
||||
m_W2(GRAPH_LENGTH),
|
||||
m_W3(GRAPH_LENGTH),
|
||||
@@ -296,8 +296,8 @@ XpressiveView::XpressiveView(Instrument * _instrument, QWidget * _parent) :
|
||||
m_graph->setGraphColor(QColor(255, 255, 255));
|
||||
m_graph->setEnabled(false);
|
||||
|
||||
/*ToolTip::add(m_graph, tr("Draw your own waveform here "
|
||||
"by dragging your mouse on this graph."));*/
|
||||
ToolTip::add(m_graph, tr("Draw your own waveform here "
|
||||
"by dragging your mouse on this graph."));
|
||||
|
||||
pal = QPalette();
|
||||
pal.setBrush(backgroundRole(), PLUGIN_NAME::getIconPixmap("wavegraph"));
|
||||
@@ -332,13 +332,13 @@ XpressiveView::XpressiveView(Instrument * _instrument, QWidget * _parent) :
|
||||
m_o1Btn->move(85, 111);
|
||||
m_o1Btn->setActiveGraphic(PLUGIN_NAME::getIconPixmap("o1_active"));
|
||||
m_o1Btn->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("o1_inactive"));
|
||||
ToolTip::add(m_o1Btn, tr("Select OUTPUT 1"));
|
||||
ToolTip::add(m_o1Btn, tr("Select output O1"));
|
||||
|
||||
m_o2Btn = new PixmapButton(this, NULL);
|
||||
m_o2Btn->move(107, 111);
|
||||
m_o2Btn->setActiveGraphic(PLUGIN_NAME::getIconPixmap("o2_active"));
|
||||
m_o2Btn->setInactiveGraphic(PLUGIN_NAME::getIconPixmap("o2_inactive"));
|
||||
ToolTip::add(m_o2Btn, tr("Select OUTPUT 2"));
|
||||
ToolTip::add(m_o2Btn, tr("Select output O2"));
|
||||
|
||||
m_helpBtn = new PixmapButton(this, NULL);
|
||||
m_helpBtn->move(139, 111);
|
||||
@@ -360,32 +360,32 @@ XpressiveView::XpressiveView(Instrument * _instrument, QWidget * _parent) :
|
||||
m_sinWaveBtn->move(10, ROW_WAVEBTN);
|
||||
m_sinWaveBtn->setActiveGraphic(embed::getIconPixmap("sin_wave_active"));
|
||||
m_sinWaveBtn->setInactiveGraphic(embed::getIconPixmap("sin_wave_inactive"));
|
||||
ToolTip::add(m_sinWaveBtn, tr("Click for a sine-wave."));
|
||||
ToolTip::add(m_sinWaveBtn, tr("Sine wave"));
|
||||
|
||||
m_moogWaveBtn = new PixmapButton(this, tr("Moog-Saw wave"));
|
||||
m_moogWaveBtn = new PixmapButton(this, tr("Moog-saw wave"));
|
||||
m_moogWaveBtn->move(10, ROW_WAVEBTN-14);
|
||||
m_moogWaveBtn->setActiveGraphic(
|
||||
embed::getIconPixmap( "moog_saw_wave_active" ) );
|
||||
m_moogWaveBtn->setInactiveGraphic(embed::getIconPixmap("moog_saw_wave_inactive"));
|
||||
ToolTip::add(m_moogWaveBtn, tr("Click for a Moog-Saw-wave."));
|
||||
ToolTip::add(m_moogWaveBtn, tr("Moog-saw wave"));
|
||||
|
||||
m_expWaveBtn = new PixmapButton(this, tr("Exponential wave"));
|
||||
m_expWaveBtn->move(10 +14, ROW_WAVEBTN-14);
|
||||
m_expWaveBtn->setActiveGraphic(embed::getIconPixmap( "exp_wave_active" ) );
|
||||
m_expWaveBtn->setInactiveGraphic(embed::getIconPixmap( "exp_wave_inactive" ) );
|
||||
ToolTip::add(m_expWaveBtn, tr("Click for an exponential wave."));
|
||||
ToolTip::add(m_expWaveBtn, tr("Exponential wave"));
|
||||
|
||||
m_sawWaveBtn = new PixmapButton(this, tr("Saw wave"));
|
||||
m_sawWaveBtn->move(10 + 14 * 2, ROW_WAVEBTN-14);
|
||||
m_sawWaveBtn->setActiveGraphic(embed::getIconPixmap("saw_wave_active"));
|
||||
m_sawWaveBtn->setInactiveGraphic(embed::getIconPixmap("saw_wave_inactive"));
|
||||
ToolTip::add(m_sawWaveBtn, tr("Click here for a saw-wave."));
|
||||
ToolTip::add(m_sawWaveBtn, tr("Saw wave"));
|
||||
|
||||
m_usrWaveBtn = new PixmapButton(this, tr("User defined wave"));
|
||||
m_usrWaveBtn = new PixmapButton(this, tr("User-defined wave"));
|
||||
m_usrWaveBtn->move(10 + 14 * 3, ROW_WAVEBTN-14);
|
||||
m_usrWaveBtn->setActiveGraphic(embed::getIconPixmap("usr_wave_active"));
|
||||
m_usrWaveBtn->setInactiveGraphic(embed::getIconPixmap("usr_wave_inactive"));
|
||||
ToolTip::add(m_usrWaveBtn, tr("Click here for a user-defined shape."));
|
||||
ToolTip::add(m_usrWaveBtn, tr("User-defined wave"));
|
||||
|
||||
m_triangleWaveBtn = new PixmapButton(this, tr("Triangle wave"));
|
||||
m_triangleWaveBtn->move(10 + 14, ROW_WAVEBTN);
|
||||
@@ -393,22 +393,22 @@ XpressiveView::XpressiveView(Instrument * _instrument, QWidget * _parent) :
|
||||
embed::getIconPixmap("triangle_wave_active"));
|
||||
m_triangleWaveBtn->setInactiveGraphic(
|
||||
embed::getIconPixmap("triangle_wave_inactive"));
|
||||
ToolTip::add(m_triangleWaveBtn, tr("Click here for a triangle-wave."));
|
||||
ToolTip::add(m_triangleWaveBtn, tr("Triangle wave"));
|
||||
|
||||
m_sqrWaveBtn = new PixmapButton(this, tr("Square wave"));
|
||||
m_sqrWaveBtn->move(10 + 14 * 2, ROW_WAVEBTN);
|
||||
m_sqrWaveBtn->setActiveGraphic(embed::getIconPixmap("square_wave_active"));
|
||||
m_sqrWaveBtn->setInactiveGraphic(
|
||||
embed::getIconPixmap("square_wave_inactive"));
|
||||
ToolTip::add(m_sqrWaveBtn, tr("Click here for a square-wave."));
|
||||
ToolTip::add(m_sqrWaveBtn, tr("Square wave"));
|
||||
|
||||
m_whiteNoiseWaveBtn = new PixmapButton(this, tr("White noise wave"));
|
||||
m_whiteNoiseWaveBtn = new PixmapButton(this, tr("White noise"));
|
||||
m_whiteNoiseWaveBtn->move(10 + 14 * 3, ROW_WAVEBTN);
|
||||
m_whiteNoiseWaveBtn->setActiveGraphic(
|
||||
embed::getIconPixmap("white_noise_wave_active"));
|
||||
m_whiteNoiseWaveBtn->setInactiveGraphic(
|
||||
embed::getIconPixmap("white_noise_wave_inactive"));
|
||||
ToolTip::add(m_whiteNoiseWaveBtn, tr("Click here for white-noise."));
|
||||
ToolTip::add(m_whiteNoiseWaveBtn, tr("White noise"));
|
||||
|
||||
|
||||
m_waveInterpolate = new LedCheckBox("Interpolate", this, tr("WaveInterpolate"),
|
||||
|
||||
@@ -466,14 +466,7 @@ AudioFileProcessorView::AudioFileProcessorView( Instrument * _instrument,
|
||||
"select_file" ) );
|
||||
connect( m_openAudioFileButton, SIGNAL( clicked() ),
|
||||
this, SLOT( openAudioFile() ) );
|
||||
ToolTip::add( m_openAudioFileButton, tr( "Open other sample" ) );
|
||||
|
||||
m_openAudioFileButton->setWhatsThis(
|
||||
tr( "Click here, if you want to open another audio-file. "
|
||||
"A dialog will appear where you can select your file. "
|
||||
"Settings like looping-mode, start and end-points, "
|
||||
"amplify-value, and so on are not reset. So, it may not "
|
||||
"sound like the original sample.") );
|
||||
ToolTip::add( m_openAudioFileButton, tr( "Open sample" ) );
|
||||
|
||||
m_reverseButton = new PixmapButton( this );
|
||||
m_reverseButton->setCheckable( true );
|
||||
@@ -483,10 +476,6 @@ AudioFileProcessorView::AudioFileProcessorView( Instrument * _instrument,
|
||||
m_reverseButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"reverse_off" ) );
|
||||
ToolTip::add( m_reverseButton, tr( "Reverse sample" ) );
|
||||
m_reverseButton->setWhatsThis(
|
||||
tr( "If you enable this button, the whole sample is reversed. "
|
||||
"This is useful for cool effects, e.g. a reversed "
|
||||
"crash." ) );
|
||||
|
||||
// loop button group
|
||||
|
||||
@@ -498,9 +487,6 @@ AudioFileProcessorView::AudioFileProcessorView( Instrument * _instrument,
|
||||
m_loopOffButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"loop_off_off" ) );
|
||||
ToolTip::add( m_loopOffButton, tr( "Disable loop" ) );
|
||||
m_loopOffButton->setWhatsThis(
|
||||
tr( "This button disables looping. "
|
||||
"The sample plays only once from start to end. " ) );
|
||||
|
||||
|
||||
PixmapButton * m_loopOnButton = new PixmapButton( this );
|
||||
@@ -511,9 +497,6 @@ AudioFileProcessorView::AudioFileProcessorView( Instrument * _instrument,
|
||||
m_loopOnButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"loop_on_off" ) );
|
||||
ToolTip::add( m_loopOnButton, tr( "Enable loop" ) );
|
||||
m_loopOnButton->setWhatsThis(
|
||||
tr( "This button enables forwards-looping. "
|
||||
"The sample loops between the end point and the loop point." ) );
|
||||
|
||||
PixmapButton * m_loopPingPongButton = new PixmapButton( this );
|
||||
m_loopPingPongButton->setCheckable( true );
|
||||
@@ -523,10 +506,6 @@ AudioFileProcessorView::AudioFileProcessorView( Instrument * _instrument,
|
||||
m_loopPingPongButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"loop_pingpong_off" ) );
|
||||
ToolTip::add( m_loopPingPongButton, tr( "Enable loop" ) );
|
||||
m_loopPingPongButton->setWhatsThis(
|
||||
tr( "This button enables ping-pong-looping. "
|
||||
"The sample loops backwards and forwards between the end point "
|
||||
"and the loop point." ) );
|
||||
|
||||
m_loopGroup = new automatableButtonGroup( this );
|
||||
m_loopGroup->addButton( m_loopOffButton );
|
||||
@@ -542,44 +521,23 @@ AudioFileProcessorView::AudioFileProcessorView( Instrument * _instrument,
|
||||
"stutter_off" ) );
|
||||
ToolTip::add( m_stutterButton,
|
||||
tr( "Continue sample playback across notes" ) );
|
||||
m_stutterButton->setWhatsThis(
|
||||
tr( "Enabling this option makes the sample continue playing "
|
||||
"across different notes - if you change pitch, or the note "
|
||||
"length stops before the end of the sample, then the next "
|
||||
"note played will continue where it left off. To reset the "
|
||||
"playback to the start of the sample, insert a note at the bottom "
|
||||
"of the keyboard (< 20 Hz)") );
|
||||
|
||||
m_ampKnob = new Knob( knobBright_26, this );
|
||||
m_ampKnob->setVolumeKnob( true );
|
||||
m_ampKnob->move( 5, 108 );
|
||||
m_ampKnob->setHintText( tr( "Amplify:" ), "%" );
|
||||
m_ampKnob->setWhatsThis(
|
||||
tr( "With this knob you can set the amplify ratio. When you "
|
||||
"set a value of 100% your sample isn't changed. "
|
||||
"Otherwise it will be amplified up or down (your "
|
||||
"actual sample-file isn't touched!)" ) );
|
||||
|
||||
m_startKnob = new AudioFileProcessorWaveView::knob( this );
|
||||
m_startKnob->move( 45, 108 );
|
||||
m_startKnob->setHintText( tr( "Startpoint:" ), "" );
|
||||
m_startKnob->setWhatsThis(
|
||||
tr( "With this knob you can set the point where "
|
||||
"AudioFileProcessor should begin playing your sample. " ) );
|
||||
m_startKnob->setHintText( tr( "Start point:" ), "" );
|
||||
|
||||
m_endKnob = new AudioFileProcessorWaveView::knob( this );
|
||||
m_endKnob->move( 125, 108 );
|
||||
m_endKnob->setHintText( tr( "Endpoint:" ), "" );
|
||||
m_endKnob->setWhatsThis(
|
||||
tr( "With this knob you can set the point where "
|
||||
"AudioFileProcessor should stop playing your sample. " ) );
|
||||
m_endKnob->setHintText( tr( "End point:" ), "" );
|
||||
|
||||
m_loopKnob = new AudioFileProcessorWaveView::knob( this );
|
||||
m_loopKnob->move( 85, 108 );
|
||||
m_loopKnob->setHintText( tr( "Loopback point:" ), "" );
|
||||
m_loopKnob->setWhatsThis(
|
||||
tr( "With this knob you can set the point where "
|
||||
"the loop starts. " ) );
|
||||
|
||||
// interpolation selector
|
||||
m_interpBox = new ComboBox( this );
|
||||
|
||||
@@ -138,7 +138,7 @@ sample_t bSynth::nextStringSample()
|
||||
|
||||
bitInvader::bitInvader( InstrumentTrack * _instrument_track ) :
|
||||
Instrument( _instrument_track, &bitinvader_plugin_descriptor ),
|
||||
m_sampleLength( 128, 4, 200, 1, this, tr( "Samplelength" ) ),
|
||||
m_sampleLength( 128, 4, 200, 1, this, tr( "Sample length" ) ),
|
||||
m_graph( -1.0f, 1.0f, 128, this ),
|
||||
m_interpolation( false, this ),
|
||||
m_normalize( false, this )
|
||||
@@ -336,7 +336,7 @@ bitInvaderView::bitInvaderView( Instrument * _instrument,
|
||||
|
||||
m_sampleLengthKnob = new Knob( knobDark_28, this );
|
||||
m_sampleLengthKnob->move( 6, 201 );
|
||||
m_sampleLengthKnob->setHintText( tr( "Sample Length" ), "" );
|
||||
m_sampleLengthKnob->setHintText( tr( "Sample length" ), "" );
|
||||
|
||||
m_graph = new Graph( this, Graph::NearestStyle, 204, 134 );
|
||||
m_graph->move(23,59); // 55,120 - 2px border
|
||||
@@ -361,7 +361,7 @@ bitInvaderView::bitInvaderView( Instrument * _instrument,
|
||||
m_sinWaveBtn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"sin_wave_inactive" ) );
|
||||
ToolTip::add( m_sinWaveBtn,
|
||||
tr( "Click for a sine-wave." ) );
|
||||
tr( "Sine wave" ) );
|
||||
|
||||
m_triangleWaveBtn = new PixmapButton( this, tr( "Triangle wave" ) );
|
||||
m_triangleWaveBtn->move( 131 + 14, 205 );
|
||||
@@ -370,7 +370,7 @@ bitInvaderView::bitInvaderView( Instrument * _instrument,
|
||||
m_triangleWaveBtn->setInactiveGraphic(
|
||||
embed::getIconPixmap( "triangle_wave_inactive" ) );
|
||||
ToolTip::add( m_triangleWaveBtn,
|
||||
tr( "Click here for a triangle-wave." ) );
|
||||
tr( "Triangle wave" ) );
|
||||
|
||||
m_sawWaveBtn = new PixmapButton( this, tr( "Saw wave" ) );
|
||||
m_sawWaveBtn->move( 131 + 14*2, 205 );
|
||||
@@ -379,7 +379,7 @@ bitInvaderView::bitInvaderView( Instrument * _instrument,
|
||||
m_sawWaveBtn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"saw_wave_inactive" ) );
|
||||
ToolTip::add( m_sawWaveBtn,
|
||||
tr( "Click here for a saw-wave." ) );
|
||||
tr( "Saw wave" ) );
|
||||
|
||||
m_sqrWaveBtn = new PixmapButton( this, tr( "Square wave" ) );
|
||||
m_sqrWaveBtn->move( 131 + 14*3, 205 );
|
||||
@@ -388,35 +388,35 @@ bitInvaderView::bitInvaderView( Instrument * _instrument,
|
||||
m_sqrWaveBtn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"square_wave_inactive" ) );
|
||||
ToolTip::add( m_sqrWaveBtn,
|
||||
tr( "Click here for a square-wave." ) );
|
||||
tr( "Square wave" ) );
|
||||
|
||||
m_whiteNoiseWaveBtn = new PixmapButton( this,
|
||||
tr( "White noise wave" ) );
|
||||
tr( "White noise" ) );
|
||||
m_whiteNoiseWaveBtn->move( 131 + 14*4, 205 );
|
||||
m_whiteNoiseWaveBtn->setActiveGraphic(
|
||||
embed::getIconPixmap( "white_noise_wave_active" ) );
|
||||
m_whiteNoiseWaveBtn->setInactiveGraphic(
|
||||
embed::getIconPixmap( "white_noise_wave_inactive" ) );
|
||||
ToolTip::add( m_whiteNoiseWaveBtn,
|
||||
tr( "Click here for white-noise." ) );
|
||||
tr( "White noise" ) );
|
||||
|
||||
m_usrWaveBtn = new PixmapButton( this, tr( "User defined wave" ) );
|
||||
m_usrWaveBtn = new PixmapButton( this, tr( "User-defined wave" ) );
|
||||
m_usrWaveBtn->move( 131 + 14*5, 205 );
|
||||
m_usrWaveBtn->setActiveGraphic( embed::getIconPixmap(
|
||||
"usr_wave_active" ) );
|
||||
m_usrWaveBtn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"usr_wave_inactive" ) );
|
||||
ToolTip::add( m_usrWaveBtn,
|
||||
tr( "Click here for a user-defined shape." ) );
|
||||
tr( "User-defined wave" ) );
|
||||
|
||||
m_smoothBtn = new PixmapButton( this, tr( "Smooth" ) );
|
||||
m_smoothBtn = new PixmapButton( this, tr( "Smooth waveform" ) );
|
||||
m_smoothBtn->move( 131 + 14*6, 205 );
|
||||
m_smoothBtn->setActiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"smooth_active" ) );
|
||||
m_smoothBtn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"smooth_inactive" ) );
|
||||
ToolTip::add( m_smoothBtn,
|
||||
tr( "Click here to smooth waveform." ) );
|
||||
tr( "Smooth waveform" ) );
|
||||
|
||||
|
||||
m_interpolationToggle = new LedCheckBox( "Interpolation", this,
|
||||
|
||||
@@ -492,9 +492,6 @@ CarlaInstrumentView::CarlaInstrumentView(CarlaInstrument* const instrument, QWid
|
||||
m_toggleUIButton->setFont( pointSize<8>( m_toggleUIButton->font() ) );
|
||||
connect( m_toggleUIButton, SIGNAL( clicked(bool) ), this, SLOT( toggleUI( bool ) ) );
|
||||
|
||||
m_toggleUIButton->setWhatsThis(
|
||||
tr( "Click here to show or hide the graphical user interface (GUI) of Carla." ) );
|
||||
|
||||
l->addWidget( m_toggleUIButton );
|
||||
l->addStretch();
|
||||
|
||||
|
||||
@@ -85,52 +85,52 @@ dynProcControlDialog::dynProcControlDialog(
|
||||
releaseKnob->setLabel( tr( "RELEASE" ) );
|
||||
releaseKnob->setHintText( tr( "Peak release time:" ) , "ms" );
|
||||
|
||||
//waveform control buttons
|
||||
//wavegraph control buttons
|
||||
|
||||
PixmapButton * resetButton = new PixmapButton( this, tr("Reset waveform") );
|
||||
PixmapButton * resetButton = new PixmapButton( this, tr("Reset wavegraph") );
|
||||
resetButton -> move( 162, 223 );
|
||||
resetButton -> resize( 13, 48 );
|
||||
resetButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "reset_active" ) );
|
||||
resetButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "reset_inactive" ) );
|
||||
ToolTip::add( resetButton, tr( "Click here to reset the wavegraph back to default" ) );
|
||||
ToolTip::add( resetButton, tr( "Reset wavegraph" ) );
|
||||
|
||||
PixmapButton * smoothButton = new PixmapButton( this, tr("Smooth waveform") );
|
||||
PixmapButton * smoothButton = new PixmapButton( this, tr("Smooth wavegraph") );
|
||||
smoothButton -> move( 162, 239 );
|
||||
smoothButton -> resize( 13, 48 );
|
||||
smoothButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_active" ) );
|
||||
smoothButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_inactive" ) );
|
||||
ToolTip::add( smoothButton, tr( "Click here to apply smoothing to wavegraph" ) );
|
||||
ToolTip::add( smoothButton, tr( "Smooth wavegraph" ) );
|
||||
|
||||
PixmapButton * addOneButton = new PixmapButton( this, tr("Increase wavegraph amplitude by 1dB") );
|
||||
PixmapButton * addOneButton = new PixmapButton( this, tr("Increase wavegraph amplitude by 1 dB") );
|
||||
addOneButton -> move( 131, 223 );
|
||||
addOneButton -> resize( 13, 29 );
|
||||
addOneButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "add1_active" ) );
|
||||
addOneButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "add1_inactive" ) );
|
||||
ToolTip::add( addOneButton, tr( "Click here to increase wavegraph amplitude by 1dB" ) );
|
||||
ToolTip::add( addOneButton, tr( "Increase wavegraph amplitude by 1 dB" ) );
|
||||
|
||||
PixmapButton * subOneButton = new PixmapButton( this, tr("Decrease wavegraph amplitude by 1dB") );
|
||||
PixmapButton * subOneButton = new PixmapButton( this, tr("Decrease wavegraph amplitude by 1 dB") );
|
||||
subOneButton -> move( 131, 239 );
|
||||
subOneButton -> resize( 13, 29 );
|
||||
subOneButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "sub1_active" ) );
|
||||
subOneButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "sub1_inactive" ) );
|
||||
ToolTip::add( subOneButton, tr( "Click here to decrease wavegraph amplitude by 1dB" ) );
|
||||
ToolTip::add( subOneButton, tr( "Decrease wavegraph amplitude by 1 dB" ) );
|
||||
|
||||
//stereomode switches
|
||||
PixmapButton * smMaxButton = new PixmapButton( this, tr( "Stereomode Maximum" ) );
|
||||
PixmapButton * smMaxButton = new PixmapButton( this, tr( "Stereo mode: maximum" ) );
|
||||
smMaxButton -> move( 131, 257 );
|
||||
smMaxButton -> resize( 78, 17 );
|
||||
smMaxButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "max_active" ) );
|
||||
smMaxButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "max_inactive" ) );
|
||||
ToolTip::add( smMaxButton, tr( "Process based on the maximum of both stereo channels" ) );
|
||||
|
||||
PixmapButton * smAvgButton = new PixmapButton( this, tr( "Stereomode Average" ) );
|
||||
PixmapButton * smAvgButton = new PixmapButton( this, tr( "Stereo mode: average" ) );
|
||||
smAvgButton -> move( 131, 274 );
|
||||
smAvgButton -> resize( 78, 16 );
|
||||
smAvgButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "avg_active" ) );
|
||||
smAvgButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "avg_inactive" ) );
|
||||
ToolTip::add( smAvgButton, tr( "Process based on the average of both stereo channels" ) );
|
||||
|
||||
PixmapButton * smUnlButton = new PixmapButton( this, tr( "Stereomode Unlinked" ) );
|
||||
PixmapButton * smUnlButton = new PixmapButton( this, tr( "Stereo mode: unlinked" ) );
|
||||
smUnlButton -> move( 131, 290 );
|
||||
smUnlButton -> resize( 78, 17 );
|
||||
smUnlButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "unl_active" ) );
|
||||
|
||||
@@ -63,13 +63,13 @@ kickerInstrument::kickerInstrument( InstrumentTrack * _instrument_track ) :
|
||||
m_startFreqModel( 150.0f, 5.0f, 1000.0f, 1.0f, this, tr( "Start frequency" ) ),
|
||||
m_endFreqModel( 40.0f, 5.0f, 1000.0f, 1.0f, this, tr( "End frequency" ) ),
|
||||
m_decayModel( 440.0f, 5.0f, 5000.0f, 1.0f, 5000.0f, this, tr( "Length" ) ),
|
||||
m_distModel( 0.8f, 0.0f, 100.0f, 0.1f, this, tr( "Distortion Start" ) ),
|
||||
m_distEndModel( 0.8f, 0.0f, 100.0f, 0.1f, this, tr( "Distortion End" ) ),
|
||||
m_distModel( 0.8f, 0.0f, 100.0f, 0.1f, this, tr( "Start distortion" ) ),
|
||||
m_distEndModel( 0.8f, 0.0f, 100.0f, 0.1f, this, tr( "End distortion" ) ),
|
||||
m_gainModel( 1.0f, 0.1f, 5.0f, 0.05f, this, tr( "Gain" ) ),
|
||||
m_envModel( 0.163f, 0.01f, 1.0f, 0.001f, this, tr( "Envelope Slope" ) ),
|
||||
m_envModel( 0.163f, 0.01f, 1.0f, 0.001f, this, tr( "Envelope slope" ) ),
|
||||
m_noiseModel( 0.0f, 0.0f, 1.0f, 0.01f, this, tr( "Noise" ) ),
|
||||
m_clickModel( 0.4f, 0.0f, 1.0f, 0.05f, this, tr( "Click" ) ),
|
||||
m_slopeModel( 0.06f, 0.001f, 1.0f, 0.001f, this, tr( "Frequency Slope" ) ),
|
||||
m_slopeModel( 0.06f, 0.001f, 1.0f, 0.001f, this, tr( "Frequency slope" ) ),
|
||||
m_startNoteModel( true, this, tr( "Start from note" ) ),
|
||||
m_endNoteModel( false, this, tr( "End to note" ) ),
|
||||
m_versionModel( KICKER_PRESET_VERSION, 0, KICKER_PRESET_VERSION, this, "" )
|
||||
@@ -289,7 +289,7 @@ kickerInstrumentView::kickerInstrumentView( Instrument * _instrument,
|
||||
m_endFreqKnob->move( END_COL, ROW1 );
|
||||
|
||||
m_slopeKnob = new kickerKnob( this );
|
||||
m_slopeKnob->setHintText( tr( "Frequency Slope:" ), "" );
|
||||
m_slopeKnob->setHintText( tr( "Frequency slope:" ), "" );
|
||||
m_slopeKnob->move( COL3, ROW1 );
|
||||
|
||||
m_gainKnob = new kickerKnob( this );
|
||||
@@ -297,11 +297,11 @@ kickerInstrumentView::kickerInstrumentView( Instrument * _instrument,
|
||||
m_gainKnob->move( COL1, ROW3 );
|
||||
|
||||
m_decayKnob = new kickerEnvKnob( this );
|
||||
m_decayKnob->setHintText( tr( "Envelope Length:" ), "ms" );
|
||||
m_decayKnob->setHintText( tr( "Envelope length:" ), "ms" );
|
||||
m_decayKnob->move( COL2, ROW3 );
|
||||
|
||||
m_envKnob = new kickerKnob( this );
|
||||
m_envKnob->setHintText( tr( "Envelope Slope:" ), "" );
|
||||
m_envKnob->setHintText( tr( "Envelope slope:" ), "" );
|
||||
m_envKnob->move( COL3, ROW3 );
|
||||
|
||||
m_clickKnob = new kickerKnob( this );
|
||||
@@ -313,11 +313,11 @@ kickerInstrumentView::kickerInstrumentView( Instrument * _instrument,
|
||||
m_noiseKnob->move( COL5, ROW3 );
|
||||
|
||||
m_distKnob = new kickerKnob( this );
|
||||
m_distKnob->setHintText( tr( "Distortion Start:" ), "" );
|
||||
m_distKnob->setHintText( tr( "Start distortion:" ), "" );
|
||||
m_distKnob->move( COL4, ROW2 );
|
||||
|
||||
m_distEndKnob = new kickerKnob( this );
|
||||
m_distEndKnob->setHintText( tr( "Distortion End:" ), "" );
|
||||
m_distEndKnob->setHintText( tr( "End distortion:" ), "" );
|
||||
m_distEndKnob->move( COL5, ROW2 );
|
||||
|
||||
m_startNoteToggle = new LedCheckBox( "", this, "", LedCheckBox::Green );
|
||||
|
||||
@@ -145,33 +145,6 @@ ladspaBrowserView::ladspaBrowserView( ToolPlugin * _tool ) :
|
||||
hlayout->addSpacing( 10 );
|
||||
hlayout->addStretch();
|
||||
|
||||
setWhatsThis( tr(
|
||||
"This dialog displays information on all of the LADSPA plugins LMMS was "
|
||||
"able to locate. The plugins are divided into five categories based "
|
||||
"upon an interpretation of the port types and names.\n\n"
|
||||
|
||||
"Available Effects are those that can be used by LMMS. In order for LMMS "
|
||||
"to be able to use an effect, it must, first and foremost, be an effect, "
|
||||
"which is to say, it has to have both input channels and output channels. "
|
||||
"LMMS identifies an input channel as an audio rate port containing 'in' in "
|
||||
"the name. Output channels are identified by the letters 'out'. Furthermore, "
|
||||
"the effect must have the same number of inputs and outputs and be real time "
|
||||
"capable.\n\n"
|
||||
|
||||
"Unavailable Effects are those that were identified as effects, but either "
|
||||
"didn't have the same number of input and output channels or weren't real "
|
||||
"time capable.\n\n"
|
||||
|
||||
"Instruments are plugins for which only output channels were identified.\n\n"
|
||||
|
||||
"Analysis Tools are plugins for which only input channels were identified.\n\n"
|
||||
|
||||
"Don't Knows are plugins for which no input or output channels were "
|
||||
"identified.\n\n"
|
||||
|
||||
"Double clicking any of the plugins will bring up information on the "
|
||||
"ports." ) );
|
||||
|
||||
hide();
|
||||
if( parentWidget() )
|
||||
{
|
||||
|
||||
@@ -850,9 +850,9 @@ lb302SynthView::lb302SynthView( Instrument * _instrument, QWidget * _parent ) :
|
||||
m_deadToggle->move( 10, 200 );
|
||||
|
||||
m_db24Toggle = new LedCheckBox( "", this );
|
||||
m_db24Toggle->setWhatsThis(
|
||||
tr( "303-es-que, 24dB/octave, 3 pole filter" ) );
|
||||
m_db24Toggle->move( 10, 150);
|
||||
ToolTip::add( m_db24Toggle,
|
||||
tr( "303-es-que, 24dB/octave, 3 pole filter" ) );
|
||||
|
||||
|
||||
m_slideDecKnob = new Knob( knobBright_26, this );
|
||||
|
||||
@@ -828,120 +828,120 @@ inline sample_t MonstroSynth::calcSlope( int slope, sample_t s )
|
||||
MonstroInstrument::MonstroInstrument( InstrumentTrack * _instrument_track ) :
|
||||
Instrument( _instrument_track, &monstro_plugin_descriptor ),
|
||||
|
||||
m_osc1Vol( 33.0, 0.0, 200.0, 0.1, this, tr( "Osc 1 Volume" ) ),
|
||||
m_osc1Pan( 0.0, -100.0, 100.0, 0.1, this, tr( "Osc 1 Panning" ) ),
|
||||
m_osc1Crs( 0.0, -24.0, 24.0, 1.0, this, tr( "Osc 1 Coarse detune" ) ),
|
||||
m_osc1Ftl( 0.0, -100.0, 100.0, 1.0, this, tr( "Osc 1 Fine detune left" ) ),
|
||||
m_osc1Ftr( 0.0, -100.0, 100.0, 1.0, this, tr( "Osc 1 Fine detune right" ) ),
|
||||
m_osc1Spo( 0.0, -180.0, 180.0, 0.1, this, tr( "Osc 1 Stereo phase offset" ) ),
|
||||
m_osc1Pw( 50.0, PW_MIN, PW_MAX, 0.01, this, tr( "Osc 1 Pulse width" ) ),
|
||||
m_osc1SSR( false, this, tr( "Osc 1 Sync send on rise" ) ),
|
||||
m_osc1SSF( false, this, tr( "Osc 1 Sync send on fall" ) ),
|
||||
m_osc1Vol( 33.0, 0.0, 200.0, 0.1, this, tr( "Osc 1 volume" ) ),
|
||||
m_osc1Pan( 0.0, -100.0, 100.0, 0.1, this, tr( "Osc 1 panning" ) ),
|
||||
m_osc1Crs( 0.0, -24.0, 24.0, 1.0, this, tr( "Osc 1 coarse detune" ) ),
|
||||
m_osc1Ftl( 0.0, -100.0, 100.0, 1.0, this, tr( "Osc 1 fine detune left" ) ),
|
||||
m_osc1Ftr( 0.0, -100.0, 100.0, 1.0, this, tr( "Osc 1 fine detune right" ) ),
|
||||
m_osc1Spo( 0.0, -180.0, 180.0, 0.1, this, tr( "Osc 1 stereo phase offset" ) ),
|
||||
m_osc1Pw( 50.0, PW_MIN, PW_MAX, 0.01, this, tr( "Osc 1 pulse width" ) ),
|
||||
m_osc1SSR( false, this, tr( "Osc 1 sync send on rise" ) ),
|
||||
m_osc1SSF( false, this, tr( "Osc 1 sync send on fall" ) ),
|
||||
|
||||
m_osc2Vol( 33.0, 0.0, 200.0, 0.1, this, tr( "Osc 2 Volume" ) ),
|
||||
m_osc2Pan( 0.0, -100.0, 100.0, 0.1, this, tr( "Osc 2 Panning" ) ),
|
||||
m_osc2Crs( 0.0, -24.0, 24.0, 1.0, this, tr( "Osc 2 Coarse detune" ) ),
|
||||
m_osc2Ftl( 0.0, -100.0, 100.0, 1.0, this, tr( "Osc 2 Fine detune left" ) ),
|
||||
m_osc2Ftr( 0.0, -100.0, 100.0, 1.0, this, tr( "Osc 2 Fine detune right" ) ),
|
||||
m_osc2Spo( 0.0, -180.0, 180.0, 0.1, this, tr( "Osc 2 Stereo phase offset" ) ),
|
||||
m_osc2Wave( this, tr( "Osc 2 Waveform" ) ),
|
||||
m_osc2SyncH( false, this, tr( "Osc 2 Sync Hard" ) ),
|
||||
m_osc2SyncR( false, this, tr( "Osc 2 Sync Reverse" ) ),
|
||||
m_osc2Vol( 33.0, 0.0, 200.0, 0.1, this, tr( "Osc 2 volume" ) ),
|
||||
m_osc2Pan( 0.0, -100.0, 100.0, 0.1, this, tr( "Osc 2 panning" ) ),
|
||||
m_osc2Crs( 0.0, -24.0, 24.0, 1.0, this, tr( "Osc 2 coarse detune" ) ),
|
||||
m_osc2Ftl( 0.0, -100.0, 100.0, 1.0, this, tr( "Osc 2 fine detune left" ) ),
|
||||
m_osc2Ftr( 0.0, -100.0, 100.0, 1.0, this, tr( "Osc 2 fine detune right" ) ),
|
||||
m_osc2Spo( 0.0, -180.0, 180.0, 0.1, this, tr( "Osc 2 stereo phase offset" ) ),
|
||||
m_osc2Wave( this, tr( "Osc 2 waveform" ) ),
|
||||
m_osc2SyncH( false, this, tr( "Osc 2 sync hard" ) ),
|
||||
m_osc2SyncR( false, this, tr( "Osc 2 sync reverse" ) ),
|
||||
|
||||
m_osc3Vol( 33.0, 0.0, 200.0, 0.1, this, tr( "Osc 3 Volume" ) ),
|
||||
m_osc3Pan( 0.0, -100.0, 100.0, 0.1, this, tr( "Osc 3 Panning" ) ),
|
||||
m_osc3Crs( 0.0, -24.0, 24.0, 1.0, this, tr( "Osc 3 Coarse detune" ) ),
|
||||
m_osc3Vol( 33.0, 0.0, 200.0, 0.1, this, tr( "Osc 3 volume" ) ),
|
||||
m_osc3Pan( 0.0, -100.0, 100.0, 0.1, this, tr( "Osc 3 panning" ) ),
|
||||
m_osc3Crs( 0.0, -24.0, 24.0, 1.0, this, tr( "Osc 3 coarse detune" ) ),
|
||||
m_osc3Spo( 0.0, -180.0, 180.0, 0.1, this, tr( "Osc 3 Stereo phase offset" ) ),
|
||||
m_osc3Sub( 0.0, -100.0, 100.0, 0.1, this, tr( "Osc 3 Sub-oscillator mix" ) ),
|
||||
m_osc3Wave1( this, tr( "Osc 3 Waveform 1" ) ),
|
||||
m_osc3Wave2( this, tr( "Osc 3 Waveform 2" ) ),
|
||||
m_osc3SyncH( false, this, tr( "Osc 3 Sync Hard" ) ),
|
||||
m_osc3SyncR( false, this, tr( "Osc 3 Sync Reverse" ) ),
|
||||
m_osc3Sub( 0.0, -100.0, 100.0, 0.1, this, tr( "Osc 3 sub-oscillator mix" ) ),
|
||||
m_osc3Wave1( this, tr( "Osc 3 waveform 1" ) ),
|
||||
m_osc3Wave2( this, tr( "Osc 3 waveform 2" ) ),
|
||||
m_osc3SyncH( false, this, tr( "Osc 3 sync hard" ) ),
|
||||
m_osc3SyncR( false, this, tr( "Osc 3 Sync reverse" ) ),
|
||||
|
||||
m_lfo1Wave( this, tr( "LFO 1 Waveform" ) ),
|
||||
m_lfo1Att( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "LFO 1 Attack" ) ),
|
||||
m_lfo1Rate( 1.0f, 0.1, 10000.0, 0.1, 10000.0f, this, tr( "LFO 1 Rate" ) ),
|
||||
m_lfo1Phs( 0.0, -180.0, 180.0, 0.1, this, tr( "LFO 1 Phase" ) ),
|
||||
m_lfo1Wave( this, tr( "LFO 1 waveform" ) ),
|
||||
m_lfo1Att( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "LFO 1 attack" ) ),
|
||||
m_lfo1Rate( 1.0f, 0.1, 10000.0, 0.1, 10000.0f, this, tr( "LFO 1 rate" ) ),
|
||||
m_lfo1Phs( 0.0, -180.0, 180.0, 0.1, this, tr( "LFO 1 phase" ) ),
|
||||
|
||||
m_lfo2Wave( this, tr( "LFO 2 Waveform" ) ),
|
||||
m_lfo2Att( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "LFO 2 Attack" ) ),
|
||||
m_lfo2Rate( 1.0f, 0.1, 10000.0, 0.1, 10000.0f, this, tr( "LFO 2 Rate" ) ),
|
||||
m_lfo2Phs( 0.0, -180.0, 180.0, 0.1, this, tr( "LFO 2 Phase" ) ),
|
||||
m_lfo2Wave( this, tr( "LFO 2 waveform" ) ),
|
||||
m_lfo2Att( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "LFO 2 attack" ) ),
|
||||
m_lfo2Rate( 1.0f, 0.1, 10000.0, 0.1, 10000.0f, this, tr( "LFO 2 rate" ) ),
|
||||
m_lfo2Phs( 0.0, -180.0, 180.0, 0.1, this, tr( "LFO 2 phase" ) ),
|
||||
|
||||
m_env1Pre( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "Env 1 Pre-delay" ) ),
|
||||
m_env1Att( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "Env 1 Attack" ) ),
|
||||
m_env1Hold( 0.0f, 0.0f, 4000.0f, 1.0f, 4000.0f, this, tr( "Env 1 Hold" ) ),
|
||||
m_env1Dec( 0.0f, 0.0f, 4000.0f, 1.0f, 4000.0f, this, tr( "Env 1 Decay" ) ),
|
||||
m_env1Sus( 1.0f, 0.0f, 1.0f, 0.001f, this, tr( "Env 1 Sustain" ) ),
|
||||
m_env1Rel( 0.0f, 0.0f, 4000.0f, 1.0f, 4000.0f, this, tr( "Env 1 Release" ) ),
|
||||
m_env1Slope( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Env 1 Slope" ) ),
|
||||
m_env1Pre( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "Env 1 pre-delay" ) ),
|
||||
m_env1Att( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "Env 1 attack" ) ),
|
||||
m_env1Hold( 0.0f, 0.0f, 4000.0f, 1.0f, 4000.0f, this, tr( "Env 1 hold" ) ),
|
||||
m_env1Dec( 0.0f, 0.0f, 4000.0f, 1.0f, 4000.0f, this, tr( "Env 1 decay" ) ),
|
||||
m_env1Sus( 1.0f, 0.0f, 1.0f, 0.001f, this, tr( "Env 1 sustain" ) ),
|
||||
m_env1Rel( 0.0f, 0.0f, 4000.0f, 1.0f, 4000.0f, this, tr( "Env 1 release" ) ),
|
||||
m_env1Slope( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Env 1 slope" ) ),
|
||||
|
||||
m_env2Pre( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "Env 2 Pre-delay" ) ),
|
||||
m_env2Att( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "Env 2 Attack" ) ),
|
||||
m_env2Hold( 0.0f, 0.0f, 4000.0f, 1.0f, 4000.0f, this, tr( "Env 2 Hold" ) ),
|
||||
m_env2Dec( 0.0f, 0.0f, 4000.0f, 1.0f, 4000.0f, this, tr( "Env 2 Decay" ) ),
|
||||
m_env2Sus( 1.0f, 0.0f, 1.0f, 0.001f, this, tr( "Env 2 Sustain" ) ),
|
||||
m_env2Rel( 0.0f, 0.0f, 4000.0f, 1.0f, 4000.0f, this, tr( "Env 2 Release" ) ),
|
||||
m_env2Slope( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Env 2 Slope" ) ),
|
||||
m_env2Pre( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "Env 2 pre-delay" ) ),
|
||||
m_env2Att( 0.0f, 0.0f, 2000.0f, 1.0f, 2000.0f, this, tr( "Env 2 attack" ) ),
|
||||
m_env2Hold( 0.0f, 0.0f, 4000.0f, 1.0f, 4000.0f, this, tr( "Env 2 hold" ) ),
|
||||
m_env2Dec( 0.0f, 0.0f, 4000.0f, 1.0f, 4000.0f, this, tr( "Env 2 decay" ) ),
|
||||
m_env2Sus( 1.0f, 0.0f, 1.0f, 0.001f, this, tr( "Env 2 sustain" ) ),
|
||||
m_env2Rel( 0.0f, 0.0f, 4000.0f, 1.0f, 4000.0f, this, tr( "Env 2 release" ) ),
|
||||
m_env2Slope( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Env 2 slope" ) ),
|
||||
|
||||
m_o23Mod( 0, 0, NUM_MODS - 1, this, tr( "Osc2-3 modulation" ) ),
|
||||
m_o23Mod( 0, 0, NUM_MODS - 1, this, tr( "Osc 2+3 modulation" ) ),
|
||||
|
||||
m_selectedView( 0, 0, 1, this, tr( "Selected view" ) ),
|
||||
|
||||
m_vol1env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Vol1-Env1" ) ),
|
||||
m_vol1env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Vol1-Env2" ) ),
|
||||
m_vol1lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Vol1-LFO1" ) ),
|
||||
m_vol1lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Vol1-LFO2" ) ),
|
||||
m_vol1env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - Vol env 1" ) ),
|
||||
m_vol1env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - Vol env 2" ) ),
|
||||
m_vol1lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - Vol LFO 1" ) ),
|
||||
m_vol1lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - Vol LFO 2" ) ),
|
||||
|
||||
m_vol2env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Vol2-Env1" ) ),
|
||||
m_vol2env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Vol2-Env2" ) ),
|
||||
m_vol2lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Vol2-LFO1" ) ),
|
||||
m_vol2lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Vol2-LFO2" ) ),
|
||||
m_vol2env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 2 - Vol env 1" ) ),
|
||||
m_vol2env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 2 - Vol env 2" ) ),
|
||||
m_vol2lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 2 - Vol LFO 1" ) ),
|
||||
m_vol2lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 2 - Vol LFO 2" ) ),
|
||||
|
||||
m_vol3env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Vol3-Env1" ) ),
|
||||
m_vol3env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Vol3-Env2" ) ),
|
||||
m_vol3lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Vol3-LFO1" ) ),
|
||||
m_vol3lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Vol3-LFO2" ) ),
|
||||
m_vol3env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Vol env 1" ) ),
|
||||
m_vol3env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Vol env 2" ) ),
|
||||
m_vol3lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Vol LFO 1" ) ),
|
||||
m_vol3lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Vol LFO 2" ) ),
|
||||
|
||||
m_phs1env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Phs1-Env1" ) ),
|
||||
m_phs1env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Phs1-Env2" ) ),
|
||||
m_phs1lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Phs1-LFO1" ) ),
|
||||
m_phs1lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Phs1-LFO2" ) ),
|
||||
m_phs1env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - Phs env 1" ) ),
|
||||
m_phs1env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - Phs env 2" ) ),
|
||||
m_phs1lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - Phs LFO 1" ) ),
|
||||
m_phs1lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - Phs LFO 2" ) ),
|
||||
|
||||
m_phs2env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Phs2-Env1" ) ),
|
||||
m_phs2env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Phs2-Env2" ) ),
|
||||
m_phs2lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Phs2-LFO1" ) ),
|
||||
m_phs2lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Phs2-LFO2" ) ),
|
||||
m_phs2env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 2 - Phs env 1" ) ),
|
||||
m_phs2env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 2 - Phs env 2" ) ),
|
||||
m_phs2lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 2 - Phs LFO 1" ) ),
|
||||
m_phs2lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 2 - Phs LFO 2" ) ),
|
||||
|
||||
m_phs3env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Phs3-Env1" ) ),
|
||||
m_phs3env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Phs3-Env2" ) ),
|
||||
m_phs3lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Phs3-LFO1" ) ),
|
||||
m_phs3lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Phs3-LFO2" ) ),
|
||||
m_phs3env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Phs env 1" ) ),
|
||||
m_phs3env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Phs env 2" ) ),
|
||||
m_phs3lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Phs LFO 1" ) ),
|
||||
m_phs3lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Phs LFO 2" ) ),
|
||||
|
||||
m_pit1env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Pit1-Env1" ) ),
|
||||
m_pit1env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Pit1-Env2" ) ),
|
||||
m_pit1lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Pit1-LFO1" ) ),
|
||||
m_pit1lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Pit1-LFO2" ) ),
|
||||
m_pit1env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - Pit env 1" ) ),
|
||||
m_pit1env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - Pit env 2" ) ),
|
||||
m_pit1lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - Pit LFO 1" ) ),
|
||||
m_pit1lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - Pit LFO 2" ) ),
|
||||
|
||||
m_pit2env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Pit2-Env1" ) ),
|
||||
m_pit2env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Pit2-Env2" ) ),
|
||||
m_pit2lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Pit2-LFO1" ) ),
|
||||
m_pit2lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Pit2-LFO2" ) ),
|
||||
m_pit2env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 2 - Pit env 1" ) ),
|
||||
m_pit2env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 2 - Pit env 2" ) ),
|
||||
m_pit2lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 2 - Pit LFO 1" ) ),
|
||||
m_pit2lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 2 - Pit LFO 2" ) ),
|
||||
|
||||
m_pit3env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Pit3-Env1" ) ),
|
||||
m_pit3env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Pit3-Env2" ) ),
|
||||
m_pit3lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Pit3-LFO1" ) ),
|
||||
m_pit3lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Pit3-LFO2" ) ),
|
||||
m_pit3env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Pit env 1" ) ),
|
||||
m_pit3env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Pit env 2" ) ),
|
||||
m_pit3lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Pit LFO 1" ) ),
|
||||
m_pit3lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Pit LFO 2" ) ),
|
||||
|
||||
m_pw1env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "PW1-Env1" ) ),
|
||||
m_pw1env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "PW1-Env2" ) ),
|
||||
m_pw1lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "PW1-LFO1" ) ),
|
||||
m_pw1lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "PW1-LFO2" ) ),
|
||||
m_pw1env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - PW env 1" ) ),
|
||||
m_pw1env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - PW env 2" ) ),
|
||||
m_pw1lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - PW LFO 1" ) ),
|
||||
m_pw1lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 1 - PW LFO 2" ) ),
|
||||
|
||||
m_sub3env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Sub3-Env1" ) ),
|
||||
m_sub3env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Sub3-Env2" ) ),
|
||||
m_sub3lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Sub3-LFO1" ) ),
|
||||
m_sub3lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Sub3-LFO2" ) )
|
||||
m_sub3env1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Sub env 1" ) ),
|
||||
m_sub3env2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Sub env 2" ) ),
|
||||
m_sub3lfo1( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Sub LFO 1" ) ),
|
||||
m_sub3lfo2( 0.0f, -1.0f, 1.0f, 0.001f, this, tr( "Osc 3 - Sub LFO 2" ) )
|
||||
|
||||
{
|
||||
|
||||
@@ -1465,29 +1465,12 @@ MonstroView::MonstroView( Instrument * _instrument,
|
||||
m_opViewButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "opview_active" ) );
|
||||
m_opViewButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "opview_inactive" ) );
|
||||
ToolTip::add( m_opViewButton, tr( "Operators view" ) );
|
||||
m_opViewButton -> setWhatsThis( tr( "The Operators view contains all the operators. These include both audible "
|
||||
"operators (oscillators) and inaudible operators, or modulators: "
|
||||
"Low-frequency oscillators and Envelopes. \n\n"
|
||||
"Knobs and other widgets in the Operators view have their own what's this -texts, "
|
||||
"so you can get more specific help for them that way. " ) );
|
||||
|
||||
PixmapButton * m_matViewButton = new PixmapButton( this, NULL );
|
||||
m_matViewButton -> move( 125,0 );
|
||||
m_matViewButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "matview_active" ) );
|
||||
m_matViewButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "matview_inactive" ) );
|
||||
ToolTip::add( m_matViewButton, tr( "Matrix view" ) );
|
||||
m_matViewButton -> setWhatsThis( tr( "The Matrix view contains the modulation matrix. Here you can define "
|
||||
"the modulation relationships between the various operators: Each "
|
||||
"audible operator (oscillators 1-3) has 3-4 properties that can be "
|
||||
"modulated by any of the modulators. Using more modulations consumes "
|
||||
"more CPU power. \n\n"
|
||||
"The view is divided to modulation targets, grouped by the target oscillator. "
|
||||
"Available targets are volume, pitch, phase, pulse width and sub-osc ratio. "
|
||||
"Note: some targets are specific to one oscillator only. \n\n"
|
||||
"Each modulation target has 4 knobs, one for each modulator. By default "
|
||||
"the knobs are at 0, which means no modulation. Turning a knob to 1 causes "
|
||||
"that modulator to affect the modulation target as much as possible. Turning "
|
||||
"it to -1 does the same, but the modulation is inversed. " ) );
|
||||
|
||||
m_selectedViewGroup = new automatableButtonGroup( this );
|
||||
m_selectedViewGroup -> addButton( m_opViewButton );
|
||||
@@ -1660,8 +1643,8 @@ QWidget * MonstroView::setupOperatorsView( QWidget * _parent )
|
||||
makeknob( m_osc1VolKnob, KNOBCOL1, O1ROW, tr( "Volume" ), "%", "osc1Knob" )
|
||||
makeknob( m_osc1PanKnob, KNOBCOL2, O1ROW, tr( "Panning" ), "", "osc1Knob" )
|
||||
makeknob( m_osc1CrsKnob, KNOBCOL3, O1ROW, tr( "Coarse detune" ), tr( " semitones" ), "osc1Knob" )
|
||||
makeknob( m_osc1FtlKnob, KNOBCOL4, O1ROW, tr( "Finetune left" ), tr( " cents" ), "osc1Knob" )
|
||||
makeknob( m_osc1FtrKnob, KNOBCOL5, O1ROW, tr( "Finetune right" ), tr( " cents" ), "osc1Knob" )
|
||||
makeknob( m_osc1FtlKnob, KNOBCOL4, O1ROW, tr( "Fine tune left" ), tr( " cents" ), "osc1Knob" )
|
||||
makeknob( m_osc1FtrKnob, KNOBCOL5, O1ROW, tr( "Fine tune right" ), tr( " cents" ), "osc1Knob" )
|
||||
makeknob( m_osc1SpoKnob, KNOBCOL6, O1ROW, tr( "Stereo phase offset" ), tr( " deg" ), "osc1Knob" )
|
||||
makeknob( m_osc1PwKnob, KNOBCOL7, O1ROW, tr( "Pulse width" ), "%", "osc1Knob" )
|
||||
|
||||
@@ -1673,8 +1656,8 @@ QWidget * MonstroView::setupOperatorsView( QWidget * _parent )
|
||||
makeknob( m_osc2VolKnob, KNOBCOL1, O2ROW, tr( "Volume" ), "%", "osc2Knob" )
|
||||
makeknob( m_osc2PanKnob, KNOBCOL2, O2ROW, tr( "Panning" ), "", "osc2Knob" )
|
||||
makeknob( m_osc2CrsKnob, KNOBCOL3, O2ROW, tr( "Coarse detune" ), tr( " semitones" ), "osc2Knob" )
|
||||
makeknob( m_osc2FtlKnob, KNOBCOL4, O2ROW, tr( "Finetune left" ), tr( " cents" ), "osc2Knob" )
|
||||
makeknob( m_osc2FtrKnob, KNOBCOL5, O2ROW, tr( "Finetune right" ), tr( " cents" ), "osc2Knob" )
|
||||
makeknob( m_osc2FtlKnob, KNOBCOL4, O2ROW, tr( "Fine tune left" ), tr( " cents" ), "osc2Knob" )
|
||||
makeknob( m_osc2FtrKnob, KNOBCOL5, O2ROW, tr( "Fine tune right" ), tr( " cents" ), "osc2Knob" )
|
||||
makeknob( m_osc2SpoKnob, KNOBCOL6, O2ROW, tr( "Stereo phase offset" ), tr( " deg" ), "osc2Knob" )
|
||||
|
||||
m_osc2VolKnob -> setVolumeKnob( true );
|
||||
@@ -1742,25 +1725,25 @@ QWidget * MonstroView::setupOperatorsView( QWidget * _parent )
|
||||
m_mixButton -> move( 225, 185 );
|
||||
m_mixButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "mix_active" ) );
|
||||
m_mixButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "mix_inactive" ) );
|
||||
ToolTip::add( m_mixButton, tr( "Mix Osc2 with Osc3" ) );
|
||||
ToolTip::add( m_mixButton, tr( "Mix osc 2 with osc 3" ) );
|
||||
|
||||
PixmapButton * m_amButton = new PixmapButton( view, NULL );
|
||||
m_amButton -> move( 225, 185 + 15 );
|
||||
m_amButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "am_active" ) );
|
||||
m_amButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "am_inactive" ) );
|
||||
ToolTip::add( m_amButton, tr( "Modulate amplitude of Osc3 with Osc2" ) );
|
||||
ToolTip::add( m_amButton, tr( "Modulate amplitude of osc 3 by osc 2" ) );
|
||||
|
||||
PixmapButton * m_fmButton = new PixmapButton( view, NULL );
|
||||
m_fmButton -> move( 225, 185 + 15*2 );
|
||||
m_fmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "fm_active" ) );
|
||||
m_fmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "fm_inactive" ) );
|
||||
ToolTip::add( m_fmButton, tr( "Modulate frequency of Osc3 with Osc2" ) );
|
||||
ToolTip::add( m_fmButton, tr( "Modulate frequency of osc 3 by osc 2" ) );
|
||||
|
||||
PixmapButton * m_pmButton = new PixmapButton( view, NULL );
|
||||
m_pmButton -> move( 225, 185 + 15*3 );
|
||||
m_pmButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_active" ) );
|
||||
m_pmButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "pm_inactive" ) );
|
||||
ToolTip::add( m_pmButton, tr( "Modulate phase of Osc3 with Osc2" ) );
|
||||
ToolTip::add( m_pmButton, tr( "Modulate phase of osc 3 by osc 2" ) );
|
||||
|
||||
m_o23ModGroup = new automatableButtonGroup( view );
|
||||
m_o23ModGroup-> addButton( m_mixButton );
|
||||
@@ -1770,128 +1753,6 @@ QWidget * MonstroView::setupOperatorsView( QWidget * _parent )
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////
|
||||
// //
|
||||
// whatsthis-information strings //
|
||||
// //
|
||||
////////////////////////////////////
|
||||
|
||||
m_osc1CrsKnob -> setWhatsThis( tr( "The CRS knob changes the tuning of oscillator 1 in semitone steps. " ) );
|
||||
m_osc2CrsKnob -> setWhatsThis( tr( "The CRS knob changes the tuning of oscillator 2 in semitone steps. " ) );
|
||||
m_osc3CrsKnob -> setWhatsThis( tr( "The CRS knob changes the tuning of oscillator 3 in semitone steps. " ) );
|
||||
m_osc1FtlKnob -> setWhatsThis( tr( "FTL and FTR change the finetuning of the oscillator for left and right "
|
||||
"channels respectively. These can add stereo-detuning to the oscillator "
|
||||
"which widens the stereo image and causes an illusion of space. " ) );
|
||||
m_osc1FtrKnob -> setWhatsThis( tr( "FTL and FTR change the finetuning of the oscillator for left and right "
|
||||
"channels respectively. These can add stereo-detuning to the oscillator "
|
||||
"which widens the stereo image and causes an illusion of space. " ) );
|
||||
m_osc2FtlKnob -> setWhatsThis( tr( "FTL and FTR change the finetuning of the oscillator for left and right "
|
||||
"channels respectively. These can add stereo-detuning to the oscillator "
|
||||
"which widens the stereo image and causes an illusion of space. " ) );
|
||||
m_osc2FtrKnob -> setWhatsThis( tr( "FTL and FTR change the finetuning of the oscillator for left and right "
|
||||
"channels respectively. These can add stereo-detuning to the oscillator "
|
||||
"which widens the stereo image and causes an illusion of space. " ) );
|
||||
m_osc1SpoKnob -> setWhatsThis( tr( "The SPO knob modifies the difference in phase between left and right "
|
||||
"channels. Higher difference creates a wider stereo image. " ) );
|
||||
m_osc2SpoKnob -> setWhatsThis( tr( "The SPO knob modifies the difference in phase between left and right "
|
||||
"channels. Higher difference creates a wider stereo image. " ) );
|
||||
m_osc3SpoKnob -> setWhatsThis( tr( "The SPO knob modifies the difference in phase between left and right "
|
||||
"channels. Higher difference creates a wider stereo image. " ) );
|
||||
m_osc1PwKnob -> setWhatsThis( tr( "The PW knob controls the pulse width, also known as duty cycle, "
|
||||
"of oscillator 1. Oscillator 1 is a digital pulse wave oscillator, "
|
||||
"it doesn't produce bandlimited output, which means that you can "
|
||||
"use it as an audible oscillator but it will cause aliasing. You can "
|
||||
"also use it as an inaudible source of a sync signal, which can be "
|
||||
"used to synchronize oscillators 2 and 3. " ) );
|
||||
m_osc1SSRButton -> setWhatsThis( tr( "Send Sync on Rise: When enabled, the Sync signal is sent every time "
|
||||
"the state of oscillator 1 changes from low to high, ie. when the amplitude "
|
||||
"changes from -1 to 1. "
|
||||
"Oscillator 1's pitch, phase and pulse width may affect the timing of syncs, "
|
||||
"but its volume has no effect on them. Sync signals are sent independently "
|
||||
"for both left and right channels. " ) );
|
||||
m_osc1SSFButton -> setWhatsThis( tr( "Send Sync on Fall: When enabled, the Sync signal is sent every time "
|
||||
"the state of oscillator 1 changes from high to low, ie. when the amplitude "
|
||||
"changes from 1 to -1. "
|
||||
"Oscillator 1's pitch, phase and pulse width may affect the timing of syncs, "
|
||||
"but its volume has no effect on them. Sync signals are sent independently "
|
||||
"for both left and right channels. " ) );
|
||||
m_osc2SyncHButton -> setWhatsThis( tr( "Hard sync: Every time the oscillator receives a sync signal from oscillator 1, "
|
||||
"its phase is reset to 0 + whatever its phase offset is. " ) );
|
||||
m_osc3SyncHButton -> setWhatsThis( tr( "Hard sync: Every time the oscillator receives a sync signal from oscillator 1, "
|
||||
"its phase is reset to 0 + whatever its phase offset is. " ) );
|
||||
m_osc2SyncRButton -> setWhatsThis( tr( "Reverse sync: Every time the oscillator receives a sync signal from oscillator 1, "
|
||||
"the amplitude of the oscillator gets inverted. " ) );
|
||||
m_osc3SyncRButton -> setWhatsThis( tr( "Reverse sync: Every time the oscillator receives a sync signal from oscillator 1, "
|
||||
"the amplitude of the oscillator gets inverted. " ) );
|
||||
m_osc2WaveBox -> setWhatsThis( tr( "Choose waveform for oscillator 2. " ) );
|
||||
m_osc3Wave1Box -> setWhatsThis( tr( "Choose waveform for oscillator 3's first sub-osc. "
|
||||
"Oscillator 3 can smoothly interpolate between two different waveforms. " ) );
|
||||
m_osc3Wave2Box -> setWhatsThis( tr( "Choose waveform for oscillator 3's second sub-osc. "
|
||||
"Oscillator 3 can smoothly interpolate between two different waveforms. " ) );
|
||||
m_osc3SubKnob -> setWhatsThis( tr( "The SUB knob changes the mixing ratio of the two sub-oscs of oscillator 3. "
|
||||
"Each sub-osc can be set to produce a different waveform, and oscillator 3 "
|
||||
"can smoothly interpolate between them. All incoming modulations to oscillator 3 are applied "
|
||||
"to both sub-oscs/waveforms in the exact same way. " ) );
|
||||
m_mixButton -> setWhatsThis( tr( "In addition to dedicated modulators, Monstro allows oscillator 3 to be modulated by "
|
||||
"the output of oscillator 2. \n\n"
|
||||
"Mix mode means no modulation: the outputs of the oscillators are simply mixed together. " ) );
|
||||
m_amButton -> setWhatsThis( tr( "In addition to dedicated modulators, Monstro allows oscillator 3 to be modulated by "
|
||||
"the output of oscillator 2. \n\n"
|
||||
"AM means amplitude modulation: Oscillator 3's amplitude (volume) is modulated by oscillator 2. " ) );
|
||||
m_fmButton -> setWhatsThis( tr( "In addition to dedicated modulators, Monstro allows oscillator 3 to be modulated by "
|
||||
"the output of oscillator 2. \n\n"
|
||||
"FM means frequency modulation: Oscillator 3's frequency (pitch) is modulated by oscillator 2. "
|
||||
"The frequency modulation is implemented as phase modulation, which gives a more stable overall pitch "
|
||||
"than \"pure\" frequency modulation. " ) );
|
||||
m_pmButton -> setWhatsThis( tr( "In addition to dedicated modulators, Monstro allows oscillator 3 to be modulated by "
|
||||
"the output of oscillator 2. \n\n"
|
||||
"PM means phase modulation: Oscillator 3's phase is modulated by oscillator 2. "
|
||||
"It differs from frequency modulation in that the phase changes are not cumulative. " ) );
|
||||
m_lfo1WaveBox -> setWhatsThis( tr( "Select the waveform for LFO 1. \n"
|
||||
"\"Random\" and \"Random smooth\" are special waveforms: "
|
||||
"they produce random output, where the rate of the LFO controls how often "
|
||||
"the state of the LFO changes. The smooth version interpolates between these "
|
||||
"states with cosine interpolation. These random modes can be used to give "
|
||||
"\"life\" to your presets - add some of that analog unpredictability... " ) );
|
||||
m_lfo2WaveBox -> setWhatsThis( tr( "Select the waveform for LFO 2. \n"
|
||||
"\"Random\" and \"Random smooth\" are special waveforms: "
|
||||
"they produce random output, where the rate of the LFO controls how often "
|
||||
"the state of the LFO changes. The smooth version interpolates between these "
|
||||
"states with cosine interpolation. These random modes can be used to give "
|
||||
"\"life\" to your presets - add some of that analog unpredictability... " ) );
|
||||
m_lfo1AttKnob -> setWhatsThis( tr( "Attack causes the LFO to come on gradually from the start of the note. " ) );
|
||||
m_lfo2AttKnob -> setWhatsThis( tr( "Attack causes the LFO to come on gradually from the start of the note. " ) );
|
||||
m_lfo1RateKnob -> setWhatsThis( tr( "Rate sets the speed of the LFO, measured in milliseconds per cycle. Can be synced to tempo. " ) );
|
||||
m_lfo2RateKnob -> setWhatsThis( tr( "Rate sets the speed of the LFO, measured in milliseconds per cycle. Can be synced to tempo. " ) );
|
||||
m_lfo1PhsKnob -> setWhatsThis( tr( "PHS controls the phase offset of the LFO. " ) );
|
||||
m_lfo2PhsKnob -> setWhatsThis( tr( "PHS controls the phase offset of the LFO. " ) );
|
||||
|
||||
m_env1PreKnob -> setWhatsThis( tr( "PRE, or pre-delay, delays the start of the envelope from the start of the note. 0 means no delay. " ) );
|
||||
m_env2PreKnob -> setWhatsThis( tr( "PRE, or pre-delay, delays the start of the envelope from the start of the note. 0 means no delay. " ) );
|
||||
m_env1AttKnob -> setWhatsThis( tr( "ATT, or attack, controls how fast the envelope ramps up at start, measured in milliseconds. "
|
||||
"A value of 0 means instant. " ) );
|
||||
m_env2AttKnob -> setWhatsThis( tr( "ATT, or attack, controls how fast the envelope ramps up at start, measured in milliseconds. "
|
||||
"A value of 0 means instant. " ) );
|
||||
m_env1HoldKnob -> setWhatsThis( tr( "HOLD controls how long the envelope stays at peak after the attack phase. " ) );
|
||||
m_env2HoldKnob -> setWhatsThis( tr( "HOLD controls how long the envelope stays at peak after the attack phase. " ) );
|
||||
m_env1DecKnob -> setWhatsThis( tr( "DEC, or decay, controls how fast the envelope falls off from its peak, measured in milliseconds "
|
||||
"it would take to go from peak to zero. The actual decay may be shorter if sustain is used. ") );
|
||||
m_env2DecKnob -> setWhatsThis( tr( "DEC, or decay, controls how fast the envelope falls off from its peak, measured in milliseconds "
|
||||
"it would take to go from peak to zero. The actual decay may be shorter if sustain is used. ") );
|
||||
m_env1SusKnob -> setWhatsThis( tr( "SUS, or sustain, controls the sustain level of the envelope. The decay phase will not go below this level "
|
||||
"as long as the note is held. " ) );
|
||||
m_env2SusKnob -> setWhatsThis( tr( "SUS, or sustain, controls the sustain level of the envelope. The decay phase will not go below this level "
|
||||
"as long as the note is held. " ) );
|
||||
m_env1RelKnob -> setWhatsThis( tr( "REL, or release, controls how long the release is for the note, measured in how long it would take to "
|
||||
"fall from peak to zero. Actual release may be shorter, depending on at what phase the note is released. ") );
|
||||
m_env2RelKnob -> setWhatsThis( tr( "REL, or release, controls how long the release is for the note, measured in how long it would take to "
|
||||
"fall from peak to zero. Actual release may be shorter, depending on at what phase the note is released. ") );
|
||||
m_env1SlopeKnob -> setWhatsThis( tr( "The slope knob controls the curve or shape of the envelope. A value of 0 creates straight rises and falls. "
|
||||
"Negative values create curves that start slowly, peak quickly and fall of slowly again. "
|
||||
"Positive values create curves that start and end quickly, and stay longer near the peaks. " ) );
|
||||
m_env2SlopeKnob -> setWhatsThis( tr( "The slope knob controls the curve or shape of the envelope. A value of 0 creates straight rises and falls. "
|
||||
"Negative values create curves that start slowly, peak quickly and fall of slowly again. "
|
||||
"Positive values create curves that start and end quickly, and stay longer near the peaks. " ) );
|
||||
return( view );
|
||||
}
|
||||
|
||||
|
||||
@@ -486,18 +486,18 @@ void NesObject::updatePitch()
|
||||
NesInstrument::NesInstrument( InstrumentTrack * instrumentTrack ) :
|
||||
Instrument( instrumentTrack, &nes_plugin_descriptor ),
|
||||
m_ch1Enabled( true, this ),
|
||||
m_ch1Crs( 0.f, -24.f, 24.f, 1.f, this, tr( "Channel 1 Coarse detune" ) ),
|
||||
m_ch1Volume( 15.f, 0.f, 15.f, 1.f, this, tr( "Channel 1 Volume" ) ),
|
||||
m_ch1Crs( 0.f, -24.f, 24.f, 1.f, this, tr( "Channel 1 coarse detune" ) ),
|
||||
m_ch1Volume( 15.f, 0.f, 15.f, 1.f, this, tr( "Channel 1 volume" ) ),
|
||||
|
||||
m_ch1EnvEnabled( false, this ),
|
||||
m_ch1EnvLooped( false, this ),
|
||||
m_ch1EnvLen( 0.f, 0.f, 15.f, 1.f, this, tr( "Channel 1 Envelope length" ) ),
|
||||
m_ch1EnvLen( 0.f, 0.f, 15.f, 1.f, this, tr( "Channel 1 envelope length" ) ),
|
||||
|
||||
m_ch1DutyCycle( 0, 0, 3, this, tr( "Channel 1 Duty cycle" ) ),
|
||||
m_ch1DutyCycle( 0, 0, 3, this, tr( "Channel 1 duty cycle" ) ),
|
||||
|
||||
m_ch1SweepEnabled( false, this ),
|
||||
m_ch1SweepAmt( 0.f, -7.f, 7.f, 1.f, this, tr( "Channel 1 Sweep amount" ) ),
|
||||
m_ch1SweepRate( 0.f, 0.f, 7.f, 1.f, this, tr( "Channel 1 Sweep rate" ) ),
|
||||
m_ch1SweepAmt( 0.f, -7.f, 7.f, 1.f, this, tr( "Channel 1 sweep amount" ) ),
|
||||
m_ch1SweepRate( 0.f, 0.f, 7.f, 1.f, this, tr( "Channel 1 sweep rate" ) ),
|
||||
|
||||
m_ch2Enabled( true, this ),
|
||||
m_ch2Crs( 0.f, -24.f, 24.f, 1.f, this, tr( "Channel 2 Coarse detune" ) ),
|
||||
@@ -505,32 +505,32 @@ NesInstrument::NesInstrument( InstrumentTrack * instrumentTrack ) :
|
||||
|
||||
m_ch2EnvEnabled( false, this ),
|
||||
m_ch2EnvLooped( false, this ),
|
||||
m_ch2EnvLen( 0.f, 0.f, 15.f, 1.f, this, tr( "Channel 2 Envelope length" ) ),
|
||||
m_ch2EnvLen( 0.f, 0.f, 15.f, 1.f, this, tr( "Channel 2 envelope length" ) ),
|
||||
|
||||
m_ch2DutyCycle( 2, 0, 3, this, tr( "Channel 2 Duty cycle" ) ),
|
||||
m_ch2DutyCycle( 2, 0, 3, this, tr( "Channel 2 duty cycle" ) ),
|
||||
|
||||
m_ch2SweepEnabled( false, this ),
|
||||
m_ch2SweepAmt( 0.f, -7.f, 7.f, 1.f, this, tr( "Channel 2 Sweep amount" ) ),
|
||||
m_ch2SweepRate( 0.f, 0.f, 7.f, 1.f, this, tr( "Channel 2 Sweep rate" ) ),
|
||||
m_ch2SweepAmt( 0.f, -7.f, 7.f, 1.f, this, tr( "Channel 2 sweep amount" ) ),
|
||||
m_ch2SweepRate( 0.f, 0.f, 7.f, 1.f, this, tr( "Channel 2 sweep rate" ) ),
|
||||
|
||||
//channel 3
|
||||
m_ch3Enabled( true, this ),
|
||||
m_ch3Crs( 0.f, -24.f, 24.f, 1.f, this, tr( "Channel 3 Coarse detune" ) ),
|
||||
m_ch3Volume( 15.f, 0.f, 15.f, 1.f, this, tr( "Channel 3 Volume" ) ),
|
||||
m_ch3Crs( 0.f, -24.f, 24.f, 1.f, this, tr( "Channel 3 coarse detune" ) ),
|
||||
m_ch3Volume( 15.f, 0.f, 15.f, 1.f, this, tr( "Channel 3 volume" ) ),
|
||||
|
||||
//channel 4
|
||||
m_ch4Enabled( true, this ),
|
||||
m_ch4Volume( 15.f, 0.f, 15.f, 1.f, this, tr( "Channel 4 Volume" ) ),
|
||||
m_ch4Volume( 15.f, 0.f, 15.f, 1.f, this, tr( "Channel 4 volume" ) ),
|
||||
|
||||
m_ch4EnvEnabled( false, this ),
|
||||
m_ch4EnvLooped( false, this ),
|
||||
m_ch4EnvLen( 0.f, 0.f, 15.f, 1.f, this, tr( "Channel 4 Envelope length" ) ),
|
||||
m_ch4EnvLen( 0.f, 0.f, 15.f, 1.f, this, tr( "Channel 4 envelope length" ) ),
|
||||
|
||||
m_ch4NoiseMode( false, this ),
|
||||
m_ch4NoiseFreqMode( false, this ),
|
||||
m_ch4NoiseFreq( 0.f, 0.f, 15.f, 1.f, this, tr( "Channel 4 Noise frequency" ) ),
|
||||
m_ch4NoiseFreq( 0.f, 0.f, 15.f, 1.f, this, tr( "Channel 4 noise frequency" ) ),
|
||||
|
||||
m_ch4Sweep( 0.f, -7.f, 7.f, 1.f, this, tr( "Channel 4 Noise frequency sweep" ) ),
|
||||
m_ch4Sweep( 0.f, -7.f, 7.f, 1.f, this, tr( "Channel 4 noise frequency sweep" ) ),
|
||||
m_ch4NoiseQuantize( true, this ),
|
||||
|
||||
//master
|
||||
@@ -842,7 +842,7 @@ NesInstrumentView::NesInstrumentView( Instrument * instrument, QWidget * parent
|
||||
|
||||
|
||||
//master
|
||||
makeknob( m_masterVolKnob, KNOB_X4, KNOB_Y3, tr( "Master Volume" ), "", "" )
|
||||
makeknob( m_masterVolKnob, KNOB_X4, KNOB_Y3, tr( "Master volume" ), "", "" )
|
||||
makeknob( m_vibratoKnob, KNOB_X5, KNOB_Y3, tr( "Vibrato" ), "", "" )
|
||||
|
||||
}
|
||||
|
||||
@@ -435,7 +435,6 @@ organicInstrumentView::organicInstrumentView( Instrument * _instrument,
|
||||
m_fx1Knob->setFixedSize( 37, 47 );
|
||||
m_fx1Knob->setHintText( tr( "Distortion:" ), QString() );
|
||||
m_fx1Knob->setObjectName( "fx1Knob" );
|
||||
m_fx1Knob->setWhatsThis( tr( "The distortion knob adds distortion to the output of the instrument. " ) );
|
||||
|
||||
// setup volume-knob
|
||||
m_volKnob = new organicKnob( this );
|
||||
@@ -444,8 +443,6 @@ organicInstrumentView::organicInstrumentView( Instrument * _instrument,
|
||||
m_volKnob->setFixedSize( 37, 47 );
|
||||
m_volKnob->setHintText( tr( "Volume:" ), "%" );
|
||||
m_volKnob->setObjectName( "volKnob" );
|
||||
m_volKnob->setWhatsThis( tr( "The volume knob controls the volume of the output of the instrument. "
|
||||
"It is cumulative with the instrument window's volume control. " ) );
|
||||
|
||||
// randomise
|
||||
m_randBtn = new PixmapButton( this, tr( "Randomise" ) );
|
||||
@@ -454,8 +451,6 @@ organicInstrumentView::organicInstrumentView( Instrument * _instrument,
|
||||
"randomise_pressed" ) );
|
||||
m_randBtn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"randomise" ) );
|
||||
m_randBtn->setWhatsThis( tr( "The randomize button randomizes all knobs except the harmonics,"
|
||||
"main volume and distortion knobs. ") );
|
||||
|
||||
connect( m_randBtn, SIGNAL ( clicked() ),
|
||||
oi, SLOT( randomiseSettings() ) );
|
||||
|
||||
@@ -464,11 +464,7 @@ PatmanView::PatmanView( Instrument * _instrument, QWidget * _parent ) :
|
||||
"select_file" ) );
|
||||
connect( m_openFileButton, SIGNAL( clicked() ),
|
||||
this, SLOT( openFile() ) );
|
||||
ToolTip::add( m_openFileButton, tr( "Open other patch" ) );
|
||||
|
||||
m_openFileButton->setWhatsThis(
|
||||
tr( "Click here to open another patch-file. Loop and Tune "
|
||||
"settings are not reset." ) );
|
||||
ToolTip::add( m_openFileButton, tr( "Open patch" ) );
|
||||
|
||||
m_loopButton = new PixmapButton( this, tr( "Loop" ) );
|
||||
m_loopButton->setObjectName("loopButton");
|
||||
@@ -479,10 +475,6 @@ PatmanView::PatmanView( Instrument * _instrument, QWidget * _parent ) :
|
||||
m_loopButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"loop_off" ) );
|
||||
ToolTip::add( m_loopButton, tr( "Loop mode" ) );
|
||||
m_loopButton->setWhatsThis(
|
||||
tr( "Here you can toggle the Loop mode. If enabled, PatMan "
|
||||
"will use the loop information available in the "
|
||||
"file." ) );
|
||||
|
||||
m_tuneButton = new PixmapButton( this, tr( "Tune" ) );
|
||||
m_tuneButton->setObjectName("tuneButton");
|
||||
@@ -493,10 +485,6 @@ PatmanView::PatmanView( Instrument * _instrument, QWidget * _parent ) :
|
||||
m_tuneButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"tune_off" ) );
|
||||
ToolTip::add( m_tuneButton, tr( "Tune mode" ) );
|
||||
m_tuneButton->setWhatsThis(
|
||||
tr( "Here you can toggle the Tune mode. If enabled, PatMan "
|
||||
"will tune the sample to match the note's "
|
||||
"frequency." ) );
|
||||
|
||||
m_displayFilename = tr( "No file selected" );
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ PeakControllerEffect::PeakControllerEffect(
|
||||
Effect( &peakcontrollereffect_plugin_descriptor, _parent, _key ),
|
||||
m_effectId( rand() ),
|
||||
m_peakControls( this ),
|
||||
m_lastSample( 0 ),
|
||||
m_lastSample( m_peakControls.m_baseModel.value() ), //sets the value to the Peak Controller's Base value (rather than 0 like in previous versions)
|
||||
m_autoController( NULL )
|
||||
{
|
||||
m_autoController = new PeakController( Engine::getSong(), this );
|
||||
|
||||
@@ -49,7 +49,7 @@ PeakControllerEffectControlDialog::PeakControllerEffectControlDialog(
|
||||
m_baseKnob = new Knob( knobBright_26, this );
|
||||
m_baseKnob->setLabel( tr( "BASE" ) );
|
||||
m_baseKnob->setModel( &_controls->m_baseModel );
|
||||
m_baseKnob->setHintText( tr( "Base amount:" ) , "" );
|
||||
m_baseKnob->setHintText( tr( "Base:" ) , "" );
|
||||
|
||||
m_amountKnob = new Knob( knobBright_26, this );
|
||||
m_amountKnob->setLabel( tr( "AMNT" ) );
|
||||
@@ -59,7 +59,7 @@ PeakControllerEffectControlDialog::PeakControllerEffectControlDialog(
|
||||
m_amountMultKnob = new Knob( knobBright_26, this );
|
||||
m_amountMultKnob->setLabel( tr( "MULT" ) );
|
||||
m_amountMultKnob->setModel( &_controls->m_amountMultModel );
|
||||
m_amountMultKnob->setHintText( tr( "Amount Multiplicator:" ) , "" );
|
||||
m_amountMultKnob->setHintText( tr( "Amount multiplicator:" ) , "" );
|
||||
|
||||
m_attackKnob = new Knob( knobBright_26, this );
|
||||
m_attackKnob->setLabel( tr( "ATCK" ) );
|
||||
@@ -76,10 +76,10 @@ PeakControllerEffectControlDialog::PeakControllerEffectControlDialog(
|
||||
m_tresholdKnob->setModel( &_controls->m_tresholdModel );
|
||||
m_tresholdKnob->setHintText( tr( "Treshold:" ) , "" );
|
||||
|
||||
m_muteLed = new LedCheckBox( "Mute Effect", this );
|
||||
m_muteLed = new LedCheckBox( tr( "Mute output" ), this );
|
||||
m_muteLed->setModel( &_controls->m_muteModel );
|
||||
|
||||
m_absLed = new LedCheckBox( "Absolute Value", this );
|
||||
m_absLed = new LedCheckBox( tr( "Absolute value" ), this );
|
||||
m_absLed->setModel( &_controls->m_absModel );
|
||||
|
||||
QVBoxLayout * mainLayout = new QVBoxLayout();
|
||||
|
||||
@@ -42,8 +42,8 @@ PeakControllerEffectControls( PeakControllerEffect * _eff ) :
|
||||
m_decayModel( 0, 0, 0.999, 0.001, this, tr( "Release" ) ),
|
||||
m_tresholdModel( 0, 0, 1.0, 0.001, this, tr( "Treshold" ) ),
|
||||
m_muteModel( false, this, tr( "Mute output" ) ),
|
||||
m_absModel( true, this, tr("Abs Value") ),
|
||||
m_amountMultModel( 1.0, 0, 32, 0.2, this, tr("Amount Multiplicator") )
|
||||
m_absModel( true, this, tr("Absolute value") ),
|
||||
m_amountMultModel( 1.0, 0, 32, 0.2, this, tr("Amount multiplicator") )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -99,15 +99,15 @@ sf2Instrument::sf2Instrument( InstrumentTrack * _instrument_track ) :
|
||||
m_patchNum( 0, 0, 127, this, tr("Patch") ),
|
||||
m_gain( 1.0f, 0.0f, 5.0f, 0.01f, this, tr( "Gain" ) ),
|
||||
m_reverbOn( false, this, tr( "Reverb" ) ),
|
||||
m_reverbRoomSize( FLUID_REVERB_DEFAULT_ROOMSIZE, 0, 1.0, 0.01f, this, tr( "Reverb Roomsize" ) ),
|
||||
m_reverbDamping( FLUID_REVERB_DEFAULT_DAMP, 0, 1.0, 0.01, this, tr( "Reverb Damping" ) ),
|
||||
m_reverbWidth( FLUID_REVERB_DEFAULT_WIDTH, 0, 1.0, 0.01f, this, tr( "Reverb Width" ) ),
|
||||
m_reverbLevel( FLUID_REVERB_DEFAULT_LEVEL, 0, 1.0, 0.01f, this, tr( "Reverb Level" ) ),
|
||||
m_reverbRoomSize( FLUID_REVERB_DEFAULT_ROOMSIZE, 0, 1.0, 0.01f, this, tr( "Reverb room size" ) ),
|
||||
m_reverbDamping( FLUID_REVERB_DEFAULT_DAMP, 0, 1.0, 0.01, this, tr( "Reverb damping" ) ),
|
||||
m_reverbWidth( FLUID_REVERB_DEFAULT_WIDTH, 0, 1.0, 0.01f, this, tr( "Reverb width" ) ),
|
||||
m_reverbLevel( FLUID_REVERB_DEFAULT_LEVEL, 0, 1.0, 0.01f, this, tr( "Reverb level" ) ),
|
||||
m_chorusOn( false, this, tr( "Chorus" ) ),
|
||||
m_chorusNum( FLUID_CHORUS_DEFAULT_N, 0, 10.0, 1.0, this, tr( "Chorus Lines" ) ),
|
||||
m_chorusLevel( FLUID_CHORUS_DEFAULT_LEVEL, 0, 10.0, 0.01, this, tr( "Chorus Level" ) ),
|
||||
m_chorusSpeed( FLUID_CHORUS_DEFAULT_SPEED, 0.29, 5.0, 0.01, this, tr( "Chorus Speed" ) ),
|
||||
m_chorusDepth( FLUID_CHORUS_DEFAULT_DEPTH, 0, 46.0, 0.05, this, tr( "Chorus Depth" ) )
|
||||
m_chorusNum( FLUID_CHORUS_DEFAULT_N, 0, 10.0, 1.0, this, tr( "Chorus voices" ) ),
|
||||
m_chorusLevel( FLUID_CHORUS_DEFAULT_LEVEL, 0, 10.0, 0.01, this, tr( "Chorus level" ) ),
|
||||
m_chorusSpeed( FLUID_CHORUS_DEFAULT_SPEED, 0.29, 5.0, 0.01, this, tr( "Chorus speed" ) ),
|
||||
m_chorusDepth( FLUID_CHORUS_DEFAULT_DEPTH, 0, 46.0, 0.05, this, tr( "Chorus depth" ) )
|
||||
{
|
||||
for( int i = 0; i < 128; ++i )
|
||||
{
|
||||
@@ -851,9 +851,7 @@ sf2InstrumentView::sf2InstrumentView( Instrument * _instrument, QWidget * _paren
|
||||
|
||||
connect( m_fileDialogButton, SIGNAL( clicked() ), this, SLOT( showFileDialog() ) );
|
||||
|
||||
ToolTip::add( m_fileDialogButton, tr( "Open other SoundFont file" ) );
|
||||
|
||||
m_fileDialogButton->setWhatsThis( tr( "Click here to open another SF2 file" ) );
|
||||
ToolTip::add( m_fileDialogButton, tr( "Open SoundFont file" ) );
|
||||
|
||||
// Patch Button
|
||||
m_patchDialogButton = new PixmapButton( this );
|
||||
@@ -865,7 +863,7 @@ sf2InstrumentView::sf2InstrumentView( Instrument * _instrument, QWidget * _paren
|
||||
|
||||
connect( m_patchDialogButton, SIGNAL( clicked() ), this, SLOT( showPatchDialog() ) );
|
||||
|
||||
ToolTip::add( m_patchDialogButton, tr( "Choose the patch" ) );
|
||||
ToolTip::add( m_patchDialogButton, tr( "Choose patch" ) );
|
||||
|
||||
|
||||
// LCDs
|
||||
@@ -900,7 +898,7 @@ sf2InstrumentView::sf2InstrumentView( Instrument * _instrument, QWidget * _paren
|
||||
|
||||
// Gain
|
||||
m_gainKnob = new sf2Knob( this );
|
||||
m_gainKnob->setHintText( tr("Gain"), "" );
|
||||
m_gainKnob->setHintText( tr("Gain:"), "" );
|
||||
m_gainKnob->move( 86, 55 );
|
||||
// vl->addWidget( m_gainKnob );
|
||||
|
||||
@@ -914,26 +912,22 @@ sf2InstrumentView::sf2InstrumentView( Instrument * _instrument, QWidget * _paren
|
||||
m_reverbButton->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "reverb_on" ) );
|
||||
m_reverbButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "reverb_off" ) );
|
||||
ToolTip::add( m_reverbButton, tr( "Apply reverb (if supported)" ) );
|
||||
m_reverbButton->setWhatsThis(
|
||||
tr( "This button enables the reverb effect. "
|
||||
"This is useful for cool effects, but only works on "
|
||||
"files that support it." ) );
|
||||
|
||||
|
||||
m_reverbRoomSizeKnob = new sf2Knob( this );
|
||||
m_reverbRoomSizeKnob->setHintText( tr("Reverb Roomsize:"), "" );
|
||||
m_reverbRoomSizeKnob->setHintText( tr("Room size:"), "" );
|
||||
m_reverbRoomSizeKnob->move( 93, 160 );
|
||||
|
||||
m_reverbDampingKnob = new sf2Knob( this );
|
||||
m_reverbDampingKnob->setHintText( tr("Reverb Damping:"), "" );
|
||||
m_reverbDampingKnob->setHintText( tr("Damping:"), "" );
|
||||
m_reverbDampingKnob->move( 130, 160 );
|
||||
|
||||
m_reverbWidthKnob = new sf2Knob( this );
|
||||
m_reverbWidthKnob->setHintText( tr("Reverb Width:"), "" );
|
||||
m_reverbWidthKnob->setHintText( tr("Width:"), "" );
|
||||
m_reverbWidthKnob->move( 167, 160 );
|
||||
|
||||
m_reverbLevelKnob = new sf2Knob( this );
|
||||
m_reverbLevelKnob->setHintText( tr("Reverb Level:"), "" );
|
||||
m_reverbLevelKnob->setHintText( tr("Level:"), "" );
|
||||
m_reverbLevelKnob->move( 204, 160 );
|
||||
|
||||
/* hl->addWidget( m_reverbOnLed );
|
||||
@@ -954,25 +948,21 @@ sf2InstrumentView::sf2InstrumentView( Instrument * _instrument, QWidget * _paren
|
||||
m_chorusButton->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "chorus_on" ) );
|
||||
m_chorusButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "chorus_off" ) );
|
||||
ToolTip::add( m_chorusButton, tr( "Apply chorus (if supported)" ) );
|
||||
m_chorusButton->setWhatsThis(
|
||||
tr( "This button enables the chorus effect. "
|
||||
"This is useful for cool echo effects, but only works on "
|
||||
"files that support it." ) );
|
||||
|
||||
m_chorusNumKnob = new sf2Knob( this );
|
||||
m_chorusNumKnob->setHintText( tr("Chorus Lines:"), "" );
|
||||
m_chorusNumKnob->setHintText( tr("Voices:"), "" );
|
||||
m_chorusNumKnob->move( 93, 206 );
|
||||
|
||||
m_chorusLevelKnob = new sf2Knob( this );
|
||||
m_chorusLevelKnob->setHintText( tr("Chorus Level:"), "" );
|
||||
m_chorusLevelKnob->setHintText( tr("Level:"), "" );
|
||||
m_chorusLevelKnob->move( 130 , 206 );
|
||||
|
||||
m_chorusSpeedKnob = new sf2Knob( this );
|
||||
m_chorusSpeedKnob->setHintText( tr("Chorus Speed:"), "" );
|
||||
m_chorusSpeedKnob->setHintText( tr("Speed:"), "" );
|
||||
m_chorusSpeedKnob->move( 167 , 206 );
|
||||
|
||||
m_chorusDepthKnob = new sf2Knob( this );
|
||||
m_chorusDepthKnob->setHintText( tr("Chorus Depth:"), "" );
|
||||
m_chorusDepthKnob->setHintText( tr("Depth:"), "" );
|
||||
m_chorusDepthKnob->move( 204 , 206 );
|
||||
/*
|
||||
hl->addWidget( m_chorusOnLed );
|
||||
|
||||
@@ -353,7 +353,7 @@ sfxrInstrument::sfxrInstrument( InstrumentTrack * _instrument_track ) :
|
||||
m_lpFilResoModel(0.0f, this, "LP Filter Resonance"),
|
||||
m_hpFilCutModel(0.0f, this, "HP Filter Cutoff"),
|
||||
m_hpFilCutSweepModel(0.0f, this, "HP Filter Cutoff Sweep"),
|
||||
m_waveFormModel( SQR_WAVE, 0, WAVES_NUM-1, this, tr( "Wave Form" ) )
|
||||
m_waveFormModel( SQR_WAVE, 0, WAVES_NUM-1, this, tr( "Wave" ) )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -55,14 +55,14 @@ unsigned char sidorder[] =
|
||||
0x0c,0x0d,0x09,0x0a,0x07,0x08,0x0b,
|
||||
0x13,0x14,0x10,0x11,0x0e,0x0f,0x12};
|
||||
|
||||
static const char *attackTime[16] = { "2 mS", "8 mS", "16 mS", "24 mS",
|
||||
"38 mS", "56 mS", "68 mS", "80 mS",
|
||||
"100 mS", "250 mS", "500 mS", "800 mS",
|
||||
"1 S", "3 S", "5 S", "8 S" };
|
||||
static const char *decRelTime[16] = { "6 mS", "24 mS", "48 mS", "72 mS",
|
||||
"114 mS", "168 mS", "204 mS", "240 mS",
|
||||
"300 mS", "750 mS", "1.5 S", "2.4 S",
|
||||
"3 S", "9 S", "15 S", "24 S" };
|
||||
static const char *attackTime[16] = { "2 ms", "8 ms", "16 ms", "24 ms",
|
||||
"38 ms", "56 ms", "68 ms", "80 ms",
|
||||
"100 ms", "250 ms", "500 ms", "800 ms",
|
||||
"1 s", "3 s", "5 s", "8 s" };
|
||||
static const char *decRelTime[16] = { "6 ms", "24 ms", "48 ms", "72 ms",
|
||||
"114 ms", "168 ms", "204 ms", "240 ms",
|
||||
"300 ms", "750 ms", "1.5 s", "2.4 s",
|
||||
"3 s", "9 s", "15 s", "24 s" };
|
||||
// release time time in ms
|
||||
static const int relTime[16] = { 6, 24, 48, 72, 114, 168, 204, 240, 300, 750,
|
||||
1500, 2400, 3000, 9000, 15000, 24000 };
|
||||
@@ -121,7 +121,7 @@ voiceObject::~voiceObject()
|
||||
sidInstrument::sidInstrument( InstrumentTrack * _instrument_track ) :
|
||||
Instrument( _instrument_track, &sid_plugin_descriptor ),
|
||||
// filter
|
||||
m_filterFCModel( 1024.0f, 0.0f, 2047.0f, 1.0f, this, tr( "Cutoff" ) ),
|
||||
m_filterFCModel( 1024.0f, 0.0f, 2047.0f, 1.0f, this, tr( "Cutoff frequency" ) ),
|
||||
m_filterResonanceModel( 8.0f, 0.0f, 15.0f, 1.0f, this, tr( "Resonance" ) ),
|
||||
m_filterModeModel( LowPass, 0, NumFilterTypes-1, this, tr( "Filter type" )),
|
||||
|
||||
@@ -497,26 +497,26 @@ sidInstrumentView::sidInstrumentView( Instrument * _instrument,
|
||||
m_resKnob->move( 7 + 28, 64 );
|
||||
|
||||
m_cutKnob = new sidKnob( this );
|
||||
m_cutKnob->setHintText( tr( "Cutoff frequency:" ), "Hz" );
|
||||
m_cutKnob->setHintText( tr( "Cutoff frequency:" ), " Hz" );
|
||||
m_cutKnob->move( 7 + 2*28, 64 );
|
||||
|
||||
PixmapButton * hp_btn = new PixmapButton( this, NULL );
|
||||
hp_btn->move( 140, 77 );
|
||||
hp_btn->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "hpred" ) );
|
||||
hp_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "hp" ) );
|
||||
ToolTip::add( hp_btn, tr( "High-Pass filter ") );
|
||||
ToolTip::add( hp_btn, tr( "High-pass filter ") );
|
||||
|
||||
PixmapButton * bp_btn = new PixmapButton( this, NULL );
|
||||
bp_btn->move( 164, 77 );
|
||||
bp_btn->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "bpred" ) );
|
||||
bp_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "bp" ) );
|
||||
ToolTip::add( bp_btn, tr( "Band-Pass filter ") );
|
||||
ToolTip::add( bp_btn, tr( "Band-pass filter ") );
|
||||
|
||||
PixmapButton * lp_btn = new PixmapButton( this, NULL );
|
||||
lp_btn->move( 185, 77 );
|
||||
lp_btn->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "lpred" ) );
|
||||
lp_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "lp" ) );
|
||||
ToolTip::add( lp_btn, tr( "Low-Pass filter ") );
|
||||
ToolTip::add( lp_btn, tr( "Low-pass filter ") );
|
||||
|
||||
m_passBtnGrp = new automatableButtonGroup( this );
|
||||
m_passBtnGrp->addButton( hp_btn );
|
||||
@@ -528,7 +528,7 @@ sidInstrumentView::sidInstrumentView( Instrument * _instrument,
|
||||
m_offButton->move( 207, 77 );
|
||||
m_offButton->setActiveGraphic( PLUGIN_NAME::getIconPixmap( "3offred" ) );
|
||||
m_offButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "3off" ) );
|
||||
ToolTip::add( m_offButton, tr( "Voice3 Off ") );
|
||||
ToolTip::add( m_offButton, tr( "Voice 3 off ") );
|
||||
|
||||
PixmapButton * mos6581_btn = new PixmapButton( this, NULL );
|
||||
mos6581_btn->move( 170, 59 );
|
||||
@@ -551,41 +551,26 @@ sidInstrumentView::sidInstrumentView( Instrument * _instrument,
|
||||
Knob *ak = new sidKnob( this );
|
||||
ak->setHintText( tr("Attack:"), "" );
|
||||
ak->move( 7, 114 + i*50 );
|
||||
ak->setWhatsThis( tr ( "Attack rate determines how rapidly the output "
|
||||
"of Voice %1 rises from zero to peak amplitude." ).arg( i+1 ) );
|
||||
|
||||
Knob *dk = new sidKnob( this );
|
||||
dk->setHintText( tr("Decay:") , "" );
|
||||
dk->move( 7 + 28, 114 + i*50 );
|
||||
dk->setWhatsThis( tr ( "Decay rate determines how rapidly the output "
|
||||
"falls from the peak amplitude to the selected Sustain level." ) );
|
||||
|
||||
Knob *sk = new sidKnob( this );
|
||||
sk->setHintText( tr("Sustain:"), "" );
|
||||
sk->move( 7 + 2*28, 114 + i*50 );
|
||||
sk->setWhatsThis( tr ( "Output of Voice %1 will remain at the selected "
|
||||
"Sustain amplitude as long as the note is held." ).arg( i+1 ) );
|
||||
|
||||
Knob *rk = new sidKnob( this );
|
||||
rk->setHintText( tr("Release:"), "" );
|
||||
rk->move( 7 + 3*28, 114 + i*50 );
|
||||
rk->setWhatsThis( tr ( "The output of of Voice %1 will fall from "
|
||||
"Sustain amplitude to zero amplitude at the selected Release "
|
||||
"rate." ).arg( i+1 ) );
|
||||
|
||||
Knob *pwk = new sidKnob( this );
|
||||
pwk->setHintText( tr("Pulse Width:"), "" );
|
||||
pwk->move( 7 + 4*28, 114 + i*50 );
|
||||
pwk->setWhatsThis( tr ( "The Pulse Width resolution allows the width "
|
||||
"to be smoothly swept with no discernable stepping. The Pulse "
|
||||
"waveform on Oscillator %1 must be selected to have any audible"
|
||||
" effect." ).arg( i+1 ) );
|
||||
|
||||
Knob *crsk = new sidKnob( this );
|
||||
crsk->setHintText( tr("Coarse:"), " semitones" );
|
||||
crsk->move( 147, 114 + i*50 );
|
||||
crsk->setWhatsThis( tr ( "The Coarse detuning allows to detune Voice "
|
||||
"%1 one octave up or down." ).arg( i+1 ) );
|
||||
|
||||
PixmapButton * pulse_btn = new PixmapButton( this, NULL );
|
||||
pulse_btn->move( 187, 101 + i*50 );
|
||||
@@ -593,7 +578,7 @@ sidInstrumentView::sidInstrumentView( Instrument * _instrument,
|
||||
PLUGIN_NAME::getIconPixmap( "pulsered" ) );
|
||||
pulse_btn->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "pulse" ) );
|
||||
ToolTip::add( pulse_btn, tr( "Pulse Wave" ) );
|
||||
ToolTip::add( pulse_btn, tr( "Pulse wave" ) );
|
||||
|
||||
PixmapButton * triangle_btn = new PixmapButton( this, NULL );
|
||||
triangle_btn->move( 168, 101 + i*50 );
|
||||
@@ -601,7 +586,7 @@ sidInstrumentView::sidInstrumentView( Instrument * _instrument,
|
||||
PLUGIN_NAME::getIconPixmap( "trianglered" ) );
|
||||
triangle_btn->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "triangle" ) );
|
||||
ToolTip::add( triangle_btn, tr( "Triangle Wave" ) );
|
||||
ToolTip::add( triangle_btn, tr( "Triangle wave" ) );
|
||||
|
||||
PixmapButton * saw_btn = new PixmapButton( this, NULL );
|
||||
saw_btn->move( 207, 101 + i*50 );
|
||||
@@ -609,7 +594,7 @@ sidInstrumentView::sidInstrumentView( Instrument * _instrument,
|
||||
PLUGIN_NAME::getIconPixmap( "sawred" ) );
|
||||
saw_btn->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "saw" ) );
|
||||
ToolTip::add( saw_btn, tr( "SawTooth" ) );
|
||||
ToolTip::add( saw_btn, tr( "Saw wave" ) );
|
||||
|
||||
PixmapButton * noise_btn = new PixmapButton( this, NULL );
|
||||
noise_btn->move( 226, 101 + i*50 );
|
||||
@@ -627,8 +612,6 @@ sidInstrumentView::sidInstrumentView( Instrument * _instrument,
|
||||
wfbg->addButton( saw_btn );
|
||||
wfbg->addButton( noise_btn );
|
||||
|
||||
int syncRingWidth[] = { 3, 1, 2 };
|
||||
|
||||
PixmapButton * sync_btn = new PixmapButton( this, NULL );
|
||||
sync_btn->setCheckable( true );
|
||||
sync_btn->move( 207, 134 + i*50 );
|
||||
@@ -637,10 +620,6 @@ sidInstrumentView::sidInstrumentView( Instrument * _instrument,
|
||||
sync_btn->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "sync" ) );
|
||||
ToolTip::add( sync_btn, tr( "Sync" ) );
|
||||
sync_btn->setWhatsThis( tr ( "Sync synchronizes the fundamental "
|
||||
"frequency of Oscillator %1 with the fundamental frequency of "
|
||||
"Oscillator %2 producing \"Hard Sync\" effects." ).arg( i+1 )
|
||||
.arg( syncRingWidth[i] ) );
|
||||
|
||||
PixmapButton * ringMod_btn = new PixmapButton( this, NULL );
|
||||
ringMod_btn->setCheckable( true );
|
||||
@@ -649,11 +628,7 @@ sidInstrumentView::sidInstrumentView( Instrument * _instrument,
|
||||
PLUGIN_NAME::getIconPixmap( "ringred" ) );
|
||||
ringMod_btn->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "ring" ) );
|
||||
ToolTip::add( ringMod_btn, tr( "Ring-Mod" ) );
|
||||
ringMod_btn->setWhatsThis( tr ( "Ring-mod replaces the Triangle "
|
||||
"Waveform output of Oscillator %1 with a \"Ring Modulated\" "
|
||||
"combination of Oscillators %1 and %2." ).arg( i+1 )
|
||||
.arg( syncRingWidth[i] ) );
|
||||
ToolTip::add( ringMod_btn, tr( "Ring modulation" ) );
|
||||
|
||||
PixmapButton * filter_btn = new PixmapButton( this, NULL );
|
||||
filter_btn->setCheckable( true );
|
||||
@@ -663,10 +638,6 @@ sidInstrumentView::sidInstrumentView( Instrument * _instrument,
|
||||
filter_btn->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "filter" ) );
|
||||
ToolTip::add( filter_btn, tr( "Filtered" ) );
|
||||
filter_btn->setWhatsThis( tr ( "When Filtered is on, Voice %1 will be "
|
||||
"processed through the Filter. When Filtered is off, Voice %1 "
|
||||
"appears directly at the output, and the Filter has no effect on "
|
||||
"it." ).arg( i+1 ) );
|
||||
|
||||
PixmapButton * test_btn = new PixmapButton( this, NULL );
|
||||
test_btn->setCheckable( true );
|
||||
@@ -676,8 +647,6 @@ sidInstrumentView::sidInstrumentView( Instrument * _instrument,
|
||||
test_btn->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "test" ) );
|
||||
ToolTip::add( test_btn, tr( "Test" ) );
|
||||
test_btn->setWhatsThis( tr ( "Test, when set, resets and locks "
|
||||
"Oscillator %1 at zero until Test is turned off." ).arg( i+1 ) );
|
||||
|
||||
m_voiceKnobs[i] = voiceKnobs( ak, dk, sk, rk, pwk, crsk, wfbg,
|
||||
sync_btn, ringMod_btn, filter_btn, test_btn );
|
||||
@@ -713,7 +682,7 @@ void sidInstrumentView::updateKnobHint()
|
||||
ToolTip::add( m_voiceKnobs[i].m_relKnob,
|
||||
decRelTime[(int)k->m_voice[i]->m_releaseModel.value()]);
|
||||
|
||||
m_voiceKnobs[i].m_pwKnob->setHintText( tr( "Pulse Width:" )+ " ", " (" +
|
||||
m_voiceKnobs[i].m_pwKnob->setHintText( tr( "Pulse width:" )+ " ", " (" +
|
||||
QString::number( (double)k->m_voice[i]->
|
||||
m_pulseWidthModel.value() / 40.95 ) + "%)" );
|
||||
ToolTip::add( m_voiceKnobs[i].m_pwKnob,
|
||||
@@ -722,9 +691,9 @@ void sidInstrumentView::updateKnobHint()
|
||||
}
|
||||
m_cutKnob->setHintText( tr( "Cutoff frequency:" ) + " ", " (" +
|
||||
QString::number ( (int) ( 9970.0 / 2047.0 *
|
||||
(double)k->m_filterFCModel.value() + 30.0 ) ) + "Hz)" );
|
||||
(double)k->m_filterFCModel.value() + 30.0 ) ) + " Hz)" );
|
||||
ToolTip::add( m_cutKnob, QString::number( (int) ( 9970.0 / 2047.0 *
|
||||
(double)k->m_filterFCModel.value() + 30.0 ) ) + "Hz" );
|
||||
(double)k->m_filterFCModel.value() + 30.0 ) ) + " Hz" );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -39,8 +39,8 @@ stereoEnhancerControlDialog::stereoEnhancerControlDialog(
|
||||
|
||||
Knob * widthKnob = new Knob( knobBright_26, this );
|
||||
widthKnob->setModel( &_controls->m_widthModel );
|
||||
widthKnob->setLabel( tr( "WIDE" ) );
|
||||
widthKnob->setHintText( tr( "Width:" ) , "samples" );
|
||||
widthKnob->setLabel( tr( "WIDTH" ) );
|
||||
widthKnob->setHintText( tr( "Width:" ) , " samples" );
|
||||
|
||||
l->addWidget( widthKnob );
|
||||
|
||||
|
||||
@@ -67,13 +67,13 @@ malletsInstrument::malletsInstrument( InstrumentTrack * _instrument_track ):
|
||||
Instrument( _instrument_track, &malletsstk_plugin_descriptor ),
|
||||
m_hardnessModel(64.0f, 0.0f, 128.0f, 0.1f, this, tr( "Hardness" )),
|
||||
m_positionModel(64.0f, 0.0f, 64.0f, 0.1f, this, tr( "Position" )),
|
||||
m_vibratoGainModel(0.0f, 0.0f, 128.0f, 0.1f, this, tr( "Vibrato Gain" )),
|
||||
m_vibratoFreqModel(0.0f, 0.0f, 128.0f, 0.1f, this, tr( "Vibrato Freq" )),
|
||||
m_stickModel(0.0f, 0.0f, 128.0f, 0.1f, this, tr( "Stick Mix" )),
|
||||
m_vibratoGainModel(0.0f, 0.0f, 128.0f, 0.1f, this, tr( "Vibrato gain" )),
|
||||
m_vibratoFreqModel(0.0f, 0.0f, 128.0f, 0.1f, this, tr( "Vibrato frequency" )),
|
||||
m_stickModel(0.0f, 0.0f, 128.0f, 0.1f, this, tr( "Stick mix" )),
|
||||
m_modulatorModel(64.0f, 0.0f, 128.0f, 0.1f, this, tr( "Modulator" )),
|
||||
m_crossfadeModel(64.0f, 0.0f, 128.0f, 0.1f, this, tr( "Crossfade" )),
|
||||
m_lfoSpeedModel(64.0f, 0.0f, 128.0f, 0.1f, this, tr( "LFO Speed" )),
|
||||
m_lfoDepthModel(64.0f, 0.0f, 128.0f, 0.1f, this, tr( "LFO Depth" )),
|
||||
m_lfoSpeedModel(64.0f, 0.0f, 128.0f, 0.1f, this, tr( "LFO speed" )),
|
||||
m_lfoDepthModel(64.0f, 0.0f, 128.0f, 0.1f, this, tr( "LFO depth" )),
|
||||
m_adsrModel(64.0f, 0.0f, 128.0f, 0.1f, this, tr( "ADSR" )),
|
||||
m_pressureModel(64.0f, 0.1f, 128.0f, 0.1f, this, tr( "Pressure" )),
|
||||
m_motionModel(64.0f, 0.0f, 128.0f, 0.1f, this, tr( "Motion" )),
|
||||
@@ -94,31 +94,31 @@ malletsInstrument::malletsInstrument( InstrumentTrack * _instrument_track ):
|
||||
m_scalers.append( 4.0 );
|
||||
m_presetsModel.addItem( tr( "Agogo" ) );
|
||||
m_scalers.append( 5.0 );
|
||||
m_presetsModel.addItem( tr( "Wood1" ) );
|
||||
m_presetsModel.addItem( tr( "Wood 1" ) );
|
||||
m_scalers.append( 4.0 );
|
||||
m_presetsModel.addItem( tr( "Reso" ) );
|
||||
m_scalers.append( 2.5 );
|
||||
m_presetsModel.addItem( tr( "Wood2" ) );
|
||||
m_presetsModel.addItem( tr( "Wood 2" ) );
|
||||
m_scalers.append( 5.0 );
|
||||
m_presetsModel.addItem( tr( "Beats" ) );
|
||||
m_scalers.append( 20.0 );
|
||||
m_presetsModel.addItem( tr( "Two Fixed" ) );
|
||||
m_presetsModel.addItem( tr( "Two fixed" ) );
|
||||
m_scalers.append( 5.0 );
|
||||
m_presetsModel.addItem( tr( "Clump" ) );
|
||||
m_scalers.append( 4.0 );
|
||||
|
||||
// TubeBell
|
||||
m_presetsModel.addItem( tr( "Tubular Bells" ) );
|
||||
m_presetsModel.addItem( tr( "Tubular bells" ) );
|
||||
m_scalers.append( 1.8 );
|
||||
|
||||
// BandedWG
|
||||
m_presetsModel.addItem( tr( "Uniform Bar" ) );
|
||||
m_presetsModel.addItem( tr( "Uniform bar" ) );
|
||||
m_scalers.append( 25.0 );
|
||||
m_presetsModel.addItem( tr( "Tuned Bar" ) );
|
||||
m_presetsModel.addItem( tr( "Tuned bar" ) );
|
||||
m_scalers.append( 10.0 );
|
||||
m_presetsModel.addItem( tr( "Glass" ) );
|
||||
m_scalers.append( 16.0 );
|
||||
m_presetsModel.addItem( tr( "Tibetan Bowl" ) );
|
||||
m_presetsModel.addItem( tr( "Tibetan bowl" ) );
|
||||
m_scalers.append( 7.0 );
|
||||
}
|
||||
|
||||
@@ -460,19 +460,19 @@ QWidget * malletsInstrumentView::setupModalBarControls( QWidget * _parent )
|
||||
m_positionKnob->setHintText( tr( "Position:" ), "" );
|
||||
|
||||
m_vibratoGainKnob = new Knob( knobVintage_32, widget );
|
||||
m_vibratoGainKnob->setLabel( tr( "Vib Gain" ) );
|
||||
m_vibratoGainKnob->setLabel( tr( "Vibrato gain" ) );
|
||||
m_vibratoGainKnob->move( 30, 140 );
|
||||
m_vibratoGainKnob->setHintText( tr( "Vib Gain:" ), "" );
|
||||
m_vibratoGainKnob->setHintText( tr( "Vibrato gain:" ), "" );
|
||||
|
||||
m_vibratoFreqKnob = new Knob( knobVintage_32, widget );
|
||||
m_vibratoFreqKnob->setLabel( tr( "Vib Freq" ) );
|
||||
m_vibratoFreqKnob->setLabel( tr( "Vibrato frequency" ) );
|
||||
m_vibratoFreqKnob->move( 110, 140 );
|
||||
m_vibratoFreqKnob->setHintText( tr( "Vib Freq:" ), "" );
|
||||
m_vibratoFreqKnob->setHintText( tr( "Vibrato frequency:" ), "" );
|
||||
|
||||
m_stickKnob = new Knob( knobVintage_32, widget );
|
||||
m_stickKnob->setLabel( tr( "Stick Mix" ) );
|
||||
m_stickKnob->setLabel( tr( "Stick mix" ) );
|
||||
m_stickKnob->move( 190, 90 );
|
||||
m_stickKnob->setHintText( tr( "Stick Mix:" ), "" );
|
||||
m_stickKnob->setHintText( tr( "Stick mix:" ), "" );
|
||||
|
||||
return( widget );
|
||||
}
|
||||
@@ -496,14 +496,14 @@ QWidget * malletsInstrumentView::setupTubeBellControls( QWidget * _parent )
|
||||
m_crossfadeKnob->setHintText( tr( "Crossfade:" ), "" );
|
||||
|
||||
m_lfoSpeedKnob = new Knob( knobVintage_32, widget );
|
||||
m_lfoSpeedKnob->setLabel( tr( "LFO Speed" ) );
|
||||
m_lfoSpeedKnob->setLabel( tr( "LFO speed" ) );
|
||||
m_lfoSpeedKnob->move( 30, 140 );
|
||||
m_lfoSpeedKnob->setHintText( tr( "LFO Speed:" ), "" );
|
||||
m_lfoSpeedKnob->setHintText( tr( "LFO speed:" ), "" );
|
||||
|
||||
m_lfoDepthKnob = new Knob( knobVintage_32, widget );
|
||||
m_lfoDepthKnob->setLabel( tr( "LFO Depth" ) );
|
||||
m_lfoDepthKnob->setLabel( tr( "LFO depth" ) );
|
||||
m_lfoDepthKnob->move( 110, 140 );
|
||||
m_lfoDepthKnob->setHintText( tr( "LFO Depth:" ), "" );
|
||||
m_lfoDepthKnob->setHintText( tr( "LFO depth:" ), "" );
|
||||
|
||||
m_adsrKnob = new Knob( knobVintage_32, widget );
|
||||
m_adsrKnob->setLabel( tr( "ADSR" ) );
|
||||
|
||||
@@ -440,9 +440,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
"pm_active" ) );
|
||||
pm_osc1_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"pm_inactive" ) );
|
||||
ToolTip::add( pm_osc1_btn, tr( "Use phase modulation for "
|
||||
"modulating oscillator 1 with "
|
||||
"oscillator 2" ) );
|
||||
ToolTip::add( pm_osc1_btn, tr( "Modulate phase of oscillator 1 by oscillator 2" ) );
|
||||
|
||||
PixmapButton * am_osc1_btn = new PixmapButton( this, NULL );
|
||||
am_osc1_btn->move( mod_x + 35, mod1_y );
|
||||
@@ -450,9 +448,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
"am_active" ) );
|
||||
am_osc1_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"am_inactive" ) );
|
||||
ToolTip::add( am_osc1_btn, tr( "Use amplitude modulation for "
|
||||
"modulating oscillator 1 with "
|
||||
"oscillator 2" ) );
|
||||
ToolTip::add( am_osc1_btn, tr( "Modulate amplitude of oscillator 1 by oscillator 2" ) );
|
||||
|
||||
PixmapButton * mix_osc1_btn = new PixmapButton( this, NULL );
|
||||
mix_osc1_btn->move( mod_x + 70, mod1_y );
|
||||
@@ -460,7 +456,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
"mix_active" ) );
|
||||
mix_osc1_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"mix_inactive" ) );
|
||||
ToolTip::add( mix_osc1_btn, tr( "Mix output of oscillator 1 & 2" ) );
|
||||
ToolTip::add( mix_osc1_btn, tr( "Mix output of oscillators 1 & 2" ) );
|
||||
|
||||
PixmapButton * sync_osc1_btn = new PixmapButton( this, NULL );
|
||||
sync_osc1_btn->move( mod_x + 105, mod1_y );
|
||||
@@ -477,9 +473,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
"fm_active" ) );
|
||||
fm_osc1_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"fm_inactive" ) );
|
||||
ToolTip::add( fm_osc1_btn, tr( "Use frequency modulation for "
|
||||
"modulating oscillator 1 with "
|
||||
"oscillator 2" ) );
|
||||
ToolTip::add( fm_osc1_btn, tr( "Modulate frequency of oscillator 1 by oscillator 2" ) );
|
||||
|
||||
m_mod1BtnGrp = new automatableButtonGroup( this );
|
||||
m_mod1BtnGrp->addButton( pm_osc1_btn );
|
||||
@@ -496,9 +490,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
"pm_active" ) );
|
||||
pm_osc2_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"pm_inactive" ) );
|
||||
ToolTip::add( pm_osc2_btn, tr( "Use phase modulation for "
|
||||
"modulating oscillator 2 with "
|
||||
"oscillator 3" ) );
|
||||
ToolTip::add( pm_osc2_btn, tr( "Modulate phase of oscillator 2 by oscillator 3" ) );
|
||||
|
||||
PixmapButton * am_osc2_btn = new PixmapButton( this, NULL );
|
||||
am_osc2_btn->move( mod_x + 35, mod2_y );
|
||||
@@ -506,9 +498,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
"am_active" ) );
|
||||
am_osc2_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"am_inactive" ) );
|
||||
ToolTip::add( am_osc2_btn, tr( "Use amplitude modulation for "
|
||||
"modulating oscillator 2 with "
|
||||
"oscillator 3" ) );
|
||||
ToolTip::add( am_osc2_btn, tr( "Modulate amplitude of oscillator 2 by oscillator 3" ) );
|
||||
|
||||
PixmapButton * mix_osc2_btn = new PixmapButton( this, NULL );
|
||||
mix_osc2_btn->move( mod_x + 70, mod2_y );
|
||||
@@ -516,7 +506,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
"mix_active" ) );
|
||||
mix_osc2_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"mix_inactive" ) );
|
||||
ToolTip::add( mix_osc2_btn, tr("Mix output of oscillator 2 & 3" ) );
|
||||
ToolTip::add( mix_osc2_btn, tr("Mix output of oscillators 2 & 3" ) );
|
||||
|
||||
PixmapButton * sync_osc2_btn = new PixmapButton( this, NULL );
|
||||
sync_osc2_btn->move( mod_x + 105, mod2_y );
|
||||
@@ -524,8 +514,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
"sync_active" ) );
|
||||
sync_osc2_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"sync_inactive" ) );
|
||||
ToolTip::add( sync_osc2_btn, tr( "Synchronize oscillator 2 with "
|
||||
"oscillator 3" ) );
|
||||
ToolTip::add( sync_osc2_btn, tr( "Synchronize oscillator 2 with oscillator 3" ) );
|
||||
|
||||
PixmapButton * fm_osc2_btn = new PixmapButton( this, NULL );
|
||||
fm_osc2_btn->move( mod_x + 140, mod2_y );
|
||||
@@ -533,9 +522,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
"fm_active" ) );
|
||||
fm_osc2_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"fm_inactive" ) );
|
||||
ToolTip::add( fm_osc2_btn, tr( "Use frequency modulation for "
|
||||
"modulating oscillator 2 with "
|
||||
"oscillator 3" ) );
|
||||
ToolTip::add( fm_osc2_btn, tr( "Modulate frequency of oscillator 2 by oscillator 3" ) );
|
||||
|
||||
m_mod2BtnGrp = new automatableButtonGroup( this );
|
||||
|
||||
@@ -557,48 +544,24 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
vk->move( 6, knob_y );
|
||||
vk->setHintText( tr( "Osc %1 volume:" ).arg(
|
||||
i+1 ), "%" );
|
||||
vk->setWhatsThis(
|
||||
tr( "With this knob you can set the volume of "
|
||||
"oscillator %1. When setting a value of 0 the "
|
||||
"oscillator is turned off. Otherwise you can "
|
||||
"hear the oscillator as loud as you set it "
|
||||
"here.").arg( i+1 ) );
|
||||
|
||||
// setup panning-knob
|
||||
Knob * pk = new TripleOscKnob( this );
|
||||
pk->move( 35, knob_y );
|
||||
pk->setHintText( tr("Osc %1 panning:").arg( i + 1 ), "" );
|
||||
pk->setWhatsThis(
|
||||
tr( "With this knob you can set the panning of the "
|
||||
"oscillator %1. A value of -100 means 100% "
|
||||
"left and a value of 100 moves oscillator-"
|
||||
"output right.").arg( i+1 ) );
|
||||
|
||||
// setup coarse-knob
|
||||
Knob * ck = new TripleOscKnob( this );
|
||||
ck->move( 82, knob_y );
|
||||
ck->setHintText( tr( "Osc %1 coarse detuning:" ).arg( i + 1 )
|
||||
, " " + tr( "semitones" ) );
|
||||
ck->setWhatsThis(
|
||||
tr( "With this knob you can set the coarse detuning of "
|
||||
"oscillator %1. You can detune the oscillator "
|
||||
"24 semitones (2 octaves) up and down. This is "
|
||||
"useful for creating sounds with a chord." ).
|
||||
arg( i + 1 ) );
|
||||
|
||||
|
||||
// setup knob for left fine-detuning
|
||||
Knob * flk = new TripleOscKnob( this );
|
||||
flk->move( 111, knob_y );
|
||||
flk->setHintText( tr( "Osc %1 fine detuning left:" ).
|
||||
arg( i + 1 ),
|
||||
" " + tr( "cents" ) );
|
||||
flk->setWhatsThis(
|
||||
tr( "With this knob you can set the fine detuning of "
|
||||
"oscillator %1 for the left channel. The fine-"
|
||||
"detuning is ranged between -100 cents and "
|
||||
"+100 cents. This is useful for creating "
|
||||
"\"fat\" sounds." ).arg( i + 1 ) );
|
||||
|
||||
// setup knob for right fine-detuning
|
||||
Knob * frk = new TripleOscKnob( this );
|
||||
@@ -606,13 +569,6 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
frk->setHintText( tr( "Osc %1 fine detuning right:" ).
|
||||
arg( i + 1 ),
|
||||
" " + tr( "cents" ) );
|
||||
frk->setWhatsThis(
|
||||
tr( "With this knob you can set the fine detuning of "
|
||||
"oscillator %1 for the right channel. The "
|
||||
"fine-detuning is ranged between -100 cents "
|
||||
"and +100 cents. This is useful for creating "
|
||||
"\"fat\" sounds." ).arg( i+1 ) );
|
||||
|
||||
|
||||
// setup phase-offset-knob
|
||||
Knob * pok = new TripleOscKnob( this );
|
||||
@@ -620,15 +576,6 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
pok->setHintText( tr( "Osc %1 phase-offset:" ).
|
||||
arg( i + 1 ),
|
||||
" " + tr( "degrees" ) );
|
||||
pok->setWhatsThis(
|
||||
tr( "With this knob you can set the phase-offset of "
|
||||
"oscillator %1. That means you can move the "
|
||||
"point within an oscillation where the "
|
||||
"oscillator begins to oscillate. For example "
|
||||
"if you have a sine-wave and have a phase-"
|
||||
"offset of 180 degrees the wave will first go "
|
||||
"down. It's the same with a square-wave."
|
||||
).arg( i+1 ) );
|
||||
|
||||
// setup stereo-phase-detuning-knob
|
||||
Knob * spdk = new TripleOscKnob( this );
|
||||
@@ -636,13 +583,6 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
spdk->setHintText( tr("Osc %1 stereo phase-detuning:" ).
|
||||
arg( i + 1 ),
|
||||
" " + tr( "degrees" ) );
|
||||
spdk->setWhatsThis(
|
||||
tr( "With this knob you can set the stereo phase-"
|
||||
"detuning of oscillator %1. The stereo phase-"
|
||||
"detuning specifies the size of the difference "
|
||||
"between the phase-offset of left and right "
|
||||
"channel. This is very good for creating wide "
|
||||
"stereo sounds." ).arg( i+1 ) );
|
||||
|
||||
int btn_y = 96 + i * osc_h;
|
||||
|
||||
@@ -653,8 +593,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
sin_wave_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"sin_shape_inactive" ) );
|
||||
ToolTip::add( sin_wave_btn,
|
||||
tr( "Use a sine-wave for "
|
||||
"current oscillator." ) );
|
||||
tr( "Sine wave" ) );
|
||||
|
||||
PixmapButton * triangle_wave_btn =
|
||||
new PixmapButton( this, NULL );
|
||||
@@ -664,8 +603,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
triangle_wave_btn->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "triangle_shape_inactive" ) );
|
||||
ToolTip::add( triangle_wave_btn,
|
||||
tr( "Use a triangle-wave "
|
||||
"for current oscillator." ) );
|
||||
tr( "Triangle wave") );
|
||||
|
||||
PixmapButton * saw_wave_btn = new PixmapButton( this, NULL );
|
||||
saw_wave_btn->move( 158, btn_y );
|
||||
@@ -674,8 +612,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
saw_wave_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"saw_shape_inactive" ) );
|
||||
ToolTip::add( saw_wave_btn,
|
||||
tr( "Use a saw-wave for "
|
||||
"current oscillator." ) );
|
||||
tr( "Saw wave" ) );
|
||||
|
||||
PixmapButton * sqr_wave_btn = new PixmapButton( this, NULL );
|
||||
sqr_wave_btn->move( 173, btn_y );
|
||||
@@ -684,8 +621,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
sqr_wave_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"square_shape_inactive" ) );
|
||||
ToolTip::add( sqr_wave_btn,
|
||||
tr( "Use a square-wave for "
|
||||
"current oscillator." ) );
|
||||
tr( "Square wave" ) );
|
||||
|
||||
PixmapButton * moog_saw_wave_btn =
|
||||
new PixmapButton( this, NULL );
|
||||
@@ -695,8 +631,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
moog_saw_wave_btn->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "moog_saw_shape_inactive" ) );
|
||||
ToolTip::add( moog_saw_wave_btn,
|
||||
tr( "Use a moog-like saw-wave "
|
||||
"for current oscillator." ) );
|
||||
tr( "Moog-like saw wave" ) );
|
||||
|
||||
PixmapButton * exp_wave_btn = new PixmapButton( this, NULL );
|
||||
exp_wave_btn->move( 203, btn_y );
|
||||
@@ -705,8 +640,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
exp_wave_btn->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"exp_shape_inactive" ) );
|
||||
ToolTip::add( exp_wave_btn,
|
||||
tr( "Use an exponential "
|
||||
"wave for current oscillator." ) );
|
||||
tr( "Exponential wave" ) );
|
||||
|
||||
PixmapButton * white_noise_btn = new PixmapButton( this, NULL );
|
||||
white_noise_btn->move( 218, btn_y );
|
||||
@@ -715,8 +649,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
white_noise_btn->setInactiveGraphic(
|
||||
PLUGIN_NAME::getIconPixmap( "white_noise_shape_inactive" ) );
|
||||
ToolTip::add( white_noise_btn,
|
||||
tr( "Use white-noise for "
|
||||
"current oscillator." ) );
|
||||
tr( "White noise" ) );
|
||||
|
||||
PixmapButton * uwb = new PixmapButton( this, NULL );
|
||||
uwb->move( 233, btn_y );
|
||||
@@ -724,8 +657,7 @@ TripleOscillatorView::TripleOscillatorView( Instrument * _instrument,
|
||||
"usr_shape_active" ) );
|
||||
uwb->setInactiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"usr_shape_inactive" ) );
|
||||
ToolTip::add( uwb, tr( "Use a user-defined "
|
||||
"waveform for current oscillator." ) );
|
||||
ToolTip::add( uwb, tr( "User-defined wave" ) );
|
||||
|
||||
automatableButtonGroup * wsbg =
|
||||
new automatableButtonGroup( this );
|
||||
|
||||
@@ -263,7 +263,7 @@ void vestigeInstrument::loadFile( const QString & _file )
|
||||
{
|
||||
tf = TextFloat::displayMessage(
|
||||
tr( "Loading plugin" ),
|
||||
tr( "Please wait while loading VST-plugin..." ),
|
||||
tr( "Please wait while loading the VST plugin..." ),
|
||||
PLUGIN_NAME::getIconPixmap( "logo", 24, 24 ), 0 );
|
||||
}
|
||||
|
||||
@@ -413,12 +413,7 @@ VestigeInstrumentView::VestigeInstrumentView( Instrument * _instrument,
|
||||
"select_file" ) );
|
||||
connect( m_openPluginButton, SIGNAL( clicked() ), this,
|
||||
SLOT( openPlugin() ) );
|
||||
ToolTip::add( m_openPluginButton, tr( "Open other VST-plugin" ) );
|
||||
|
||||
m_openPluginButton->setWhatsThis(
|
||||
tr( "Click here, if you want to open another VST-plugin. After "
|
||||
"clicking on this button, a file-open-dialog appears "
|
||||
"and you can select your file." ) );
|
||||
ToolTip::add( m_openPluginButton, tr( "Open VST plugin" ) );
|
||||
|
||||
m_managePluginButton = new PixmapButton( this, "" );
|
||||
m_managePluginButton->setCheckable( false );
|
||||
@@ -430,10 +425,7 @@ VestigeInstrumentView::VestigeInstrumentView( Instrument * _instrument,
|
||||
"controls" ) );
|
||||
connect( m_managePluginButton, SIGNAL( clicked() ), this,
|
||||
SLOT( managePlugin() ) );
|
||||
ToolTip::add( m_managePluginButton, tr( "Control VST-plugin from LMMS host" ) );
|
||||
|
||||
m_managePluginButton->setWhatsThis(
|
||||
tr( "Click here, if you want to control VST-plugin from host." ) );
|
||||
ToolTip::add( m_managePluginButton, tr( "Control VST plugin from LMMS host" ) );
|
||||
|
||||
|
||||
m_openPresetButton = new PixmapButton( this, "" );
|
||||
@@ -446,10 +438,7 @@ VestigeInstrumentView::VestigeInstrumentView( Instrument * _instrument,
|
||||
"project_open", 20, 20 ) );
|
||||
connect( m_openPresetButton, SIGNAL( clicked() ), this,
|
||||
SLOT( openPreset() ) );
|
||||
ToolTip::add( m_openPresetButton, tr( "Open VST-plugin preset" ) );
|
||||
|
||||
m_openPresetButton->setWhatsThis(
|
||||
tr( "Click here, if you want to open another *.fxp, *.fxb VST-plugin preset." ) );
|
||||
ToolTip::add( m_openPresetButton, tr( "Open VST plugin preset" ) );
|
||||
|
||||
|
||||
m_rolLPresetButton = new PixmapButton( this, "" );
|
||||
@@ -466,9 +455,6 @@ VestigeInstrumentView::VestigeInstrumentView( Instrument * _instrument,
|
||||
|
||||
m_rolLPresetButton->setShortcut( Qt::Key_Minus );
|
||||
|
||||
m_rolLPresetButton->setWhatsThis(
|
||||
tr( "Click here, if you want to switch to another VST-plugin preset program." ) );
|
||||
|
||||
|
||||
m_savePresetButton = new PixmapButton( this, "" );
|
||||
m_savePresetButton->setCheckable( false );
|
||||
@@ -482,9 +468,6 @@ VestigeInstrumentView::VestigeInstrumentView( Instrument * _instrument,
|
||||
SLOT( savePreset() ) );
|
||||
ToolTip::add( m_savePresetButton, tr( "Save preset" ) );
|
||||
|
||||
m_savePresetButton->setWhatsThis(
|
||||
tr( "Click here, if you want to save current VST-plugin preset program." ) );
|
||||
|
||||
|
||||
m_rolRPresetButton = new PixmapButton( this, "" );
|
||||
m_rolRPresetButton->setCheckable( false );
|
||||
@@ -500,10 +483,6 @@ VestigeInstrumentView::VestigeInstrumentView( Instrument * _instrument,
|
||||
|
||||
m_rolRPresetButton->setShortcut( Qt::Key_Plus );
|
||||
|
||||
m_rolRPresetButton->setWhatsThis(
|
||||
tr( "Click here, if you want to switch to another VST-plugin preset program." ) );
|
||||
|
||||
|
||||
|
||||
m_selPresetButton = new QPushButton( tr( "" ), this );
|
||||
m_selPresetButton->setGeometry( 228, 201, 16, 16 );
|
||||
@@ -514,8 +493,6 @@ VestigeInstrumentView::VestigeInstrumentView( Instrument * _instrument,
|
||||
|
||||
|
||||
m_selPresetButton->setIcon( embed::getIconPixmap( "stepper-down" ) );
|
||||
m_selPresetButton->setWhatsThis(
|
||||
tr( "Click here to select presets that are currently loaded in VST." ) );
|
||||
|
||||
m_selPresetButton->setMenu(menu);
|
||||
|
||||
@@ -526,9 +503,6 @@ VestigeInstrumentView::VestigeInstrumentView( Instrument * _instrument,
|
||||
m_toggleGUIButton->setFont( pointSize<8>( m_toggleGUIButton->font() ) );
|
||||
connect( m_toggleGUIButton, SIGNAL( clicked() ), this,
|
||||
SLOT( toggleGUI() ) );
|
||||
m_toggleGUIButton->setWhatsThis(
|
||||
tr( "Click here to show or hide the graphical user interface "
|
||||
"(GUI) of your VST-plugin." ) );
|
||||
|
||||
QPushButton * note_off_all_btn = new QPushButton( tr( "Turn off all "
|
||||
"notes" ), this );
|
||||
@@ -611,7 +585,7 @@ void VestigeInstrumentView::modelChanged()
|
||||
|
||||
void VestigeInstrumentView::openPlugin()
|
||||
{
|
||||
FileDialog ofd( NULL, tr( "Open VST-plugin" ) );
|
||||
FileDialog ofd( NULL, tr( "Open VST plugin" ) );
|
||||
|
||||
// set filters
|
||||
QStringList types;
|
||||
@@ -817,7 +791,7 @@ void VestigeInstrumentView::paintEvent( QPaintEvent * )
|
||||
m_vi->m_plugin->name()/* + QString::number(
|
||||
m_plugin->version() )*/
|
||||
:
|
||||
tr( "No VST-plugin loaded" );
|
||||
tr( "No VST plugin loaded" );
|
||||
QFont f = p.font();
|
||||
f.setBold( true );
|
||||
p.setFont( pointSize<10>( f ) );
|
||||
@@ -878,16 +852,12 @@ manageVestigeInstrumentView::manageVestigeInstrumentView( Instrument * _instrume
|
||||
m_syncButton = new QPushButton( tr( "VST Sync" ), this );
|
||||
connect( m_syncButton, SIGNAL( clicked() ), this,
|
||||
SLOT( syncPlugin() ) );
|
||||
m_syncButton->setWhatsThis(
|
||||
tr( "Click here if you want to synchronize all parameters with VST plugin." ) );
|
||||
|
||||
l->addWidget( m_syncButton, 0, 0, 1, 2, Qt::AlignLeft );
|
||||
|
||||
m_displayAutomatedOnly = new QPushButton( tr( "Automated" ), this );
|
||||
connect( m_displayAutomatedOnly, SIGNAL( clicked() ), this,
|
||||
SLOT( displayAutomatedOnly() ) );
|
||||
m_displayAutomatedOnly->setWhatsThis(
|
||||
tr( "Click here if you want to display automated parameters only." ) );
|
||||
|
||||
l->addWidget( m_displayAutomatedOnly, 0, 1, 1, 2, Qt::AlignLeft );
|
||||
|
||||
@@ -895,8 +865,6 @@ manageVestigeInstrumentView::manageVestigeInstrumentView( Instrument * _instrume
|
||||
m_closeButton = new QPushButton( tr( " Close " ), widget );
|
||||
connect( m_closeButton, SIGNAL( clicked() ), this,
|
||||
SLOT( closeWindow() ) );
|
||||
m_closeButton->setWhatsThis(
|
||||
tr( "Close VST plugin knob-controller window." ) );
|
||||
|
||||
l->addWidget( m_closeButton, 0, 2, 1, 7, Qt::AlignLeft );
|
||||
|
||||
|
||||
@@ -26,8 +26,6 @@
|
||||
|
||||
#include "nine_button_selector.h"
|
||||
|
||||
#include <QWhatsThis>
|
||||
|
||||
#include "CaptionMenu.h"
|
||||
#include "embed.h"
|
||||
|
||||
@@ -252,20 +250,5 @@ void nineButtonSelector::updateButton( int _new_button )
|
||||
void nineButtonSelector::contextMenuEvent( QContextMenuEvent * )
|
||||
{
|
||||
CaptionMenu contextMenu( windowTitle(), this );
|
||||
contextMenu.addHelpAction();
|
||||
contextMenu.exec( QCursor::pos() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void nineButtonSelector::displayHelp()
|
||||
{
|
||||
QWhatsThis::showText( mapToGlobal( rect().bottomRight() ),
|
||||
whatsThis() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -74,7 +74,6 @@ public slots:
|
||||
void button7Clicked();
|
||||
void button8Clicked();
|
||||
void contextMenuEvent( QContextMenuEvent * );
|
||||
void displayHelp();
|
||||
|
||||
signals:
|
||||
void nineButtonSelection( int );
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
#include <QDomDocument>
|
||||
#include <QMap>
|
||||
#include <QWhatsThis>
|
||||
|
||||
#include "vibed.h"
|
||||
#include "Engine.h"
|
||||
@@ -91,19 +90,19 @@ vibed::vibed( InstrumentTrack * _instrumentTrack ) :
|
||||
m_pickupKnobs.append( knob );
|
||||
|
||||
knob = new FloatModel( 0.0f, -1.0f, 1.0f, 0.01f, this,
|
||||
tr( "Pan %1" ).arg( harm+1 ) );
|
||||
tr( "String %1 panning" ).arg( harm+1 ) );
|
||||
m_panKnobs.append( knob );
|
||||
|
||||
knob = new FloatModel( 0.0f, -0.1f, 0.1f, 0.001f, this,
|
||||
tr( "Detune %1" ).arg( harm+1 ) );
|
||||
tr( "String %1 detune" ).arg( harm+1 ) );
|
||||
m_detuneKnobs.append( knob );
|
||||
|
||||
knob = new FloatModel( 0.0f, 0.0f, 0.75f, 0.01f, this,
|
||||
tr( "Fuzziness %1 " ).arg( harm+1 ) );
|
||||
tr( "String %1 fuzziness" ).arg( harm+1 ) );
|
||||
m_randomKnobs.append( knob );
|
||||
|
||||
knob = new FloatModel( 1, 1, 16, 1, this,
|
||||
tr( "Length %1" ).arg( harm+1 ) );
|
||||
tr( "String %1 length" ).arg( harm+1 ) );
|
||||
m_lengthKnobs.append( knob );
|
||||
|
||||
led = new BoolModel( false, this,
|
||||
@@ -111,7 +110,7 @@ vibed::vibed( InstrumentTrack * _instrumentTrack ) :
|
||||
m_impulses.append( led );
|
||||
|
||||
led = new BoolModel( harm==0, this,
|
||||
tr( "Octave %1" ).arg( harm+1 ) );
|
||||
tr( "String %1" ).arg( harm+1 ) );
|
||||
m_powerButtons.append( led );
|
||||
|
||||
harmonic = new nineButtonSelectorModel( 2, 0, 8, this );
|
||||
@@ -362,77 +361,45 @@ vibedView::vibedView( Instrument * _instrument,
|
||||
m_volumeKnob = new Knob( knobBright_26, this );
|
||||
m_volumeKnob->setVolumeKnob( true );
|
||||
m_volumeKnob->move( 103, 142 );
|
||||
m_volumeKnob->setHintText( tr( "Volume:" ), "" );
|
||||
m_volumeKnob->setWhatsThis( tr( "The 'V' knob sets the volume "
|
||||
"of the selected string." ) );
|
||||
m_volumeKnob->setHintText( tr( "String volume:" ), "" );
|
||||
|
||||
m_stiffnessKnob = new Knob( knobBright_26, this );
|
||||
m_stiffnessKnob->move( 129, 142 );
|
||||
m_stiffnessKnob->setHintText( tr( "String stiffness:" )
|
||||
, "" );
|
||||
m_stiffnessKnob->setWhatsThis( tr(
|
||||
"The 'S' knob sets the stiffness of the selected string. The stiffness "
|
||||
"of the string affects how long the string will ring out. The lower "
|
||||
"the setting, the longer the string will ring." ) );
|
||||
|
||||
|
||||
m_pickKnob = new Knob( knobBright_26, this );
|
||||
m_pickKnob->move( 153, 142 );
|
||||
m_pickKnob->setHintText( tr( "Pick position:" ), "" );
|
||||
m_pickKnob->setWhatsThis( tr(
|
||||
"The 'P' knob sets the position where the selected string will be 'picked'. "
|
||||
"The lower the setting the closer the pick is to the bridge." ) );
|
||||
|
||||
m_pickupKnob = new Knob( knobBright_26, this );
|
||||
m_pickupKnob->move( 177, 142 );
|
||||
m_pickupKnob->setHintText( tr( "Pickup position:" )
|
||||
, "" );
|
||||
m_pickupKnob->setWhatsThis( tr(
|
||||
"The 'PU' knob sets the position where the vibrations will be monitored "
|
||||
"for the selected string. The lower the setting, the closer the "
|
||||
"pickup is to the bridge." ) );
|
||||
|
||||
m_panKnob = new Knob( knobBright_26, this );
|
||||
m_panKnob->move( 105, 187 );
|
||||
m_panKnob->setHintText( tr( "Pan:" ), "" );
|
||||
m_panKnob->setWhatsThis( tr(
|
||||
"The Pan knob determines the location of the selected string in the stereo "
|
||||
"field." ) );
|
||||
m_panKnob->setHintText( tr( "String panning:" ), "" );
|
||||
|
||||
m_detuneKnob = new Knob( knobBright_26, this );
|
||||
m_detuneKnob->move( 150, 187 );
|
||||
m_detuneKnob->setHintText( tr( "Detune:" ), "" );
|
||||
m_detuneKnob->setWhatsThis( tr(
|
||||
"The Detune knob modifies the pitch of the selected string. Settings less "
|
||||
"than zero will cause the string to sound flat. Settings greater than zero "
|
||||
"will cause the string to sound sharp." ) );
|
||||
m_detuneKnob->setHintText( tr( "String detune:" ), "" );
|
||||
|
||||
m_randomKnob = new Knob( knobBright_26, this );
|
||||
m_randomKnob->move( 194, 187 );
|
||||
m_randomKnob->setHintText( tr( "Fuzziness:" )
|
||||
m_randomKnob->setHintText( tr( "String fuzziness:" )
|
||||
, "" );
|
||||
m_randomKnob->setWhatsThis( tr(
|
||||
"The Slap knob adds a bit of fuzz to the selected string which is most "
|
||||
"apparent during the attack, though it can also be used to make the string "
|
||||
"sound more 'metallic'.") );
|
||||
|
||||
m_lengthKnob = new Knob( knobBright_26, this );
|
||||
m_lengthKnob->move( 23, 193 );
|
||||
m_lengthKnob->setHintText( tr( "Length:" )
|
||||
m_lengthKnob->setHintText( tr( "String length:" )
|
||||
, "" );
|
||||
m_lengthKnob->setWhatsThis( tr(
|
||||
"The Length knob sets the length of the selected string. Longer strings "
|
||||
"will both ring longer and sound brighter, however, they will also eat up "
|
||||
"more CPU cycles." ) );
|
||||
|
||||
m_impulse = new LedCheckBox( "", this );
|
||||
m_impulse->move( 23, 94 );
|
||||
ToolTip::add( m_impulse,
|
||||
tr( "Impulse or initial state" ) );
|
||||
m_impulse->setWhatsThis( tr(
|
||||
"The 'Imp' selector determines whether the waveform in the graph is to be "
|
||||
"treated as an impulse imparted to the string by the pick or the initial "
|
||||
"state of the string." ) );
|
||||
tr( "Impulse" ) );
|
||||
|
||||
m_harmonic = new nineButtonSelector(
|
||||
PLUGIN_NAME::getIconPixmap( "button_-2_on" ),
|
||||
@@ -458,12 +425,6 @@ vibedView::vibedView( Instrument * _instrument,
|
||||
this );
|
||||
|
||||
m_harmonic->setWindowTitle( tr( "Octave" ) );
|
||||
m_harmonic->setWhatsThis( tr(
|
||||
"The Octave selector is used to choose which harmonic of the note the "
|
||||
"string will ring at. For example, '-2' means the string will ring two "
|
||||
"octaves below the fundamental, 'F' means the string will ring at the "
|
||||
"fundamental, and '6' means the string will ring six octaves above the "
|
||||
"fundamental." ) );
|
||||
|
||||
|
||||
m_stringSelector = new nineButtonSelector(
|
||||
@@ -495,55 +456,15 @@ vibedView::vibedView( Instrument * _instrument,
|
||||
m_graph->move( 76, 21 );
|
||||
m_graph->resize(132, 104);
|
||||
|
||||
m_graph->setWhatsThis( tr(
|
||||
"The waveform editor provides control over the initial state or impulse "
|
||||
"that is used to start the string vibrating. The buttons to the right of "
|
||||
"the graph will initialize the waveform to the selected type. The '?' "
|
||||
"button will load a waveform from a file--only the first 128 samples "
|
||||
"will be loaded.\n\n"
|
||||
|
||||
"The waveform can also be drawn in the graph.\n\n"
|
||||
|
||||
"The 'S' button will smooth the waveform.\n\n"
|
||||
|
||||
"The 'N' button will normalize the waveform.") );
|
||||
|
||||
|
||||
setWhatsThis( tr(
|
||||
"Vibed models up to nine independently vibrating strings. The 'String' "
|
||||
"selector allows you to choose which string is being edited. The 'Imp' " "selector chooses whether the graph represents an impulse or the initial "
|
||||
"state of the string. The 'Octave' selector chooses which harmonic the "
|
||||
"string should vibrate at.\n\n"
|
||||
|
||||
"The graph allows you to control the initial state or impulse used to set the "
|
||||
"string in motion.\n\n"
|
||||
|
||||
"The 'V' knob controls the volume. The 'S' knob controls the string's "
|
||||
"stiffness. The 'P' knob controls the pick position. The 'PU' knob "
|
||||
"controls the pickup position.\n\n"
|
||||
|
||||
"'Pan' and 'Detune' hopefully don't need explanation. The 'Slap' knob "
|
||||
"adds a bit of fuzz to the sound of the string.\n\n"
|
||||
|
||||
"The 'Length' knob controls the length of the string.\n\n"
|
||||
|
||||
"The LED in the lower right corner of the waveform editor determines "
|
||||
"whether the string is active in the current instrument." ) );
|
||||
|
||||
|
||||
m_power = new LedCheckBox( "", this, tr( "Enable waveform" ) );
|
||||
m_power->move( 212, 130 );
|
||||
ToolTip::add( m_power,
|
||||
tr( "Click here to enable/disable waveform." ) );
|
||||
tr( "Enable/disable string" ) );
|
||||
|
||||
|
||||
// String selector is not a part of the model
|
||||
m_stringSelector->setWindowTitle( tr( "String" ) );
|
||||
m_stringSelector->setWhatsThis( tr(
|
||||
"The String selector is used to choose which string the controls are "
|
||||
"editing. A Vibed instrument can contain up to nine independently "
|
||||
"vibrating strings. The LED in the lower right corner of the "
|
||||
"waveform editor indicates whether the selected string is active." ) );
|
||||
|
||||
connect( m_stringSelector, SIGNAL( nineButtonSelection( int ) ),
|
||||
this, SLOT( showString( int ) ) );
|
||||
@@ -557,8 +478,7 @@ vibedView::vibedView( Instrument * _instrument,
|
||||
m_sinWaveBtn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"sin_wave_inactive" ) );
|
||||
ToolTip::add( m_sinWaveBtn,
|
||||
tr( "Use a sine-wave for "
|
||||
"current oscillator." ) );
|
||||
tr( "Sine wave" ) );
|
||||
connect( m_sinWaveBtn, SIGNAL (clicked () ),
|
||||
this, SLOT ( sinWaveClicked() ) );
|
||||
|
||||
@@ -570,8 +490,7 @@ vibedView::vibedView( Instrument * _instrument,
|
||||
m_triangleWaveBtn->setInactiveGraphic(
|
||||
embed::getIconPixmap( "triangle_wave_inactive" ) );
|
||||
ToolTip::add( m_triangleWaveBtn,
|
||||
tr( "Use a triangle-wave "
|
||||
"for current oscillator." ) );
|
||||
tr( "Triangle wave" ) );
|
||||
connect( m_triangleWaveBtn, SIGNAL ( clicked () ),
|
||||
this, SLOT ( triangleWaveClicked( ) ) );
|
||||
|
||||
@@ -583,8 +502,7 @@ vibedView::vibedView( Instrument * _instrument,
|
||||
m_sawWaveBtn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"saw_wave_inactive" ) );
|
||||
ToolTip::add( m_sawWaveBtn,
|
||||
tr( "Use a saw-wave for "
|
||||
"current oscillator." ) );
|
||||
tr( "Saw wave" ) );
|
||||
connect( m_sawWaveBtn, SIGNAL (clicked () ),
|
||||
this, SLOT ( sawWaveClicked() ) );
|
||||
|
||||
@@ -596,39 +514,36 @@ vibedView::vibedView( Instrument * _instrument,
|
||||
m_sqrWaveBtn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"square_wave_inactive" ) );
|
||||
ToolTip::add( m_sqrWaveBtn,
|
||||
tr( "Use a square-wave for "
|
||||
"current oscillator." ) );
|
||||
tr( "Square wave" ) );
|
||||
connect( m_sqrWaveBtn, SIGNAL ( clicked () ),
|
||||
this, SLOT ( sqrWaveClicked() ) );
|
||||
|
||||
|
||||
m_whiteNoiseWaveBtn = new PixmapButton( this, tr( "White noise wave" ) );
|
||||
m_whiteNoiseWaveBtn = new PixmapButton( this, tr( "White noise" ) );
|
||||
m_whiteNoiseWaveBtn->move( 212, 92 );
|
||||
m_whiteNoiseWaveBtn->setActiveGraphic(
|
||||
embed::getIconPixmap( "white_noise_wave_active" ) );
|
||||
m_whiteNoiseWaveBtn->setInactiveGraphic(
|
||||
embed::getIconPixmap( "white_noise_wave_inactive" ) );
|
||||
ToolTip::add( m_whiteNoiseWaveBtn,
|
||||
tr( "Use white-noise for "
|
||||
"current oscillator." ) );
|
||||
tr( "White noise" ) );
|
||||
connect( m_whiteNoiseWaveBtn, SIGNAL ( clicked () ),
|
||||
this, SLOT ( noiseWaveClicked() ) );
|
||||
|
||||
|
||||
m_usrWaveBtn = new PixmapButton( this, tr( "User defined wave" ) );
|
||||
m_usrWaveBtn = new PixmapButton( this, tr( "User-defined wave" ) );
|
||||
m_usrWaveBtn->move( 212, 109 );
|
||||
m_usrWaveBtn->setActiveGraphic( embed::getIconPixmap(
|
||||
"usr_wave_active" ) );
|
||||
m_usrWaveBtn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"usr_wave_inactive" ) );
|
||||
ToolTip::add( m_usrWaveBtn,
|
||||
tr( "Use a user-defined "
|
||||
"waveform for current oscillator." ) );
|
||||
tr( "User-defined wave" ) );
|
||||
connect( m_usrWaveBtn, SIGNAL ( clicked () ),
|
||||
this, SLOT ( usrWaveClicked() ) );
|
||||
|
||||
|
||||
m_smoothBtn = new PixmapButton( this, tr( "Smooth" ) );
|
||||
m_smoothBtn = new PixmapButton( this, tr( "Smooth waveform" ) );
|
||||
m_smoothBtn->move( 79, 129 );
|
||||
m_smoothBtn->setActiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"smooth_active" ) );
|
||||
@@ -636,11 +551,11 @@ vibedView::vibedView( Instrument * _instrument,
|
||||
"smooth_inactive" ) );
|
||||
m_smoothBtn->setChecked( false );
|
||||
ToolTip::add( m_smoothBtn,
|
||||
tr( "Click here to smooth waveform." ) );
|
||||
tr( "Smooth waveform" ) );
|
||||
connect( m_smoothBtn, SIGNAL ( clicked () ),
|
||||
this, SLOT ( smoothClicked() ) );
|
||||
|
||||
m_normalizeBtn = new PixmapButton( this, tr( "Normalize" ) );
|
||||
m_normalizeBtn = new PixmapButton( this, tr( "Normalize waveform" ) );
|
||||
m_normalizeBtn->move( 96, 129 );
|
||||
m_normalizeBtn->setActiveGraphic( PLUGIN_NAME::getIconPixmap(
|
||||
"normalize_active" ) );
|
||||
@@ -648,7 +563,7 @@ vibedView::vibedView( Instrument * _instrument,
|
||||
"normalize_inactive" ) );
|
||||
m_normalizeBtn->setChecked( false );
|
||||
ToolTip::add( m_normalizeBtn,
|
||||
tr( "Click here to normalize waveform." ) );
|
||||
tr( "Normalize waveform" ) );
|
||||
|
||||
connect( m_normalizeBtn, SIGNAL ( clicked () ),
|
||||
this, SLOT ( normalizeClicked() ) );
|
||||
@@ -758,21 +673,11 @@ void vibedView::contextMenuEvent( QContextMenuEvent * )
|
||||
{
|
||||
|
||||
CaptionMenu contextMenu( model()->displayName(), this );
|
||||
contextMenu.addHelpAction();
|
||||
contextMenu.exec( QCursor::pos() );
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void vibedView::displayHelp()
|
||||
{
|
||||
QWhatsThis::showText( mapToGlobal( rect().bottomRight() ),
|
||||
whatsThis() );
|
||||
}
|
||||
|
||||
|
||||
extern "C"
|
||||
{
|
||||
|
||||
|
||||
@@ -93,7 +93,6 @@ public:
|
||||
public slots:
|
||||
void showString( int _string );
|
||||
void contextMenuEvent( QContextMenuEvent * );
|
||||
void displayHelp();
|
||||
|
||||
protected slots:
|
||||
void sinWaveClicked();
|
||||
|
||||
@@ -765,19 +765,19 @@ WatsynView::WatsynView( Instrument * _instrument,
|
||||
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" ) );
|
||||
ToolTip::add( amod_amButton, tr( "Modulate amplitude of A1 by output of A2" ) );
|
||||
|
||||
PixmapButton * amod_rmButton = new PixmapButton( this, NULL );
|
||||
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" ) );
|
||||
ToolTip::add( amod_rmButton, tr( "Ring modulate A1 and A2" ) );
|
||||
|
||||
PixmapButton * amod_pmButton = new PixmapButton( this, NULL );
|
||||
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" ) );
|
||||
ToolTip::add( amod_pmButton, tr( "Modulate phase of A1 by output of A2" ) );
|
||||
|
||||
m_aModGroup = new automatableButtonGroup( this );
|
||||
m_aModGroup -> addButton( amod_mixButton );
|
||||
@@ -796,19 +796,19 @@ WatsynView::WatsynView( Instrument * _instrument,
|
||||
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" ) );
|
||||
ToolTip::add( bmod_amButton, tr( "Modulate amplitude of B1 by output of B2" ) );
|
||||
|
||||
PixmapButton * bmod_rmButton = new PixmapButton( this, NULL );
|
||||
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" ) );
|
||||
ToolTip::add( bmod_rmButton, tr( "Ring modulate B1 and B2" ) );
|
||||
|
||||
PixmapButton * bmod_pmButton = new PixmapButton( this, NULL );
|
||||
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" ) );
|
||||
ToolTip::add( bmod_pmButton, tr( "Modulate phase of B1 by output of B2" ) );
|
||||
|
||||
m_bModGroup = new automatableButtonGroup( this );
|
||||
m_bModGroup -> addButton( bmod_mixButton );
|
||||
@@ -860,38 +860,38 @@ WatsynView::WatsynView( Instrument * _instrument,
|
||||
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" ) );
|
||||
ToolTip::add( m_loadButton, tr( "Load a waveform from a sample file" ) );
|
||||
|
||||
m_phaseLeftButton = new PixmapButton( this, tr( "Phase left" ) );
|
||||
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" ) );
|
||||
ToolTip::add( m_phaseLeftButton, tr( "Shift phase by -15 degrees" ) );
|
||||
|
||||
m_phaseRightButton = new PixmapButton( this, tr( "Phase right" ) );
|
||||
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" ) );
|
||||
ToolTip::add( m_phaseRightButton, tr( "Shift phase by +15 degrees" ) );
|
||||
|
||||
m_normalizeButton = new PixmapButton( this, tr( "Normalize" ) );
|
||||
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" ) );
|
||||
ToolTip::add( m_normalizeButton, tr( "Normalize" ) );
|
||||
|
||||
|
||||
m_invertButton = new PixmapButton( this, tr( "Invert" ) );
|
||||
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" ) );
|
||||
ToolTip::add( m_invertButton, tr( "Invert" ) );
|
||||
|
||||
m_smoothButton = new PixmapButton( this, tr( "Smooth" ) );
|
||||
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" ) );
|
||||
ToolTip::add( m_smoothButton, tr( "Smooth" ) );
|
||||
|
||||
// waveforms
|
||||
|
||||
@@ -899,25 +899,25 @@ WatsynView::WatsynView( Instrument * _instrument,
|
||||
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" ) );
|
||||
ToolTip::add( m_sinWaveButton, tr( "Sine wave" ) );
|
||||
|
||||
m_triWaveButton = new PixmapButton( this, tr( "Triangle wave" ) );
|
||||
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" ) );
|
||||
ToolTip::add( m_triWaveButton, tr( "Triangle wave" ) );
|
||||
|
||||
m_sawWaveButton = new PixmapButton( this, tr( "Triangle wave" ) );
|
||||
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" ) );
|
||||
ToolTip::add( m_sawWaveButton, tr( "Saw wave" ) );
|
||||
|
||||
m_sqrWaveButton = new PixmapButton( this, tr( "Square wave" ) );
|
||||
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" ) );
|
||||
ToolTip::add( m_sqrWaveButton, tr( "Square wave" ) );
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -73,39 +73,39 @@ waveShaperControlDialog::waveShaperControlDialog(
|
||||
outputKnob->setLabel( tr( "OUTPUT" ) );
|
||||
outputKnob->setHintText( tr( "Output gain:" ), "" );
|
||||
|
||||
PixmapButton * resetButton = new PixmapButton( this, tr("Reset waveform") );
|
||||
PixmapButton * resetButton = new PixmapButton( this, tr("Reset wavegraph") );
|
||||
resetButton -> move( 162, 221 );
|
||||
resetButton -> resize( 13, 46 );
|
||||
resetButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "reset_active" ) );
|
||||
resetButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "reset_inactive" ) );
|
||||
ToolTip::add( resetButton, tr( "Click here to reset the wavegraph back to default" ) );
|
||||
ToolTip::add( resetButton, tr( "Reset wavegraph" ) );
|
||||
|
||||
PixmapButton * smoothButton = new PixmapButton( this, tr("Smooth waveform") );
|
||||
PixmapButton * smoothButton = new PixmapButton( this, tr("Smooth wavegraph") );
|
||||
smoothButton -> move( 162, 237 );
|
||||
smoothButton -> resize( 13, 46 );
|
||||
smoothButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_active" ) );
|
||||
smoothButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "smooth_inactive" ) );
|
||||
ToolTip::add( smoothButton, tr( "Click here to apply smoothing to wavegraph" ) );
|
||||
ToolTip::add( smoothButton, tr( "Smooth wavegraph" ) );
|
||||
|
||||
PixmapButton * addOneButton = new PixmapButton( this, tr("Increase graph amplitude by 1dB") );
|
||||
PixmapButton * addOneButton = new PixmapButton( this, tr("Increase wavegraph amplitude by 1 dB") );
|
||||
addOneButton -> move( 131, 221 );
|
||||
addOneButton -> resize( 13, 29 );
|
||||
addOneButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "add1_active" ) );
|
||||
addOneButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "add1_inactive" ) );
|
||||
ToolTip::add( addOneButton, tr( "Click here to increase wavegraph amplitude by 1dB" ) );
|
||||
ToolTip::add( addOneButton, tr( "Increase wavegraph amplitude by 1 dB" ) );
|
||||
|
||||
PixmapButton * subOneButton = new PixmapButton( this, tr("Decrease graph amplitude by 1dB") );
|
||||
PixmapButton * subOneButton = new PixmapButton( this, tr("Decrease wavegraph amplitude by 1 dB") );
|
||||
subOneButton -> move( 131, 237 );
|
||||
subOneButton -> resize( 13, 29 );
|
||||
subOneButton -> setActiveGraphic( PLUGIN_NAME::getIconPixmap( "sub1_active" ) );
|
||||
subOneButton -> setInactiveGraphic( PLUGIN_NAME::getIconPixmap( "sub1_inactive" ) );
|
||||
ToolTip::add( subOneButton, tr( "Click here to decrease wavegraph amplitude by 1dB" ) );
|
||||
ToolTip::add( subOneButton, tr( "Decrease wavegraph amplitude by 1 dB" ) );
|
||||
|
||||
LedCheckBox * clipInputToggle = new LedCheckBox( "Clip input", this,
|
||||
tr( "Clip input" ), LedCheckBox::Green );
|
||||
clipInputToggle -> move( 131, 252 );
|
||||
clipInputToggle -> setModel( &_controls -> m_clipModel );
|
||||
ToolTip::add( clipInputToggle, tr( "Clip input signal to 0dB" ) );
|
||||
ToolTip::add( clipInputToggle, tr( "Clip input signal to 0 dB" ) );
|
||||
|
||||
connect( resetButton, SIGNAL (clicked () ),
|
||||
_controls, SLOT ( resetClicked() ) );
|
||||
|
||||
@@ -111,13 +111,13 @@ ZynAddSubFxInstrument::ZynAddSubFxInstrument(
|
||||
m_plugin( NULL ),
|
||||
m_remotePlugin( NULL ),
|
||||
m_portamentoModel( 0, 0, 127, 1, this, tr( "Portamento" ) ),
|
||||
m_filterFreqModel( 64, 0, 127, 1, this, tr( "Filter Frequency" ) ),
|
||||
m_filterQModel( 64, 0, 127, 1, this, tr( "Filter Resonance" ) ),
|
||||
m_filterFreqModel( 64, 0, 127, 1, this, tr( "Filter frequency" ) ),
|
||||
m_filterQModel( 64, 0, 127, 1, this, tr( "Filter resonance" ) ),
|
||||
m_bandwidthModel( 64, 0, 127, 1, this, tr( "Bandwidth" ) ),
|
||||
m_fmGainModel( 127, 0, 127, 1, this, tr( "FM Gain" ) ),
|
||||
m_resCenterFreqModel( 64, 0, 127, 1, this, tr( "Resonance Center Frequency" ) ),
|
||||
m_resBandwidthModel( 64, 0, 127, 1, this, tr( "Resonance Bandwidth" ) ),
|
||||
m_forwardMidiCcModel( true, this, tr( "Forward MIDI Control Change Events" ) )
|
||||
m_fmGainModel( 127, 0, 127, 1, this, tr( "FM gain" ) ),
|
||||
m_resCenterFreqModel( 64, 0, 127, 1, this, tr( "Resonance center frequency" ) ),
|
||||
m_resBandwidthModel( 64, 0, 127, 1, this, tr( "Resonance bandwidth" ) ),
|
||||
m_forwardMidiCcModel( true, this, tr( "Forward MIDI control change events" ) )
|
||||
{
|
||||
initPlugin();
|
||||
|
||||
@@ -507,11 +507,11 @@ ZynAddSubFxView::ZynAddSubFxView( Instrument * _instrument, QWidget * _parent )
|
||||
m_portamento->setLabel( tr( "PORT" ) );
|
||||
|
||||
m_filterFreq = new Knob( knobBright_26, this );
|
||||
m_filterFreq->setHintText( tr( "Filter Frequency:" ), "" );
|
||||
m_filterFreq->setHintText( tr( "Filter frequency:" ), "" );
|
||||
m_filterFreq->setLabel( tr( "FREQ" ) );
|
||||
|
||||
m_filterQ = new Knob( knobBright_26, this );
|
||||
m_filterQ->setHintText( tr( "Filter Resonance:" ), "" );
|
||||
m_filterQ->setHintText( tr( "Filter resonance:" ), "" );
|
||||
m_filterQ->setLabel( tr( "RES" ) );
|
||||
|
||||
m_bandwidth = new Knob( knobBright_26, this );
|
||||
@@ -519,7 +519,7 @@ ZynAddSubFxView::ZynAddSubFxView( Instrument * _instrument, QWidget * _parent )
|
||||
m_bandwidth->setLabel( tr( "BW" ) );
|
||||
|
||||
m_fmGain = new Knob( knobBright_26, this );
|
||||
m_fmGain->setHintText( tr( "FM Gain:" ), "" );
|
||||
m_fmGain->setHintText( tr( "FM gain:" ), "" );
|
||||
m_fmGain->setLabel( tr( "FM GAIN" ) );
|
||||
|
||||
m_resCenterFreq = new Knob( knobBright_26, this );
|
||||
@@ -530,7 +530,7 @@ ZynAddSubFxView::ZynAddSubFxView( Instrument * _instrument, QWidget * _parent )
|
||||
m_resBandwidth->setHintText( tr( "Resonance bandwidth:" ), "" );
|
||||
m_resBandwidth->setLabel( tr( "RES BW" ) );
|
||||
|
||||
m_forwardMidiCC = new LedCheckBox( tr( "Forward MIDI Control Changes" ), this );
|
||||
m_forwardMidiCC = new LedCheckBox( tr( "Forward MIDI control changes" ), this );
|
||||
|
||||
m_toggleUIButton = new QPushButton( tr( "Show GUI" ), this );
|
||||
m_toggleUIButton->setCheckable( true );
|
||||
@@ -539,9 +539,6 @@ ZynAddSubFxView::ZynAddSubFxView( Instrument * _instrument, QWidget * _parent )
|
||||
m_toggleUIButton->setFont( pointSize<8>( m_toggleUIButton->font() ) );
|
||||
connect( m_toggleUIButton, SIGNAL( toggled( bool ) ), this,
|
||||
SLOT( toggleUI() ) );
|
||||
m_toggleUIButton->setWhatsThis(
|
||||
tr( "Click here to show or hide the graphical user interface "
|
||||
"(GUI) of ZynAddSubFX." ) );
|
||||
|
||||
l->addWidget( m_toggleUIButton, 0, 0, 1, 4 );
|
||||
l->setRowStretch( 1, 5 );
|
||||
|
||||
@@ -292,9 +292,7 @@ void ConfigManager::setDefaultSoundfont( const QString & _sf )
|
||||
|
||||
void ConfigManager::setBackgroundArtwork( const QString & _ba )
|
||||
{
|
||||
#ifdef LMMS_HAVE_FLUIDSYNTH
|
||||
m_backgroundArtwork = _ba;
|
||||
#endif
|
||||
}
|
||||
|
||||
void ConfigManager::setGIGDir(const QString &gd)
|
||||
|
||||
@@ -93,13 +93,13 @@ EnvelopeAndLfoParameters::EnvelopeAndLfoParameters(
|
||||
Model * _parent ) :
|
||||
Model( _parent ),
|
||||
m_used( false ),
|
||||
m_predelayModel( 0.0, 0.0, 2.0, 0.001, this, tr( "Predelay" ) ),
|
||||
m_attackModel( 0.0, 0.0, 2.0, 0.001, this, tr( "Attack" ) ),
|
||||
m_holdModel( 0.5, 0.0, 2.0, 0.001, this, tr( "Hold" ) ),
|
||||
m_decayModel( 0.5, 0.0, 2.0, 0.001, this, tr( "Decay" ) ),
|
||||
m_sustainModel( 0.5, 0.0, 1.0, 0.001, this, tr( "Sustain" ) ),
|
||||
m_releaseModel( 0.1, 0.0, 2.0, 0.001, this, tr( "Release" ) ),
|
||||
m_amountModel( 0.0, -1.0, 1.0, 0.005, this, tr( "Modulation" ) ),
|
||||
m_predelayModel( 0.0, 0.0, 2.0, 0.001, this, tr( "Env pre-delay" ) ),
|
||||
m_attackModel( 0.0, 0.0, 2.0, 0.001, this, tr( "Env attack" ) ),
|
||||
m_holdModel( 0.5, 0.0, 2.0, 0.001, this, tr( "Env hold" ) ),
|
||||
m_decayModel( 0.5, 0.0, 2.0, 0.001, this, tr( "Env decay" ) ),
|
||||
m_sustainModel( 0.5, 0.0, 1.0, 0.001, this, tr( "Env sustain" ) ),
|
||||
m_releaseModel( 0.1, 0.0, 2.0, 0.001, this, tr( "Env release" ) ),
|
||||
m_amountModel( 0.0, -1.0, 1.0, 0.005, this, tr( "Env mod amount" ) ),
|
||||
m_valueForZeroAmount( _value_for_zero_amount ),
|
||||
m_pahdFrames( 0 ),
|
||||
m_rFrames( 0 ),
|
||||
@@ -107,15 +107,15 @@ EnvelopeAndLfoParameters::EnvelopeAndLfoParameters(
|
||||
m_rEnv( NULL ),
|
||||
m_pahdBufSize( 0 ),
|
||||
m_rBufSize( 0 ),
|
||||
m_lfoPredelayModel( 0.0, 0.0, 1.0, 0.001, this, tr( "LFO Predelay" ) ),
|
||||
m_lfoAttackModel( 0.0, 0.0, 1.0, 0.001, this, tr( "LFO Attack" ) ),
|
||||
m_lfoPredelayModel( 0.0, 0.0, 1.0, 0.001, this, tr( "LFO pre-delay" ) ),
|
||||
m_lfoAttackModel( 0.0, 0.0, 1.0, 0.001, this, tr( "LFO attack" ) ),
|
||||
m_lfoSpeedModel( 0.1, 0.001, 1.0, 0.0001,
|
||||
SECS_PER_LFO_OSCILLATION * 1000.0, this,
|
||||
tr( "LFO speed" ) ),
|
||||
m_lfoAmountModel( 0.0, -1.0, 1.0, 0.005, this, tr( "LFO Modulation" ) ),
|
||||
m_lfoWaveModel( SineWave, 0, NumLfoShapes, this, tr( "LFO Wave Shape" ) ),
|
||||
m_x100Model( false, this, tr( "Freq x 100" ) ),
|
||||
m_controlEnvAmountModel( false, this, tr( "Modulate Env-Amount" ) ),
|
||||
tr( "LFO frequency" ) ),
|
||||
m_lfoAmountModel( 0.0, -1.0, 1.0, 0.005, this, tr( "LFO mod amount" ) ),
|
||||
m_lfoWaveModel( SineWave, 0, NumLfoShapes, this, tr( "LFO wave shape" ) ),
|
||||
m_x100Model( false, this, tr( "LFO frequency x 100" ) ),
|
||||
m_controlEnvAmountModel( false, this, tr( "Modulate env amount" ) ),
|
||||
m_lfoFrame( 0 ),
|
||||
m_lfoAmountIsZero( false ),
|
||||
m_lfoShapeData( NULL )
|
||||
|
||||
@@ -344,7 +344,7 @@ void InstrumentFunctionArpeggio::processNote( NotePlayHandle * _n )
|
||||
if( _n->origin() == NotePlayHandle::OriginArpeggio ||
|
||||
_n->origin() == NotePlayHandle::OriginNoteStacking ||
|
||||
!m_arpEnabledModel.value() ||
|
||||
( _n->isReleased() && _n->releaseFramesDone() >= _n->actualReleaseFramesToDo() ) )
|
||||
_n->isReleased() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -412,7 +412,6 @@ void InstrumentFunctionArpeggio::processNote( NotePlayHandle * _n )
|
||||
// Skip notes randomly
|
||||
if( m_arpSkipModel.value() )
|
||||
{
|
||||
|
||||
if( 100 * ( (float) rand() / (float)( RAND_MAX + 1.0f ) ) < m_arpSkipModel.value() )
|
||||
{
|
||||
// Set master note to prevent the note to extend over skipped notes
|
||||
@@ -501,12 +500,6 @@ void InstrumentFunctionArpeggio::processNote( NotePlayHandle * _n )
|
||||
continue;
|
||||
}
|
||||
|
||||
float vol_level = 1.0f;
|
||||
if( _n->isReleased() )
|
||||
{
|
||||
vol_level = _n->volumeLevel( cur_frame + gated_frames );
|
||||
}
|
||||
|
||||
// create new arp-note
|
||||
|
||||
// create sub-note-play-handle, only ptr to note is different
|
||||
@@ -515,7 +508,7 @@ void InstrumentFunctionArpeggio::processNote( NotePlayHandle * _n )
|
||||
NotePlayHandleManager::acquire( _n->instrumentTrack(),
|
||||
frames_processed,
|
||||
gated_frames,
|
||||
Note( MidiTime( 0 ), MidiTime( 0 ), sub_note_key, (volume_t) qRound( _n->getVolume() * vol_level ),
|
||||
Note( MidiTime( 0 ), MidiTime( 0 ), sub_note_key, _n->getVolume(),
|
||||
_n->getPanning(), _n->detuning() ),
|
||||
_n, -1, NotePlayHandle::OriginArpeggio )
|
||||
);
|
||||
|
||||
@@ -80,25 +80,25 @@ InstrumentSoundShaping::InstrumentSoundShaping(
|
||||
tr( targetNames[i][2].toUtf8().constData() ) );
|
||||
}
|
||||
|
||||
m_filterModel.addItem( tr( "LowPass" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filterModel.addItem( tr( "HiPass" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filterModel.addItem( tr( "BandPass csg" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filterModel.addItem( tr( "BandPass czpg" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filterModel.addItem( tr( "Low-pass" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filterModel.addItem( tr( "Hi-pass" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filterModel.addItem( tr( "Band-pass csg" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filterModel.addItem( tr( "Band-pass czpg" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filterModel.addItem( tr( "Notch" ), make_unique<PixmapLoader>( "filter_notch" ) );
|
||||
m_filterModel.addItem( tr( "Allpass" ), make_unique<PixmapLoader>( "filter_ap" ) );
|
||||
m_filterModel.addItem( tr( "All-pass" ), make_unique<PixmapLoader>( "filter_ap" ) );
|
||||
m_filterModel.addItem( tr( "Moog" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filterModel.addItem( tr( "2x LowPass" ), make_unique<PixmapLoader>( "filter_2lp" ) );
|
||||
m_filterModel.addItem( tr( "RC LowPass 12dB" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filterModel.addItem( tr( "RC BandPass 12dB" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filterModel.addItem( tr( "RC HighPass 12dB" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filterModel.addItem( tr( "RC LowPass 24dB" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filterModel.addItem( tr( "RC BandPass 24dB" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filterModel.addItem( tr( "RC HighPass 24dB" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filterModel.addItem( tr( "Vocal Formant Filter" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filterModel.addItem( tr( "2x Low-pass" ), make_unique<PixmapLoader>( "filter_2lp" ) );
|
||||
m_filterModel.addItem( tr( "RC Low-pass 12 dB/oct" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filterModel.addItem( tr( "RC Band-pass 12 dB/oct" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filterModel.addItem( tr( "RC High-pass 12 dB/oct" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filterModel.addItem( tr( "RC Low-pass 24 dB/oct" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filterModel.addItem( tr( "RC Band-pass 24 dB/oct" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filterModel.addItem( tr( "RC High-pass 24 dB/oct" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filterModel.addItem( tr( "Vocal Formant" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filterModel.addItem( tr( "2x Moog" ), make_unique<PixmapLoader>( "filter_2lp" ) );
|
||||
m_filterModel.addItem( tr( "SV LowPass" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filterModel.addItem( tr( "SV BandPass" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filterModel.addItem( tr( "SV HighPass" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filterModel.addItem( tr( "SV Low-pass" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
m_filterModel.addItem( tr( "SV Band-pass" ), make_unique<PixmapLoader>( "filter_bp" ) );
|
||||
m_filterModel.addItem( tr( "SV High-pass" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filterModel.addItem( tr( "SV Notch" ), make_unique<PixmapLoader>( "filter_notch" ) );
|
||||
m_filterModel.addItem( tr( "Fast Formant" ), make_unique<PixmapLoader>( "filter_hp" ) );
|
||||
m_filterModel.addItem( tr( "Tripole" ), make_unique<PixmapLoader>( "filter_lp" ) );
|
||||
|
||||
@@ -1090,6 +1090,7 @@ Mixer::fifoWriter::fifoWriter( Mixer* mixer, fifo * _fifo ) :
|
||||
m_fifo( _fifo ),
|
||||
m_writing( true )
|
||||
{
|
||||
setObjectName("Mixer::fifoWriter");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "MixerWorkerThread.h"
|
||||
|
||||
#include <xmmintrin.h>
|
||||
#include <QDebug>
|
||||
#include <QMutex>
|
||||
#include <QWaitCondition>
|
||||
|
||||
@@ -39,7 +40,7 @@ QList<MixerWorkerThread *> MixerWorkerThread::workerThreads;
|
||||
// implementation of internal JobQueue
|
||||
void MixerWorkerThread::JobQueue::reset( OperationMode _opMode )
|
||||
{
|
||||
m_queueSize = 0;
|
||||
m_writeIndex = 0;
|
||||
m_itemsDone = 0;
|
||||
m_opMode = _opMode;
|
||||
}
|
||||
@@ -54,7 +55,13 @@ void MixerWorkerThread::JobQueue::addJob( ThreadableJob * _job )
|
||||
// update job state
|
||||
_job->queue();
|
||||
// actually queue the job via atomic operations
|
||||
m_items[m_queueSize++] = _job;
|
||||
auto index = m_writeIndex++;
|
||||
if (index < JOB_QUEUE_SIZE) {
|
||||
m_items[index] = _job;
|
||||
} else {
|
||||
qWarning() << "Job queue is full!";
|
||||
++m_itemsDone;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,10 +70,10 @@ void MixerWorkerThread::JobQueue::addJob( ThreadableJob * _job )
|
||||
void MixerWorkerThread::JobQueue::run()
|
||||
{
|
||||
bool processedJob = true;
|
||||
while (processedJob && m_itemsDone < m_queueSize)
|
||||
while (processedJob && m_itemsDone < m_writeIndex)
|
||||
{
|
||||
processedJob = false;
|
||||
for( int i = 0; i < m_queueSize; ++i )
|
||||
for( int i = 0; i < m_writeIndex && i < JOB_QUEUE_SIZE; ++i )
|
||||
{
|
||||
ThreadableJob * job = m_items[i].exchange(nullptr);
|
||||
if( job )
|
||||
@@ -86,7 +93,7 @@ void MixerWorkerThread::JobQueue::run()
|
||||
|
||||
void MixerWorkerThread::JobQueue::wait()
|
||||
{
|
||||
while (m_itemsDone < m_queueSize)
|
||||
while (m_itemsDone < m_writeIndex)
|
||||
{
|
||||
#if defined(LMMS_HOST_X86) || defined(LMMS_HOST_X86_64)
|
||||
_mm_pause();
|
||||
|
||||
@@ -54,7 +54,7 @@ ProcessWatcher::ProcessWatcher( RemotePlugin * _p ) :
|
||||
|
||||
void ProcessWatcher::run()
|
||||
{
|
||||
while( !m_quit && m_plugin->isRunning() )
|
||||
while( !m_quit && (m_plugin->isRunning() || m_plugin->messagesLeft()) )
|
||||
{
|
||||
msleep( 200 );
|
||||
}
|
||||
|
||||
@@ -143,7 +143,9 @@ void TrackContentObject::movePosition( const MidiTime & pos )
|
||||
{
|
||||
if( m_startPosition != pos )
|
||||
{
|
||||
Engine::mixer()->requestChangeInModel();
|
||||
m_startPosition = pos;
|
||||
Engine::mixer()->doneChangeInModel();
|
||||
Engine::getSong()->updateLength();
|
||||
emit positionChanged();
|
||||
}
|
||||
@@ -1732,7 +1734,7 @@ TrackOperationsWidget::TrackOperationsWidget( TrackView * parent ) :
|
||||
m_trackView( parent ) /*!< The parent track view */
|
||||
{
|
||||
ToolTip::add( this, tr( "Press <%1> while clicking on move-grip "
|
||||
"to begin a new drag'n'drop-action." ).arg(
|
||||
"to begin a new drag'n'drop action." ).arg(
|
||||
#ifdef LMMS_BUILD_APPLE
|
||||
"⌘") );
|
||||
#else
|
||||
@@ -1751,7 +1753,7 @@ TrackOperationsWidget::TrackOperationsWidget( TrackView * parent ) :
|
||||
m_trackOps->move( 12, 1 );
|
||||
m_trackOps->setFocusPolicy( Qt::NoFocus );
|
||||
m_trackOps->setMenu( toMenu );
|
||||
ToolTip::add( m_trackOps, tr( "Actions for this track" ) );
|
||||
ToolTip::add( m_trackOps, tr( "Actions" ) );
|
||||
|
||||
|
||||
m_muteBtn = new PixmapButton( this, tr( "Mute" ) );
|
||||
@@ -1777,7 +1779,7 @@ TrackOperationsWidget::TrackOperationsWidget( TrackView * parent ) :
|
||||
}
|
||||
|
||||
m_muteBtn->show();
|
||||
ToolTip::add( m_muteBtn, tr( "Mute this track" ) );
|
||||
ToolTip::add( m_muteBtn, tr( "Mute" ) );
|
||||
|
||||
m_soloBtn->show();
|
||||
ToolTip::add( m_soloBtn, tr( "Solo" ) );
|
||||
|
||||
@@ -38,6 +38,10 @@ MidiClient::MidiClient()
|
||||
MidiClient::~MidiClient()
|
||||
{
|
||||
//TODO: noteOffAll(); / clear all ports
|
||||
for (MidiPort* port : m_midiPorts)
|
||||
{
|
||||
port->invalidateCilent();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -27,9 +27,12 @@
|
||||
|
||||
#include "MidiPort.h"
|
||||
#include "MidiClient.h"
|
||||
#include "MidiDummy.h"
|
||||
#include "Note.h"
|
||||
#include "Song.h"
|
||||
|
||||
static MidiDummy s_dummyClient;
|
||||
|
||||
|
||||
|
||||
MidiPort::MidiPort( const QString& name,
|
||||
@@ -410,4 +413,7 @@ void MidiPort::updateOutputProgram()
|
||||
|
||||
|
||||
|
||||
|
||||
void MidiPort::invalidateCilent()
|
||||
{
|
||||
m_midiClient = &s_dummyClient;
|
||||
}
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>RowTableView</class>
|
||||
<extends>QTableView</extends>
|
||||
<header>RowTableView.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
|
||||
@@ -66,48 +66,25 @@ LfoControllerDialog::LfoControllerDialog( Controller * _model, QWidget * _parent
|
||||
setWindowIcon( embed::getIconPixmap( "controller" ) );
|
||||
setFixedSize( 240, 58 );
|
||||
|
||||
ToolTip::add( this, tr( "LFO Controller" ) );
|
||||
|
||||
m_baseKnob = new Knob( knobBright_26, this );
|
||||
m_baseKnob->setLabel( tr( "BASE" ) );
|
||||
m_baseKnob->move( CD_LFO_BASE_CD_KNOB_X, CD_LFO_CD_KNOB_Y );
|
||||
m_baseKnob->setHintText( tr( "Base amount:" ), "" );
|
||||
m_baseKnob->setWhatsThis( tr("todo") );
|
||||
|
||||
m_baseKnob->setHintText( tr( "Base:" ), "" );
|
||||
|
||||
m_speedKnob = new TempoSyncKnob( knobBright_26, this );
|
||||
m_speedKnob->setLabel( tr( "SPD" ) );
|
||||
m_speedKnob->setLabel( tr( "FREQ" ) );
|
||||
m_speedKnob->move( CD_LFO_SPEED_CD_KNOB_X, CD_LFO_CD_KNOB_Y );
|
||||
m_speedKnob->setHintText( tr( "LFO-speed:" ), "" );
|
||||
m_speedKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting speed of the LFO. The "
|
||||
"bigger this value the faster the LFO oscillates and "
|
||||
"the faster the effect." ) );
|
||||
|
||||
m_speedKnob->setHintText( tr( "LFO frequency:" ), "" );
|
||||
|
||||
m_amountKnob = new Knob( knobBright_26, this );
|
||||
m_amountKnob->setLabel( tr( "AMNT" ) );
|
||||
m_amountKnob->move( CD_LFO_AMOUNT_CD_KNOB_X, CD_LFO_CD_KNOB_Y );
|
||||
m_amountKnob->setHintText( tr( "Modulation amount:" ), "" );
|
||||
m_amountKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting modulation amount of the "
|
||||
"LFO. The bigger this value, the more the connected "
|
||||
"control (e.g. volume or cutoff-frequency) will "
|
||||
"be influenced by the LFO." ) );
|
||||
|
||||
m_phaseKnob = new Knob( knobBright_26, this );
|
||||
m_phaseKnob->setLabel( tr( "PHS" ) );
|
||||
m_phaseKnob->move( CD_LFO_PHASE_CD_KNOB_X, CD_LFO_CD_KNOB_Y );
|
||||
m_phaseKnob->setHintText( tr( "Phase offset:" ) , "" + tr( "degrees" ) );
|
||||
m_phaseKnob->setWhatsThis(
|
||||
tr( "With this knob you can set the phase offset of "
|
||||
"the LFO. That means you can move the "
|
||||
"point within an oscillation where the "
|
||||
"oscillator begins to oscillate. For example "
|
||||
"if you have a sine-wave and have a phase-"
|
||||
"offset of 180 degrees the wave will first go "
|
||||
"down. It's the same with a square-wave."
|
||||
) );
|
||||
m_phaseKnob->setHintText( tr( "Phase offset:" ) , "" + tr( " degrees" ) );
|
||||
|
||||
PixmapButton * sin_wave_btn = new PixmapButton( this, NULL );
|
||||
sin_wave_btn->move( CD_LFO_SHAPES_X, CD_LFO_SHAPES_Y );
|
||||
@@ -116,7 +93,7 @@ LfoControllerDialog::LfoControllerDialog( Controller * _model, QWidget * _parent
|
||||
sin_wave_btn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"sin_wave_inactive" ) );
|
||||
ToolTip::add( sin_wave_btn,
|
||||
tr( "Click here for a sine-wave." ) );
|
||||
tr( "Sine wave" ) );
|
||||
|
||||
PixmapButton * triangle_wave_btn =
|
||||
new PixmapButton( this, NULL );
|
||||
@@ -126,7 +103,7 @@ LfoControllerDialog::LfoControllerDialog( Controller * _model, QWidget * _parent
|
||||
triangle_wave_btn->setInactiveGraphic(
|
||||
embed::getIconPixmap( "triangle_wave_inactive" ) );
|
||||
ToolTip::add( triangle_wave_btn,
|
||||
tr( "Click here for a triangle-wave." ) );
|
||||
tr( "Triangle wave" ) );
|
||||
|
||||
PixmapButton * saw_wave_btn = new PixmapButton( this, NULL );
|
||||
saw_wave_btn->move( CD_LFO_SHAPES_X + 30, CD_LFO_SHAPES_Y );
|
||||
@@ -135,7 +112,7 @@ LfoControllerDialog::LfoControllerDialog( Controller * _model, QWidget * _parent
|
||||
saw_wave_btn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"saw_wave_inactive" ) );
|
||||
ToolTip::add( saw_wave_btn,
|
||||
tr( "Click here for a saw-wave." ) );
|
||||
tr( "Saw wave" ) );
|
||||
|
||||
PixmapButton * sqr_wave_btn = new PixmapButton( this, NULL );
|
||||
sqr_wave_btn->move( CD_LFO_SHAPES_X + 45, CD_LFO_SHAPES_Y );
|
||||
@@ -144,7 +121,7 @@ LfoControllerDialog::LfoControllerDialog( Controller * _model, QWidget * _parent
|
||||
sqr_wave_btn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"square_wave_inactive" ) );
|
||||
ToolTip::add( sqr_wave_btn,
|
||||
tr( "Click here for a square-wave." ) );
|
||||
tr( "Square wave" ) );
|
||||
|
||||
PixmapButton * moog_saw_wave_btn =
|
||||
new PixmapButton( this, NULL );
|
||||
@@ -154,7 +131,7 @@ LfoControllerDialog::LfoControllerDialog( Controller * _model, QWidget * _parent
|
||||
moog_saw_wave_btn->setInactiveGraphic(
|
||||
embed::getIconPixmap( "moog_saw_wave_inactive" ) );
|
||||
ToolTip::add( moog_saw_wave_btn,
|
||||
tr( "Click here for a moog saw-wave." ) );
|
||||
tr( "Moog saw wave" ) );
|
||||
|
||||
PixmapButton * exp_wave_btn = new PixmapButton( this, NULL );
|
||||
exp_wave_btn->move( CD_LFO_SHAPES_X + 15, CD_LFO_SHAPES_Y + 15 );
|
||||
@@ -163,7 +140,7 @@ LfoControllerDialog::LfoControllerDialog( Controller * _model, QWidget * _parent
|
||||
exp_wave_btn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"exp_wave_inactive" ) );
|
||||
ToolTip::add( exp_wave_btn,
|
||||
tr( "Click here for an exponential wave." ) );
|
||||
tr( "Exponential wave" ) );
|
||||
|
||||
PixmapButton * white_noise_btn = new PixmapButton( this, NULL );
|
||||
white_noise_btn->move( CD_LFO_SHAPES_X + 30, CD_LFO_SHAPES_Y + 15 );
|
||||
@@ -172,7 +149,7 @@ LfoControllerDialog::LfoControllerDialog( Controller * _model, QWidget * _parent
|
||||
white_noise_btn->setInactiveGraphic(
|
||||
embed::getIconPixmap( "white_noise_wave_inactive" ) );
|
||||
ToolTip::add( white_noise_btn,
|
||||
tr( "Click here for white-noise." ) );
|
||||
tr( "White noise" ) );
|
||||
|
||||
m_userWaveBtn = new PixmapButton( this, NULL );
|
||||
m_userWaveBtn->move( CD_LFO_SHAPES_X + 45, CD_LFO_SHAPES_Y + 15 );
|
||||
@@ -184,7 +161,7 @@ LfoControllerDialog::LfoControllerDialog( Controller * _model, QWidget * _parent
|
||||
SIGNAL( doubleClicked() ),
|
||||
this, SLOT( askUserDefWave() ) );
|
||||
ToolTip::add( m_userWaveBtn,
|
||||
tr( "Click here for a user-defined shape.\nDouble click to pick a file." ) );
|
||||
tr( "User-defined shape.\nDouble click to pick a file." ) );
|
||||
|
||||
m_waveBtnGrp = new automatableButtonGroup( this );
|
||||
m_waveBtnGrp->addButton( sin_wave_btn );
|
||||
@@ -203,6 +180,8 @@ LfoControllerDialog::LfoControllerDialog( Controller * _model, QWidget * _parent
|
||||
"lfo_x1_active" ) );
|
||||
x1->setInactiveGraphic( embed::getIconPixmap(
|
||||
"lfo_x1_inactive" ) );
|
||||
ToolTip::add( x1,
|
||||
tr( "Mutliply modulation frequency by 1" ));
|
||||
|
||||
PixmapButton * x100 = new PixmapButton( this, NULL );
|
||||
x100->move( CD_LFO_MULTIPLIER_X, CD_LFO_SHAPES_Y - 8 );
|
||||
@@ -210,6 +189,8 @@ LfoControllerDialog::LfoControllerDialog( Controller * _model, QWidget * _parent
|
||||
"lfo_x100_active" ) );
|
||||
x100->setInactiveGraphic( embed::getIconPixmap(
|
||||
"lfo_x100_inactive" ) );
|
||||
ToolTip::add( x100,
|
||||
tr( "Mutliply modulation frequency by 100" ));
|
||||
|
||||
PixmapButton * d100 = new PixmapButton( this, NULL );
|
||||
d100->move( CD_LFO_MULTIPLIER_X, CD_LFO_SHAPES_Y + 22 );
|
||||
@@ -217,6 +198,8 @@ LfoControllerDialog::LfoControllerDialog( Controller * _model, QWidget * _parent
|
||||
"lfo_d100_active" ) );
|
||||
d100->setInactiveGraphic( embed::getIconPixmap(
|
||||
"lfo_d100_inactive" ) );
|
||||
ToolTip::add( d100,
|
||||
tr( "Divide modulation frequency by 100" ));
|
||||
|
||||
m_multiplierBtnGrp = new automatableButtonGroup( this );
|
||||
m_multiplierBtnGrp->addButton( x1 );
|
||||
@@ -271,10 +254,6 @@ void LfoControllerDialog::contextMenuEvent( QContextMenuEvent * )
|
||||
contextMenu->addAction( embed::getIconPixmap( "cancel" ),
|
||||
tr( "&Remove this plugin" ),
|
||||
this, SLOT( deletePlugin() ) );
|
||||
contextMenu->addSeparator();
|
||||
contextMenu->addAction( embed::getIconPixmap( "help" ),
|
||||
tr( "&Help" ),
|
||||
this, SLOT( displayHelp() ) );
|
||||
contextMenu->exec( QCursor::pos() );
|
||||
delete contextMenu;
|
||||
*/
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
#include <QLibrary>
|
||||
#include <QSplitter>
|
||||
#include <QUrl>
|
||||
#include <QWhatsThis>
|
||||
|
||||
#include "AboutDialog.h"
|
||||
#include "AudioDummy.h"
|
||||
@@ -410,9 +409,6 @@ void MainWindow::finalize()
|
||||
tr( "Help" ),
|
||||
this, SLOT( help() ) );
|
||||
}
|
||||
help_menu->addAction( embed::getIconPixmap( "whatsthis" ),
|
||||
tr( "What's This?" ),
|
||||
this, SLOT( enterWhatsThisMode() ) );
|
||||
|
||||
// Prevent dangling separator at end of menu per https://bugreports.qt.io/browse/QTBUG-40071
|
||||
#if !(defined(LMMS_BUILD_APPLE) && (QT_VERSION >= 0x050000) && (QT_VERSION < 0x050600))
|
||||
@@ -464,15 +460,9 @@ void MainWindow::finalize()
|
||||
SLOT( onExportProject() ),
|
||||
m_toolBar );
|
||||
|
||||
ToolButton * whatsthis = new ToolButton(
|
||||
embed::getIconPixmap( "whatsthis" ),
|
||||
tr( "What's this?" ),
|
||||
this, SLOT( enterWhatsThisMode() ),
|
||||
m_toolBar );
|
||||
|
||||
m_metronomeToggle = new ToolButton(
|
||||
embed::getIconPixmap( "metronome" ),
|
||||
tr( "Toggle metronome" ),
|
||||
tr( "Metronome" ),
|
||||
this, SLOT( onToggleMetronome() ),
|
||||
m_toolBar );
|
||||
m_metronomeToggle->setCheckable(true);
|
||||
@@ -485,81 +475,50 @@ void MainWindow::finalize()
|
||||
m_toolBarLayout->addWidget( project_open_recent, 0, 4 );
|
||||
m_toolBarLayout->addWidget( project_save, 0, 5 );
|
||||
m_toolBarLayout->addWidget( project_export, 0, 6 );
|
||||
m_toolBarLayout->addWidget( whatsthis, 0, 7 );
|
||||
m_toolBarLayout->addWidget( m_metronomeToggle, 0, 8 );
|
||||
m_toolBarLayout->addWidget( m_metronomeToggle, 0, 7 );
|
||||
|
||||
|
||||
// window-toolbar
|
||||
ToolButton * song_editor_window = new ToolButton(
|
||||
embed::getIconPixmap( "songeditor" ),
|
||||
tr( "Show/hide Song-Editor" ) + " (F5)",
|
||||
tr( "Song Editor" ) + " (F5)",
|
||||
this, SLOT( toggleSongEditorWin() ),
|
||||
m_toolBar );
|
||||
song_editor_window->setShortcut( Qt::Key_F5 );
|
||||
song_editor_window->setWhatsThis(
|
||||
tr( "By pressing this button, you can show or hide the "
|
||||
"Song-Editor. With the help of the Song-Editor you can "
|
||||
"edit song-playlist and specify when which track "
|
||||
"should be played. "
|
||||
"You can also insert and move samples (e.g. "
|
||||
"rap samples) directly into the playlist." ) );
|
||||
|
||||
|
||||
ToolButton * bb_editor_window = new ToolButton(
|
||||
embed::getIconPixmap( "bb_track_btn" ),
|
||||
tr( "Show/hide Beat+Bassline Editor" ) +
|
||||
tr( "Beat+Bassline Editor" ) +
|
||||
" (F6)",
|
||||
this, SLOT( toggleBBEditorWin() ),
|
||||
m_toolBar );
|
||||
bb_editor_window->setShortcut( Qt::Key_F6 );
|
||||
bb_editor_window->setWhatsThis(
|
||||
tr( "By pressing this button, you can show or hide the "
|
||||
"Beat+Bassline Editor. The Beat+Bassline Editor is "
|
||||
"needed for creating beats, and for opening, adding, and "
|
||||
"removing channels, and for cutting, copying and pasting "
|
||||
"beat and bassline-patterns, and for other things like "
|
||||
"that." ) );
|
||||
|
||||
|
||||
ToolButton * piano_roll_window = new ToolButton(
|
||||
embed::getIconPixmap( "piano" ),
|
||||
tr( "Show/hide Piano-Roll" ) +
|
||||
tr( "Piano Roll" ) +
|
||||
" (F7)",
|
||||
this, SLOT( togglePianoRollWin() ),
|
||||
m_toolBar );
|
||||
piano_roll_window->setShortcut( Qt::Key_F7 );
|
||||
piano_roll_window->setWhatsThis(
|
||||
tr( "Click here to show or hide the "
|
||||
"Piano-Roll. With the help of the Piano-Roll "
|
||||
"you can edit melodies in an easy way."
|
||||
) );
|
||||
|
||||
ToolButton * automation_editor_window = new ToolButton(
|
||||
embed::getIconPixmap( "automation" ),
|
||||
tr( "Show/hide Automation Editor" ) +
|
||||
tr( "Automation Editor" ) +
|
||||
" (F8)",
|
||||
this,
|
||||
SLOT( toggleAutomationEditorWin() ),
|
||||
m_toolBar );
|
||||
automation_editor_window->setShortcut( Qt::Key_F8 );
|
||||
automation_editor_window->setWhatsThis(
|
||||
tr( "Click here to show or hide the "
|
||||
"Automation Editor. With the help of the "
|
||||
"Automation Editor you can edit dynamic values "
|
||||
"in an easy way."
|
||||
) );
|
||||
|
||||
ToolButton * fx_mixer_window = new ToolButton(
|
||||
embed::getIconPixmap( "fx_mixer" ),
|
||||
tr( "Show/hide FX Mixer" ) + " (F9)",
|
||||
tr( "FX Mixer" ) + " (F9)",
|
||||
this, SLOT( toggleFxMixerWin() ),
|
||||
m_toolBar );
|
||||
fx_mixer_window->setShortcut( Qt::Key_F9 );
|
||||
fx_mixer_window->setWhatsThis(
|
||||
tr( "Click here to show or hide the "
|
||||
"FX Mixer. The FX Mixer is a very powerful tool "
|
||||
"for managing effects for your song. You can insert "
|
||||
"effects into different effect-channels." ) );
|
||||
|
||||
ToolButton * controllers_window = new ToolButton(
|
||||
embed::getIconPixmap( "controller" ),
|
||||
@@ -576,10 +535,6 @@ void MainWindow::finalize()
|
||||
this, SLOT( toggleProjectNotesWin() ),
|
||||
m_toolBar );
|
||||
project_notes_window->setShortcut( Qt::Key_F11 );
|
||||
project_notes_window->setWhatsThis(
|
||||
tr( "Click here to show or hide the "
|
||||
"project notes window. In this window you can put "
|
||||
"down your project notes.") );
|
||||
|
||||
m_toolBarLayout->addWidget( song_editor_window, 1, 1 );
|
||||
m_toolBarLayout->addWidget( bb_editor_window, 1, 2 );
|
||||
@@ -837,13 +792,6 @@ void MainWindow::emptySlot()
|
||||
|
||||
|
||||
|
||||
void MainWindow::enterWhatsThisMode()
|
||||
{
|
||||
QWhatsThis::enterWhatsThisMode();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void MainWindow::createNewProject()
|
||||
{
|
||||
if( mayChangeProject(true) )
|
||||
|
||||
@@ -66,15 +66,6 @@ PeakControllerDialog::~PeakControllerDialog()
|
||||
|
||||
|
||||
/*
|
||||
void effectView::displayHelp()
|
||||
{
|
||||
QWhatsThis::showText( mapToGlobal( rect().bottomRight() ),
|
||||
whatsThis() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void effectView::closeEffects()
|
||||
{
|
||||
m_subWindow->hide();
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
#include <QLayout>
|
||||
#include <QLineEdit>
|
||||
#include <QMessageBox>
|
||||
#include <QWhatsThis>
|
||||
#include <QScrollArea>
|
||||
|
||||
#include "SetupDialog.h"
|
||||
@@ -193,17 +192,10 @@ SetupDialog::SetupDialog( ConfigTabs _tab_to_open ) :
|
||||
|
||||
QPushButton * bufsize_reset_btn = new QPushButton(
|
||||
embed::getIconPixmap( "reload" ), "", bufsize_tw );
|
||||
bufsize_reset_btn->setGeometry( 290, 40, 28, 28 );
|
||||
bufsize_reset_btn->setGeometry( 320, 40, 28, 28 );
|
||||
connect( bufsize_reset_btn, SIGNAL( clicked() ), this,
|
||||
SLOT( resetBufSize() ) );
|
||||
ToolTip::add( bufsize_reset_btn, tr( "Reset to default-value" ) );
|
||||
|
||||
QPushButton * bufsize_help_btn = new QPushButton(
|
||||
embed::getIconPixmap( "help" ), "", bufsize_tw );
|
||||
bufsize_help_btn->setGeometry( 320, 40, 28, 28 );
|
||||
connect( bufsize_help_btn, SIGNAL( clicked() ), this,
|
||||
SLOT( displayBufSizeHelp() ) );
|
||||
|
||||
ToolTip::add( bufsize_reset_btn, tr( "Reset to default value" ) );
|
||||
|
||||
TabWidget * misc_tw = new TabWidget( tr( "MISC" ), general );
|
||||
const int XDelta = 10;
|
||||
@@ -696,16 +688,10 @@ SetupDialog::SetupDialog( ConfigTabs _tab_to_open ) :
|
||||
|
||||
QPushButton * autoSaveResetBtn = new QPushButton(
|
||||
embed::getIconPixmap( "reload" ), "", auto_save_tw );
|
||||
autoSaveResetBtn->setGeometry( 290, 70, 28, 28 );
|
||||
autoSaveResetBtn->setGeometry( 320, 70, 28, 28 );
|
||||
connect( autoSaveResetBtn, SIGNAL( clicked() ), this,
|
||||
SLOT( resetAutoSave() ) );
|
||||
ToolTip::add( autoSaveResetBtn, tr( "Reset to default-value" ) );
|
||||
|
||||
QPushButton * saveIntervalBtn = new QPushButton(
|
||||
embed::getIconPixmap( "help" ), "", auto_save_tw );
|
||||
saveIntervalBtn->setGeometry( 320, 70, 28, 28 );
|
||||
connect( saveIntervalBtn, SIGNAL( clicked() ), this,
|
||||
SLOT( displaySaveIntervalHelp() ) );
|
||||
ToolTip::add( autoSaveResetBtn, tr( "Reset to default value" ) );
|
||||
|
||||
m_saveIntervalSlider->setEnabled( m_enableAutoSave );
|
||||
m_runningAutoSave->setVisible( m_enableAutoSave );
|
||||
@@ -757,13 +743,6 @@ SetupDialog::SetupDialog( ConfigTabs _tab_to_open ) :
|
||||
m_audioInterfaces->setGeometry( 10, 20, 240, 22 );
|
||||
|
||||
|
||||
QPushButton * audio_help_btn = new QPushButton(
|
||||
embed::getIconPixmap( "help" ), "", audioiface_tw );
|
||||
audio_help_btn->setGeometry( 320, 20, 28, 28 );
|
||||
connect( audio_help_btn, SIGNAL( clicked() ), this,
|
||||
SLOT( displayAudioHelp() ) );
|
||||
|
||||
|
||||
// create ifaces-settings-widget
|
||||
QWidget * asw = new QWidget( audio );
|
||||
asw->setFixedHeight( 60 );
|
||||
@@ -868,13 +847,6 @@ SetupDialog::SetupDialog( ConfigTabs _tab_to_open ) :
|
||||
m_midiInterfaces->setGeometry( 10, 20, 240, 22 );
|
||||
|
||||
|
||||
QPushButton * midi_help_btn = new QPushButton(
|
||||
embed::getIconPixmap( "help" ), "", midiiface_tw );
|
||||
midi_help_btn->setGeometry( 320, 20, 28, 28 );
|
||||
connect( midi_help_btn, SIGNAL( clicked() ), this,
|
||||
SLOT( displayMIDIHelp() ) );
|
||||
|
||||
|
||||
// create ifaces-settings-widget
|
||||
QWidget * msw = new QWidget( midi );
|
||||
msw->setFixedHeight( 60 );
|
||||
@@ -1162,21 +1134,6 @@ void SetupDialog::resetBufSize()
|
||||
|
||||
|
||||
|
||||
void SetupDialog::displayBufSizeHelp()
|
||||
{
|
||||
QWhatsThis::showText( QCursor::pos(),
|
||||
tr( "Here you can setup the internal buffer-size "
|
||||
"used by LMMS. Smaller values result "
|
||||
"in a lower latency but also may cause "
|
||||
"unusable sound or bad performance, "
|
||||
"especially on older computers or "
|
||||
"systems with a non-realtime "
|
||||
"kernel." ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void SetupDialog::toggleToolTips( bool _enabled )
|
||||
{
|
||||
m_toolTips = _enabled;
|
||||
@@ -1525,9 +1482,7 @@ void SetupDialog::setDefaultSoundfont( const QString & _sf )
|
||||
|
||||
void SetupDialog::setBackgroundArtwork( const QString & _ba )
|
||||
{
|
||||
#ifdef LMMS_HAVE_FLUIDSYNTH
|
||||
m_backgroundArtwork = _ba;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -1556,19 +1511,6 @@ void SetupDialog::resetAutoSave()
|
||||
|
||||
|
||||
|
||||
void SetupDialog::displaySaveIntervalHelp()
|
||||
{
|
||||
QWhatsThis::showText( QCursor::pos(),
|
||||
tr( "Set the time between automatic backup to %1.\n"
|
||||
"Remember to also save your project manually. "
|
||||
"You can choose to disable saving while playing, "
|
||||
"something some older systems find difficult." ).arg(
|
||||
ConfigManager::inst()->recoveryFile() ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void SetupDialog::audioInterfaceChanged( const QString & _iface )
|
||||
{
|
||||
for( AswMap::iterator it = m_audioIfaceSetupWidgets.begin();
|
||||
@@ -1583,22 +1525,6 @@ void SetupDialog::audioInterfaceChanged( const QString & _iface )
|
||||
|
||||
|
||||
|
||||
void SetupDialog::displayAudioHelp()
|
||||
{
|
||||
QWhatsThis::showText( QCursor::pos(),
|
||||
tr( "Here you can select your preferred "
|
||||
"audio-interface. Depending on the "
|
||||
"configuration of your system during "
|
||||
"compilation time you can choose "
|
||||
"between ALSA, JACK, OSS and more. "
|
||||
"Below you see a box which offers "
|
||||
"controls to setup the selected "
|
||||
"audio-interface." ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void SetupDialog::midiInterfaceChanged( const QString & _iface )
|
||||
{
|
||||
for( MswMap::iterator it = m_midiIfaceSetupWidgets.begin();
|
||||
@@ -1609,19 +1535,3 @@ void SetupDialog::midiInterfaceChanged( const QString & _iface )
|
||||
|
||||
m_midiIfaceSetupWidgets[m_midiIfaceNames[_iface]]->show();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void SetupDialog::displayMIDIHelp()
|
||||
{
|
||||
QWhatsThis::showText( QCursor::pos(),
|
||||
tr( "Here you can select your preferred "
|
||||
"MIDI-interface. Depending on the "
|
||||
"configuration of your system during "
|
||||
"compilation time you can choose "
|
||||
"between ALSA, OSS and more. "
|
||||
"Below you see a box which offers "
|
||||
"controls to setup the selected "
|
||||
"MIDI-interface." ) );
|
||||
}
|
||||
|
||||
@@ -117,14 +117,14 @@ TimeLineWidget::~TimeLineWidget()
|
||||
void TimeLineWidget::addToolButtons( QToolBar * _tool_bar )
|
||||
{
|
||||
NStateButton * autoScroll = new NStateButton( _tool_bar );
|
||||
autoScroll->setGeneralToolTip( tr( "Enable/disable auto-scrolling" ) );
|
||||
autoScroll->setGeneralToolTip( tr( "Auto scrolling" ) );
|
||||
autoScroll->addState( embed::getIconPixmap( "autoscroll_on" ) );
|
||||
autoScroll->addState( embed::getIconPixmap( "autoscroll_off" ) );
|
||||
connect( autoScroll, SIGNAL( changedState( int ) ), this,
|
||||
SLOT( toggleAutoScroll( int ) ) );
|
||||
|
||||
NStateButton * loopPoints = new NStateButton( _tool_bar );
|
||||
loopPoints->setGeneralToolTip( tr( "Enable/disable loop-points" ) );
|
||||
loopPoints->setGeneralToolTip( tr( "Loop points" ) );
|
||||
loopPoints->addState( embed::getIconPixmap( "loop_points_off" ) );
|
||||
loopPoints->addState( embed::getIconPixmap( "loop_points_on" ) );
|
||||
connect( loopPoints, SIGNAL( changedState( int ) ), this,
|
||||
|
||||
@@ -2226,15 +2226,8 @@ AutomationEditorWindow::AutomationEditorWindow() :
|
||||
|
||||
// Play/stop buttons
|
||||
m_playAction->setToolTip(tr( "Play/pause current pattern (Space)" ));
|
||||
m_playAction->setWhatsThis(
|
||||
tr( "Click here if you want to play the current pattern. "
|
||||
"This is useful while editing it. The pattern is "
|
||||
"automatically looped when the end is reached." ) );
|
||||
|
||||
m_stopAction->setToolTip(tr("Stop playing of current pattern (Space)"));
|
||||
m_stopAction->setWhatsThis(
|
||||
tr( "Click here if you want to stop playing of the "
|
||||
"current pattern." ) );
|
||||
|
||||
// Edit mode buttons
|
||||
DropToolBar *editActionsToolBar = addDropToolBarToTop(tr("Edit actions"));
|
||||
@@ -2250,39 +2243,10 @@ AutomationEditorWindow::AutomationEditorWindow() :
|
||||
m_flipYAction = new QAction(embed::getIconPixmap("flip_y"), tr("Flip vertically"), this);
|
||||
m_flipXAction = new QAction(embed::getIconPixmap("flip_x"), tr("Flip horizontally"), this);
|
||||
|
||||
m_flipYAction->setWhatsThis(
|
||||
tr( "Click here and the pattern will be inverted."
|
||||
"The points are flipped in the y direction. " ) );
|
||||
m_flipXAction->setWhatsThis(
|
||||
tr( "Click here and the pattern will be reversed. "
|
||||
"The points are flipped in the x direction." ) );
|
||||
|
||||
// TODO: m_selectButton and m_moveButton are broken.
|
||||
// m_selectButton = new QAction(embed::getIconPixmap("edit_select"), tr("Select mode (Shift+S)"), editModeGroup);
|
||||
// m_moveButton = new QAction(embed::getIconPixmap("edit_move"), tr("Move selection mode (Shift+M)"), editModeGroup);
|
||||
|
||||
drawAction->setWhatsThis(
|
||||
tr( "Click here and draw-mode will be activated. In this "
|
||||
"mode you can add and move single values. This "
|
||||
"is the default mode which is used most of the time. "
|
||||
"You can also press 'Shift+D' on your keyboard to "
|
||||
"activate this mode." ) );
|
||||
eraseAction->setWhatsThis(
|
||||
tr( "Click here and erase-mode will be activated. In this "
|
||||
"mode you can erase single values. You can also press "
|
||||
"'Shift+E' on your keyboard to activate this mode." ) );
|
||||
/*m_selectButton->setWhatsThis(
|
||||
tr( "Click here and select-mode will be activated. In this "
|
||||
"mode you can select values. This is necessary "
|
||||
"if you want to cut, copy, paste, delete, or move "
|
||||
"values. You can also press 'Shift+S' on your keyboard "
|
||||
"to activate this mode." ) );
|
||||
m_moveButton->setWhatsThis(
|
||||
tr( "If you click here, move-mode will be activated. In this "
|
||||
"mode you can move the values you selected in select-"
|
||||
"mode. You can also press 'Shift+M' on your keyboard "
|
||||
"to activate this mode." ) );*/
|
||||
|
||||
connect(editModeGroup, SIGNAL(triggered(int)), m_editor, SLOT(setEditMode(int)));
|
||||
|
||||
editActionsToolBar->addAction(drawAction);
|
||||
@@ -2313,32 +2277,9 @@ AutomationEditorWindow::AutomationEditorWindow() :
|
||||
m_tensionKnob = new Knob( knobSmall_17, this, "Tension" );
|
||||
m_tensionKnob->setModel(m_editor->m_tensionModel);
|
||||
ToolTip::add(m_tensionKnob, tr("Tension value for spline"));
|
||||
m_tensionKnob->setWhatsThis(
|
||||
tr("A higher tension value may make a smoother curve "
|
||||
"but overshoot some values. A low tension "
|
||||
"value will cause the slope of the curve to "
|
||||
"level off at each control point."));
|
||||
|
||||
connect(m_cubicHermiteAction, SIGNAL(toggled(bool)), m_tensionKnob, SLOT(setEnabled(bool)));
|
||||
|
||||
m_discreteAction->setWhatsThis(
|
||||
tr( "Click here to choose discrete progressions for this "
|
||||
"automation pattern. The value of the connected "
|
||||
"object will remain constant between control points "
|
||||
"and be set immediately to the new value when each "
|
||||
"control point is reached." ) );
|
||||
m_linearAction->setWhatsThis(
|
||||
tr( "Click here to choose linear progressions for this "
|
||||
"automation pattern. The value of the connected "
|
||||
"object will change at a steady rate over time "
|
||||
"between control points to reach the correct value at "
|
||||
"each control point without a sudden change." ) );
|
||||
m_cubicHermiteAction->setWhatsThis(
|
||||
tr( "Click here to choose cubic hermite progressions for this "
|
||||
"automation pattern. The value of the connected "
|
||||
"object will change in a smooth curve and ease in to "
|
||||
"the peaks and valleys." ) );
|
||||
|
||||
interpolationActionsToolBar->addSeparator();
|
||||
interpolationActionsToolBar->addAction(m_discreteAction);
|
||||
interpolationActionsToolBar->addAction(m_linearAction);
|
||||
@@ -2374,18 +2315,6 @@ AutomationEditorWindow::AutomationEditorWindow() :
|
||||
"Ctrl"), this);
|
||||
#endif
|
||||
|
||||
cutAction->setWhatsThis(
|
||||
tr( "Click here and selected values will be cut into the "
|
||||
"clipboard. You can paste them anywhere in any pattern "
|
||||
"by clicking on the paste button." ) );
|
||||
copyAction->setWhatsThis(
|
||||
tr( "Click here and selected values will be copied into "
|
||||
"the clipboard. You can paste them anywhere in any "
|
||||
"pattern by clicking on the paste button." ) );
|
||||
pasteAction->setWhatsThis(
|
||||
tr( "Click here and the values from the clipboard will be "
|
||||
"pasted at the first visible measure." ) );
|
||||
|
||||
cutAction->setShortcut(Qt::CTRL | Qt::Key_X);
|
||||
copyAction->setShortcut(Qt::CTRL | Qt::Key_C);
|
||||
pasteAction->setShortcut(Qt::CTRL | Qt::Key_V);
|
||||
@@ -2416,6 +2345,7 @@ AutomationEditorWindow::AutomationEditorWindow() :
|
||||
|
||||
m_zoomingXComboBox = new ComboBox( zoomToolBar );
|
||||
m_zoomingXComboBox->setFixedSize( 80, 22 );
|
||||
m_zoomingXComboBox->setToolTip( tr( "Horizontal zooming" ) );
|
||||
|
||||
for( float const & zoomLevel : m_editor->m_zoomXLevels )
|
||||
{
|
||||
@@ -2434,6 +2364,7 @@ AutomationEditorWindow::AutomationEditorWindow() :
|
||||
|
||||
m_zoomingYComboBox = new ComboBox( zoomToolBar );
|
||||
m_zoomingYComboBox->setFixedSize( 80, 22 );
|
||||
m_zoomingYComboBox->setToolTip( tr( "Vertical zooming" ) );
|
||||
|
||||
m_editor->m_zoomingYModel.addItem( "Auto" );
|
||||
for( int i = 0; i < 7; ++i )
|
||||
@@ -2463,17 +2394,12 @@ AutomationEditorWindow::AutomationEditorWindow() :
|
||||
|
||||
m_quantizeComboBox = new ComboBox( m_toolBar );
|
||||
m_quantizeComboBox->setFixedSize( 60, 22 );
|
||||
m_quantizeComboBox->setToolTip( tr( "Quantization" ) );
|
||||
|
||||
m_quantizeComboBox->setModel( &m_editor->m_quantizeModel );
|
||||
|
||||
quantizationActionsToolBar->addWidget( quantize_lbl );
|
||||
quantizationActionsToolBar->addWidget( m_quantizeComboBox );
|
||||
m_quantizeComboBox->setToolTip( tr( "Quantization" ) );
|
||||
m_quantizeComboBox->setWhatsThis( tr( "Quantization. Sets the smallest "
|
||||
"step size for the Automation Point. By default "
|
||||
"this also sets the length, clearing out other "
|
||||
"points in the range. Press <Ctrl> to override "
|
||||
"this behaviour." ) );
|
||||
|
||||
// Setup our actual window
|
||||
setFocusPolicy( Qt::StrongFocus );
|
||||
|
||||
@@ -69,14 +69,6 @@ BBEditor::BBEditor( BBTrackContainer* tc ) :
|
||||
m_playAction->setToolTip(tr( "Play/pause current beat/bassline (Space)" ));
|
||||
m_stopAction->setToolTip(tr( "Stop playback of current beat/bassline (Space)" ));
|
||||
|
||||
m_playAction->setWhatsThis(
|
||||
tr( "Click here to play the current "
|
||||
"beat/bassline. The beat/bassline is automatically "
|
||||
"looped when its end is reached." ) );
|
||||
m_stopAction->setWhatsThis(
|
||||
tr( "Click here to stop playing of current "
|
||||
"beat/bassline." ) );
|
||||
|
||||
|
||||
// Beat selector
|
||||
DropToolBar *beatSelectionToolBar = addDropToolBarToTop(tr("Beat selector"));
|
||||
|
||||
@@ -4058,25 +4058,6 @@ PianoRollWindow::PianoRollWindow() :
|
||||
m_recordAccompanyAction->setToolTip( tr( "Record notes from MIDI-device/channel-piano while playing song or BB track" ) );
|
||||
m_stopAction->setToolTip( tr( "Stop playing of current pattern (Space)" ) );
|
||||
|
||||
m_playAction->setWhatsThis(
|
||||
tr( "Click here to play the current pattern. "
|
||||
"This is useful while editing it. The pattern is "
|
||||
"automatically looped when its end is reached." ) );
|
||||
m_recordAction->setWhatsThis(
|
||||
tr( "Click here to record notes from a MIDI-"
|
||||
"device or the virtual test-piano of the according "
|
||||
"channel-window to the current pattern. When recording "
|
||||
"all notes you play will be written to this pattern "
|
||||
"and you can play and edit them afterwards." ) );
|
||||
m_recordAccompanyAction->setWhatsThis(
|
||||
tr( "Click here to record notes from a MIDI-"
|
||||
"device or the virtual test-piano of the according "
|
||||
"channel-window to the current pattern. When recording "
|
||||
"all notes you play will be written to this pattern "
|
||||
"and you will hear the song or BB track in the background." ) );
|
||||
m_stopAction->setWhatsThis(
|
||||
tr( "Click here to stop playback of current pattern." ) );
|
||||
|
||||
DropToolBar *notesActionsToolBar = addDropToolBarToTop( tr( "Edit actions" ) );
|
||||
|
||||
// init edit-buttons at the top
|
||||
@@ -4093,39 +4074,6 @@ PianoRollWindow::PianoRollWindow() :
|
||||
selectAction->setShortcut( Qt::SHIFT | Qt::Key_S );
|
||||
pitchBendAction->setShortcut( Qt::SHIFT | Qt::Key_T );
|
||||
|
||||
drawAction->setWhatsThis(
|
||||
tr( "Click here and draw mode will be activated. In this "
|
||||
"mode you can add, resize and move notes. This "
|
||||
"is the default mode which is used most of the time. "
|
||||
"You can also press 'Shift+D' on your keyboard to "
|
||||
"activate this mode. In this mode, hold %1 to "
|
||||
"temporarily go into select mode." ).arg(
|
||||
#ifdef LMMS_BUILD_APPLE
|
||||
"⌘" ) );
|
||||
#else
|
||||
"Ctrl" ) );
|
||||
#endif
|
||||
eraseAction->setWhatsThis(
|
||||
tr( "Click here and erase mode will be activated. In this "
|
||||
"mode you can erase notes. You can also press "
|
||||
"'Shift+E' on your keyboard to activate this mode." ) );
|
||||
selectAction->setWhatsThis(
|
||||
tr( "Click here and select mode will be activated. "
|
||||
"In this mode you can select notes. Alternatively, "
|
||||
"you can hold %1 in draw mode to temporarily use "
|
||||
"select mode." ).arg(
|
||||
#ifdef LMMS_BUILD_APPLE
|
||||
"⌘" ) );
|
||||
#else
|
||||
"Ctrl" ) );
|
||||
#endif
|
||||
pitchBendAction->setWhatsThis(
|
||||
tr( "Click here and Pitch Bend mode will be activated. "
|
||||
"In this mode you can click a note to open its "
|
||||
"automation detuning. You can utilize this to slide "
|
||||
"notes from one to another. You can also press "
|
||||
"'Shift+T' on your keyboard to activate this mode." ) );
|
||||
|
||||
connect( editModeGroup, SIGNAL( triggered( int ) ), m_editor, SLOT( setEditMode( int ) ) );
|
||||
|
||||
QAction* quantizeAction = new QAction(embed::getIconPixmap( "quantize" ), tr( "Quantize" ), this );
|
||||
@@ -4142,7 +4090,7 @@ PianoRollWindow::PianoRollWindow() :
|
||||
DropToolBar *copyPasteActionsToolBar = addDropToolBarToTop( tr( "Copy paste controls" ) );
|
||||
|
||||
QAction* cutAction = new QAction(embed::getIconPixmap( "edit_cut" ),
|
||||
tr( "Cut selected notes (%1+X)" ).arg(
|
||||
tr( "Cut (%1+X)" ).arg(
|
||||
#ifdef LMMS_BUILD_APPLE
|
||||
"⌘" ), this );
|
||||
#else
|
||||
@@ -4150,7 +4098,7 @@ PianoRollWindow::PianoRollWindow() :
|
||||
#endif
|
||||
|
||||
QAction* copyAction = new QAction(embed::getIconPixmap( "edit_copy" ),
|
||||
tr( "Copy selected notes (%1+C)" ).arg(
|
||||
tr( "Copy (%1+C)" ).arg(
|
||||
#ifdef LMMS_BUILD_APPLE
|
||||
"⌘"), this);
|
||||
#else
|
||||
@@ -4158,25 +4106,13 @@ PianoRollWindow::PianoRollWindow() :
|
||||
#endif
|
||||
|
||||
QAction* pasteAction = new QAction(embed::getIconPixmap( "edit_paste" ),
|
||||
tr( "Paste notes from clipboard (%1+V)" ).arg(
|
||||
tr( "Paste (%1+V)" ).arg(
|
||||
#ifdef LMMS_BUILD_APPLE
|
||||
"⌘" ), this );
|
||||
#else
|
||||
"Ctrl" ), this );
|
||||
#endif
|
||||
|
||||
cutAction->setWhatsThis(
|
||||
tr( "Click here and the selected notes will be cut into the "
|
||||
"clipboard. You can paste them anywhere in any pattern "
|
||||
"by clicking on the paste button." ) );
|
||||
copyAction->setWhatsThis(
|
||||
tr( "Click here and the selected notes will be copied into the "
|
||||
"clipboard. You can paste them anywhere in any pattern "
|
||||
"by clicking on the paste button." ) );
|
||||
pasteAction->setWhatsThis(
|
||||
tr( "Click here and the notes from the clipboard will be "
|
||||
"pasted at the first visible measure." ) );
|
||||
|
||||
cutAction->setShortcut( Qt::CTRL | Qt::Key_X );
|
||||
copyAction->setShortcut( Qt::CTRL | Qt::Key_C );
|
||||
pasteAction->setShortcut( Qt::CTRL | Qt::Key_V );
|
||||
@@ -4205,6 +4141,7 @@ PianoRollWindow::PianoRollWindow() :
|
||||
m_zoomingComboBox = new ComboBox( m_toolBar );
|
||||
m_zoomingComboBox->setModel( &m_editor->m_zoomingModel );
|
||||
m_zoomingComboBox->setFixedSize( 64, 22 );
|
||||
m_zoomingComboBox->setToolTip( tr( "Horizontal zooming") );
|
||||
|
||||
// setup quantize-stuff
|
||||
QLabel * quantize_lbl = new QLabel( m_toolBar );
|
||||
@@ -4213,6 +4150,7 @@ PianoRollWindow::PianoRollWindow() :
|
||||
m_quantizeComboBox = new ComboBox( m_toolBar );
|
||||
m_quantizeComboBox->setModel( &m_editor->m_quantizeModel );
|
||||
m_quantizeComboBox->setFixedSize( 64, 22 );
|
||||
m_quantizeComboBox->setToolTip( tr( "Quantization") );
|
||||
|
||||
// setup note-len-stuff
|
||||
QLabel * note_len_lbl = new QLabel( m_toolBar );
|
||||
@@ -4221,6 +4159,7 @@ PianoRollWindow::PianoRollWindow() :
|
||||
m_noteLenComboBox = new ComboBox( m_toolBar );
|
||||
m_noteLenComboBox->setModel( &m_editor->m_noteLenModel );
|
||||
m_noteLenComboBox->setFixedSize( 105, 22 );
|
||||
m_noteLenComboBox->setToolTip( tr( "Note length") );
|
||||
|
||||
// setup scale-stuff
|
||||
QLabel * scale_lbl = new QLabel( m_toolBar );
|
||||
@@ -4229,6 +4168,7 @@ PianoRollWindow::PianoRollWindow() :
|
||||
m_scaleComboBox = new ComboBox( m_toolBar );
|
||||
m_scaleComboBox->setModel( &m_editor->m_scaleModel );
|
||||
m_scaleComboBox->setFixedSize( 105, 22 );
|
||||
m_scaleComboBox->setToolTip( tr( "Scale") );
|
||||
|
||||
// setup chord-stuff
|
||||
QLabel * chord_lbl = new QLabel( m_toolBar );
|
||||
@@ -4237,6 +4177,7 @@ PianoRollWindow::PianoRollWindow() :
|
||||
m_chordComboBox = new ComboBox( m_toolBar );
|
||||
m_chordComboBox->setModel( &m_editor->m_chordModel );
|
||||
m_chordComboBox->setFixedSize( 105, 22 );
|
||||
m_chordComboBox->setToolTip( tr( "Chord") );
|
||||
|
||||
|
||||
zoomAndNotesToolBar->addWidget( zoom_lbl );
|
||||
@@ -4258,53 +4199,6 @@ PianoRollWindow::PianoRollWindow() :
|
||||
zoomAndNotesToolBar->addWidget( chord_lbl );
|
||||
zoomAndNotesToolBar->addWidget( m_chordComboBox );
|
||||
|
||||
m_zoomingComboBox->setWhatsThis(
|
||||
tr(
|
||||
"This controls the magnification of an axis. "
|
||||
"It can be helpful to choose magnification for a specific "
|
||||
"task. For ordinary editing, the magnification should be "
|
||||
"fitted to your smallest notes. "
|
||||
) );
|
||||
|
||||
m_quantizeComboBox->setWhatsThis(
|
||||
tr(
|
||||
"The 'Q' stands for quantization, and controls the grid size "
|
||||
"notes and control points snap to. "
|
||||
"With smaller quantization values, you can draw shorter notes "
|
||||
"in Piano Roll, and more exact control points in the "
|
||||
"Automation Editor."
|
||||
|
||||
) );
|
||||
|
||||
m_noteLenComboBox->setWhatsThis(
|
||||
tr(
|
||||
"This lets you select the length of new notes. "
|
||||
"'Last Note' means that LMMS will use the note length of "
|
||||
"the note you last edited"
|
||||
) );
|
||||
|
||||
m_scaleComboBox->setWhatsThis(
|
||||
tr(
|
||||
"The feature is directly connected to the context-menu "
|
||||
"on the virtual keyboard, to the left in Piano Roll. "
|
||||
"After you have chosen the scale you want "
|
||||
"in this drop-down menu, "
|
||||
"you can right click on a desired key in the virtual keyboard, "
|
||||
"and then choose 'Mark current Scale'. "
|
||||
"LMMS will highlight all notes that belongs to the chosen scale, "
|
||||
"and in the key you have selected!"
|
||||
) );
|
||||
|
||||
m_chordComboBox->setWhatsThis(
|
||||
tr(
|
||||
"Let you select a chord which LMMS then can draw or highlight."
|
||||
"You can find the most common chords in this drop-down menu. "
|
||||
"After you have selected a chord, click anywhere to place the chord, and right "
|
||||
"click on the virtual keyboard to open context menu and highlight the chord. "
|
||||
"To return to single note placement, you need to choose 'No chord' "
|
||||
"in this drop-down menu."
|
||||
) );
|
||||
|
||||
// setup our actual window
|
||||
setFocusPolicy( Qt::StrongFocus );
|
||||
setFocus();
|
||||
|
||||
@@ -113,16 +113,8 @@ SongEditor::SongEditor( Song * song ) :
|
||||
|
||||
m_tempoSpinBox = new LcdSpinBox( 3, tb, tr( "Tempo" ) );
|
||||
m_tempoSpinBox->setModel( &m_song->m_tempoModel );
|
||||
m_tempoSpinBox->setLabel( tr( "TEMPO/BPM" ) );
|
||||
ToolTip::add( m_tempoSpinBox, tr( "tempo of song" ) );
|
||||
|
||||
m_tempoSpinBox->setWhatsThis(
|
||||
tr( "The tempo of a song is specified in beats per minute "
|
||||
"(BPM). If you want to change the tempo of your "
|
||||
"song, change this value. Every measure has four beats, "
|
||||
"so the tempo in BPM specifies, how many measures / 4 "
|
||||
"should be played within a minute (or how many measures "
|
||||
"should be played within four minutes)." ) );
|
||||
m_tempoSpinBox->setLabel( tr( "TEMPO" ) );
|
||||
ToolTip::add( m_tempoSpinBox, tr( "Tempo in BPM" ) );
|
||||
|
||||
int tempoSpinBoxCol = gui->mainWindow()->addWidgetToToolBar( m_tempoSpinBox, 0 );
|
||||
|
||||
@@ -164,7 +156,7 @@ SongEditor::SongEditor( Song * song ) :
|
||||
m_masterVolumeSlider->setTickPosition( QSlider::TicksLeft );
|
||||
m_masterVolumeSlider->setFixedSize( 26, 60 );
|
||||
m_masterVolumeSlider->setTickInterval( 50 );
|
||||
ToolTip::add( m_masterVolumeSlider, tr( "master volume" ) );
|
||||
ToolTip::add( m_masterVolumeSlider, tr( "Master volume" ) );
|
||||
|
||||
connect( m_masterVolumeSlider, SIGNAL( logicValueChanged( int ) ), this,
|
||||
SLOT( setMasterVolume( int ) ) );
|
||||
@@ -197,7 +189,7 @@ SongEditor::SongEditor( Song * song ) :
|
||||
m_masterPitchSlider->setTickPosition( QSlider::TicksLeft );
|
||||
m_masterPitchSlider->setFixedSize( 26, 60 );
|
||||
m_masterPitchSlider->setTickInterval( 12 );
|
||||
ToolTip::add( m_masterPitchSlider, tr( "master pitch" ) );
|
||||
ToolTip::add( m_masterPitchSlider, tr( "Master pitch" ) );
|
||||
connect( m_masterPitchSlider, SIGNAL( logicValueChanged( int ) ), this,
|
||||
SLOT( setMasterPitch( int ) ) );
|
||||
connect( m_masterPitchSlider, SIGNAL( sliderPressed() ), this,
|
||||
@@ -687,14 +679,6 @@ SongEditorWindow::SongEditorWindow(Song* song) :
|
||||
m_recordAccompanyAction->setToolTip(tr( "Record samples from Audio-device while playing song or BB track"));
|
||||
m_stopAction->setToolTip(tr( "Stop song (Space)" ));
|
||||
|
||||
m_playAction->setWhatsThis(
|
||||
tr("Click here, if you want to play your whole song. "
|
||||
"Playing will be started at the song-position-marker (green). "
|
||||
"You can also move it while playing."));
|
||||
m_stopAction->setWhatsThis(
|
||||
tr("Click here, if you want to stop playing of your song. "
|
||||
"The song-position-marker will be set to the start of your song."));
|
||||
|
||||
|
||||
// Track actions
|
||||
DropToolBar *trackActionsToolBar = addDropToolBarToTop(tr("Track actions"));
|
||||
@@ -745,6 +729,7 @@ SongEditorWindow::SongEditorWindow(Song* song) :
|
||||
m_zoomingComboBox->setFixedSize( 80, 22 );
|
||||
m_zoomingComboBox->move( 580, 4 );
|
||||
m_zoomingComboBox->setModel(m_editor->m_zoomingModel);
|
||||
m_zoomingComboBox->setToolTip(tr("Horizontal zooming"));
|
||||
|
||||
zoomToolBar->addWidget( zoom_lbl );
|
||||
zoomToolBar->addWidget( m_zoomingComboBox );
|
||||
|
||||
@@ -42,23 +42,3 @@ CaptionMenu::CaptionMenu( const QString & _title, QWidget * _parent ) :
|
||||
CaptionMenu::~CaptionMenu()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void CaptionMenu::addHelpAction()
|
||||
{
|
||||
QWidget* parent = (QWidget*) this->parent();
|
||||
|
||||
if (parent == NULL)
|
||||
return;
|
||||
|
||||
if (! parent->whatsThis().isEmpty()) {
|
||||
addAction( embed::getIconPixmap( "help" ), tr( "&Help" ),
|
||||
parent, SLOT( displayHelp() ) );
|
||||
}
|
||||
else {
|
||||
QAction* helpAction = addAction( embed::getIconPixmap("help"), tr("Help (not available)") );
|
||||
helpAction->setDisabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
#include <QMdiSubWindow>
|
||||
#include <QPainter>
|
||||
#include <QInputDialog>
|
||||
#include <QWhatsThis>
|
||||
#include <QLayout>
|
||||
|
||||
#include "ControllerView.h"
|
||||
@@ -92,9 +91,6 @@ ControllerView::ControllerView( Controller * _model, QWidget * _parent ) :
|
||||
|
||||
m_subWindow->hide();
|
||||
|
||||
setWhatsThis( tr( "Controllers are able to automate the value of a knob, "
|
||||
"slider, and other controls." ) );
|
||||
|
||||
setModel( _model );
|
||||
}
|
||||
|
||||
@@ -183,19 +179,6 @@ void ControllerView::contextMenuEvent( QContextMenuEvent * )
|
||||
this, SLOT( deleteController() ) );
|
||||
contextMenu->addAction( tr("Re&name this controller"), this, SLOT( renameController() ));
|
||||
contextMenu->addSeparator();
|
||||
contextMenu->addHelpAction();
|
||||
contextMenu->exec( QCursor::pos() );
|
||||
delete contextMenu;
|
||||
}
|
||||
|
||||
|
||||
void ControllerView::displayHelp()
|
||||
{
|
||||
QWhatsThis::showText( mapToGlobal( rect().center() ),
|
||||
whatsThis() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
#include <QMdiArea>
|
||||
#include <QMdiSubWindow>
|
||||
#include <QPainter>
|
||||
#include <QWhatsThis>
|
||||
|
||||
#include "EffectView.h"
|
||||
#include "DummyEffect.h"
|
||||
@@ -56,7 +55,6 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) :
|
||||
m_bypass = new LedCheckBox( this, "", isEnabled ? LedCheckBox::Green : LedCheckBox::Red );
|
||||
m_bypass->move( 3, 3 );
|
||||
m_bypass->setEnabled( isEnabled );
|
||||
m_bypass->setWhatsThis( tr( "Toggles the effect on or off." ) );
|
||||
|
||||
ToolTip::add( m_bypass, tr( "On/Off" ) );
|
||||
|
||||
@@ -66,9 +64,6 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) :
|
||||
m_wetDry->move( 27, 5 );
|
||||
m_wetDry->setEnabled( isEnabled );
|
||||
m_wetDry->setHintText( tr( "Wet Level:" ), "" );
|
||||
m_wetDry->setWhatsThis( tr( "The Wet/Dry knob sets the ratio between "
|
||||
"the input signal and the effect signal that "
|
||||
"forms the output." ) );
|
||||
|
||||
|
||||
m_autoQuit = new TempoSyncKnob( knobBright_26, this );
|
||||
@@ -76,10 +71,6 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) :
|
||||
m_autoQuit->move( 60, 5 );
|
||||
m_autoQuit->setEnabled( isEnabled );
|
||||
m_autoQuit->setHintText( tr( "Time:" ), "ms" );
|
||||
m_autoQuit->setWhatsThis( tr(
|
||||
"The Decay knob controls how many buffers of silence must pass before the "
|
||||
"plugin stops processing. Smaller values will reduce the CPU overhead but "
|
||||
"run the risk of clipping the tail on delay and reverb effects." ) );
|
||||
|
||||
|
||||
m_gate = new Knob( knobBright_26, this );
|
||||
@@ -87,9 +78,6 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) :
|
||||
m_gate->move( 93, 5 );
|
||||
m_gate->setEnabled( isEnabled );
|
||||
m_gate->setHintText( tr( "Gate:" ), "" );
|
||||
m_gate->setWhatsThis( tr(
|
||||
"The Gate knob controls the signal level that is considered to be 'silence' "
|
||||
"while deciding when to stop processing signals." ) );
|
||||
|
||||
|
||||
setModel( _model );
|
||||
@@ -123,35 +111,6 @@ EffectView::EffectView( Effect * _model, QWidget * _parent ) :
|
||||
}
|
||||
|
||||
|
||||
setWhatsThis( tr(
|
||||
"Effect plugins function as a chained series of effects where the signal will "
|
||||
"be processed from top to bottom.\n\n"
|
||||
|
||||
"The On/Off switch allows you to bypass a given plugin at any point in "
|
||||
"time.\n\n"
|
||||
|
||||
"The Wet/Dry knob controls the balance between the input signal and the "
|
||||
"effected signal that is the resulting output from the effect. The input "
|
||||
"for the stage is the output from the previous stage. So, the 'dry' signal "
|
||||
"for effects lower in the chain contains all of the previous effects.\n\n"
|
||||
|
||||
"The Decay knob controls how long the signal will continue to be processed "
|
||||
"after the notes have been released. The effect will stop processing signals "
|
||||
"when the volume has dropped below a given threshold for a given length of "
|
||||
"time. This knob sets the 'given length of time'. Longer times will require "
|
||||
"more CPU, so this number should be set low for most effects. It needs to be "
|
||||
"bumped up for effects that produce lengthy periods of silence, e.g. "
|
||||
"delays.\n\n"
|
||||
|
||||
"The Gate knob controls the 'given threshold' for the effect's auto shutdown. "
|
||||
"The clock for the 'given length of time' will begin as soon as the processed "
|
||||
"signal level drops below the level specified with this knob.\n\n"
|
||||
|
||||
"The Controls button opens a dialog for editing the effect's parameters.\n\n"
|
||||
|
||||
"Right clicking will bring up a context menu where you can change the order "
|
||||
"in which the effects are processed or delete an effect altogether." ) );
|
||||
|
||||
//move above vst effect view creation
|
||||
//setModel( _model );
|
||||
}
|
||||
@@ -222,15 +181,6 @@ void EffectView::deletePlugin()
|
||||
|
||||
|
||||
|
||||
void EffectView::displayHelp()
|
||||
{
|
||||
QWhatsThis::showText( mapToGlobal( rect().bottomRight() ),
|
||||
whatsThis() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void EffectView::closeEffects()
|
||||
{
|
||||
if( m_subWindow )
|
||||
@@ -256,7 +206,6 @@ void EffectView::contextMenuEvent( QContextMenuEvent * )
|
||||
tr( "&Remove this plugin" ),
|
||||
this, SLOT( deletePlugin() ) );
|
||||
contextMenu->addSeparator();
|
||||
contextMenu->addHelpAction();
|
||||
contextMenu->exec( QCursor::pos() );
|
||||
delete contextMenu;
|
||||
}
|
||||
|
||||
@@ -97,78 +97,43 @@ EnvelopeAndLfoView::EnvelopeAndLfoView( QWidget * _parent ) :
|
||||
m_predelayKnob = new Knob( knobBright_26, this );
|
||||
m_predelayKnob->setLabel( tr( "DEL" ) );
|
||||
m_predelayKnob->move( PREDELAY_KNOB_X, ENV_KNOBS_Y );
|
||||
m_predelayKnob->setHintText( tr( "Predelay:" ), "" );
|
||||
m_predelayKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting predelay of the current "
|
||||
"envelope. The bigger this value the longer the time "
|
||||
"before start of actual envelope." ) );
|
||||
m_predelayKnob->setHintText( tr( "Pre-delay:" ), "" );
|
||||
|
||||
|
||||
m_attackKnob = new Knob( knobBright_26, this );
|
||||
m_attackKnob->setLabel( tr( "ATT" ) );
|
||||
m_attackKnob->move( ATTACK_KNOB_X, ENV_KNOBS_Y );
|
||||
m_attackKnob->setHintText( tr( "Attack:" ), "" );
|
||||
m_attackKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting attack-time of the current "
|
||||
"envelope. The bigger this value the longer the "
|
||||
"envelope needs to increase to attack-level. "
|
||||
"Choose a small value for instruments like pianos "
|
||||
"and a big value for strings." ) );
|
||||
|
||||
|
||||
m_holdKnob = new Knob( knobBright_26, this );
|
||||
m_holdKnob->setLabel( tr( "HOLD" ) );
|
||||
m_holdKnob->move( HOLD_KNOB_X, ENV_KNOBS_Y );
|
||||
m_holdKnob->setHintText( tr( "Hold:" ), "" );
|
||||
m_holdKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting hold-time of the current "
|
||||
"envelope. The bigger this value the longer the "
|
||||
"envelope holds attack-level before it begins to "
|
||||
"decrease to sustain-level." ) );
|
||||
|
||||
|
||||
m_decayKnob = new Knob( knobBright_26, this );
|
||||
m_decayKnob->setLabel( tr( "DEC" ) );
|
||||
m_decayKnob->move( DECAY_KNOB_X, ENV_KNOBS_Y );
|
||||
m_decayKnob->setHintText( tr( "Decay:" ), "" );
|
||||
m_decayKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting decay-time of the current "
|
||||
"envelope. The bigger this value the longer the "
|
||||
"envelope needs to decrease from attack-level to "
|
||||
"sustain-level. Choose a small value for instruments "
|
||||
"like pianos." ) );
|
||||
|
||||
|
||||
m_sustainKnob = new Knob( knobBright_26, this );
|
||||
m_sustainKnob->setLabel( tr( "SUST" ) );
|
||||
m_sustainKnob->move( SUSTAIN_KNOB_X, ENV_KNOBS_Y );
|
||||
m_sustainKnob->setHintText( tr( "Sustain:" ), "" );
|
||||
m_sustainKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting sustain-level of the current "
|
||||
"envelope. The bigger this value the higher the level "
|
||||
"on which the envelope stays before going down to "
|
||||
"zero." ) );
|
||||
|
||||
|
||||
m_releaseKnob = new Knob( knobBright_26, this );
|
||||
m_releaseKnob->setLabel( tr( "REL" ) );
|
||||
m_releaseKnob->move( RELEASE_KNOB_X, ENV_KNOBS_Y );
|
||||
m_releaseKnob->setHintText( tr( "Release:" ), "" );
|
||||
m_releaseKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting release-time of the current "
|
||||
"envelope. The bigger this value the longer the "
|
||||
"envelope needs to decrease from sustain-level to "
|
||||
"zero. Choose a big value for soft instruments like "
|
||||
"strings." ) );
|
||||
|
||||
|
||||
m_amountKnob = new Knob( knobBright_26, this );
|
||||
m_amountKnob->setLabel( tr( "AMT" ) );
|
||||
m_amountKnob->move( AMOUNT_KNOB_X, ENV_GRAPH_Y );
|
||||
m_amountKnob->setHintText( tr( "Modulation amount:" ), "" );
|
||||
m_amountKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting modulation amount of the "
|
||||
"current envelope. The bigger this value the more the "
|
||||
"according size (e.g. volume or cutoff-frequency) "
|
||||
"will be influenced by this envelope." ) );
|
||||
|
||||
|
||||
|
||||
@@ -176,42 +141,25 @@ EnvelopeAndLfoView::EnvelopeAndLfoView( QWidget * _parent ) :
|
||||
m_lfoPredelayKnob = new Knob( knobBright_26, this );
|
||||
m_lfoPredelayKnob->setLabel( tr( "DEL" ) );
|
||||
m_lfoPredelayKnob->move( LFO_PREDELAY_KNOB_X, LFO_KNOB_Y );
|
||||
m_lfoPredelayKnob->setHintText( tr( "LFO predelay:" ), "" );
|
||||
m_lfoPredelayKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting predelay-time of the current "
|
||||
"LFO. The bigger this value the the time until the "
|
||||
"LFO starts to oscillate." ) );
|
||||
m_lfoPredelayKnob->setHintText( tr( "Pre-delay:" ), "" );
|
||||
|
||||
|
||||
m_lfoAttackKnob = new Knob( knobBright_26, this );
|
||||
m_lfoAttackKnob->setLabel( tr( "ATT" ) );
|
||||
m_lfoAttackKnob->move( LFO_ATTACK_KNOB_X, LFO_KNOB_Y );
|
||||
m_lfoAttackKnob->setHintText( tr( "LFO- attack:" ), "" );
|
||||
m_lfoAttackKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting attack-time of the current LFO. "
|
||||
"The bigger this value the longer the LFO needs to "
|
||||
"increase its amplitude to maximum." ) );
|
||||
m_lfoAttackKnob->setHintText( tr( "Attack:" ), "" );
|
||||
|
||||
|
||||
m_lfoSpeedKnob = new TempoSyncKnob( knobBright_26, this );
|
||||
m_lfoSpeedKnob->setLabel( tr( "SPD" ) );
|
||||
m_lfoSpeedKnob->move( LFO_SPEED_KNOB_X, LFO_KNOB_Y );
|
||||
m_lfoSpeedKnob->setHintText( tr( "LFO speed:" ), "" );
|
||||
m_lfoSpeedKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting speed of the current LFO. The "
|
||||
"bigger this value the faster the LFO oscillates and "
|
||||
"the faster will be your effect." ) );
|
||||
m_lfoSpeedKnob->setHintText( tr( "Frequency:" ), "" );
|
||||
|
||||
|
||||
m_lfoAmountKnob = new Knob( knobBright_26, this );
|
||||
m_lfoAmountKnob->setLabel( tr( "AMT" ) );
|
||||
m_lfoAmountKnob->move( LFO_AMOUNT_KNOB_X, LFO_KNOB_Y );
|
||||
m_lfoAmountKnob->setHintText( tr( "Modulation amount:" ), "" );
|
||||
m_lfoAmountKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting modulation amount of the "
|
||||
"current LFO. The bigger this value the more the "
|
||||
"selected size (e.g. volume or cutoff-frequency) will "
|
||||
"be influenced by this LFO." ) );
|
||||
|
||||
|
||||
PixmapButton * sin_lfo_btn = new PixmapButton( this, NULL );
|
||||
@@ -220,8 +168,6 @@ EnvelopeAndLfoView::EnvelopeAndLfoView( QWidget * _parent ) :
|
||||
"sin_wave_active" ) );
|
||||
sin_lfo_btn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"sin_wave_inactive" ) );
|
||||
sin_lfo_btn->setWhatsThis(
|
||||
tr( "Click here for a sine-wave." ) );
|
||||
|
||||
PixmapButton * triangle_lfo_btn = new PixmapButton( this, NULL );
|
||||
triangle_lfo_btn->move( LFO_SHAPES_X+15, LFO_SHAPES_Y );
|
||||
@@ -229,8 +175,6 @@ EnvelopeAndLfoView::EnvelopeAndLfoView( QWidget * _parent ) :
|
||||
"triangle_wave_active" ) );
|
||||
triangle_lfo_btn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"triangle_wave_inactive" ) );
|
||||
triangle_lfo_btn->setWhatsThis(
|
||||
tr( "Click here for a triangle-wave." ) );
|
||||
|
||||
PixmapButton * saw_lfo_btn = new PixmapButton( this, NULL );
|
||||
saw_lfo_btn->move( LFO_SHAPES_X+30, LFO_SHAPES_Y );
|
||||
@@ -238,8 +182,6 @@ EnvelopeAndLfoView::EnvelopeAndLfoView( QWidget * _parent ) :
|
||||
"saw_wave_active" ) );
|
||||
saw_lfo_btn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"saw_wave_inactive" ) );
|
||||
saw_lfo_btn->setWhatsThis(
|
||||
tr( "Click here for a saw-wave for current." ) );
|
||||
|
||||
PixmapButton * sqr_lfo_btn = new PixmapButton( this, NULL );
|
||||
sqr_lfo_btn->move( LFO_SHAPES_X+45, LFO_SHAPES_Y );
|
||||
@@ -247,8 +189,6 @@ EnvelopeAndLfoView::EnvelopeAndLfoView( QWidget * _parent ) :
|
||||
"square_wave_active" ) );
|
||||
sqr_lfo_btn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"square_wave_inactive" ) );
|
||||
sqr_lfo_btn->setWhatsThis(
|
||||
tr( "Click here for a square-wave." ) );
|
||||
|
||||
m_userLfoBtn = new PixmapButton( this, NULL );
|
||||
m_userLfoBtn->move( LFO_SHAPES_X+75, LFO_SHAPES_Y );
|
||||
@@ -256,10 +196,6 @@ EnvelopeAndLfoView::EnvelopeAndLfoView( QWidget * _parent ) :
|
||||
"usr_wave_active" ) );
|
||||
m_userLfoBtn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"usr_wave_inactive" ) );
|
||||
m_userLfoBtn->setWhatsThis(
|
||||
tr( "Click here for a user-defined wave. "
|
||||
"Afterwards, drag an according sample-"
|
||||
"file onto the LFO graph." ) );
|
||||
|
||||
connect( m_userLfoBtn, SIGNAL( toggled( bool ) ),
|
||||
this, SLOT( lfoUserWaveChanged() ) );
|
||||
@@ -270,8 +206,6 @@ EnvelopeAndLfoView::EnvelopeAndLfoView( QWidget * _parent ) :
|
||||
"random_wave_active" ) );
|
||||
random_lfo_btn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"random_wave_inactive" ) );
|
||||
random_lfo_btn->setWhatsThis(
|
||||
tr( "Click here for random wave." ) );
|
||||
|
||||
m_lfoWaveBtnGrp = new automatableButtonGroup( this );
|
||||
m_lfoWaveBtnGrp->addButton( sin_lfo_btn );
|
||||
@@ -284,21 +218,15 @@ EnvelopeAndLfoView::EnvelopeAndLfoView( QWidget * _parent ) :
|
||||
m_x100Cb = new LedCheckBox( tr( "FREQ x 100" ), this );
|
||||
m_x100Cb->setFont( pointSizeF( m_x100Cb->font(), 6.5 ) );
|
||||
m_x100Cb->move( LFO_PREDELAY_KNOB_X, LFO_GRAPH_Y + 36 );
|
||||
m_x100Cb->setWhatsThis(
|
||||
tr( "Click here if the frequency of this LFO should be "
|
||||
"multiplied by 100." ) );
|
||||
ToolTip::add( m_x100Cb, tr( "multiply LFO-frequency by 100" ) );
|
||||
ToolTip::add( m_x100Cb, tr( "Multiply LFO frequency by 100" ) );
|
||||
|
||||
|
||||
m_controlEnvAmountCb = new LedCheckBox( tr( "MODULATE ENV-AMOUNT" ),
|
||||
m_controlEnvAmountCb = new LedCheckBox( tr( "MODULATE ENV AMOUNT" ),
|
||||
this );
|
||||
m_controlEnvAmountCb->move( LFO_PREDELAY_KNOB_X, LFO_GRAPH_Y + 54 );
|
||||
m_controlEnvAmountCb->setFont( pointSizeF( m_controlEnvAmountCb->font(), 6.5 ) );
|
||||
m_controlEnvAmountCb ->setWhatsThis(
|
||||
tr( "Click here to make the envelope-amount controlled by this "
|
||||
"LFO." ) );
|
||||
ToolTip::add( m_controlEnvAmountCb,
|
||||
tr( "control envelope-amount by this LFO" ) );
|
||||
tr( "Control envelope amount by this LFO" ) );
|
||||
|
||||
|
||||
setAcceptDrops( true );
|
||||
@@ -590,8 +518,7 @@ void EnvelopeAndLfoView::lfoUserWaveChanged()
|
||||
if( m_params->m_userWave.frames() <= 1 )
|
||||
{
|
||||
TextFloat::displayMessage( tr( "Hint" ),
|
||||
tr( "Drag a sample from somewhere and drop "
|
||||
"it in this window." ),
|
||||
tr( "Drag and drop a sample into this window." ),
|
||||
embed::getIconPixmap( "hint" ), 3000 );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "FxLine.h"
|
||||
|
||||
#include <QGraphicsProxyWidget>
|
||||
#include <QWhatsThis>
|
||||
|
||||
#include "CaptionMenu.h"
|
||||
#include "FxMixer.h"
|
||||
@@ -96,20 +95,6 @@ FxLine::FxLine( QWidget * _parent, FxMixerView * _mv, int _channelIndex ) :
|
||||
m_lcd->move( 4, 58 );
|
||||
m_lcd->setMarginWidth( 1 );
|
||||
|
||||
setWhatsThis( tr(
|
||||
"The FX channel receives input from one or more instrument tracks.\n "
|
||||
"It in turn can be routed to multiple other FX channels. LMMS automatically "
|
||||
"takes care of preventing infinite loops for you and doesn't allow making "
|
||||
"a connection that would result in an infinite loop.\n\n"
|
||||
|
||||
"In order to route the channel to another channel, select the FX channel "
|
||||
"and click on the \"send\" button on the channel you want to send to. "
|
||||
"The knob under the send button controls the level of signal that is sent "
|
||||
"to the channel.\n\n"
|
||||
|
||||
"You can remove and move FX channels in the context menu, which is accessed "
|
||||
"by right-clicking the FX channel.\n" ) );
|
||||
|
||||
QString name = Engine::fxMixer()->effectChannel( m_channelIndex )->m_name;
|
||||
setToolTip( name );
|
||||
|
||||
@@ -253,8 +238,6 @@ void FxLine::contextMenuEvent( QContextMenuEvent * )
|
||||
contextMenu->addSeparator();
|
||||
}
|
||||
contextMenu->addAction( embed::getIconPixmap( "cancel" ), tr( "Remove &unused channels" ), this, SLOT( removeUnusedChannels() ) );
|
||||
contextMenu->addSeparator();
|
||||
contextMenu->addHelpAction();
|
||||
contextMenu->exec( QCursor::pos() );
|
||||
delete contextMenu;
|
||||
}
|
||||
@@ -335,14 +318,6 @@ void FxLine::moveChannelRight()
|
||||
|
||||
|
||||
|
||||
void FxLine::displayHelp()
|
||||
{
|
||||
QWhatsThis::showText( mapToGlobal( rect().bottomRight() ), whatsThis() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
QBrush FxLine::backgroundActive() const
|
||||
{
|
||||
return m_backgroundActive;
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
#include "gui_templates.h"
|
||||
#include "Knob.h"
|
||||
#include "TempoSyncKnob.h"
|
||||
#include "ToolTip.h"
|
||||
|
||||
|
||||
InstrumentFunctionNoteStackingView::InstrumentFunctionNoteStackingView( InstrumentFunctionNoteStacking* cc, QWidget* parent ) :
|
||||
@@ -58,10 +57,6 @@ InstrumentFunctionNoteStackingView::InstrumentFunctionNoteStackingView( Instrume
|
||||
|
||||
m_chordRangeKnob->setLabel( tr( "RANGE" ) );
|
||||
m_chordRangeKnob->setHintText( tr( "Chord range:" ), " " + tr( "octave(s)" ) );
|
||||
m_chordRangeKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting the chord range in octaves. "
|
||||
"The selected chord will be played within specified "
|
||||
"number of octaves." ) );
|
||||
|
||||
mainLayout->addWidget( chordLabel, 0, 0 );
|
||||
mainLayout->addWidget( m_chordsComboBox, 1, 0 );
|
||||
@@ -118,65 +113,28 @@ InstrumentFunctionArpeggioView::InstrumentFunctionArpeggioView( InstrumentFuncti
|
||||
mainLayout->setHorizontalSpacing( 20 );
|
||||
mainLayout->setVerticalSpacing( 1 );
|
||||
|
||||
m_arpGroupBox->setWhatsThis(
|
||||
tr( "An arpeggio is a method playing (especially plucked) "
|
||||
"instruments, which makes the music much livelier. "
|
||||
"The strings of such instruments (e.g. harps) are "
|
||||
"plucked like chords. The only difference is that "
|
||||
"this is done in a sequential order, so the notes are "
|
||||
"not played at the same time. Typical arpeggios are "
|
||||
"major or minor triads, but there are a lot of other "
|
||||
"possible chords, you can select." ) );
|
||||
|
||||
|
||||
m_arpRangeKnob->setLabel( tr( "RANGE" ) );
|
||||
m_arpRangeKnob->setHintText( tr( "Arpeggio range:" ), " " + tr( "octave(s)" ) );
|
||||
m_arpRangeKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting the arpeggio range in octaves. "
|
||||
"The selected arpeggio will be played within specified "
|
||||
"number of octaves." ) );
|
||||
|
||||
|
||||
m_arpCycleKnob->setLabel( tr( "CYCLE" ) );
|
||||
m_arpCycleKnob->setHintText( tr( "Cycle notes:" ) + " ", " " + tr( "note(s)" ) );
|
||||
m_arpCycleKnob->setWhatsThis(
|
||||
tr( "Jumps over n steps in the arpeggio and cycles around "
|
||||
"if we're over the note range. If the total note range is evenly "
|
||||
"divisible by the number of steps jumped over you will get stuck "
|
||||
"in a shorter arpeggio or even on one note." ) );
|
||||
|
||||
|
||||
m_arpSkipKnob->setLabel( tr( "SKIP" ) );
|
||||
m_arpSkipKnob->setHintText( tr( "Skip rate:" ), tr( "%" ) );
|
||||
m_arpSkipKnob->setWhatsThis(
|
||||
tr( "The skip function will make the arpeggiator pause one step "
|
||||
"randomly. From its start in full counter clockwise "
|
||||
"position and no effect it will gradually progress to "
|
||||
"full amnesia at maximum setting.") );
|
||||
|
||||
|
||||
m_arpMissKnob->setLabel( tr( "MISS" ) );
|
||||
m_arpMissKnob->setHintText( tr( "Miss rate:" ), tr( "%" ) );
|
||||
m_arpMissKnob->setWhatsThis(
|
||||
tr( "The miss function will make the arpeggiator miss the "
|
||||
"intended note.") );
|
||||
|
||||
|
||||
m_arpTimeKnob->setLabel( tr( "TIME" ) );
|
||||
m_arpTimeKnob->setHintText( tr( "Arpeggio time:" ), " " + tr( "ms" ) );
|
||||
m_arpTimeKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting the arpeggio time in "
|
||||
"milliseconds. The arpeggio time specifies how long "
|
||||
"each arpeggio-tone should be played." ) );
|
||||
|
||||
|
||||
m_arpGateKnob->setLabel( tr( "GATE" ) );
|
||||
m_arpGateKnob->setHintText( tr( "Arpeggio gate:" ), tr( "%" ) );
|
||||
m_arpGateKnob->setWhatsThis(
|
||||
tr( "Use this knob for setting the arpeggio gate. The "
|
||||
"arpeggio gate specifies the percent of a whole "
|
||||
"arpeggio-tone that should be played. With this you "
|
||||
"can make cool staccato arpeggios." ) );
|
||||
|
||||
|
||||
QLabel* arpChordLabel = new QLabel( tr( "Chord:" ) );
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user