MidiController::MidiController() : _name(QString(QT_TRANSLATE_NOOP("@default", "Velocity"))) { _num = CTRL_VELOCITY; _minVal = 0; _maxVal = 127; _initVal = 0; updateBias(); }
MidiController::MidiController() : _name(QString("Velocity")) { _num = CTRL_VELOCITY; _minVal = 0; _maxVal = 127; _initVal = 0; _showInTracks = ShowInDrum | ShowInMidi; updateBias(); }
MidiController::MidiController() : _name(QString("Velocity")) { _num = CTRL_VELOCITY; // REMOVE Tim. Noteoff. Changed. Zero note on vel is not allowed now. // _minVal = 0; _minVal = 1; _maxVal = 127; _initVal = 0; _showInTracks = ShowInDrum | ShowInMidi; updateBias(); }
void MidiController::read(Xml& xml) { ControllerType t = Controller7; _initVal = CTRL_VAL_UNKNOWN; static const int NOT_SET = 0x100000; _minVal = NOT_SET; _maxVal = NOT_SET; int h = 0; int l = 0; bool ok; int base = 10; for (;;) { Xml::Token token = xml.parse(); const QString& tag = xml.s1(); switch (token) { case Xml::Error: case Xml::End: return; case Xml::Attribut: { QString s = xml.s2(); if (s.left(2) == "0x") base = 16; if (tag == "name") _name = xml.s2(); else if (tag == "type") t = ctrlType2Int(xml.s2()); else if (tag == "h") h = xml.s2().toInt(&ok, base); else if (tag == "l") { // Support instrument files with '*' or 'pitch' as wildcard. if ((xml.s2() == "*") || (xml.s2() == "pitch")) l = 0xff; else l = xml.s2().toInt(&ok, base); } else if (tag == "min") _minVal = xml.s2().toInt(&ok, base); else if (tag == "max") _maxVal = xml.s2().toInt(&ok, base); else if (tag == "init") _initVal = xml.s2().toInt(&ok, base); else if (tag == "showType") _showInTracks = xml.s2().toInt(&ok, base); } break; case Xml::TagStart: xml.unknown("MidiController"); break; case Xml::TagEnd: if (tag == "Controller") { _num = (h << 8) + l; switch (t) { case RPN: if (_maxVal == NOT_SET) _maxVal = 127; _num |= CTRL_RPN_OFFSET; break; case NRPN: if (_maxVal == NOT_SET) _maxVal = 127; _num |= CTRL_NRPN_OFFSET; break; case Controller7: if (_maxVal == NOT_SET) _maxVal = 127; break; case Controller14: _num |= CTRL_14_OFFSET; if (_maxVal == NOT_SET) _maxVal = 16383; break; case RPN14: if (_maxVal == NOT_SET) _maxVal = 16383; _num |= CTRL_RPN14_OFFSET; break; case NRPN14: if (_maxVal == NOT_SET) _maxVal = 16383; _num |= CTRL_NRPN14_OFFSET; break; case Pitch: if (_maxVal == NOT_SET) _maxVal = 8191; if (_minVal == NOT_SET) _minVal = -8192; _num = CTRL_PITCH; break; case Program: if (_maxVal == NOT_SET) _maxVal = 0xffffff; _num = CTRL_PROGRAM; break; case PolyAftertouch: if (_maxVal == NOT_SET) _maxVal = 127; if (_minVal == NOT_SET) _minVal = 0; _num = CTRL_POLYAFTER; break; case Aftertouch: if (_maxVal == NOT_SET) _maxVal = 127; if (_minVal == NOT_SET) _minVal = 0; _num = CTRL_AFTERTOUCH; break; case Velo: // cannot happen break; } if (_minVal == NOT_SET) _minVal = 0; updateBias(); return; } default: break; } } }
MidiController::MidiController(const QString& s, int n, int min, int max, int init, int show_in_track) : _name(s), _num(n), _minVal(min), _maxVal(max), _initVal(init), _showInTracks(show_in_track) { updateBias(); }
MidiController::MidiController(const QString& s, int n, int min, int max, int init) : _name(s), _num(n), _minVal(min), _maxVal(max), _initVal(init) { updateBias(); }