{"id":14007097,"url":"https://github.com/ricardomatias/playa","last_synced_at":"2025-04-06T06:31:48.299Z","repository":{"id":37872643,"uuid":"242738771","full_name":"ricardomatias/playa","owner":"ricardomatias","description":"A framework for musical composition. It allows creating custom music algorithms, musical phrases, percussion rhythms, harmonic sequences and more.","archived":false,"fork":false,"pushed_at":"2023-03-24T06:24:36.000Z","size":5069,"stargazers_count":75,"open_issues_count":13,"forks_count":3,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-04-26T01:31:53.766Z","etag":null,"topics":["algorave","javascript","midi","music","music-composition","music-theory","playa","webaudio"],"latest_commit_sha":null,"homepage":"https://ricardomatias.net/playa","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"osl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ricardomatias.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-02-24T13:07:27.000Z","updated_at":"2024-08-10T10:03:54.989Z","dependencies_parsed_at":"2024-08-10T10:13:59.568Z","dependency_job_id":null,"html_url":"https://github.com/ricardomatias/playa","commit_stats":{"total_commits":252,"total_committers":2,"mean_commits":126.0,"dds":0.007936507936507908,"last_synced_commit":"c0cab253547db24236e395daa4474f97d7900b15"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricardomatias%2Fplaya","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricardomatias%2Fplaya/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricardomatias%2Fplaya/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ricardomatias%2Fplaya/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ricardomatias","download_url":"https://codeload.github.com/ricardomatias/playa/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247445648,"owners_count":20939951,"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":["algorave","javascript","midi","music","music-composition","music-theory","playa","webaudio"],"created_at":"2024-08-10T10:01:49.479Z","updated_at":"2025-04-06T06:31:47.824Z","avatar_url":"https://github.com/ricardomatias.png","language":"TypeScript","funding_links":[],"categories":["HTML"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/ricardomatias/playa/blob/master/assets/logo.png?raw=true\" alt=\"Playa\" /\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://www.npmjs.com/package/playa\"\u003e\u003cimg src=\"http://img.shields.io/npm/v/playa.svg?style=flat-square\" alt=\"npm\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/ricardomatias/playa/blob/master/LICENSE\"\u003e\u003cimg src=\"http://img.shields.io/npm/l/playa.svg?style=flat-square\" alt=\"license\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/ricardomatias/playa/actions\"\u003e\u003cimg src=\"https://github.com/ricardomatias/playa/workflows/CI/CD/badge.svg\" alt=\"build\" /\u003e\u003c/a\u003e\n    \u003ca href='https://coveralls.io/github/ricardomatias/playa?branch=master'\u003e\u003cimg src='https://coveralls.io/repos/github/ricardomatias/playa/badge.svg?branch=master' alt='Coverage Status' /\u003e\u003c/a\u003e\n    \u003ca href='https://bundlephobia.com/result?p=playa'\u003e\u003cimg src='https://badgen.net/bundlephobia/minzip/playa' alt='Bundlephobia min + gzip' /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nPLAYA *(pronounced `ˈpleɪə`)* is a framework for musical composition. It allows creating custom music algorithms, musical phrases, percussion rhythms, harmonic sequences and more.\n\n## Install\n\n```bash\nnpm install --save playa\n```\n\n## Usage\n\n### ES6 Modules\n\n```js\nimport { Chord, Key, Rhythm } from 'playa';\n\n// or everything\nimport * as Playa from 'playa';\n```\n\n### Common JS (Node)\n\n```js\nconst { Chord, Key, Rhythm } = require('playa');\n\n// or everything\nconst Playa = require('playa');\n```\n\n## Example\n\n```js\nimport { Scale, createMotif } from 'playa';\n\nconst scale = new Scale('A', Scale.Major);\n\ncreateMotif(scale.notes, ['4n', '2n', '8nt']);\n/* =\u003e\n[\n    { time: 0, dur: 480, next: 480, midi: 73, note: 'C#4', isRest: false },\n    { time: 480, dur: 960, next: 1440, midi: 80, note: 'G#4', isRest: false },\n    { time: 1440, dur: 160, next: 1600, midi: 74, note: 'D4', isRest: false }\n]\n*/\n```\n\n## Guides\n\nInteractive guide [here](https://observablehq.com/@ricardomatias/playa) which uses [Tone.js](https://tonejs.github.io/) for the sound.\n\nAn example of using PLAYA with P5 and Tone.js - [PLAYA meets P5](https://observablehq.com/@ricardomatias/playa-meets-p5)\n\n## Documentation\n\nCan be found [here](https://ricardomatias.net/playa/?api).\n\n## Templates\n\n* [Starter template for PLAYA with Tone.js ](https://github.com/ricardomatias/playa-starter)\n\n## License\n\n[Open Software License 3.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fricardomatias%2Fplaya","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fricardomatias%2Fplaya","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fricardomatias%2Fplaya/lists"}