{"id":26830633,"url":"https://github.com/guichaguri/node-chiptune","last_synced_at":"2025-06-22T06:37:06.815Z","repository":{"id":57311259,"uuid":"51950230","full_name":"Guichaguri/node-chiptune","owner":"Guichaguri","description":"Convert tracker music to PCM streams in Node.js (libopenmpt bindings)","archived":false,"fork":false,"pushed_at":"2019-08-21T11:08:33.000Z","size":1513,"stargazers_count":19,"open_issues_count":3,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-02T02:49:38.188Z","etag":null,"topics":["audio-decoder","chiptune","emscripten","libopenmpt","nodejs","pcm"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Guichaguri.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}},"created_at":"2016-02-17T19:46:17.000Z","updated_at":"2024-10-27T15:33:59.000Z","dependencies_parsed_at":"2022-09-06T03:32:39.513Z","dependency_job_id":null,"html_url":"https://github.com/Guichaguri/node-chiptune","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Guichaguri/node-chiptune","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guichaguri%2Fnode-chiptune","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guichaguri%2Fnode-chiptune/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guichaguri%2Fnode-chiptune/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guichaguri%2Fnode-chiptune/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Guichaguri","download_url":"https://codeload.github.com/Guichaguri/node-chiptune/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Guichaguri%2Fnode-chiptune/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261249489,"owners_count":23130494,"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":["audio-decoder","chiptune","emscripten","libopenmpt","nodejs","pcm"],"created_at":"2025-03-30T14:16:51.349Z","updated_at":"2025-06-22T06:37:01.797Z","avatar_url":"https://github.com/Guichaguri.png","language":"JavaScript","readme":"# node-chiptune\n[![NPM](https://nodei.co/npm/node-chiptune.png)](https://nodei.co/npm/node-chiptune/)\n\nConvert tracker music to PCM streams in Node.js.\n[Emscripten](https://github.com/kripken/emscripten) was used to translate [libopenmpt](http://lib.openmpt.org/libopenmpt) to Javascript.\n\nIf you are looking for a HTML5 player to play tracker music, check out [Chiptune2.js](https://github.com/deskjet/chiptune2.js)\n\n## Example\n\n```javascript\nvar chiptune = require('node-chiptune');\nvar speaker = require('speaker');\n\nfs.readFile('file.mod', function(err, data) {\n    if(err != null) {\n        console.log(err);\n    } else {\n        // Create a chiptune readable stream\n        var chiptuneStream = chiptune(data, {\n            channels: 2, // 2 channels (stereo)\n            sampleRate: 48000 // 48,000 Hz sample rate\n        });\n        \n        // We should be able to pipe the chiptune stream to the speaker\n        chiptuneStream.pipe(new Speaker());\n    }\n});\n```\n\n## Supported formats\nBasically all the formats supported by libopenmpt, here is the list:\n\n`mod s3m xm it mptm stm nst m15 stk wow ult 669 mtm med far mdl ams dsm amf okt dmf ptm psm mt2 dbm digi imf j2b gdm umx plm mo3 xpk ppm mmcmp`\n\n## Thanks to\n\n* [Deskjet](https://github.com/deskjet) for helping me understand how libopenmpt works\n* [OpenMPT](http://openmpt.org/) for their library that made this project possible","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguichaguri%2Fnode-chiptune","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguichaguri%2Fnode-chiptune","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguichaguri%2Fnode-chiptune/lists"}