mirror of
https://codeberg.org/armin/trommelkiste.git
synced 2026-09-01 04:10:46 +02:00
recent
This commit is contained in:
parent
2e5fe1750f
commit
044e3b7a52
7 changed files with 618 additions and 47 deletions
|
|
@ -12,6 +12,7 @@ public:
|
|||
|
||||
void drawRotarySlider(juce::Graphics&, int x, int y, int w, int h,
|
||||
float pos, float start, float end, juce::Slider&) override;
|
||||
void drawToggleButton(juce::Graphics&, juce::ToggleButton&, bool, bool) override;
|
||||
void drawButtonBackground(juce::Graphics&, juce::Button&, const juce::Colour&,
|
||||
bool, bool) override;
|
||||
void drawComboBox(juce::Graphics&, int w, int h, bool down,
|
||||
|
|
@ -38,7 +39,7 @@ public:
|
|||
void paint(juce::Graphics&) override;
|
||||
void resized() override;
|
||||
void mouseDown(const juce::MouseEvent&) override;
|
||||
void timerCallback() override { repaint(); }
|
||||
void timerCallback() override;
|
||||
|
||||
private:
|
||||
TrommelkisteProcessor& proc;
|
||||
|
|
@ -53,26 +54,46 @@ private:
|
|||
struct TrackUI
|
||||
{
|
||||
using SliderAtt = juce::AudioProcessorValueTreeState::SliderAttachment;
|
||||
using ComboAtt = juce::AudioProcessorValueTreeState::ComboBoxAttachment;
|
||||
using ButtonAtt = juce::AudioProcessorValueTreeState::ButtonAttachment;
|
||||
|
||||
juce::TextButton prevBtn{"<"};
|
||||
juce::TextButton nextBtn{">"};
|
||||
KnobSlider level, length, velocity, pitch, tone, pan;
|
||||
juce::ComboBox decay;
|
||||
KnobSlider delaySend, reverbSend, ringMod, destruction, shuffle;
|
||||
juce::ToggleButton decay;
|
||||
juce::Label fileLabel;
|
||||
|
||||
std::unique_ptr<SliderAtt> levelAtt, lengthAtt, velAtt, pitchAtt, toneAtt, panAtt;
|
||||
std::unique_ptr<ComboAtt> decayAtt;
|
||||
std::unique_ptr<SliderAtt> delaySendAtt, reverbSendAtt;
|
||||
std::unique_ptr<SliderAtt> ringModAtt, destructionAtt, shuffleAtt;
|
||||
std::unique_ptr<ButtonAtt> decayAtt;
|
||||
};
|
||||
|
||||
TrackUI ui[NUM_TRACKS];
|
||||
juce::FileChooser chooser{"Load Sample", juce::File{}, "*.wav;*.aif;*.aiff;*.flac"};
|
||||
double trackActivatedTime[NUM_TRACKS] = {};
|
||||
|
||||
// Preset selector
|
||||
juce::ComboBox presetCombo;
|
||||
juce::TextButton presetPrevBtn{"<"};
|
||||
juce::TextButton presetNextBtn{">"};
|
||||
|
||||
// Global effect controls in header
|
||||
KnobSlider globalRingFreq, globalDestruction;
|
||||
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> globalRingFreqAtt, globalDestructionAtt;
|
||||
|
||||
// Master controls in header
|
||||
KnobSlider masterVolume, masterPan, masterDelay, masterReverb;
|
||||
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> masterVolumeAtt, masterPanAtt, masterDelayAtt, masterReverbAtt;
|
||||
|
||||
// Global shuffle controls in header
|
||||
KnobSlider globalShuffleDiv, globalShuffleAmt, globalGroove;
|
||||
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> globalShuffleDivAtt, globalShuffleAmtAtt, globalGrooveAtt;
|
||||
|
||||
// Delay sync control in header
|
||||
KnobSlider delaySyncDiv;
|
||||
std::unique_ptr<juce::AudioProcessorValueTreeState::SliderAttachment> delaySyncDivAtt;
|
||||
|
||||
void loadForTrack(int idx);
|
||||
void updateFileLabel(int idx);
|
||||
void refreshPresetCombo();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue