Esempio n. 1
0
QString PitchEdit::textFromValue(int v) const
      {
      if (deltaMode) {
            QString s;
            s.setNum(v);
            return s;
            }
      else
            return pitch2string(v);
      }
Esempio n. 2
0
QString PitchEdit::mapValueToText(int v)
{
    if (deltaMode)
    {
        QString s;
        s.setNum(v);
        return s;
    }
    else
        return pitch2string(v);
}
Esempio n. 3
0
void PitchLabel::setValue(int val)
      {
      if (val == _value)
            return;
      _value = val;
      QString s;
      if (_pitchMode)
            s = pitch2string(_value);
      else
            s.sprintf("%d", _value);
      setText(s);
      }
Esempio n. 4
0
void MEvent::dump() const
{
    printf("time:%d port:%d chan:%d ", _time, _port, _channel + 1);
    if (_type == 0x90)
    { // NoteOn
        QString s = pitch2string(_a);
        printf("NoteOn %s(0x%x) %d\n", s.toLatin1().constData(), _a, _b);
    }
    else if (_type == 0xf0)
    {
        printf("SysEx len %d 0x%0x ...\n", len(), data()[0]);
    }
    else
        printf("type:0x%02x a=%d b=%d\n", _type, _a, _b);
}
Esempio n. 5
0
void EditDrumset::updateList()
      {
      pitchList->clear();
      for (int i = 0; i < 128; ++i) {
            QTreeWidgetItem* item = new QTreeWidgetItem(pitchList);
            item->setText(COL_PITCH, QString("%1").arg(i));
            item->setText(COL_NOTE, pitch2string(i));
            if (nDrumset.shortcut(i) == 0)
                  item->setText(COL_SHORTCUT, "");
            else {
                  QString s(QChar(nDrumset.shortcut(i)));
                  item->setText(COL_SHORTCUT, s);
                  }
            item->setText(COL_NAME, qApp->translate("drumset", qPrintable(nDrumset.name(i))));
            item->setData(0, Qt::UserRole, i);
            }
      }
Esempio n. 6
0
void EditDrumset::updatePitchesList()
      {
      pitchList->clear();
      for (int i = 0; i < 128; ++i) {
            QTreeWidgetItem* item = new EditDrumsetTreeWidgetItem(pitchList);
            item->setText(Column::PITCH, QString("%1").arg(i));
            item->setText(Column::NOTE, pitch2string(i));
            if (nDrumset.shortcut(i) == 0)
                  item->setText(Column::SHORTCUT, "");
            else {
                  QString s(QChar(nDrumset.shortcut(i)));
                  item->setText(Column::SHORTCUT, s);
                  }
            item->setText(Column::NAME, qApp->translate("drumset", nDrumset.name(i).toUtf8().constData()));
            item->setData(Column::PITCH, Qt::UserRole, i);
            }
      pitchList->sortItems(3, Qt::SortOrder::DescendingOrder);
      }
Esempio n. 7
0
QString EventListItem::text(int col) const
{
    QString s;
    QString commentLabel;
    switch (col)
    {
        case 0:
            s.setNum(event.tick());
            break;
        case 1:
        {
            int t = event.tick() + part->tick();
            int bar, beat;
            unsigned tick;
            sigmap.tickValues(t, &bar, &beat, &tick);
            s.sprintf("%04d.%02d.%03d", bar + 1, beat + 1, tick);
        }
            break;
        case 2:
            switch (event.type())
            {
                case Note:
                    s = QString("Note");
                    break;
                case Controller:
                {
                    const char* cs;
                    switch (midiControllerType(event.dataA()))
                    {
                        case MidiController::Controller7: cs = "Ctrl7";
                            break;
                        case MidiController::Controller14: cs = "Ctrl14";
                            break;
                        case MidiController::RPN: cs = "RPN";
                            break;
                        case MidiController::NRPN: cs = "NRPN";
                            break;
                        case MidiController::Pitch: cs = "Pitch";
                            break;
                        case MidiController::Program: cs = "Program";
                            break;
                        case MidiController::RPN14: cs = "RPN14";
                            break;
                        case MidiController::NRPN14: cs = "NRPN14";
                            break;
                        default: cs = "Ctrl?";
                            break;
                    }
                    s = QString(cs);
                }
                    break;
                case Sysex:
                {
                    commentLabel = QString("len ");
                    QString k;
                    k.setNum(event.dataLen());
                    commentLabel += k;
                    commentLabel += QString(" ");

                    commentLabel += nameSysex(event.dataLen(), event.data());
                    int i;
                    for (i = 0; i < 10; ++i)
                    {
                        if (i >= event.dataLen())
                            break;
                        commentLabel += QString(" 0x");
                        QString k;
                        k.setNum(event.data()[i] & 0xff, 16);
                        commentLabel += k;
                    }
                    if (i == 10)
                        commentLabel += QString("...");
                }
                    s = QString("SysEx");
                    break;
                case PAfter:
                    s = QString("PoAT");
                    break;
                case CAfter:
                    s = QString("ChAT");
                    break;
                case Meta:
                    commentLabel = midiMetaComment(event);
                    s = QString("Meta");
                    break;
                default:
                    printf("unknown event type %d\n", event.type());
            }
            break;
        case 3:
            s.setNum(part->track()->outChannel() + 1);
            break;
        case 4:
            if (event.isNote() || event.type() == PAfter)
                s = pitch2string(event.dataA());
            else if (event.type() == Controller)
                s.setNum(event.dataA() & 0xffff); // mask off type bits
            else
                s.setNum(event.dataA());
            break;
        case 5:
            if (event.type() == Controller &&
                    midiControllerType(event.dataA()) == MidiController::Program)
            {
                int val = event.dataB();
                int hb = ((val >> 16) & 0xff) + 1;
                if (hb == 0x100)
                    hb = 0;
                int lb = ((val >> 8) & 0xff) + 1;
                if (lb == 0x100)
                    lb = 0;
                int pr = (val & 0xff) + 1;
                if (pr == 0x100)
                    pr = 0;
                s.sprintf("%d-%d-%d", hb, lb, pr);
            }
            else