Add missing ¹⁄₉₆ quantization (#5304)
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user