void setLyricsFromOperations(const QList<MTrack> &tracks) { const auto *lyricTracks = preferences.midiImportOperations.getLyrics(); if (!lyricTracks) return; for (const auto &track: tracks) { const auto opers = preferences.midiImportOperations.trackOperations(track.indexOfOperation); if (opers.lyricTrackIndex >= 0 && opers.lyricTrackIndex < lyricTracks->size()) addLyricsToScore((*lyricTracks)[opers.lyricTrackIndex], track.staff); } }
void setInitialLyricsFromMidiData(const QList<MTrack> &tracks) { std::set<int> usedTracks; const auto *lyricTracks = preferences.midiImportOperations.getLyrics(); if (!lyricTracks) return; for (const auto &lyricTrack: *lyricTracks) { const int bestTrack = findBestTrack(tracks, lyricTrack, usedTracks); if (bestTrack >= 0) { usedTracks.insert(bestTrack); addLyricsToScore(lyricTrack, tracks[bestTrack].staff); } } }
void setLyricsFromOperations(const QList<MTrack> &tracks) { const auto &lyricTracks = midiImportOperations.data()->lyricTracks; if (lyricTracks.isEmpty()) return; for (const auto &track: tracks) { const auto &opers = midiImportOperations.data()->trackOpers; const int lyricTrackIndex = opers.lyricTrackIndex.value(track.indexOfOperation); if (lyricTrackIndex >= 0 && lyricTrackIndex < lyricTracks.size()) { const auto &lyricTrack = lyricTracks[lyricTrackIndex]; const auto matchedLyricTimes = findMatchedLyricTimes(track.chords, lyricTrack); addLyricsToScore(lyricTrack, matchedLyricTimes, track.staff); } } }
void setInitialLyricsFromMidiData(const QList<MTrack> &tracks) { std::set<int> usedTracks; auto &data = *midiImportOperations.data(); const auto &lyricTracks = data.lyricTracks; if (lyricTracks.isEmpty()) return; for (int i = 0; i != lyricTracks.size(); ++i) { const BestTrack bestTrack = findBestTrack(tracks, lyricTracks[i], usedTracks); if (bestTrack.index >= 0) { usedTracks.insert(bestTrack.index); addLyricsToScore(lyricTracks[i], bestTrack.matchedLyricTimes, tracks[bestTrack.index].staff); data.trackOpers.lyricTrackIndex.setValue(bestTrack.index, i); } } }