QString Harmony::harmonyName() const { bool germanNames = score()->styleB(ST_useGermanNoteNames); HChord hc = descr() ? descr()->chord : HChord(); QString s; if (!_degreeList.isEmpty()) { hc.add(_degreeList); // try to find the chord in chordList const ChordDescription* newExtension = 0; ChordList* cl = score()->style()->chordList(); foreach(const ChordDescription* cd, *cl) { if (cd->chord == hc && !cd->names.isEmpty()) { newExtension = cd; break; } } // now determine the chord name if (newExtension) s = tpc2name(_rootTpc, germanNames) + newExtension->names.front(); else // not in table, fallback to using HChord.name() s = hc.name(_rootTpc); //s += " "; } // end if (degreeList ...
void Harmony::resolveDegreeList() { if (_degreeList.isEmpty()) return; HChord hc = descr() ? descr()->chord : HChord(); hc.add(_degreeList); // qDebug("resolveDegreeList: <%s> <%s-%s>: ", _descr->name, _descr->xmlKind, _descr->xmlDegrees); // hc.print(); // _descr->chord.print(); // try to find the chord in chordList const ChordList* cl = score()->style()->chordList(); foreach(const ChordDescription& cd, *cl) { if ((cd.chord == hc) && !cd.names.isEmpty()) { qDebug("ResolveDegreeList: found in table as %s", qPrintable(cd.names.front())); _id = cd.id; _degreeList.clear(); return; } } qDebug("ResolveDegreeList: not found in table"); }
QString Harmony::harmonyName() { determineRootBaseSpelling(); HChord hc = descr() ? descr()->chord : HChord(); QString s, r, e, b; if (_leftParen) s = "("; if (_rootTpc != INVALID_TPC) r = tpc2name(_rootTpc, _rootSpelling, _rootLowerCase); if (_textName != "") e = _textName.remove('='); else if (!_degreeList.isEmpty()) { hc.add(_degreeList); // try to find the chord in chordList const ChordDescription* newExtension = 0; ChordList* cl = score()->style()->chordList(); foreach(const ChordDescription* cd, *cl) { if (cd->chord == hc && !cd->names.isEmpty()) { newExtension = cd; break; } } // now determine the chord name if (newExtension) e = newExtension->names.front(); else { // not in table, fallback to using HChord.name() r = hc.name(_rootTpc); e = ""; } }