Skip to content

Commit

Permalink
Add missing ¹⁄₉₆ quantization.
Browse files Browse the repository at this point in the history
  • Loading branch information
Cyp committed Nov 5, 2019
1 parent a8d91b1 commit 118f975
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 35 deletions.
5 changes: 5 additions & 0 deletions include/MidiTime.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ const int DefaultTicksPerTact = 192;
const int DefaultStepsPerTact = 16;
const int DefaultBeatsPerTact = DefaultTicksPerTact / DefaultStepsPerTact;

static const int Quantizations[] = {
1, 2, 4, 8, 16, 32, 64,
3, 6, 12, 24, 48, 96, 192
};


class MeterModel;

Expand Down
28 changes: 3 additions & 25 deletions src/gui/editors/AutomationEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -122,16 +122,9 @@ AutomationEditor::AutomationEditor() :
connect( m_tensionModel, SIGNAL( dataChanged() ),
this, SLOT( setTension() ) );

for( int i = 0; i < 7; ++i )
{
m_quantizeModel.addItem( "1/" + QString::number( 1 << i ) );
}
for( int i = 0; i < 5; ++i )
{
m_quantizeModel.addItem( "1/" +
QString::number( ( 1 << i ) * 3 ) );
for (auto q : Quantizations) {
m_quantizeModel.addItem(QString("1/%1").arg(q));
}
m_quantizeModel.addItem( "1/192" );

connect( &m_quantizeModel, SIGNAL(dataChanged() ),
this, SLOT( setQuantization() ) );
Expand Down Expand Up @@ -2133,22 +2126,7 @@ void AutomationEditor::zoomingYChanged()

void AutomationEditor::setQuantization()
{
int quantization = m_quantizeModel.value();
if( quantization < 7 )
{
quantization = 1 << quantization;
}
else if( quantization < 12 )
{
quantization = 1 << ( quantization - 7 );
quantization *= 3;
}
else
{
quantization = DefaultTicksPerTact;
}
quantization = DefaultTicksPerTact / quantization;
AutomationPattern::setQuantization( quantization );
AutomationPattern::setQuantization(DefaultTicksPerTact / Quantizations[m_quantizeModel.value()]);

update();
}
Expand Down
13 changes: 3 additions & 10 deletions src/gui/editors/PianoRoll.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -357,15 +357,9 @@ PianoRoll::PianoRoll() :

// Set up quantization model
m_quantizeModel.addItem( tr( "Note lock" ) );
for( int i = 0; i <= NUM_EVEN_LENGTHS; ++i )
{
m_quantizeModel.addItem( "1/" + QString::number( 1 << i ) );
for (auto q : Quantizations) {
m_quantizeModel.addItem(QString("1/%1").arg(q));
}
for( int i = 0; i < NUM_TRIPLET_LENGTHS; ++i )
{
m_quantizeModel.addItem( "1/" + QString::number( (1 << i) * 3 ) );
}
m_quantizeModel.addItem( "1/192" );
m_quantizeModel.setValue( m_quantizeModel.findText( "1/16" ) );

connect( &m_quantizeModel, SIGNAL( dataChanged() ),
Expand Down Expand Up @@ -3975,8 +3969,7 @@ int PianoRoll::quantization() const
}
}

QString text = m_quantizeModel.currentText();
return DefaultTicksPerTact / text.right( text.length() - 2 ).toInt();
return DefaultTicksPerTact / Quantizations[m_quantizeModel.value() - 1];
}


Expand Down

0 comments on commit 118f975

Please sign in to comment.