{"id":29253518,"url":"https://github.com/pd3v/diatonic","last_synced_at":"2025-07-04T02:06:45.819Z","repository":{"id":74471211,"uuid":"363192557","full_name":"pd3v/diatonic","owner":"pd3v","description":"Diatonic transforms for music making.","archived":false,"fork":false,"pushed_at":"2024-07-26T15:34:56.000Z","size":228,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-06-01T16:20:33.862Z","etag":null,"topics":["c-plus-plus","chords","chromatic","diatonic","intervals","keys","music","notes","scales"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pd3v.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":"2021-04-30T16:05:18.000Z","updated_at":"2024-10-06T16:40:07.000Z","dependencies_parsed_at":"2024-01-25T00:01:44.267Z","dependency_job_id":"336995f8-0c50-4f6c-8410-5a4154729298","html_url":"https://github.com/pd3v/diatonic","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/pd3v/diatonic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pd3v%2Fdiatonic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pd3v%2Fdiatonic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pd3v%2Fdiatonic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pd3v%2Fdiatonic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pd3v","download_url":"https://codeload.github.com/pd3v/diatonic/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pd3v%2Fdiatonic/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263432207,"owners_count":23465572,"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":["c-plus-plus","chords","chromatic","diatonic","intervals","keys","music","notes","scales"],"created_at":"2025-07-04T02:04:16.424Z","updated_at":"2025-07-04T02:06:45.808Z","avatar_url":"https://github.com/pd3v.png","language":"C++","readme":"# diatonic\n\nYou don't need to create lists of vectors/arrays to set pre-definitions for \"all\" scales, chords and a given tonality chords'; create them dynamically; do it by calling functions.\n\n## Some examples\n\n ```\n  // create scales\n  auto DSharpMajor = scale(Ds,scale_::major);\n  auto DSharpPentaMajorOctave4 = scale(\"ds4\",scale_::pentatonicmajor);\n  \n  // create chords\n  auto Bminor7 = chord(B,m7);\n\n  // create custom chords \n  auto myChord = {intervalT::t,intervalT::min2,intevalT::d5}; \n  // or shorter version\n  auto myChord2 = {i::t,i::min2,i::d5}; \n  \n  // 2nd chord inversion\n  auto Bminor7_2nd = invert(Bminor7,2);\n\n  // create all tonality chords (4 notes each chord)\n  toneT CMajorChords = tone(C,tone_::major);\n  \n  // transpose tonality chords to the 3rd octave\n  toneT CMajorChords3 = transpose(CMajorChords,3);\n\n  // get a tonality's Dominant chord\n  chordT GMajor7minorChord = CMajorChords3.at(dominant);\n\n  // Write a melodic phrase where \"x\" (midi 127) is consired silence. Returns a vector of midi notes\n  phraseT aMelody = phrasing({\"c1\",\"c2\",\"x\",\"c3\"});\n\n```\n\n## Build\n\n**In *diatonic*'s root directory**\n\n\tmkdir build\n\tcd build\n  \tcmake .\n  \tmake","funding_links":[],"categories":["Libraries and tools"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpd3v%2Fdiatonic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpd3v%2Fdiatonic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpd3v%2Fdiatonic/lists"}