Add missing ¹⁄₉₆ quantization (#5304)

This commit is contained in:
Cyp
2020-07-24 03:33:15 +02:00
committed by GitHub
parent 23242b9529
commit 04d8c0db06
3 changed files with 12 additions and 35 deletions

View File

@@ -28,6 +28,12 @@
#include <QMainWindow>
#include <QToolBar>
static const int Quantizations[] = {
1, 2, 4, 8, 16, 32, 64,
3, 6, 12, 24, 48, 96, 192
};
class QAction;
class DropToolBar;

View File

@@ -124,16 +124,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 (auto q : Quantizations) {
m_quantizeModel.addItem(QString("1/%1").arg(q));
}
for( int i = 0; i < 5; ++i )
{
m_quantizeModel.addItem( "1/" +
QString::number( ( 1 << i ) * 3 ) );
}
m_quantizeModel.addItem( "1/192" );
connect( &m_quantizeModel, SIGNAL(dataChanged() ),
this, SLOT( setQuantization() ) );
@@ -2160,22 +2153,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 = DefaultTicksPerBar;
}
quantization = DefaultTicksPerBar / quantization;
AutomationPattern::setQuantization( quantization );
AutomationPattern::setQuantization(DefaultTicksPerBar / Quantizations[m_quantizeModel.value()]);
update();
}

View File

@@ -371,15 +371,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() ),
@@ -4280,8 +4274,7 @@ int PianoRoll::quantization() const
}
}
QString text = m_quantizeModel.currentText();
return DefaultTicksPerBar / text.right( text.length() - 2 ).toInt();
return DefaultTicksPerBar / Quantizations[m_quantizeModel.value() - 1];
}