ð src/lrc_maker.py ãã¹ã¯ãããã¢ããªã®ã¡ã€ã³ã¢ãžã¥ãŒã«
ãã®ãã¡ã€ã«ã¯ãPySide6 ãçšãããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ã¢ãžã¥ãŒã«ã§ããé³å£°ãã¡ã€ã«ã®èªã¿èŸŒã¿ã波圢çæãLRC ã¿ã€ã ã¹ã¿ã³ãã®èªå調æŽã»ä¿åãããã³ MTP ããã€ã¹ãšã®é£æºæ©èœãæäŸããŠããŸãã
ãããã¬ãã« <module> L1
â¬
åŒã³åºãå
ãªã
颿° _get_ffmpeg_cmd L80
def _get_ffmpeg_cmd()
ã·ã¹ãã PATH ãŸã㯠imageio_ffmpeg ãã ffmpeg ã®å®è¡ãã¡ã€ã«ãã¹ãæ€çŽ¢ããŸãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
颿° _normalize_win_path L98
def _normalize_win_path(p: Path) -> str
Windows ç°å¢ã§ UNC ãã¹ãé·ãã¹ãå®å
šã«æ£èŠåããŸãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
颿° _resolve_path_fuzzy L115
def _resolve_path_fuzzy(path: Path) -> Path
ååšããªããã¹ã Unicode æ£èŠåããŠèŠªãã£ã¬ã¯ããªããæ¢çŽ¢ããå®åšãããã¹ãè¿ããŸãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
颿° _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 ãã©ã«ããéžæããé³å£°ãã¡ã€ã«ãããŒã«ã«ã«ã³ããŒããŸãã
ãœãŒã¹ã³ãŒã
颿° _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 ãã©ã«ãã«ã³ããŒããŸãã
ãœãŒã¹ã³ãŒã
颿° load_audio_any L728
def load_audio_any(audio_path: str, sr=None, mono=True)
librosa ãŸã㯠ffmpeg ã䜿çšããŠé³å£°ãã¡ã€ã«ãããŒããããªãµã³ãã«åŠçãè¡ããŸãã
ãœãŒã¹ã³ãŒã
颿° _dummy L803
def _dummy(x)
ææ©é転æã«éãåŠçãå¥ã¹ã¬ããã§å®è¡ããããã®ãããŒé¢æ°ã§ãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
颿° 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 è¡ã®ã¿ã€ã ã¹ã¿ã³ãã¿ã°ãããªç§ã«å€æããŸãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
颿° parse_lrc_or_txt L850
def parse_lrc_or_txt(path: str) -> tuple[dict, list[str]]
LRC ãŸã㯠TXT ãã¡ã€ã«ã®å
容ãè§£æããã¡ã¿æ
å ±ãšè¡ãªã¹ããè¿ããŸãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
颿° save_lrc_same_folder L882
def save_lrc_same_folder(audio_path: str, lines: list[str], meta_inputs: dict) -> str
é³å£°ãã¡ã€ã«ãšåããã©ã«ãã« LRC ãã¡ã€ã«ãä¿åããŸãã
ãœãŒã¹ã³ãŒã
ã¯ã©ã¹ MtpSaveWorker L930
class MtpSaveWorker(QThread)
ããŒã«ã«ãã¡ã€ã«ã MTP ããã€ã¹ã«ã³ããŒããããã¯ã°ã©ãŠã³ãã¹ã¬ããã§ãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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 ãã©ã«ãã«ã³ããŒããåŠçãå®è¡ããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¯ã©ã¹ AudioPlayer L995
class AudioPlayer
é³å£°ã®åçãäžæåæ¢ãéåºŠå€æŽãæéååŸãªã©ã®å¶åŸ¡ãè¡ãã¯ã©ã¹ã§ãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã AudioPlayer.__init__ L996
def __init__(self)
é³å£°ãã¬ã€ã€ãŒã®åæåãè¡ããvlc ã䜿çšããŠåçæºåãããŸãã
ãœãŒã¹ã³ãŒã
ã¡ãœãã AudioPlayer.load L1006
def load(self, path: str)
æå®ãããé³å£°ãã¡ã€ã«ãèªã¿èŸŒã¿ããã¬ã€ã€ãŒã«ã»ããããŸãã
ãœãŒã¹ã³ãŒã
ã¡ãœãã AudioPlayer.play_pause L1016
def play_pause(self)
é³å£°ã®åçãŸãã¯äžæåæ¢ãåãæ¿ããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã AudioPlayer.is_playing L1043
def is_playing(self) -> bool
çŸåšåçäžãã©ãããè¿ããŸãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã AudioPlayer.get_time_ms L1046
def get_time_ms(self) -> int
çŸåšã®åçäœçœ®ãããªç§åäœã§è¿ããŸãã
ãœãŒã¹ã³ãŒã
ã¡ãœãã AudioPlayer.set_time_ms L1065
def set_time_ms(self, ms: int)
åçäœçœ®ãããªç§åäœã§èšå®ããŸãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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
çŸåšã®åçé床ãè¿ããŸãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¯ã©ã¹ SettingsDialog L1179
class SettingsDialog(QDialog)
波圢ã®è²ãèæ¯è²ãæåååŠçèšå®ãªã©ã®ãŠãŒã¶ãŒèšå®ã管çãããã€ã¢ãã°ã§ãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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 ã§ãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MarqueeLabel.__init__ L1300
def __init__(self, text='', parent=None)
ã¹ã¯ããŒã«è¡šç€ºã©ãã«ã®åæåãè¡ããŸãã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MarqueeLabel._timer_timeout L1308
def _timer_timeout(self)
ã¿ã€ããŒã®ã¿ã€ã ã¢ãŠãæã«ããã¹ããã¹ã¯ããŒã«åŠçãè¡ããŸãã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MarqueeLabel.paintEvent L1324
def paintEvent(self, event)
ã©ãã«ã®æç»ã€ãã³ããåŠçããããã¹ããæç»ããŸãã
ãœãŒã¹ã³ãŒã
ã¯ã©ã¹ MainWindow L1447
class MainWindow(QMainWindow)
ã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ãŠã£ã³ããŠã§ããã¹ãŠã® UI èŠçŽ ãšæ©èœã®çµ±å管çãè¡ããŸãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.__init__ L1448
def __init__(self)
ã¡ã€ã³ãŠã£ã³ããŠã®åæåãè¡ãããã¹ãŠã®ãµãã³ã³ããŒãã³ããšã¹ã¬ãããã»ããã¢ããããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.start_warmup L1713
def start_warmup(self)
éãã©ã€ãã©ãªã®èªã¿èŸŒã¿ãå¥ã¹ã¬ããã§ææ©é転ãè¡ããŸãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow._run_warmup L1720
def _run_warmup(self)
ææ©é転ã®å®è¡åŠçãè¡ããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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.adjust_rate L1767
def adjust_rate(self, delta: float)
çŸåšã®åçé床ãçžå¯Ÿçã«å€æŽããŸãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.apply_rate_input L1777
def apply_rate_input(self)
ããã¹ãããã¯ã¹ã«å
¥åãããåçé床ãé©çšããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.on_select_line L1801
def on_select_line(self)
æè©è¡ã®éžæã€ãã³ããåŠçããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.on_double_click_seek L1817
def on_double_click_seek(self, item: QListWidgetItem)
ããã«ã¯ãªãã¯ã§ã¿ã€ã ã¹ã¿ã³ãã«åºã¥ããŠåçäœçœ®ãç§»åããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.move_line L1826
def move_line(self, delta: int)
éžæäžã®æè©è¡ãäžäžã«ç§»åããŸãã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.on_apply_edit L1835
def on_apply_edit(self)
æè©è¡ã®ç·šéå
容ãé©çšããŸãã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.remove_all_tags L1843
def remove_all_tags(self, line: str) -> str
è¡é ã®ã¿ã€ã ã¹ã¿ã³ãã¿ã°ããã¹ãŠåé€ããŸãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.stamp_time L1858
def stamp_time(self)
çŸåšã®åçäœçœ®ã®ã¿ã€ã ã¹ã¿ã³ããæè©è¡ã«è¿œå ããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.stamp_blank L1902
def stamp_blank(self)
çŸåšã®åçäœçœ®ã®ã¿ã€ã ã¹ã¿ã³ãã空çœè¡ã«è¿œå ããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.on_tick L1916
def on_tick(self)
ã¿ã€ããŒã®å»ã¿ããšã«ã¿ã€ã ã¹ã¿ã³ãã®æŽæ°åŠçãè¡ããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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 L2011
def open_audio(self)
ããŒã«ã«ãã¡ã€ã«ããé³å£°ãã¡ã€ã«ãéããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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 ãã¡ã€ã«ãéããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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)
ãã¹ãŠã®ã¿ã€ã ã¹ã¿ã³ããç§åäœã§äžæ¬èª¿æŽããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.copy_to_clipboard L2303
def copy_to_clipboard(self)
çŸåšã®æè©è¡ãã¯ãªããããŒãã«ã³ããŒããŸãã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.save_txt L2332
def save_txt(self)
æè©ãããã¹ããã¡ã€ã«ãšããŠä¿åããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.save_lrc L2391
def save_lrc(self)
LRC ãã¡ã€ã«ãšããŠä¿åããåŠçãéå§ããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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 ä¿åã¿ã¹ã¯ãå®äºããã€ãã³ããåŠçããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.save_lrc_to_mtp L2511
def save_lrc_to_mtp(self)
LRC ãã¡ã€ã«ã MTP ããã€ã¹ã«ä¿åããŸãã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.mousePressEvent L2560
def mousePressEvent(self, event)
ããŠã¹ã¯ãªãã¯ã€ãã³ããåŠçããŸãã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.skip_seconds L2566
def skip_seconds(self, sec: int)
çŸåšã®åçäœçœ®ãæå®ç§æ°ã ãååŸã«ç§»åããŸãã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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)
è¿œå æ©èœãã€ã¢ãã°ãéããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.toggle_auto_follow L2652
def toggle_auto_follow(self)
èªåè¿œåŸæ©èœã®ãªã³/ãªããåãæ¿ããŸãã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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.show_help L2706
def show_help(self)
ãã«ãã衚瀺ããŸãã
ãœãŒã¹ã³ãŒã
颿° main L2727
def main()
ã¢ããªã±ãŒã·ã§ã³ã®ãšã³ããªãã€ã³ãã§ãQApplication ãäœæããŠã¡ã€ã³ãŠã£ã³ããŠãèµ·åããŸãã
ãœãŒã¹ã³ãŒã
ð src/lrc_maker_backup.py LRC æè©äœæã»ç·šéã¢ããªã®ã¡ã€ã³ã¢ãžã¥ãŒã«
ãã®ãã¡ã€ã«ã¯ãé³å£°ãã¡ã€ã«ãèªã¿èŸŒã¿åçããLRCïŒæè©ïŒãã¡ã€ã«ã®ç·šéã»çæãè¡ããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ã¢ãžã¥ãŒã«ã§ããPySide6 ãçšãã GUI ãæäŸããé³å£°ã®ãã³ãŒãïŒlibrosa/ffmpegïŒã波圢å¯èŠåãæè©ã®æé軞線éãåçé床å¶åŸ¡ãªã©ã®æ©èœãçµ±åããŠããŸãã
ãããã¬ãã« <module> L1
â¬
åŒã³åºãå
ãªã
颿° _get_ffmpeg_cmd L30
def _get_ffmpeg_cmd()
ã·ã¹ãã PATH ãŸã㯠imageio_ffmpeg ãã ffmpeg ã®å®è¡ãã¡ã€ã«ãã¹ãæ€çŽ¢ããŠè¿ã颿°ã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
颿° _normalize_win_path L46
def _normalize_win_path(p: Path) -> str
Windows ç°å¢ã§ UNC ãã¹ãéåžžã«é·ããã¹ãå®å
šã«åŠçããããã®ãã¹æ£èŠå颿°ã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
颿° _resolve_path_fuzzy L62
def _resolve_path_fuzzy(path: Path) -> Path
Unicode æ£èŠåïŒNFCïŒãé©çšããŠãååšããªããã¹ãå®åšããååãã¡ã€ã«ãšäžèŽãããã©ãããæ¢çŽ¢ãã颿°ã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
颿° load_audio_any L95
def load_audio_any(audio_path: str, sr=None, mono=True)
æå®ãããé³å£°ãã¡ã€ã«ã librosa ãŸã㯠ffmpeg ã䜿çšããŠèªã¿èŸŒã¿ãNumPy é
åãšããŠè¿ã颿°ã
ãœãŒã¹ã³ãŒã
颿° _dummy L159
def _dummy(x)
Numba JIT ã³ã³ãã€ã©ã«ãããã£ãã·ã¥çæãç®çãšãããããŒé¢æ°ã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
颿° ms_to_tag L183
def ms_to_tag(ms: int) -> str
ããªç§åäœã®æéã LRC 圢åŒã®æéã¿ã°ïŒäŸïŒ[00:01.00]ïŒã«å€æãã颿°ã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
颿° first_tag_to_ms L190
def first_tag_to_ms(line: str) -> int | None
LRC è¡ã«å«ãŸããæåã®æéã¿ã°ãæœåºããããªç§åäœã®æŽæ°å€ã«å€æãã颿°ã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
颿° parse_lrc_or_txt L201
def parse_lrc_or_txt(path: str) -> tuple[dict, list[str]]
LRC ãŸãã¯ããã¹ããã¡ã€ã«ãèªã¿èŸŒã¿ãã¡ã¿æ
å ±ãšæè©è¡ãè§£æããŠè¿ã颿°ã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
颿° save_lrc_same_folder L215
def save_lrc_same_folder(audio_path: str, lines: list[str], meta_inputs: dict) -> str
æå®ãããæè©è¡ãšã¡ã¿æ
å ±ã䜿çšããŠãé³å£°ãã¡ã€ã«ãšåããã©ã«ãã« LRC ãã¡ã€ã«ãä¿åãã颿°ã
ãœãŒã¹ã³ãŒã
ã¯ã©ã¹ AudioPlayer L251
class AudioPlayer
é³å£°ãã¡ã€ã«ã®èªã¿èŸŒã¿ãåçãäžæåæ¢ãéåºŠå€æŽãªã©ã®ã¡ãã£ã¢åçå¶åŸ¡ãè¡ãã¯ã©ã¹ã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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.is_playing L288
def is_playing(self) -> bool
çŸåšé³å£°åçäžãã©ãããå€å®ããŠããŒã«å€ãè¿ãã¡ãœããã
ãœãŒã¹ã³ãŒã
ã¡ãœãã AudioPlayer.get_time_ms L291
def get_time_ms(self) -> int
çŸåšã®åçäœçœ®ãããªç§åäœã§ååŸããã¡ãœããã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã AudioPlayer.set_time_ms L294
def set_time_ms(self, ms: int)
æå®ãããããªç§äœçœ®ã«åçäœçœ®ãèšå®ããã¡ãœããã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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
çŸåšã®é³å£°åçé床ã®åçãååŸããã¡ãœããã
ãœãŒã¹ã³ãŒã
ã¯ã©ã¹ SettingsDialog L362
class SettingsDialog(QDialog)
波圢ã®è²ãèæ¯è²ãä¿åãã¹ãªã©ã®ã¢ããªã±ãŒã·ã§ã³èšå®ããŠãŒã¶ãŒããååŸãããã€ã¢ãã°ã¯ã©ã¹ã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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)
ã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ãŠã£ã³ããŠã§ãé³å£°åçãæè©ãªã¹ãã®è¡šç€ºã»ç·šéããã¡ã€ã«æäœãçµ±åããã¯ã©ã¹ã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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._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.adjust_rate L668
def adjust_rate(self, delta: float)
çŸåšã®åçé床ã«å¯ŸããŠçžå¯Ÿçã«å¢æžãããã¡ãœããã
â¡ åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.apply_rate_input L676
def apply_rate_input(self)
ããã¹ãå
¥åããã¯ã¹ããåçé床ã®å€ãèªã¿åãé©çšããã¡ãœããã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.on_select_line L699
def on_select_line(self)
æè©ãªã¹ãã§é
ç®ãéžæãããéã«åŒã³åºãããã€ãã³ããã³ãã©ã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.on_double_click_seek L705
def on_double_click_seek(self, item: QListWidgetItem)
æè©ãªã¹ãã®é
ç®ãããã«ã¯ãªãã¯ããéã«ããã®æéäœçœ®ãžåçäœçœ®ãç§»åãããã¡ãœããã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.move_line L711
def move_line(self, delta: int)
éžæäžã®æè©è¡ããªã¹ãå
ã§äžäžã«ç§»åãããã¡ãœããã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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 L740
def stamp_time(self)
éžæäžã®æè©è¡ã®å
é ã«çŸåšã®åçäœçœ®ã®æéã¿ã°ãã¹ã¿ã³ãããã¡ãœããã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.stamp_blank L771
def stamp_blank(self)
éžæäžã®æè©è¡ã®å
é ã«ç©ºçœã®æéã¿ã°ãã¹ã¿ã³ãããã¡ãœããã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.on_tick L784
def on_tick(self)
ã¿ã€ããŒã€ãã³ããçºçããéã«åŒã³åºãããåçäœçœ®ã®æŽæ°ã UI æŽæ°ãè¡ãã¡ãœããã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.open_audio L836
def open_audio(self)
ãã¡ã€ã«ãã€ã¢ãã°ãéããéžæãããé³å£°ãã¡ã€ã«ãèªã¿èŸŒãã¡ãœããã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã MainWindow.open_lyrics L850
def open_lyrics(self)
ãã¡ã€ã«ãã€ã¢ãã°ãéããéžæããã LRC ãã¡ã€ã«ãèªã¿èŸŒãã§è¡šç€ºããã¡ãœããã
â¬
åŒã³åºãå
ãªã
ãœãŒã¹ã³ãŒã
ã¡ãœãã 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.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.show_help L1142
def show_help(self)
ãã«ãæ
å ±ã衚瀺ããã¡ãœããã
ãœãŒã¹ã³ãŒã
颿° main L1163
def main()
ã¢ããªã±ãŒã·ã§ã³ã®èµ·åãšã³ããªãŒãã€ã³ãã§ãPySide6 ã¢ããªã±ãŒã·ã§ã³ãåæåããã¡ã€ã³ãŠã£ã³ããŠã衚瀺ããã
ãœãŒã¹ã³ãŒã