Пример #1
0
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);
            }
      }
Пример #2
0
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);
                  }
            }
      }
Пример #3
0
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);
                  }
            }
      }
Пример #4
0
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);
                  }
            }
      }