{"id":20236008,"url":"https://github.com/seotaro/wav-cue-tools","last_synced_at":"2026-06-11T07:31:23.339Z","repository":{"id":42451185,"uuid":"473235826","full_name":"seotaro/wav-cue-tools","owner":"seotaro","description":null,"archived":false,"fork":false,"pushed_at":"2024-05-12T16:57:05.000Z","size":81,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T14:24:56.992Z","etag":null,"topics":["cuesheet"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/seotaro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-23T14:57:03.000Z","updated_at":"2024-11-21T05:29:31.000Z","dependencies_parsed_at":"2024-11-14T08:29:19.233Z","dependency_job_id":null,"html_url":"https://github.com/seotaro/wav-cue-tools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/seotaro/wav-cue-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seotaro%2Fwav-cue-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seotaro%2Fwav-cue-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seotaro%2Fwav-cue-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seotaro%2Fwav-cue-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seotaro","download_url":"https://codeload.github.com/seotaro/wav-cue-tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seotaro%2Fwav-cue-tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34188272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cuesheet"],"created_at":"2024-11-14T08:18:42.215Z","updated_at":"2026-06-11T07:31:23.320Z","avatar_url":"https://github.com/seotaro.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wav+cue tools\n\nwav ファイル + cue シート（以下、wav+cue とする）で構成されたオーディオファイルから任意のオーディオフォーマットに変換する。cue シートで定義する wav は単一または複数とする。変換時にタグ情報を付加し、画像ファイルがあればコピーする。\n\n## 動機\n\nWindows 環境で CD-DA からリッピングして再生するなら wav+cue 形式は使い勝手が良く、かれこれ 2000年 ぐらいから全てこの形式で管理している。であるが、Windows 以外で扱おうとすると（例えば、ラズパイでメディアサーバーを立ち上げる、とか）、とたんに具合が悪いことになってしまう。cue シートに対応してないので、ただのタグ情報のないオーディオファイルになってしまうのだ。\n\nそこでオリジナルは wav+cue 形式で保存しつつ、必要に応じてフォーマットを変換することにした。\n\n## インストール\n\n```bash\nyarn install\n```\n\n## 実行\n\ncue シートの内容をトラック順に表示する。\n\n```bash\nnode analyze.js cuesheet\n```\n\ncue シートを指定したフォーマットで出力する。\n\n```bash\nnode convert.js cuesheet output [extent] [ffmpeg-options]\n```\n\n出力は下記の階層構造・名称とする。\nパスが長くなりすぎるのを避けるため、トラックのファイル名称は必要最低限とした。\n\n```plaintext\n{output}\n├ {genre}\n  ├ {album_artist}\n    ├ {album}\n      ├ {disc}-{track}.flac\n```\n\n## 実行例\n\n例）flac で出力する。\n\n```bash\nnode convert.js \"oasis - (WHAT'S THE STORY) MORNING GLORY？.cue\" 音楽フォルダー flac\n```\n\n例）mp3 で出力する。\n\n```bash\nnode convert.js \"oasis - (WHAT'S THE STORY) MORNING GLORY？.cue\" 音楽フォルダー mp3 \"-c:a libmp3lame -b:a 256k\"\n```\n\n例）aac で出力する。\n\n```bash\nnode convert.js \"oasis - (WHAT'S THE STORY) MORNING GLORY？.cue\" 音楽フォルダー mp4 \"-c:a aac -b:a 256k\"\n```\n\n例）HE-AAC で出力する。\n\n```bash\nnode convert.js \"oasis - (WHAT'S THE STORY) MORNING GLORY？.cue\" 音楽フォルダー mp4 \"-c:a libfdk_aac -profile:a aac_he_v2 -signaling implicit -vbr 3\"\n```\n\n例）指定フォルダーの cue シートから変換する。 ※ シングルクォート、ブラケットなどをパスに含まないこと。\n\n```bash\nfind WAV音楽フォルダー -iname \\*.cue -type f | xargs -I {} node convert.js {} 音楽フォルダー flac                              \n```\n\n## タギング\n\n### リッピングツールが生成する cue コマンド\n\n| cue コマンド            | ExactAudioCopy v1.5 | fre:ac v1.1.6（macOS） |\n| ----------------------- | ------------------- | ---------------------- |\n| REM GENRE               | ✓                   | ✓                      |\n| REM DATE                | ✓                   | ✓                      |\n| REM DISCID              | ✓                   | -                      |\n| REM DISCNUMBER ※        | -                   | -                      |\n| REM TOTALDISCS ※        | -                   | -                      |\n| REM COMMENT             | ✓                   | ✓                      |\n| REM COMPOSER            | ✓                   | -                      |\n| REM CONDUCTOR ※         | -                   | -                      |\n| SONGWRITER ※            | -                   | -                      |\n| PERFORMER               | ✓                   | ✓                      |\n| TITLE                   | ✓                   | ✓                      |\n| REM COMPOSER            | ✓                   | -                      |\n| TRACK / TITLE           | ✓                   | ✓                      |\n| TRACK / PERFORMER       | ✓                   | ✓                      |\n| TRACK / REM COMPOSER    | ✓                   | -                      |\n| TRACK / REM CONDUCTOR ※ | -                   | -                      |\n| TRACK / SONGWRITER ※    | -                   | -                      |\n| TRACK / ISRC            | -                   | ✓                      |\n| TRACK / REM COMMENT     | -                   | ✓                      |\n\n※ cue シートファイルを編集して追加する。\n\n### cue コマンドと内部プロパティのマッピング\n\n| cue コマンド          | 内部プロパティ            | デフォルト |\n| --------------------- | ------------------------- | ---------- |\n| REM GENRE             | genre                     |            |\n| REM DATE              | date                      |            |\n| REM DISCID            | discid                    |            |\n| REM DISCNUMBER        | discnumber                | '1'        |\n| REM TOTALDISCS        | totaldiscs                | '1'        |\n| REM COMMENT           | comment                   |            |\n| REM CONDUCTOR         | conductor                 |            |\n| SONGWRITER            | songwriter                | 'unknown'  |\n| PERFORMER             | album_artist,track_artist | 'unknown'  |\n| TITLE                 | album_title               | 'unknown'  |\n| REM COMPOSER          | composer                  |            |\n| TRACK / TITLE         | track_title               | 'unknown'  |\n| TRACK / PERFORMER     | track_artist ※            | 'unknown'  |\n| TRACK / REM COMPOSER  | composer ※                |            |\n| TRACK / REM CONDUCTOR | conductor ※               |            |\n| TRACK / SONGWRITER    | songwriter ※              | 'unknown'  |\n| TRACK / ISRC          | isrc                      | 'unknown'  |\n| TRACK / REM COMMENT   | comment ※                 |            |\n\n※ トラックの方が優先、上書きする\n\n### 内部プロパティと ffmpeg metadata のマッピング\n\n| 内部プロパティ | ffmpeg metadata |\n| -------------- | --------------- |\n| album_title    | album           |\n| album_artist   | album_artist    |\n| track_artist   | artist          |\n| comment        | comment         |\n| date           | date            |\n| discid         | discid          |\n| discnumber     | disc            |\n| genre          | genre           |\n| songwriter     | songwriter      |\n| track_title    | title           |\n| totaldiscs     | disctotal       |\n| composer       | composer        |\n| tracktotal ※   | tracktotal      |\n| track_number   | track           |\n\n※ プログラム内で生成する\n\n## 参考\n\n1. [Cue sheet](https://wiki.hydrogenaud.io/index.php?title=Cue_sheet)  *Hydrogenaudio Knowledgebase*\n1. [Ogg Vorbis I format specification: comment field and header specification](https://xiph.org/vorbis/doc/v-comment.html) *Ogg Vorbis Documentation*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseotaro%2Fwav-cue-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseotaro%2Fwav-cue-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseotaro%2Fwav-cue-tools/lists"}