QString PitchEdit::textFromValue(int v) const { if (deltaMode) { QString s; s.setNum(v); return s; } else return pitch2string(v); }
QString PitchEdit::mapValueToText(int v) { if (deltaMode) { QString s; s.setNum(v); return s; } else return pitch2string(v); }
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); }
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); }
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); } }
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); }
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