{"id":15873898,"url":"https://github.com/wavejumper/tonal-clj","last_synced_at":"2025-04-01T22:43:41.067Z","repository":{"id":62435123,"uuid":"266277596","full_name":"wavejumper/tonal-clj","owner":"wavejumper","description":"Clojure (JVM) bindings into tonaljs","archived":false,"fork":false,"pushed_at":"2020-05-24T08:00:31.000Z","size":36,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-07T14:46:41.759Z","etag":null,"topics":["chords","clojure","music-theory","scale","tonal","tonaljs"],"latest_commit_sha":null,"homepage":"","language":"Clojure","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/wavejumper.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}},"created_at":"2020-05-23T06:32:37.000Z","updated_at":"2021-02-11T04:15:36.000Z","dependencies_parsed_at":"2022-11-01T21:16:18.484Z","dependency_job_id":null,"html_url":"https://github.com/wavejumper/tonal-clj","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavejumper%2Ftonal-clj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavejumper%2Ftonal-clj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavejumper%2Ftonal-clj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wavejumper%2Ftonal-clj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wavejumper","download_url":"https://codeload.github.com/wavejumper/tonal-clj/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246724796,"owners_count":20823543,"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":["chords","clojure","music-theory","scale","tonal","tonaljs"],"created_at":"2024-10-06T01:08:11.840Z","updated_at":"2025-04-01T22:43:41.045Z","avatar_url":"https://github.com/wavejumper.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Clojars Project](https://img.shields.io/clojars/v/wavejumper/tonal.svg)](https://clojars.org/wavejumper/tonal)\r\n[![CircleCI](https://circleci.com/gh/wavejumper/tonal-clj.svg?style=svg)](https://circleci.com/gh/wavejumper/tonal-clj)\r\n\r\n\r\n# tonal-clj\r\n\r\nClojure (JVM) bindings into the excellent [tonal](https://github.com/tonaljs/tonal) library.\r\n\r\n\u003e tonal is a music theory library. Contains functions to manipulate tonal elements of music (note, intervals, chords, scales, modes, keys). It deals with abstractions (not actual music or sound).\r\n\r\nThis is possible via [GraalVM's JavaScript engine](https://github.com/wavejumper/clj-polyglot)\r\n\r\n# Usage\r\n\r\nRequires JDK11+ or a graalvm runtime\r\n\r\n```clojure\r\n[\"-XX:+UnlockExperimentalVMOptions\" \"-XX:+EnableJVMCI\"]\r\n```\r\n\r\n```clojure\r\n(require '[tonal.midi :as midi])\r\n\r\n(time (midi/midi-to-freq 60))\r\n\r\n;; \"Elapsed time: 0.573886 msecs\"\r\n;; =\u003e 261.6255653005986\r\n\r\n```\r\n\r\n\r\nRefer to the [tonal documentation](https://github.com/tonaljs/tonal#documentation) for more information.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwavejumper%2Ftonal-clj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwavejumper%2Ftonal-clj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwavejumper%2Ftonal-clj/lists"}