{"id":18534672,"url":"https://github.com/pianosnake/ireal-reader","last_synced_at":"2025-06-23T13:37:15.965Z","repository":{"id":56425278,"uuid":"65705291","full_name":"pianosnake/ireal-reader","owner":"pianosnake","description":"A Node JS module to read music files from iRealPro.","archived":false,"fork":false,"pushed_at":"2025-02-01T18:56:24.000Z","size":115,"stargazers_count":36,"open_issues_count":2,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-12T08:46:47.403Z","etag":null,"topics":["ireal-reader","irealpro","music-information-retrieval","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pianosnake.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2016-08-15T04:50:13.000Z","updated_at":"2025-05-31T07:38:10.000Z","dependencies_parsed_at":"2025-04-09T15:40:51.003Z","dependency_job_id":"7ca766cb-5fd3-47aa-a107-97446f21f3bc","html_url":"https://github.com/pianosnake/ireal-reader","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/pianosnake/ireal-reader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pianosnake%2Fireal-reader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pianosnake%2Fireal-reader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pianosnake%2Fireal-reader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pianosnake%2Fireal-reader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pianosnake","download_url":"https://codeload.github.com/pianosnake/ireal-reader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pianosnake%2Fireal-reader/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261487542,"owners_count":23166110,"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":["ireal-reader","irealpro","music-information-retrieval","nodejs"],"created_at":"2024-11-06T19:16:34.474Z","updated_at":"2025-06-23T13:37:10.949Z","avatar_url":"https://github.com/pianosnake.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iReal Reader\n\nThis is a Node JS module to read music files from [iRealPro](http://irealpro.com/).\n\nThe output is a JS object similar to the one shown below. Repeated measures, endings, segnos and codas are all expanded and written out serially in one array.\n\n\n``` javascript\n{\n  name: 'Swing Tunes',\n  songs:\n   [ {\n       title: 'All Of Me',\n       composer: 'Marks Gerald',\n       style: 'Medium Swing',\n       key: 'C',\n       transpose: null,\n       compStyle: '0',\n       bpm: 100,\n       repeats: 3,\n       music: {\n          timeSignature: '44',\n          raw: '[*AT44C^7XyQKcl LZEadd9XyQKcl LZAsus A7susadd3LZsA, ,lBLZD-7XyQKcl  ][*BE7XyQKcl LZA-7XyQKcl LZD7XyQKcl LZD-7XyQ|G7XyQ][*AC^7XyQKcl LZE7XyQKcl LZA7XyQKcl LZD-7XyQKcl  ][*CF^7XyQ|F-6(F#o7)XyQ|E-7(C^7/G)XyQ|A7XyQ|D-7XyQ|G7XyQ|C6 Ebo7LZD-7 G7 Z',\n          measures:\n            [\n              ['C^7'], ['C^7'], ['Eadd9'], ['Eadd9'],\n              ['Asus', 'A7susadd3'], ['A', 'B'], ['D-7'], ['D-7'],\n              ['E7'], ['E7'], ['A-7'], ['A-7'],\n              ['D7'], ['D7'], ['D-7'], ['G7'],\n              ['C^7'], ['C^7'], ['E7'], ['E7'],\n              ['A7'], ['A7'], ['D-7'], ['D-7'],\n              ['F^7'], ['F-6', 'F#o7'], ['E-7', 'C^7/G'], ['A7'],\n              ['D-7'], ['G7'], ['C6', 'Ebo7'], ['D-7', 'G7']]\n          }\n       }\n     ...\n   ]\n}\n```\n\n### Usage\n\n#### Command line\n\nAssuming you have Node.js installed and available on the command line. Download the repo, change into the directory, and do `node index.js path/to/your/ireal/file.html`. The output will be JSON. \nYou can pipe the output to a JSON file like so: `node index.js path/to/your/ireal/file.html \u003e output.json`\n\n#### As a Node module\n\nInstall the module with `npm install ireal-reader`.  To save to your projects `package.json`, use `npm install ireal-reader --save`.\n\nThen, in your project, read in the HTML or `ireal://...` url output from iRealPro.\n\nThe example below shows how to read the music from an HTML file using plain JavaScript:\n\n``` javascript\nconst fs = require('fs');\nconst iRealReader = require('ireal-reader');\n\nfs.readFile(\"ireal-output-file.html\", \"utf8\", function(err, data) {\n    if (err) throw err;\n    const playlist = iRealReader(data);\n}\n```\n\n#### TypeScript\n\nThe example below shows how to read the music from an HTML file using TypeScript.\n\nFirst, in your project, `npm install ireal-reader-1.3.0.tgz --save`.  Also, for example, if you are using Angular2, you \nmight need a `irealreader.d.ts` file containing the text `declare module 'ireal-reader';` in  your `app` folder.\n\nThen, load this library in your TypeScript class like so:\n\n    import * as iRealReader from 'ireal-reader';\n\t\nThen, call it:\n\n    const iRealHtml: string = '\u003cHTML ...';\n    const iRealJson = iRealReader(iRealHtml);\n\n\n### Developing\nFeel free to fork or submit pull requests. Run tests with `npm test`\n\nTo develop and use the project locally, use `npm pack`. This will create a .tgz file that can be used locally by other modules. In your other project do `npm install path/to/ireal-reader-xxx.tgz`\n\nThe file Tester.html is used in the tests. It can also be opened in iRealPro to make sure it works there.\n\n### Acknowledgments\n\nThe irealb schema was originally cracked by Stephen Irons' [Accompaniser](https://github.com/ironss/accompaniser).\n\n## License\n\n[MIT License](http://opensource.org/licenses/MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpianosnake%2Fireal-reader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpianosnake%2Fireal-reader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpianosnake%2Fireal-reader/lists"}