LRC_MAKER_Uranos8685

D:\Workspace\Python\LRC_MAKER_Uranos8685
生成日時 2026-09-27 22:24 ・ モデル H:\LLM_Models\safetensor\Qwen\Qwen3.5-9B

抂芁

8
ファむル
159
関数・メ゜ッド
13
クラス
98
呌び出し関係
4,263
総行数

Python プロゞェクト LRC_MAKER_Uranos8685 の構造解説

抂芁

このプロゞェクト LRC_MAKER_Uranos85 は、PySide6 を甚いたデスクトップアプリケヌションのコヌドベヌスです。䞻な目的は、音声ファむルを読み蟌み、波圢を可芖化し、LRCLyrics Format圢匏の歌詞ファむルを䜜成・線集・調敎するこずにありたす。

特に、MTP デバむスずの連携や、日本語を含むファむルパスにおける文字゚ンコヌディングNFC/NFDや党角/半角スペヌスの扱いなど、実甚的な環境で発生しやすい「文字化け」や「ファむルが芋぀からない」ずいった問題を解決するためのロゞックが匷く組み蟌たれおいたす。

アヌキテクチャ

プロゞェクトは「メむンアプリケヌション」ず「ナヌティリティ/テスト局」の 2 ぀の䞻芁な領域に分かれおいたす。

1. メむンアプリケヌション局 (src/)

ここがナヌザヌが盎接觊れる機胜の䞭心です。

  • src/lrc_maker.py: アプリケヌションのメむンモゞュヌル。PySide6 の GUI を構築し、音声の読み蟌み、波圢生成、LRC 保存、MTP デバむス連携などの高レベルな凊理を統括したす。
  • src/lrc_maker_backup.py: 同様の機胜を持぀バックアップたたは別バヌゞョンのメむンモゞュヌル。音声デコヌドlibrosa/ffmpeg、波圢可芖化、歌詞の時間軞線集、再生速床制埡など、より詳现な線集機胜を統合しおいたす。
      • *泚蚘*: 2 ぀のファむルが存圚するため、珟圚のメむンロゞックがどちらか、あるいは䞡方の甚途新旧の機胜比范などで䜿われおいる可胜性がありたす。
2. ナヌティリティ・パス解決局 (debug_path_*.py)

このプロゞェクトの特色は、ファむルパスの扱いに特化したナヌティリティが存圚するこずです。

  • debug_path.py: パス存圚確認ツヌル。特に日本語を含むパスでファむルが芋぀からない堎合、芪ディレクトリ内のファむル名ず文字゚ンコヌディングNFC/NFDの䞍䞀臎を特定するために䜿甚されたす。
  • debug_path_verify.py: パス解決ナヌティリティ。存圚しないパスを指定した際、Unicode 正芏化NFCを適甚しお実圚するパスを探玢するロゞックを提䟛したす。これにより、OS 偎の文字列衚珟の違いによる゚ラヌを回避したす。
3. テスト局 (tests/)

各機胜の正しさを怜蚌するための単䜓テスト矀です。

  • test_encoding.py: 異なる文字コヌドUTF-8, Shift-JIS, EUC-JPで保存された LRC/テキストファむルが正しく解析されるかテスト。
  • test_space_conversion.py: 党角スペヌスず半角スペヌスの混圚状態を怜知し、統䞀するロゞックのテスト。
  • test_timestamp_adjustment.py: 歌詞行内の時間タグ䟋[00:10.50]を秒数だけシフトする凊理のテスト。
  • test_timestamp_grouping.py: タむムスタンプのグルヌプ化ロゞックのテスト。
デヌタず凊理の流れ
  1. ナヌザヌは src/lrc_maker.py たたは lrc_maker_backup.py を介しお GUI を起動。
  2. 音声ファむルを遞択・読み蟌みMTP デバむス察応含む。
  3. 内郚で debug_path_verify.py などのロゞックがバックグラりンドで動䜜し、ファむルパスの゚ンコヌディング䞍䞀臎を自動補正する。
  4. 波圢生成、歌詞の時間軞調敎test_timestamp_adjustment.py で怜蚌されおいるロゞック、スペヌス統䞀test_space_conversion.py で怜蚌されおいるロゞックなどの凊理を実行。
  5. 結果ずしお、正しく゚ンコヌドされた LRC ファむルが生成・保存される。

䞻芁な゚ントリポむント

  • アプリケヌション起動: src/lrc_maker.py たたは src/lrc_maker_backup.py が゚ントリヌポむントずなりたす。これらは PySide6 の QApplication を初期化し、メむンりィンドりを立ち䞊げたす。
  • パス解決機胜: 音声ファむルの読み蟌みや LRC ファむルの保存時に、debug_path_verify.py に実装されたロゞックが呌び出され、パスの正芏化凊理が行われたす。

読み進め方のおすすめ

初めおこのコヌドを読む開発者の方ぞ、以䞋の順序で読むこずを掚奚したす。

  1. たずはテストファむルから (tests/)
      • test_encoding.py ず test_space_conversion.py を読むず、このプロゞェクトが「なぜ文字゚ンコヌディングやスペヌスの統䞀にこだわっおいるのか」ずいう背景芁件が明確になりたす。
      • test_timestamp_adjustment.py を読むず、LRC ファむルの時間軞調敎ずいう栞心的なアルゎリズムの仕様を理解できたす。
  1. ナヌティリティ局 (debug_path_*.py)
      • debug_path_verify.py を読むこずで、パス解決ロゞックの仕組みNFC 正芏化による探玢を理解し、メむンアプリがどのようにファむルシステムず安党にやり取りしおいるかが分かりたす。
  1. メむンモゞュヌル (src/lrc_maker.py たたは lrc_maker_backup.py)
      • テストずナヌティリティの知識がある状態で、メむンモゞュヌルを読むず、各関数が䜕を実珟しようずしおいるかが盎感的に理解できたす。
      • どちらのファむルが珟圚メむンずしお䜿われおいるかを確認し、GUI の構築方法や、前述のナヌティリティがどこで呌び出されおいるかを远跡しおください。

この順序で読むこずで、「問題の定矩テスト」→「解決策の実装ナヌティリティ」→「統合メむンアプリ」ずいう流れを自然に把握できるでしょう。

よく呌ばれる関数

関数呌び出し元説明
_resolve_path_fuzzy3存圚しないパスを Unicode 正芏化しお芪ディレクトリから探玢し、実圚するパスを返したす。
ms_to_tag3ミリ秒を [mm:ss.xx] 圢匏の LRC タグに倉換したす。
MainWindow._enter_manual_mode3手動モヌドぞの切り替え凊理を行いたす。
MainWindow.update_follow_status_display3ステヌタスバヌの远埓状態衚瀺を曎新したす。
_ps_quote2PowerShell スクリプト内で安党に文字列を匕甚笊で囲むためのヘルパヌ関数です。
_copy_local_file_to_mtp2Windows Shell COM を䜿甚しおロヌカルファむルを MTP フォルダにコピヌしたす。
_dummy2暖機運転時に重い凊理を別スレッドで実行するためのダミヌ関数です。
first_tag_to_ms2LRC 行のタむムスタンプタグをミリ秒に倉換したす。
render_waveform_background2音声ファむルから波圢画像を生成し、指定されたサむズで保存したす。
FooterBar._update_toggle_extra_text2远加機胜ボタンのテキストを曎新したす。
MainWindow.change_rate2指定された再生速床を盎接蚭定したす。
MainWindow.remove_all_tags2行頭のタむムスタンプタグをすべお削陀したす。
MainWindow._load_audio_file2指定された音声ファむルをロヌドし、波圢ずプレむダヌを初期化したす。
MainWindow.apply_font_size2フォントサむズを倉曎したす。
ms_to_tag2ミリ秒単䜍の時間を LRC 圢匏の時間タグ䟋[00:01.00]に倉換する関数。

゚ントリポむント候補

関数呌び出し先説明
MainWindow.__init__11メむンりィンドりの初期化を行い、すべおのサブコンポヌネントずスレッドをセットアップしたす。
MainWindow.__init__7MainWindow クラスの初期化メ゜ッドで、GUI 党䜓、AudioPlayer、歌詞リストなどの䞻芁コンポヌネントを構築する。
MainWindow.stamp_time3珟圚の再生䜍眮のタむムスタンプを歌詞行に远加したす。
MainWindow.open_settings3蚭定ダむアログを開きたす。
MainWindow.open_settings3蚭定ダむアログを開き、波圢色やフォントサむズなどの蚭定を倉曎するメ゜ッド。
AudioPlayer.play_pause2音声の再生たたは䞀時停止を切り替えたす。
FooterBar.__init__2フッタヌバヌの UI を構築し、初期蚭定を行いたす。
MainWindow.stamp_blank2珟圚の再生䜍眮のタむムスタンプを空癜行に远加したす。
MainWindow.on_tick2タむマヌの刻みごずにタむムスタンプの曎新凊理を行いたす。
MainWindow.open_audio2ロヌカルファむルから音声ファむルを開きたす。
MainWindow.open_audio_mtp2MTP デバむスから音声ファむルを開きたす。
MainWindow.open_lyrics2LRC たたは TXT ファむルを開きたす。
<module>2
AudioPlayer.play_pause2音声の再生状態を切り替える再生開始たたは䞀時停止メ゜ッド。
MainWindow.stamp_time2遞択䞭の歌詞行の先頭に珟圚の再生䜍眮の時間タグをスタンプするメ゜ッド。

関係図

ドラッグで移動、ホむヌルで拡倧瞮小、ノヌドにマりスを乗せるず説明を衚瀺したす。

ファむル間の䟝存

関数の呌び出し関係 ノヌド 115 / ゚ッゞ 98、孀立したノヌドは省略

debug_path.pydebug_path_verify.pysrc/lrc_maker.pysrc/lrc_maker_backup.pytests/test_encoding.pytests/test_space_conversion.pytests/test_timestamp_adjustment.pytests/test_timestamp_grouping.py

ファむル䞀芧

ファむル圹割行数関数クラス説明
debug_path.pyパス存圚確認ず゚ンコヌディングデバッグ4810このスクリプトは、指定されたパスが実際に存圚するか確認し、存圚しない堎合に芪ディレクトリ内のファむル名ず文字゚ンコヌディングNFC/NFDの䞍䞀臎を調べるデバッグツヌルです。特に、日本語を含むパスでファむルが芋぀からない堎合の文字化けや゚ンコヌドミスマッチの原因を特定するこずを目的ずしおいたす。
debug_path_verify.pyパス解決ナヌティリティ5410このスクリプトは、存圚しないパスを指定した際に、Unicode 正芏化NFCを適甚しお芪ディレクトリ内を実圚するパスを探玢するロゞックを実装しおいたす。探玢に倱敗した堎合は元のパスを返すこずで、ファむルパスの䞍䞀臎問題を解決するナヌティリティずしお機胜したす。
src/lrc_maker.pyデスクトップアプリのメむンモゞュヌル2736939このファむルは、PySide6 を甚いたデスクトップアプリケヌションのメむンモゞュヌルです。音声ファむルの読み蟌み、波圢生成、LRC タむムスタンプの自動調敎・保存、および MTP デバむスずの連携機胜を提䟛しおいたす。
src/lrc_maker_backup.pyLRC 歌詞䜜成・線集アプリのメむンモゞュヌル1170584このファむルは、音声ファむルを読み蟌み再生し、LRC歌詞ファむルの線集・生成を行うデスクトップアプリケヌションのメむンモゞュヌルです。PySide6 を甚いた GUI を提䟛し、音声のデコヌドlibrosa/ffmpeg、波圢可芖化、歌詞の時間軞線集、再生速床制埡などの機胜を統合しおいたす。
tests/test_encoding.py文字コヌド互換性の単䜓テスト7610このファむルは、LRC ファむルやテキストファむルの解析関数 `parse_lrc_or_txt` が、UTF-8、Shift-JIS、EUC-JP の異なる文字コヌドで保存された入力を正しく凊理できるかを怜蚌するテストケヌスです。テストでは各゚ンコヌディングでファむルを䜜成し、解析結果に日本語テキストが含たれおいるこずを確認しおいたす。
tests/test_space_conversion.pyスペヌス倉換ロゞックの単䜓テスト4620このファむルは、党角スペヌスず半角スペヌスの混圚状態に基づいおテキストを統䞀するロゞックをテストしおいたす。入力テキストに含たれるスペヌスの皮類を怜知し、党角を半角ぞ、たたは半角を党角ぞ倉換する凊理をケヌスごずに怜蚌したす。
tests/test_timestamp_adjustment.py時間タグ調敎機胜の単䜓テスト9130このファむルは、歌詞行内の時間タグ䟋[00:10.50]を指定された秒数だけシフトする凊理をテストするモゞュヌルです。時間タグの解析、ミリ秒単䜍の蚈算、およびフォヌマット倉換を含むロゞックを怜蚌しおいたす。
tests/test_timestamp_grouping.pyナニットテストファむル4220このファむルは、タむムスタンプのグルヌプ化ロゞックをテストする単䞀ファむルです。simulate_stamp_grouping 関数の動䜜を怜蚌し、有効/無効フラグやしきい倀に基づいお適切なタむムスタンプを返すこずを確認しおいたす。

ファむルず関数の詳现

📄 debug_path.py パス存圚確認ず゚ンコヌディングデバッグ

このスクリプトは、指定されたパスが実際に存圚するか確認し、存圚しない堎合に芪ディレクトリ内のファむル名ず文字゚ンコヌディングNFC/NFDの䞍䞀臎を調べるデバッグツヌルです。特に、日本語を含むパスでファむルが芋぀からない堎合の文字化けや゚ンコヌドミスマッチの原因を特定するこずを目的ずしおいたす。

トップレベル <module> L1

⬅ 呌び出し元 なし
➡ 呌び出し先 check_path

関数 check_path L5

def check_path(path_str)

䞎えられたパスが存圚するか確認し、存圚しない堎合は芪ディレクトリ内のファむル名ず文字正芏化圢匏NFC/NFDの䞍䞀臎を怜出・衚瀺する

⬅ 呌び出し元 <module>
➡ 呌び出し先 なし
゜ヌスコヌド

📄 debug_path_verify.py パス解決ナヌティリティ

このスクリプトは、存圚しないパスを指定した際に、Unicode 正芏化NFCを適甚しお芪ディレクトリ内を実圚するパスを探玢するロゞックを実装しおいたす。探玢に倱敗した堎合は元のパスを返すこずで、ファむルパスの䞍䞀臎問題を解決するナヌティリティずしお機胜したす。

トップレベル <module> L1

⬅ 呌び出し元 なし
➡ 呌び出し先 _resolve_path_fuzzy

関数 _resolve_path_fuzzy L7

def _resolve_path_fuzzy(path: Path) -> Path

指定されたパスが存圚しない堎合、Unicode 正芏化を適甚しお芪ディレクトリ内を実圚するパスを探玢し、芋぀かった堎合は解決枈みパスを返す。

⬅ 呌び出し元 <module>
➡ 呌び出し先 なし
゜ヌスコヌド

📄 src/lrc_maker.py デスクトップアプリのメむンモゞュヌル

このファむルは、PySide6 を甚いたデスクトップアプリケヌションのメむンモゞュヌルです。音声ファむルの読み蟌み、波圢生成、LRC タむムスタンプの自動調敎・保存、および MTP デバむスずの連携機胜を提䟛しおいたす。

トップレベル <module> L1

⬅ 呌び出し元 なし
➡ 呌び出し先 _dummy main

関数 _get_ffmpeg_cmd L80

def _get_ffmpeg_cmd()

システム PATH たたは imageio_ffmpeg から ffmpeg の実行ファむルパスを怜玢したす。

⬅ 呌び出し元 load_audio_any
➡ 呌び出し先 なし
゜ヌスコヌド

関数 _normalize_win_path L98

def _normalize_win_path(p: Path) -> str

Windows 環境で UNC パスや長パスを安党に正芏化したす。

⬅ 呌び出し元 load_audio_any
➡ 呌び出し先 なし
゜ヌスコヌド

関数 _resolve_path_fuzzy L115

def _resolve_path_fuzzy(path: Path) -> Path

存圚しないパスを Unicode 正芏化しお芪ディレクトリから探玢し、実圚するパスを返したす。

⬅ 呌び出し元 MainWindow.open_audio MainWindow.open_lyrics load_audio_any
➡ 呌び出し先 なし
゜ヌスコヌド

関数 _ps_quote L154

def _ps_quote(s: str) -> str

PowerShell スクリプト内で安党に文字列を匕甚笊で囲むためのヘルパヌ関数です。

➡ 呌び出し先 なし
゜ヌスコヌド

関数 _select_and_copy_audio_from_mtp_to_local L159

def _select_and_copy_audio_from_mtp_to_local(dest_dir: str, preferred_folder_path: str | None=None) -> tuple[str | None, str | None, str | None, str | None]

PowerShell を䜿甚しお MTP フォルダを遞択し、音声ファむルをロヌカルにコピヌしたす。

⬅ 呌び出し元 MainWindow.open_audio_mtp
➡ 呌び出し先 _ps_quote
゜ヌスコヌド

関数 _copy_local_file_to_mtp L445

def _copy_local_file_to_mtp(src_file: str, target_folder_token: str | None=None, reference_audio_name: str | None=None, reference_folder_path: str | None=None) -> tuple[bool, str | None]

Windows Shell COM を䜿甚しおロヌカルファむルを MTP フォルダにコピヌしたす。

⬅ 呌び出し元 MainWindow.save_lrc_to_mtp MtpSaveWorker.run
➡ 呌び出し先 _ps_quote
゜ヌスコヌド

関数 load_audio_any L728

def load_audio_any(audio_path: str, sr=None, mono=True)

librosa たたは ffmpeg を䜿甚しお音声ファむルをロヌドし、リサンプル凊理を行いたす。

⬅ 呌び出し元 render_waveform_background
➡ 呌び出し先 _get_ffmpeg_cmd _normalize_win_path _resolve_path_fuzzy
゜ヌスコヌド

関数 _dummy L803

def _dummy(x)

暖機運転時に重い凊理を別スレッドで実行するためのダミヌ関数です。

⬅ 呌び出し元 <module> MainWindow._run_warmup
➡ 呌び出し先 なし
゜ヌスコヌド

関数 ms_to_tag L814

def ms_to_tag(ms: int) -> str

ミリ秒を [mm:ss.xx] 圢匏の LRC タグに倉換したす。

➡ 呌び出し先 なし
゜ヌスコヌド

関数 first_tag_to_ms L823

def first_tag_to_ms(line: str) -> int | None

LRC 行のタむムスタンプタグをミリ秒に倉換したす。

⬅ 呌び出し元 MainWindow.on_double_click_seek MainWindow.on_tick
➡ 呌び出し先 なし
゜ヌスコヌド

関数 format_time L841

def format_time(ms: int) -> str

ミリ秒を衚瀺甚の mm:ss.xx 圢匏の文字列に倉換したす。

⬅ 呌び出し元 MainWindow.on_tick
➡ 呌び出し先 なし
゜ヌスコヌド

関数 parse_lrc_or_txt L850

def parse_lrc_or_txt(path: str) -> tuple[dict, list[str]]

LRC たたは TXT ファむルの内容を解析し、メタ情報ず行リストを返したす。

⬅ 呌び出し元 MainWindow.open_lyrics
➡ 呌び出し先 なし
゜ヌスコヌド

関数 save_lrc_same_folder L882

def save_lrc_same_folder(audio_path: str, lines: list[str], meta_inputs: dict) -> str

音声ファむルず同じフォルダに LRC ファむルを保存したす。

゜ヌスコヌド

クラス WaveformWorker L902

class WaveformWorker(QThread)

音声ファむルから波圢画像を生成するバックグラりンドスレッドです。

⬅ 呌び出し元 MainWindow._load_audio_file
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド WaveformWorker.__init__ L906

def __init__(self, audio_path, out_png, width, height, wave_color, bg_color)

波圢生成タスクを開始するためのコンストラクタです。

゜ヌスコヌド

メ゜ッド WaveformWorker.run L915

def run(self)

指定された音声ファむルの波圢画像を生成しお保存する凊理を実行したす。

⬅ 呌び出し元 なし
➡ 呌び出し先 render_waveform_background
゜ヌスコヌド

クラス MtpSaveWorker L930

class MtpSaveWorker(QThread)

ロヌカルファむルを MTP デバむスにコピヌするバックグラりンドスレッドです。

⬅ 呌び出し元 MainWindow._on_mtp_save_finished
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MtpSaveWorker.__init__ L933

def __init__(self, src_file: str, target_folder_token: str | None=None, reference_audio_name: str | None=None, reference_folder_path: str | None=None)

MTP 保存タスクを開始するためのコンストラクタです。

゜ヌスコヌド

メ゜ッド MtpSaveWorker.run L946

def run(self)

指定された゜ヌスファむルをタヌゲット MTP フォルダにコピヌする凊理を実行したす。

⬅ 呌び出し元 なし
➡ 呌び出し先 _copy_local_file_to_mtp
゜ヌスコヌド

関数 render_waveform_background L959

def render_waveform_background(audio_path: str, out_png: str, width_px=1200, height_px=220, wave_color='lime', bg_color='black')

音声ファむルから波圢画像を生成し、指定されたサむズで保存したす。

⬅ 呌び出し元 MainWindow.open_settings WaveformWorker.run
➡ 呌び出し先 load_audio_any
゜ヌスコヌド

クラス AudioPlayer L995

class AudioPlayer

音声の再生、䞀時停止、速床倉曎、時間取埗などの制埡を行うクラスです。

⬅ 呌び出し元 MainWindow.__init__
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド AudioPlayer.__init__ L996

def __init__(self)

音声プレむダヌの初期化を行い、vlc を䜿甚しお再生準備をしたす。

゜ヌスコヌド

メ゜ッド AudioPlayer.load L1006

def load(self, path: str)

指定された音声ファむルを読み蟌み、プレむダヌにセットしたす。

゜ヌスコヌド

メ゜ッド AudioPlayer.play_pause L1016

def play_pause(self)

音声の再生たたは䞀時停止を切り替えたす。

⬅ 呌び出し元 なし
➡ 呌び出し先 AudioPlayer.get_time_ms AudioPlayer.set_time_ms
゜ヌスコヌド

メ゜ッド AudioPlayer.is_playing L1043

def is_playing(self) -> bool

珟圚再生䞭かどうかを返したす。

⬅ 呌び出し元 AudioPlayer.get_time_ms
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド AudioPlayer.get_time_ms L1046

def get_time_ms(self) -> int

珟圚の再生䜍眮をミリ秒単䜍で返したす。

⬅ 呌び出し元 AudioPlayer.play_pause
➡ 呌び出し先 AudioPlayer.get_rate AudioPlayer.is_playing
゜ヌスコヌド

メ゜ッド AudioPlayer.set_time_ms L1065

def set_time_ms(self, ms: int)

再生䜍眮をミリ秒単䜍で蚭定したす。

⬅ 呌び出し元 AudioPlayer.play_pause
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド AudioPlayer.get_duration_ms L1071

def get_duration_ms(self) -> int

音声ファむルの総再生時間をミリ秒単䜍で返したす。

゜ヌスコヌド

メ゜ッド AudioPlayer.set_rate L1074

def set_rate(self, rate: float)

再生速床ピッチを蚭定したす。

゜ヌスコヌド

メ゜ッド AudioPlayer.get_rate L1080

def get_rate(self) -> float

珟圚の再生速床を返したす。

⬅ 呌び出し元 AudioPlayer.get_time_ms
➡ 呌び出し先 なし
゜ヌスコヌド

クラス FooterBar L1085

class FooterBar(QWidget)

アプリケヌションのフッタヌ郚分を描画し、远加機胜の切り替えなどを管理するりィゞェットです。

⬅ 呌び出し元 MainWindow.__init__
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド FooterBar.__init__ L1086

def __init__(self, parent=None)

フッタヌバヌの UI を構築し、初期蚭定を行いたす。

⬅ 呌び出し元 なし
゜ヌスコヌド

メ゜ッド FooterBar.__init__.build_grid L1115

def build_grid(rows_data) -> QGridLayout

フッタヌバヌのグリッドレむアりトを構築するヘルパヌ関数です。

⬅ 呌び出し元 FooterBar.__init__
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド FooterBar.toggle_extra_buttons L1163

def toggle_extra_buttons(self)

远加機胜ボタンの衚瀺/非衚瀺を切り替えたす。

⬅ 呌び出し元 なし
➡ 呌び出し先 FooterBar._update_toggle_extra_text
゜ヌスコヌド

メ゜ッド FooterBar._update_toggle_extra_text L1172

def _update_toggle_extra_text(self)

远加機胜ボタンのテキストを曎新したす。

⬅ 呌び出し元 FooterBar.__init__ FooterBar.toggle_extra_buttons
➡ 呌び出し先 なし
゜ヌスコヌド

クラス SettingsDialog L1179

class SettingsDialog(QDialog)

波圢の色や背景色、文字列凊理蚭定などのナヌザヌ蚭定を管理するダむアログです。

⬅ 呌び出し元 MainWindow.open_settings
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド SettingsDialog.__init__ L1180

def __init__(self, current_size: int, current_newline: str, wave_color: str, wave_bg_color: str, ask_save_path: bool, trim_whitespace: bool, trim_trailing: bool, grouping_enabled: bool, grouping_threshold: int, parent=None)

蚭定ダむアログの初期化を行いたす。

゜ヌスコヌド

メ゜ッド SettingsDialog.select_wave_color L1266

def select_wave_color(self)

波圢の色を遞択するためのダむアログを衚瀺したす。

゜ヌスコヌド

メ゜ッド SettingsDialog.select_wave_bg_color L1272

def select_wave_bg_color(self)

波圢の背景色を遞択するためのダむアログを衚瀺したす。

゜ヌスコヌド

メ゜ッド SettingsDialog.get_settings L1278

def get_settings(self) -> tuple[int, str, str, str, bool, bool, bool, bool, int]

珟圚蚭定されおいるすべおのパラメヌタをタプルずしお返したす。

゜ヌスコヌド

クラス MarqueeLabel L1299

class MarqueeLabel(QLabel)

歌詞行をスクロヌル衚瀺するためのカスタム QLabel です。

⬅ 呌び出し元 MainWindow.__init__
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MarqueeLabel.__init__ L1300

def __init__(self, text='', parent=None)

スクロヌル衚瀺ラベルの初期化を行いたす。

゜ヌスコヌド

メ゜ッド MarqueeLabel._timer_timeout L1308

def _timer_timeout(self)

タむマヌのタむムアりト時にテキストをスクロヌル凊理を行いたす。

゜ヌスコヌド

メ゜ッド MarqueeLabel.paintEvent L1324

def paintEvent(self, event)

ラベルの描画むベントを凊理し、テキストを描画したす。

゜ヌスコヌド

クラス ExtraFunctionsDialog L1350

class ExtraFunctionsDialog(QDialog)

スペヌス倉換やタむムスタンプ調敎などの远加機胜を提䟛するダむアログです。

⬅ 呌び出し元 MainWindow.open_extra_functions
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド ExtraFunctionsDialog.__init__ L1351

def __init__(self, parent=None)

远加機胜ダむアログの初期化を行いたす。

゜ヌスコヌド

メ゜ッド ExtraFunctionsDialog.on_convert_spaces L1386

def on_convert_spaces(self)

党角スペヌスず半角スペヌスを亀互に倉換する凊理を行いたす。

゜ヌスコヌド

メ゜ッド ExtraFunctionsDialog.on_toggle_follow L1391

def on_toggle_follow(self)

自動远埓機胜のオン/オフを切り替えたす。

゜ヌスコヌド

メ゜ッド ExtraFunctionsDialog.on_adjust_timestamps L1396

def on_adjust_timestamps(self)

すべおのタむムスタンプを秒単䜍で䞀括調敎する凊理を行いたす。

゜ヌスコヌド

メ゜ッド ExtraFunctionsDialog.on_open_mtp_audio L1401

def on_open_mtp_audio(self)

MTP デバむスから音声ファむルを開く凊理を行いたす。

゜ヌスコヌド

メ゜ッド ExtraFunctionsDialog.on_save_mtp_lrc L1406

def on_save_mtp_lrc(self)

LRC ファむルを MTP デバむスに保存する凊理を行いたす。

゜ヌスコヌド

クラス WaveformWidget L1412

class WaveformWidget(QLabel)

波圢画像を衚瀺するためのカスタム QLabel です。

⬅ 呌び出し元 MainWindow.__init__
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド WaveformWidget.__init__ L1415

def __init__(self, parent=None)

波圢衚瀺りィゞェットの初期化を行いたす。

゜ヌスコヌド

メ゜ッド WaveformWidget.set_background L1423

def set_background(self, pixmap: QPixmap)

波圢画像の背景を蚭定したす。

゜ヌスコヌド

メ゜ッド WaveformWidget.set_ratio L1427

def set_ratio(self, ratio: float)

波圢画像の衚瀺比率を蚭定したす。

゜ヌスコヌド

メ゜ッド WaveformWidget.paintEvent L1432

def paintEvent(self, event)

波圢画像を描画するむベントを凊理したす。

゜ヌスコヌド

クラス MainWindow L1447

class MainWindow(QMainWindow)

アプリケヌションのメむンりィンドりで、すべおの UI 芁玠ず機胜の統合管理を行いたす。

⬅ 呌び出し元 main
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow.__init__ L1448

def __init__(self)

メむンりィンドりの初期化を行い、すべおのサブコンポヌネントずスレッドをセットアップしたす。

゜ヌスコヌド

メ゜ッド MainWindow.start_warmup L1713

def start_warmup(self)

重いラむブラリの読み蟌みを別スレッドで暖機運転を行いたす。

⬅ 呌び出し元 MainWindow.__init__
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow._run_warmup L1720

def _run_warmup(self)

暖機運転の実行凊理を行いたす。

⬅ 呌び出し元 なし
➡ 呌び出し先 _dummy
゜ヌスコヌド

メ゜ッド MainWindow._enter_manual_mode L1735

def _enter_manual_mode(self, idx: int, ms: int=2000)

手動モヌドぞの切り替え凊理を行いたす。

➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow._manual_timeout L1740

def _manual_timeout(self)

手動モヌドのタむマヌタむムアりト凊理を行いたす。

゜ヌスコヌド

メ゜ッド MainWindow.on_slider_changed L1745

def on_slider_changed(self, v: int)

スラむダヌ倀の倉曎むベントを凊理したす。

゜ヌスコヌド

メ゜ッド MainWindow.change_rate L1759

def change_rate(self, rate: float)

指定された再生速床を盎接蚭定したす。

⬅ 呌び出し元 MainWindow.__init__ MainWindow.apply_rate_input
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow.adjust_rate L1767

def adjust_rate(self, delta: float)

珟圚の再生速床を盞察的に倉曎したす。

⬅ 呌び出し元 MainWindow.__init__
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow.apply_rate_input L1777

def apply_rate_input(self)

テキストボックスに入力された再生速床を適甚したす。

⬅ 呌び出し元 なし
➡ 呌び出し先 MainWindow.change_rate
゜ヌスコヌド

メ゜ッド MainWindow.on_select_line L1801

def on_select_line(self)

歌詞行の遞択むベントを凊理したす。

⬅ 呌び出し元 なし
➡ 呌び出し先 MainWindow.update_follow_status_display
゜ヌスコヌド

メ゜ッド MainWindow.on_double_click_seek L1817

def on_double_click_seek(self, item: QListWidgetItem)

ダブルクリックでタむムスタンプに基づいお再生䜍眮を移動したす。

⬅ 呌び出し元 なし
➡ 呌び出し先 first_tag_to_ms
゜ヌスコヌド

メ゜ッド MainWindow.move_line L1826

def move_line(self, delta: int)

遞択䞭の歌詞行を䞊䞋に移動したす。

⬅ 呌び出し元 MainWindow.__init__
➡ 呌び出し先 MainWindow._enter_manual_mode
゜ヌスコヌド

メ゜ッド MainWindow.on_apply_edit L1835

def on_apply_edit(self)

歌詞行の線集内容を適甚したす。

゜ヌスコヌド

メ゜ッド MainWindow.remove_all_tags L1843

def remove_all_tags(self, line: str) -> str

行頭のタむムスタンプタグをすべお削陀したす。

⬅ 呌び出し元 MainWindow.save_txt MainWindow.stamp_time
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow.stamp_time L1858

def stamp_time(self)

珟圚の再生䜍眮のタむムスタンプを歌詞行に远加したす。

⬅ 呌び出し元 なし
゜ヌスコヌド

メ゜ッド MainWindow.stamp_blank L1902

def stamp_blank(self)

珟圚の再生䜍眮のタむムスタンプを空癜行に远加したす。

⬅ 呌び出し元 なし
➡ 呌び出し先 MainWindow._enter_manual_mode ms_to_tag
゜ヌスコヌド

メ゜ッド MainWindow.on_tick L1916

def on_tick(self)

タむマヌの刻みごずにタむムスタンプの曎新凊理を行いたす。

⬅ 呌び出し元 なし
➡ 呌び出し先 first_tag_to_ms format_time
゜ヌスコヌド

メ゜ッド MainWindow._load_audio_file L1975

def _load_audio_file(self, resolved_file: str, display_name: str | None=None, remember_last_dir: bool=True)

指定された音声ファむルをロヌドし、波圢ずプレむダヌを初期化したす。

⬅ 呌び出し元 MainWindow.open_audio MainWindow.open_audio_mtp
➡ 呌び出し先 WaveformWorker
゜ヌスコヌド

メ゜ッド MainWindow.open_audio L2011

def open_audio(self)

ロヌカルファむルから音声ファむルを開きたす。

⬅ 呌び出し元 なし
➡ 呌び出し先 MainWindow._load_audio_file _resolve_path_fuzzy
゜ヌスコヌド

メ゜ッド MainWindow.open_audio_mtp L2031

def open_audio_mtp(self)

MTP デバむスから音声ファむルを開きたす。

⬅ 呌び出し元 なし
゜ヌスコヌド

メ゜ッド MainWindow.on_waveform_finished L2056

def on_waveform_finished(self, png_path)

波圢画像の生成が完了したむベントを凊理したす。

゜ヌスコヌド

メ゜ッド MainWindow.open_lyrics L2061

def open_lyrics(self)

LRC たたは TXT ファむルを開きたす。

⬅ 呌び出し元 なし
➡ 呌び出し先 _resolve_path_fuzzy parse_lrc_or_txt
゜ヌスコヌド

メ゜ッド MainWindow.insert_line L2111

def insert_line(self)

新しい歌詞行を挿入したす。

゜ヌスコヌド

メ゜ッド MainWindow.delete_line L2121

def delete_line(self)

遞択䞭の歌詞行を削陀したす。

゜ヌスコヌド

メ゜ッド MainWindow.clear_all_lines L2142

def clear_all_lines(self)

すべおの歌詞行をクリアしたす。

゜ヌスコヌド

メ゜ッド MainWindow.undo_delete L2161

def undo_delete(self)

盎前の削陀操䜜を元に戻したす。

゜ヌスコヌド

メ゜ッド MainWindow.import_clipboard L2172

def import_clipboard(self)

クリップボヌドから歌詞行をむンポヌトしたす。

゜ヌスコヌド

メ゜ッド MainWindow.convert_spaces L2211

def convert_spaces(self)

党角スペヌスず半角スペヌスを亀互に倉換したす。

゜ヌスコヌド

メ゜ッド MainWindow.adjust_timestamps L2243

def adjust_timestamps(self)

すべおのタむムスタンプを秒単䜍で䞀括調敎したす。

⬅ 呌び出し元 なし
➡ 呌び出し先 ms_to_tag
゜ヌスコヌド

メ゜ッド MainWindow.copy_to_clipboard L2303

def copy_to_clipboard(self)

珟圚の歌詞行をクリップボヌドにコピヌしたす。

゜ヌスコヌド

メ゜ッド MainWindow.save_txt L2332

def save_txt(self)

歌詞をテキストファむルずしお保存したす。

⬅ 呌び出し元 なし
➡ 呌び出し先 MainWindow.remove_all_tags
゜ヌスコヌド

メ゜ッド MainWindow.save_lrc L2391

def save_lrc(self)

LRC ファむルずしお保存する凊理を開始したす。

⬅ 呌び出し元 なし
➡ 呌び出し先 MainWindow.save_lrc_to_mtp
゜ヌスコヌド

メ゜ッド MainWindow._on_mtp_save_finished L2474

def _on_mtp_save_finished(self, ok: bool, msg: str, file_name: str, src_path: str, auto_mode: bool)

MTP 保存タスクが完了したむベントを凊理したす。

⬅ 呌び出し元 なし
➡ 呌び出し先 MtpSaveWorker
゜ヌスコヌド

メ゜ッド MainWindow.save_lrc_to_mtp L2511

def save_lrc_to_mtp(self)

LRC ファむルを MTP デバむスに保存したす。

⬅ 呌び出し元 MainWindow.save_lrc
➡ 呌び出し先 _copy_local_file_to_mtp
゜ヌスコヌド

メ゜ッド MainWindow.mousePressEvent L2560

def mousePressEvent(self, event)

マりスクリックむベントを凊理したす。

゜ヌスコヌド

メ゜ッド MainWindow.skip_seconds L2566

def skip_seconds(self, sec: int)

珟圚の再生䜍眮を指定秒数だけ前埌に移動したす。

⬅ 呌び出し元 MainWindow.__init__
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow.on_volume_changed L2578

def on_volume_changed(self, value: int)

ボリュヌムスラむダヌの倉曎むベントを凊理したす。

゜ヌスコヌド

メ゜ッド MainWindow.on_volume_changed L2578

def on_volume_changed(self, value: int)

ボリュヌムスラむダヌの倉曎むベントを凊理したす。

゜ヌスコヌド

メ゜ッド MainWindow.open_settings L2582

def open_settings(self)

蚭定ダむアログを開きたす。

⬅ 呌び出し元 なし
゜ヌスコヌド

メ゜ッド MainWindow.open_extra_functions L2647

def open_extra_functions(self)

远加機胜ダむアログを開きたす。

⬅ 呌び出し元 なし
➡ 呌び出し先 ExtraFunctionsDialog
゜ヌスコヌド

メ゜ッド MainWindow.toggle_auto_follow L2652

def toggle_auto_follow(self)

自動远埓機胜のオン/オフを切り替えたす。

⬅ 呌び出し元 なし
➡ 呌び出し先 MainWindow.update_follow_status_display
゜ヌスコヌド

メ゜ッド MainWindow.update_follow_status_display L2664

def update_follow_status_display(self)

ステヌタスバヌの远埓状態衚瀺を曎新したす。

➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow.apply_font_size L2673

def apply_font_size(self, size: int)

フォントサむズを倉曎したす。

⬅ 呌び出し元 MainWindow.__init__ MainWindow.open_settings
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow.show_help L2706

def show_help(self)

ヘルプを衚瀺したす。

゜ヌスコヌド

関数 main L2727

def main()

アプリケヌションの゚ントリポむントで、QApplication を䜜成しおメむンりィンドりを起動したす。

⬅ 呌び出し元 <module>
➡ 呌び出し先 MainWindow
゜ヌスコヌド

📄 src/lrc_maker_backup.py LRC 歌詞䜜成・線集アプリのメむンモゞュヌル

このファむルは、音声ファむルを読み蟌み再生し、LRC歌詞ファむルの線集・生成を行うデスクトップアプリケヌションのメむンモゞュヌルです。PySide6 を甚いた GUI を提䟛し、音声のデコヌドlibrosa/ffmpeg、波圢可芖化、歌詞の時間軞線集、再生速床制埡などの機胜を統合しおいたす。

トップレベル <module> L1

⬅ 呌び出し元 なし
➡ 呌び出し先 _dummy main

関数 _get_ffmpeg_cmd L30

def _get_ffmpeg_cmd()

システム PATH たたは imageio_ffmpeg から ffmpeg の実行ファむルパスを怜玢しお返す関数。

⬅ 呌び出し元 load_audio_any
➡ 呌び出し先 なし
゜ヌスコヌド

関数 _normalize_win_path L46

def _normalize_win_path(p: Path) -> str

Windows 環境で UNC パスや非垞に長いパスを安党に凊理するためのパス正芏化関数。

⬅ 呌び出し元 load_audio_any
➡ 呌び出し先 なし
゜ヌスコヌド

関数 _resolve_path_fuzzy L62

def _resolve_path_fuzzy(path: Path) -> Path

Unicode 正芏化NFCを適甚しお、存圚しないパスが実圚する同名ファむルず䞀臎するかどうかを探玢する関数。

⬅ 呌び出し元 load_audio_any
➡ 呌び出し先 なし
゜ヌスコヌド

関数 load_audio_any L95

def load_audio_any(audio_path: str, sr=None, mono=True)

指定された音声ファむルを librosa たたは ffmpeg を䜿甚しお読み蟌み、NumPy 配列ずしお返す関数。

⬅ 呌び出し元 render_waveform_background
➡ 呌び出し先 _get_ffmpeg_cmd _normalize_win_path _resolve_path_fuzzy
゜ヌスコヌド

関数 _dummy L159

def _dummy(x)

Numba JIT コンパむラによるキャッシュ生成を目的ずしたダミヌ関数。

⬅ 呌び出し元 <module>
➡ 呌び出し先 なし
゜ヌスコヌド

関数 ms_to_tag L183

def ms_to_tag(ms: int) -> str

ミリ秒単䜍の時間を LRC 圢匏の時間タグ䟋[00:01.00]に倉換する関数。

⬅ 呌び出し元 MainWindow.stamp_blank MainWindow.stamp_time
➡ 呌び出し先 なし
゜ヌスコヌド

関数 first_tag_to_ms L190

def first_tag_to_ms(line: str) -> int | None

LRC 行に含たれる最初の時間タグを抜出し、ミリ秒単䜍の敎数倀に倉換する関数。

⬅ 呌び出し元 MainWindow.on_double_click_seek MainWindow.on_tick
➡ 呌び出し先 なし
゜ヌスコヌド

関数 format_time L196

def format_time(ms: int) -> str

ミリ秒単䜍の時間を「分秒」圢匏の文字列に倉換する関数。

⬅ 呌び出し元 MainWindow.on_tick
➡ 呌び出し先 なし
゜ヌスコヌド

関数 parse_lrc_or_txt L201

def parse_lrc_or_txt(path: str) -> tuple[dict, list[str]]

LRC たたはテキストファむルを読み蟌み、メタ情報ず歌詞行を解析しお返す関数。

⬅ 呌び出し元 MainWindow.open_lyrics
➡ 呌び出し先 なし
゜ヌスコヌド

関数 save_lrc_same_folder L215

def save_lrc_same_folder(audio_path: str, lines: list[str], meta_inputs: dict) -> str

指定された歌詞行ずメタ情報を䜿甚しお、音声ファむルず同じフォルダに LRC ファむルを保存する関数。

゜ヌスコヌド

関数 render_waveform_background L229

def render_waveform_background(audio_path: str, out_png: str, width_px=1200, height_px=220, wave_color='lime', bg_color='black')

音声ファむルの波圢デヌタを可芖化し、PNG 画像ずしお描画・保存する関数。

⬅ 呌び出し元 MainWindow.open_audio MainWindow.open_settings
➡ 呌び出し先 load_audio_any
゜ヌスコヌド

クラス AudioPlayer L251

class AudioPlayer

音声ファむルの読み蟌み、再生、䞀時停止、速床倉曎などのメディア再生制埡を行うクラス。

⬅ 呌び出し元 MainWindow.__init__
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド AudioPlayer.__init__ L252

def __init__(self)

AudioPlayer クラスの初期化メ゜ッドで、再生コンテキストや UI 芁玠をセットアップする。

゜ヌスコヌド

メ゜ッド AudioPlayer.load L258

def load(self, path: str)

指定された音声ファむルパスを読み蟌み、内郚の再生バッファに栌玍するメ゜ッド。

゜ヌスコヌド

メ゜ッド AudioPlayer.play_pause L265

def play_pause(self)

音声の再生状態を切り替える再生開始たたは䞀時停止メ゜ッド。

⬅ 呌び出し元 なし
➡ 呌び出し先 AudioPlayer.get_time_ms AudioPlayer.set_time_ms
゜ヌスコヌド

メ゜ッド AudioPlayer.is_playing L288

def is_playing(self) -> bool

珟圚音声再生䞭かどうかを刀定しおブヌル倀を返すメ゜ッド。

゜ヌスコヌド

メ゜ッド AudioPlayer.get_time_ms L291

def get_time_ms(self) -> int

珟圚の再生䜍眮をミリ秒単䜍で取埗するメ゜ッド。

⬅ 呌び出し元 AudioPlayer.play_pause
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド AudioPlayer.set_time_ms L294

def set_time_ms(self, ms: int)

指定されたミリ秒䜍眮に再生䜍眮を蚭定するメ゜ッド。

⬅ 呌び出し元 AudioPlayer.play_pause
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド AudioPlayer.get_duration_ms L297

def get_duration_ms(self) -> int

音声ファむルの総再生時間をミリ秒単䜍で取埗するメ゜ッド。

゜ヌスコヌド

メ゜ッド AudioPlayer.set_rate L300

def set_rate(self, rate: float)

音声の再生速床ピッチを指定された倍率に蚭定するメ゜ッド。

゜ヌスコヌド

メ゜ッド AudioPlayer.get_rate L305

def get_rate(self) -> float

珟圚の音声再生速床の倍率を取埗するメ゜ッド。

゜ヌスコヌド

クラス FooterBar L309

class FooterBar(QWidget)

アプリケヌションのフッタヌ領域を定矩するりィゞェットクラス。

⬅ 呌び出し元 MainWindow.__init__
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド FooterBar.__init__ L310

def __init__(self, parent=None)

FooterBar クラスの初期化メ゜ッドで、フッタヌ内の UI 芁玠を構築する。

゜ヌスコヌド

クラス SettingsDialog L362

class SettingsDialog(QDialog)

波圢の色や背景色、保存パスなどのアプリケヌション蚭定をナヌザヌから取埗するダむアログクラス。

⬅ 呌び出し元 MainWindow.open_settings
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド SettingsDialog.__init__ L363

def __init__(self, current_size: int, current_newline: str, wave_color: str, wave_bg_color: str, ask_save_path: bool, trim_whitespace: bool, trim_trailing: bool, parent=None)

SettingsDialog クラスの初期化メ゜ッドで、蚭定項目の UI を構築する。

゜ヌスコヌド

メ゜ッド SettingsDialog.select_wave_color L423

def select_wave_color(self)

ナヌザヌから波圢の色を遞択するダむアログを衚瀺するメ゜ッド。

゜ヌスコヌド

メ゜ッド SettingsDialog.select_wave_bg_color L429

def select_wave_bg_color(self)

ナヌザヌから波圢の背景色を遞択するダむアログを衚瀺するメ゜ッド。

゜ヌスコヌド

メ゜ッド SettingsDialog.get_settings L435

def get_settings(self) -> tuple[int, str, str, str, bool, bool, bool]

蚭定ダむアログから取埗した波圢色、背景色、保存パスなどの蚭定倀をタプルずしお返すメ゜ッド。

゜ヌスコヌド

クラス MainWindow L444

class MainWindow(QMainWindow)

アプリケヌションのメむンりィンドりで、音声再生、歌詞リストの衚瀺・線集、ファむル操䜜を統合したクラス。

⬅ 呌び出し元 main
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow.__init__ L445

def __init__(self)

MainWindow クラスの初期化メ゜ッドで、GUI 党䜓、AudioPlayer、歌詞リストなどの䞻芁コンポヌネントを構築する。

⬅ 呌び出し元 なし
゜ヌスコヌド

メ゜ッド MainWindow.warmup_waveform L628

def warmup_waveform(self)

波圢描画の初期化やキャッシュ生成を目的ずしたりォヌムアップ凊理を行うメ゜ッド。

゜ヌスコヌド

メ゜ッド MainWindow.warmup_librosa L634

def warmup_librosa(self)

librosa ラむブラリの初期化やキャッシュ生成を目的ずしたりォヌムアップ凊理を行うメ゜ッド。

゜ヌスコヌド

メ゜ッド MainWindow._enter_manual_mode L645

def _enter_manual_mode(self, idx: int, ms: int=2000)

手動線集モヌド䟋時間スタンプ入力を開始する内郚メ゜ッド。

⬅ 呌び出し元 MainWindow.move_line MainWindow.stamp_blank
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow._manual_timeout L650

def _manual_timeout(self)

手動線集モヌドのタむマヌ凊理を行い、時間経過でモヌドを終了させる内郚メ゜ッド。

゜ヌスコヌド

メ゜ッド MainWindow.on_slider_changed L655

def on_slider_changed(self, v: int)

スラむダヌの倀が倉曎された際に呌び出されるむベントハンドラ。

゜ヌスコヌド

メ゜ッド MainWindow.change_rate L662

def change_rate(self, rate: float)

指定された倍率で音声の再生速床を盎接倉曎するメ゜ッド。

⬅ 呌び出し元 MainWindow.__init__ MainWindow.apply_rate_input
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow.adjust_rate L668

def adjust_rate(self, delta: float)

珟圚の再生速床に察しお盞察的に増枛させるメ゜ッド。

⬅ 呌び出し元 MainWindow.__init__
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow.apply_rate_input L676

def apply_rate_input(self)

テキスト入力ボックスから再生速床の倀を読み取り適甚するメ゜ッド。

⬅ 呌び出し元 なし
➡ 呌び出し先 MainWindow.change_rate
゜ヌスコヌド

メ゜ッド MainWindow.on_select_line L699

def on_select_line(self)

歌詞リストで項目が遞択された際に呌び出されるむベントハンドラ。

゜ヌスコヌド

メ゜ッド MainWindow.on_double_click_seek L705

def on_double_click_seek(self, item: QListWidgetItem)

歌詞リストの項目をダブルクリックした際に、その時間䜍眮ぞ再生䜍眮を移動させるメ゜ッド。

⬅ 呌び出し元 なし
➡ 呌び出し先 first_tag_to_ms
゜ヌスコヌド

メ゜ッド MainWindow.move_line L711

def move_line(self, delta: int)

遞択䞭の歌詞行をリスト内で䞊䞋に移動させるメ゜ッド。

⬅ 呌び出し元 MainWindow.__init__
➡ 呌び出し先 MainWindow._enter_manual_mode
゜ヌスコヌド

メ゜ッド MainWindow.on_apply_edit L719

def on_apply_edit(self)

歌詞行の線集内容を確定しおリストに反映させるメ゜ッド。

゜ヌスコヌド

メ゜ッド MainWindow.remove_all_tags L726

def remove_all_tags(self, line: str) -> str

指定された行からすべおの時間タグを陀去するメ゜ッド。

⬅ 呌び出し元 MainWindow.stamp_time
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow.stamp_time L740

def stamp_time(self)

遞択䞭の歌詞行の先頭に珟圚の再生䜍眮の時間タグをスタンプするメ゜ッド。

⬅ 呌び出し元 なし
➡ 呌び出し先 MainWindow.remove_all_tags ms_to_tag
゜ヌスコヌド

メ゜ッド MainWindow.stamp_blank L771

def stamp_blank(self)

遞択䞭の歌詞行の先頭に空癜の時間タグをスタンプするメ゜ッド。

⬅ 呌び出し元 なし
➡ 呌び出し先 MainWindow._enter_manual_mode ms_to_tag
゜ヌスコヌド

メ゜ッド MainWindow.on_tick L784

def on_tick(self)

タむマヌむベントが発生した際に呌び出され、再生䜍眮の曎新や UI 曎新を行うメ゜ッド。

⬅ 呌び出し元 なし
➡ 呌び出し先 first_tag_to_ms format_time
゜ヌスコヌド

メ゜ッド MainWindow.open_audio L836

def open_audio(self)

ファむルダむアログを開き、遞択された音声ファむルを読み蟌むメ゜ッド。

⬅ 呌び出し元 なし
➡ 呌び出し先 render_waveform_background
゜ヌスコヌド

メ゜ッド MainWindow.open_lyrics L850

def open_lyrics(self)

ファむルダむアログを開き、遞択された LRC ファむルを読み蟌んで衚瀺するメ゜ッド。

⬅ 呌び出し元 なし
➡ 呌び出し先 parse_lrc_or_txt
゜ヌスコヌド

メ゜ッド MainWindow.insert_line L893

def insert_line(self)

歌詞リストに新しい空の行を挿入するメ゜ッド。

゜ヌスコヌド

メ゜ッド MainWindow.delete_line L903

def delete_line(self)

遞択䞭の歌詞行を削陀するメ゜ッド。

゜ヌスコヌド

メ゜ッド MainWindow.clear_all_lines L923

def clear_all_lines(self)

歌詞リスト内のすべおの行をクリアするメ゜ッド。

゜ヌスコヌド

メ゜ッド MainWindow.undo_delete L942

def undo_delete(self)

盎前に削陀した行をリストに埩元するメ゜ッド。

゜ヌスコヌド

メ゜ッド MainWindow.import_clipboard L954

def import_clipboard(self)

クリップボヌドからテキストを読み蟌んで歌詞リストに远加するメ゜ッド。

゜ヌスコヌド

メ゜ッド MainWindow.save_lrc L986

def save_lrc(self)

珟圚の歌詞リストずメタ情報を䜿甚しお LRC ファむルを保存するメ゜ッド。

゜ヌスコヌド

メ゜ッド MainWindow.mousePressEvent L1053

def mousePressEvent(self, event)

マりスクリックむベントを凊理し、リストの遞択や再生䜍眮の移動などを制埡するメ゜ッド。

゜ヌスコヌド

メ゜ッド MainWindow.skip_seconds L1059

def skip_seconds(self, sec: int)

珟圚の再生䜍眮を指定した秒数だけ前埌に移動させるメ゜ッド。

⬅ 呌び出し元 MainWindow.__init__
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow.on_volume_changed L1071

def on_volume_changed(self, value: int)

ボリュヌムスラむダヌの倀が倉曎された際に呌び出されるむベントハンドラ。

゜ヌスコヌド

メ゜ッド MainWindow.on_volume_changed L1071

def on_volume_changed(self, value: int)

ボリュヌムスラむダヌの倀が倉曎された際に呌び出されるむベントハンドラ。

゜ヌスコヌド

メ゜ッド MainWindow.open_settings L1075

def open_settings(self)

蚭定ダむアログを開き、波圢色やフォントサむズなどの蚭定を倉曎するメ゜ッド。

⬅ 呌び出し元 なし
゜ヌスコヌド

メ゜ッド MainWindow.apply_font_size L1112

def apply_font_size(self, size: int)

指定されたフォントサむズをアプリケヌション党䜓に適甚するメ゜ッド。

⬅ 呌び出し元 MainWindow.__init__ MainWindow.open_settings
➡ 呌び出し先 なし
゜ヌスコヌド

メ゜ッド MainWindow.show_help L1142

def show_help(self)

ヘルプ情報を衚瀺するメ゜ッド。

゜ヌスコヌド

関数 main L1163

def main()

アプリケヌションの起動゚ントリヌポむントで、PySide6 アプリケヌションを初期化し、メむンりィンドりを衚瀺する。

⬅ 呌び出し元 <module>
➡ 呌び出し先 MainWindow
゜ヌスコヌド

📄 tests/test_encoding.py 文字コヌド互換性の単䜓テスト

このファむルは、LRC ファむルやテキストファむルの解析関数 `parse_lrc_or_txt` が、UTF-8、Shift-JIS、EUC-JP の異なる文字コヌドで保存された入力を正しく凊理できるかを怜蚌するテストケヌスです。テストでは各゚ンコヌディングでファむルを䜜成し、解析結果に日本語テキストが含たれおいるこずを確認しおいたす。

トップレベル <module> L1

⬅ 呌び出し元 なし
➡ 呌び出し先 test_encoding

関数 test_encoding L19

def test_encoding()

UTF-8、Shift-JIS、EUC-JP の 3 ぀の゚ンコヌディングで保存された LRC ファむルを解析し、日本語テキストが正しく抜出されるかを確認するテスト関数

⬅ 呌び出し元 <module>
➡ 呌び出し先 なし
゜ヌスコヌド

📄 tests/test_space_conversion.py スペヌス倉換ロゞックの単䜓テスト

このファむルは、党角スペヌスず半角スペヌスの混圚状態に基づいおテキストを統䞀するロゞックをテストしおいたす。入力テキストに含たれるスペヌスの皮類を怜知し、党角を半角ぞ、たたは半角を党角ぞ倉換する凊理をケヌスごずに怜蚌したす。

トップレベル <module> L1

⬅ 呌び出し元 なし
➡ 呌び出し先 test_space_logic

関数 test_space_logic L7

def test_space_logic()

党角・半角スペヌスの倉換ロゞックを耇数のケヌスで怜蚌するテスト関数

⬅ 呌び出し元 <module>
➡ 呌び出し先 test_space_logic.simulate_conversion
゜ヌスコヌド

関数 test_space_logic.simulate_conversion L10

def simulate_conversion(lines)

入力テキスト内のスペヌス皮類を怜知し、必芁に応じお党角ず半角を盞互に倉換する凊理

⬅ 呌び出し元 test_space_logic
➡ 呌び出し先 なし
゜ヌスコヌド

📄 tests/test_timestamp_adjustment.py 時間タグ調敎機胜の単䜓テスト

このファむルは、歌詞行内の時間タグ䟋[00:10.50]を指定された秒数だけシフトする凊理をテストするモゞュヌルです。時間タグの解析、ミリ秒単䜍の蚈算、およびフォヌマット倉換を含むロゞックを怜蚌しおいたす。

トップレベル <module> L1

⬅ 呌び出し元 なし
➡ 呌び出し先 test_adjustment

関数 ms_to_tag L11

def ms_to_tag(ms: int) -> str

ミリ秒単䜍の敎数を受け取り、[分秒.センチ秒] 圢匏の文字列に倉換するナヌティリティ関数です。

⬅ 呌び出し元 simulate_adjustment
➡ 呌び出し先 なし
゜ヌスコヌド

関数 simulate_adjustment L21

def simulate_adjustment(lines, offset_sec)

䞎えられた行リスト内の時間タグを特定し、指定されたオフセット倀だけ時間シフトした新しい行リストを返したす。

⬅ 呌び出し元 test_adjustment
➡ 呌び出し先 ms_to_tag
゜ヌスコヌド

関数 test_adjustment L52

def test_adjustment()

時間タグのシフト凊理に察する正のオフセット、負のオフセット、耇数タグ、タグなし、および䞞め凊理など、䞻芁なケヌスを網矅しお怜蚌したす。

⬅ 呌び出し元 <module>
➡ 呌び出し先 simulate_adjustment
゜ヌスコヌド

📄 tests/test_timestamp_grouping.py ナニットテストファむル

このファむルは、タむムスタンプのグルヌプ化ロゞックをテストする単䞀ファむルです。simulate_stamp_grouping 関数の動䜜を怜蚌し、有効/無効フラグやしきい倀に基づいお適切なタむムスタンプを返すこずを確認しおいたす。

トップレベル <module> L1

⬅ 呌び出し元 なし
➡ 呌び出し先 test_grouping

関数 simulate_stamp_grouping L5

def simulate_stamp_grouping(current_ms, last_stamped_ms, enabled, threshold)

有効フラグずしきい倀に基づき、珟圚のタむムスタンプず最埌の付䞎時刻の差分が蚱容範囲内であれば最埌の付䞎時刻を返す。

⬅ 呌び出し元 test_grouping
➡ 呌び出し先 なし
゜ヌスコヌド

関数 test_grouping L13

def test_grouping()

無効化、しきい倀内/倖、初回付䞎など、䞻芁なケヌスで simulate_stamp_grouping の動䜜が正しいこずを断蚀しお怜蚌する。

⬅ 呌び出し元 <module>
➡ 呌び出し先 simulate_stamp_grouping
゜ヌスコヌド