{"id":13762843,"url":"https://github.com/cybercase/netmd-js","last_synced_at":"2025-04-07T15:07:56.122Z","repository":{"id":37611223,"uuid":"245019148","full_name":"cybercase/netmd-js","owner":"cybercase","description":"Typescript library to access NetMD MiniDisc devices","archived":false,"fork":false,"pushed_at":"2024-11-03T01:01:02.000Z","size":1313,"stargazers_count":39,"open_issues_count":9,"forks_count":13,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-31T12:09:37.633Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cybercase.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":"2020-03-04T22:41:20.000Z","updated_at":"2025-03-16T04:45:50.000Z","dependencies_parsed_at":"2024-01-13T03:01:34.889Z","dependency_job_id":"99809d18-3d3e-45c2-b70a-7013937e5213","html_url":"https://github.com/cybercase/netmd-js","commit_stats":{"total_commits":116,"total_committers":10,"mean_commits":11.6,"dds":"0.43965517241379315","last_synced_commit":"366b6e62067ec662b46f9cfb4774ec6453cd738b"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cybercase%2Fnetmd-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cybercase%2Fnetmd-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cybercase%2Fnetmd-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cybercase%2Fnetmd-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cybercase","download_url":"https://codeload.github.com/cybercase/netmd-js/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247500451,"owners_count":20948878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-08-03T14:00:58.924Z","updated_at":"2025-04-07T15:07:56.102Z","avatar_url":"https://github.com/cybercase.png","language":"TypeScript","funding_links":[],"categories":["Libraries"],"sub_categories":[],"readme":"## JS library to access NetMD MiniDisc devices\n\nThis is a port to TypeScript of the [linux-minidisc](https://github.com/glaubitz/linux-minidisc) project.\n\nIt works either in node and every browser supporting the [WebUSB](https://wicg.github.io/webusb/) standard.\n\n### How to Install CLI (netmdcli)\n```\nnpm install netmd-js -g\n```\n\n### How to build\n```\nnpm install\nnpm run build\n```\n\n### How to upload music\nThere's a minimal CLI called `netmdcli` that I've written for testing, but the primary purpose of this library is to serve the [Web MiniDisc](https://github.com/cybercase/webminidisc) project.\n\nIf you want to upload music to your device using the cli keep in mind that it won't parse your audio file container, but it works only with raw audio data.\n\n[ffmpeg](https://www.ffmpeg.org/) will do the trick of extracting the raw data from your audio files for *SP* uploads. If you want to use *LP2* or *LP4* you'll also need [atracdenc](https://github.com/dcherednik/atracdenc).\n\n##### SP\n```\nffmpeg -i youraudiofile -f s16be rawaudiodata.raw  # outputs raw audio data suitable for SP uploads\n```\n\n##### LP2\n```\nffmpeg -i youraudiofile -ar 44100 youraudiofile.wav # 44100 16bit wav input file suitable for atracdenc\natracdenc -e atrac3 -i youraudiofile.wav -o youraudiofile.oma --bitrate 128\ndd bs=96 skip=1 if=youraudiofile.oma of=rawaudiodata.raw # removes OMA file header\n```\n\n##### LP4\n```\nffmpeg -i youraudiofile -ar 44100 youraudiofile.wav # 44100 16bit wav input file suitable for atracdenc\natracdenc -e atrac3 -i youraudiofile.wav -o youraudiofile.oma --bitrate 64\ndd bs=96 skip=1 if=youraudiofile.oma of=rawaudiodata.raw # removes OMA file header\n```\n\nThen just run\n```\nnetmdcli upload rawaudiodata.raw -f sp|lp2|lp4\n```\n\n### How Contribute\nEvery contribute is welcome but, please, reach out to me before opening any PR.\n\n### Acknowledgments\nThis library has been made possible by the amazing work done from the [linux-minidisc](https://github.com/glaubitz/linux-minidisc) project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcybercase%2Fnetmd-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcybercase%2Fnetmd-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcybercase%2Fnetmd-js/lists"}