Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
5864aea
Fixes bug with cloning Automation Tracks
IanCaio Oct 25, 2020
090b5a7
Fix DMG titles > 27 chars (#5741)
tresf Oct 28, 2020
c23c1b7
Add Carla support for Windows (#5713)
tresf Oct 29, 2020
ec2e854
Fix AppleMIDI crash when deviceName or endPointName is null (#5729)
TheKnarf Oct 30, 2020
435dbc5
Fix crash/freezing after rendering when using soundio/JACK (#5681)
firewall1110 Oct 30, 2020
9d104b2
Switch Sid to submodule (#5724)
tresf Oct 30, 2020
69a35b5
Fix more background colors of selected text (#5687)
DigArtRoks Oct 30, 2020
2d51eae
Theming of disabled knobs (#5549)
thmueller64 Oct 30, 2020
dc78b15
Add Windows JACK support (#5716)
tresf Oct 30, 2020
6a78d8d
An extra set of parenthese to fix warnings/errors (#5754)
firewall1110 Oct 31, 2020
615d36b
Support LV2 with MSVC (#5730)
DomClark Oct 31, 2020
afd037e
Add CMT Submodule (#5755)
tresf Nov 1, 2020
f56cf60
Adds missing initializer to DataFile.cpp (#5739)
IanCaio Nov 1, 2020
c39690d
Arpeggiator - Cut off trailing short notes (#5523)
zonkmachine Nov 2, 2020
2a025c5
Bump version to 1.3.0-alpha
Spekular Nov 3, 2020
e2bb606
Fixes createTCO method on some classes (#5699)
IanCaio Nov 7, 2020
a6e3958
Fix EffectRackView appearance (GUI). (#5766)
DigArtRoks Nov 7, 2020
437172a
Stop sample previews on mouse release or browser focus loss (#5764)
Spekular Nov 8, 2020
e1d1878
Fix memory leak that the rpmalloc assert warns of (#5776) (Fixes #5733)
sziegler103 Nov 10, 2020
28a3944
Fixes bug with cloning Automation Tracks (#5732)
IanCaio Nov 14, 2020
4fb6654
Fix for the font of truncated sidebar items (#5714). (#5777)
DigArtRoks Nov 14, 2020
7dd6a39
Introduce blacklisted plugins to core
JohannesLorenz Nov 8, 2020
01f2fa5
Introduce blacklisted plugins to Lv2 interface
JohannesLorenz Nov 8, 2020
48bc9db
Forbid crashing Calf Analyzer/BassEnhancer
JohannesLorenz Nov 8, 2020
1c2107f
Fix missing support for lv2core#sampleRate (Fixes #5767)
JohannesLorenz Nov 12, 2020
3a74bad
Lv2Ports: Smash plugins with out-of-bounds defaults
JohannesLorenz Nov 13, 2020
060d0dc
Lv2Proc: Check def in [min,max] when creating port
JohannesLorenz Nov 15, 2020
a42d2d2
Color mixer channels if they are made by a colored track (#5780)
ryuukumar Nov 16, 2020
f262960
Fixed Stereo Matrix icon (#5792)
Nov 18, 2020
87875a1
Fix glitch in undo/redo of note edits via the menu (#5789)
thmueller64 Nov 19, 2020
83e51ff
Remove unused stuff (#5685)
M374LX Nov 20, 2020
53b003b
Allow SampleTCOs/Sample Clips to be reversed (#5765)
ryuukumar Nov 21, 2020
b00adea
annotate Track::getActivityIndicator implementations as override. (#5…
devnexen Nov 21, 2020
8d4bcd7
Fixes bug on SampleBuffer::decodeSampleSF (#5796)
IanCaio Nov 23, 2020
ed9abe5
Add option to continue sidebar previews when mouse released (#5787)
Spekular Nov 24, 2020
571c425
Support multiple instrument subplugin categories (#5801)
DomClark Nov 24, 2020
1949f93
Add checkboxes for selecting user and factory content (#5786)
thmueller64 Nov 26, 2020
9ca5497
Improve STK rawwave path detection (#5804)
PhysSong Nov 27, 2020
246b822
Rework Song::processNextBuffer (#5723)
DomClark Nov 27, 2020
ee7175b
Bitinvader - Fix saving with automation and division by 0 (#5805)
zonkmachine Nov 27, 2020
f712870
Ensure instrument window resize correctly on instrument changes (#5797)
PhysSong Nov 28, 2020
7a85b4d
Lv2Manager: Print issues uniq-ed
JohannesLorenz Nov 21, 2020
a2e71c8
Lv2: Use port-property "logarithmic"
JohannesLorenz Nov 15, 2020
6e08126
Rename MidiTime to TimePos (#5684)
M374LX Nov 29, 2020
c49ca37
Fix crash on OGG export with Qt >= 5.10 (#5813)
PhysSong Nov 30, 2020
aff2ebc
Update CIs to macOS 10.14 and XCode 10.3
PhysSong Dec 1, 2020
d73ede5
Remove instrument track window caching to fix related bugs (#5808)
PhysSong Dec 1, 2020
d6b9853
Tests: use C++14 as well as LMMS
PhysSong Dec 1, 2020
9f0dc0f
Work around build failures for tests on macOS >= 10.14
PhysSong Dec 1, 2020
4f74151
Fix export when rendering looped section multiple times (#5814)
DomClark Dec 1, 2020
3c36365
Adds support for MIDI CC events inside LMMS (#5581)
IanCaio Dec 2, 2020
827d44b
Ensure file opened successfully when loading sample (#5816)
DomClark Dec 3, 2020
ddf69fe
Lv2: Fix overflow and enum visualization
JohannesLorenz Nov 29, 2020
b701e82
Split Track.cpp and Track.h (#5806) (Fixes #5592)
M374LX Dec 4, 2020
3ad0462
Fix too small height of the carla instrument window (#5829)
PhysSong Dec 7, 2020
53a733b
Fixes bug where clicking on the Activity Indicator doesn't play a no…
IanCaio Dec 7, 2020
118d63b
Change abs to std::abs (#5831)
Veratil Dec 7, 2020
cd2366a
Fix style on "SampleBuffer.cpp" and "SampleBuffer.h" (#5791)
IanCaio Dec 7, 2020
2f66449
Implement Lv2 Options (#5761)
JohannesLorenz Dec 7, 2020
040fb48
Update code style for BBTrackContainer (#5812)
M374LX Dec 7, 2020
d3cd704
Temporary PR-Freeze message
Spekular Dec 8, 2020
2cb7973
Blacklist some calf plugins
zonkmachine Dec 10, 2020
28ee260
Mixer refactor (#4894)
M374LX Dec 11, 2020
3d7d005
Adds feature to merge Instrument Track patterns (#5700)
IanCaio Dec 12, 2020
09ee5c7
Fix #5840 (#5844)
Spekular Dec 13, 2020
3eabaab
Update knob graphic no matter how small change is (#5850)
Spekular Dec 16, 2020
53b2a33
Fix Homebrew updates on CircleCI
PhysSong Dec 17, 2020
eeec3f8
Fix compilation with 'AUDIO_PORT_SUPPORT' defined (#5841)
fogti Dec 21, 2020
a5dc3fe
Fix some Wine detection errors
PhysSong Dec 25, 2020
8655d50
Fixes bug with pasting of TCOs (#5840) (#5847)
IanCaio Dec 25, 2020
67a5da8
Workaround for SDL race condition (#5815)
M374LX Dec 27, 2020
bf7c87d
Fix rule of three for SampleBuffer, SampleTCO (#5727)
Spekular Dec 29, 2020
a058047
Revert submodule changes in a5dc3fee6a5c51065f268cb19f686284752e69da
PhysSong Dec 30, 2020
aa02a21
FPE debug - Disable FE_UNDERFLOW
zonkmachine Dec 29, 2020
d769459
Arpeggiator - Note repeats (#5784)
zonkmachine Jan 1, 2021
24761a4
Fix the unit of Bitcrush Output clip level from % to dBFS
deenadayalancs Jan 2, 2021
f7fbb9a
Use case insensitive alphabetical sort in tree-browsers (#5875)
frank-a-i Jan 7, 2021
ca17641
Fix 32-bit winegcc call on Linux when using LLD (#5878)
rdrpenguin04 Jan 10, 2021
1744fd7
Fix MP3 stereo mode doesn't match to the selection in export dialog (…
deenadayalancs Jan 23, 2021
e900576
FifoBuffer adjustments (#5803)
M374LX Jan 23, 2021
04d696a
Fix possible noise when normalizing bitinvader
zonkmachine Jan 2, 2021
4107bc0
Double check for correct normalization
thmueller64 Jan 2, 2021
ed4df52
Support HTML markup for knob labels (#3134)
liushuyu Jan 28, 2021
1534e90
Check MidiJack::m_jackAudio before using (#5907)
salilra Feb 13, 2021
05de59c
Feature: PianoRoll Knife (#5845)
cyber-bridge Feb 26, 2021
e880e3c
Changes AutomationPattern to use nodes instead of raw float values (#…
IanCaio Feb 28, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Arpeggiator - Note repeats (LMMS#5784)
Co-authored-by: Kevin Zander <veratil@gmail.com>
Co-authored-by: IanCaio <iancaio_dev@hotmail.com>
  • Loading branch information
3 people authored Jan 1, 2021
commit d769459764197ae4e6068a66fd6e22784803045f
1 change: 1 addition & 0 deletions include/InstrumentFunctionViews.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ class InstrumentFunctionArpeggioView : public QWidget, public ModelView
GroupBox * m_arpGroupBox;
ComboBox * m_arpComboBox;
Knob * m_arpRangeKnob;
Knob * m_arpRepeatsKnob;
Knob * m_arpCycleKnob;
Knob * m_arpSkipKnob;
Knob * m_arpMissKnob;
Expand Down
1 change: 1 addition & 0 deletions include/InstrumentFunctions.h
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,7 @@ class InstrumentFunctionArpeggio : public Model, public JournallingObject
BoolModel m_arpEnabledModel;
ComboBoxModel m_arpModel;
FloatModel m_arpRangeModel;
FloatModel m_arpRepeatsModel;
FloatModel m_arpCycleModel;
FloatModel m_arpSkipModel;
FloatModel m_arpMissModel;
Expand Down
10 changes: 8 additions & 2 deletions src/core/InstrumentFunctions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,7 @@ InstrumentFunctionArpeggio::InstrumentFunctionArpeggio( Model * _parent ) :
m_arpEnabledModel( false ),
m_arpModel( this, tr( "Arpeggio type" ) ),
m_arpRangeModel( 1.0f, 1.0f, 9.0f, 1.0f, this, tr( "Arpeggio range" ) ),
m_arpRepeatsModel( 1.0f, 1.0f, 8.0f, 1.0f, this, tr( "Note repeats" ) ),
m_arpCycleModel( 0.0f, 0.0f, 6.0f, 1.0f, this, tr( "Cycle steps" ) ),
m_arpSkipModel( 0.0f, 0.0f, 100.0f, 1.0f, this, tr( "Skip rate" ) ),
m_arpMissModel( 0.0f, 0.0f, 100.0f, 1.0f, this, tr( "Miss rate" ) ),
Expand Down Expand Up @@ -369,7 +370,7 @@ void InstrumentFunctionArpeggio::processNote( NotePlayHandle * _n )

const InstrumentFunctionNoteStacking::ChordTable & chord_table = InstrumentFunctionNoteStacking::ChordTable::getInstance();
const int cur_chord_size = chord_table[selected_arp].size();
const int range = (int)( cur_chord_size * m_arpRangeModel.value() );
const int range = static_cast<int>(cur_chord_size * m_arpRangeModel.value() * m_arpRepeatsModel.value());
const int total_range = range * cnphv.size();

// number of frames that every note should be played
Expand Down Expand Up @@ -479,11 +480,14 @@ void InstrumentFunctionArpeggio::processNote( NotePlayHandle * _n )
cur_arp_idx = (int)( range * ( (float) rand() / (float) RAND_MAX ) );
}

// Divide cur_arp_idx with wanted repeats. The repeat feature will not affect random notes.
cur_arp_idx = static_cast<int>(cur_arp_idx / m_arpRepeatsModel.value());

// Cycle notes
if( m_arpCycleModel.value() && dir != ArpDirRandom )
{
cur_arp_idx *= m_arpCycleModel.value() + 1;
cur_arp_idx %= range;
cur_arp_idx %= static_cast<int>( range / m_arpRepeatsModel.value() );
}

// now calculate final key for our arp-note
Expand Down Expand Up @@ -525,6 +529,7 @@ void InstrumentFunctionArpeggio::saveSettings( QDomDocument & _doc, QDomElement
m_arpEnabledModel.saveSettings( _doc, _this, "arp-enabled" );
m_arpModel.saveSettings( _doc, _this, "arp" );
m_arpRangeModel.saveSettings( _doc, _this, "arprange" );
m_arpRepeatsModel.saveSettings( _doc, _this, "arprepeats" );
m_arpCycleModel.saveSettings( _doc, _this, "arpcycle" );
m_arpSkipModel.saveSettings( _doc, _this, "arpskip" );
m_arpMissModel.saveSettings( _doc, _this, "arpmiss" );
Expand All @@ -542,6 +547,7 @@ void InstrumentFunctionArpeggio::loadSettings( const QDomElement & _this )
m_arpEnabledModel.loadSettings( _this, "arp-enabled" );
m_arpModel.loadSettings( _this, "arp" );
m_arpRangeModel.loadSettings( _this, "arprange" );
m_arpRepeatsModel.loadSettings( _this, "arprepeats" );
m_arpCycleModel.loadSettings( _this, "arpcycle" );
m_arpSkipModel.loadSettings( _this, "arpskip" );
m_arpMissModel.loadSettings( _this, "arpmiss" );
Expand Down
17 changes: 12 additions & 5 deletions src/gui/widgets/InstrumentFunctionViews.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ InstrumentFunctionArpeggioView::InstrumentFunctionArpeggioView( InstrumentFuncti
m_arpGroupBox( new GroupBox( tr( "ARPEGGIO" ) ) ),
m_arpComboBox( new ComboBox() ),
m_arpRangeKnob( new Knob( knobBright_26 ) ),
m_arpRepeatsKnob( new Knob( knobBright_26 ) ),
m_arpCycleKnob( new Knob( knobBright_26 ) ),
m_arpSkipKnob( new Knob( knobBright_26 ) ),
m_arpMissKnob( new Knob( knobBright_26 ) ),
Expand All @@ -117,6 +118,10 @@ InstrumentFunctionArpeggioView::InstrumentFunctionArpeggioView( InstrumentFuncti
m_arpRangeKnob->setHintText( tr( "Arpeggio range:" ), " " + tr( "octave(s)" ) );


m_arpRepeatsKnob->setLabel( tr( "REP" ) );
m_arpRepeatsKnob->setHintText( tr( "Note repeats:" ) + " ", " " + tr( "time(s)" ) );


m_arpCycleKnob->setLabel( tr( "CYCLE" ) );
m_arpCycleKnob->setHintText( tr( "Cycle notes:" ) + " ", " " + tr( "note(s)" ) );

Expand Down Expand Up @@ -154,11 +159,12 @@ InstrumentFunctionArpeggioView::InstrumentFunctionArpeggioView( InstrumentFuncti
mainLayout->addWidget( m_arpModeComboBox, 7, 0 );

mainLayout->addWidget( m_arpRangeKnob, 0, 1, 2, 1, Qt::AlignHCenter );
mainLayout->addWidget( m_arpCycleKnob, 0, 2, 2, 1, Qt::AlignHCenter );
mainLayout->addWidget( m_arpSkipKnob, 3, 1, 2, 1, Qt::AlignHCenter );
mainLayout->addWidget( m_arpMissKnob, 3, 2, 2, 1, Qt::AlignHCenter );
mainLayout->addWidget( m_arpGateKnob, 6, 1, 2, 1, Qt::AlignHCenter );
mainLayout->addWidget( m_arpTimeKnob, 6, 2, 2, 1, Qt::AlignHCenter );
mainLayout->addWidget( m_arpRepeatsKnob, 0, 2, 2, 1, Qt::AlignHCenter );
mainLayout->addWidget( m_arpCycleKnob, 0, 3, 2, 1, Qt::AlignHCenter );
mainLayout->addWidget( m_arpSkipKnob, 3, 2, 2, 1, Qt::AlignHCenter );
mainLayout->addWidget( m_arpMissKnob, 3, 3, 2, 1, Qt::AlignHCenter );
mainLayout->addWidget( m_arpGateKnob, 6, 2, 2, 1, Qt::AlignHCenter );
mainLayout->addWidget( m_arpTimeKnob, 6, 3, 2, 1, Qt::AlignHCenter );

mainLayout->setRowMinimumHeight( 2, 10 );
mainLayout->setRowMinimumHeight( 5, 10 );
Expand All @@ -181,6 +187,7 @@ void InstrumentFunctionArpeggioView::modelChanged()
m_arpGroupBox->setModel( &m_a->m_arpEnabledModel );
m_arpComboBox->setModel( &m_a->m_arpModel );
m_arpRangeKnob->setModel( &m_a->m_arpRangeModel );
m_arpRepeatsKnob->setModel( &m_a->m_arpRepeatsModel );
m_arpCycleKnob->setModel( &m_a->m_arpCycleModel );
m_arpSkipKnob->setModel( &m_a->m_arpSkipModel );
m_arpMissKnob->setModel( &m_a->m_arpMissModel );
Expand Down