{"id":17261554,"url":"https://github.com/khalian/modulo7","last_synced_at":"2026-03-13T00:32:03.305Z","repository":{"id":31940201,"uuid":"35509827","full_name":"Khalian/Modulo7","owner":"Khalian","description":"A semantic and technical analysis of musical scores based on Information Retrieval Principles","archived":false,"fork":false,"pushed_at":"2022-10-13T21:22:23.000Z","size":19657,"stargazers_count":15,"open_issues_count":4,"forks_count":3,"subscribers_count":3,"default_branch":"development","last_synced_at":"2025-10-06T05:27:13.613Z","etag":null,"topics":["music-information-retrieval","music-theory","query-engine"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Khalian.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":"2015-05-12T20:01:30.000Z","updated_at":"2024-02-23T01:25:01.000Z","dependencies_parsed_at":"2023-01-14T20:15:19.423Z","dependency_job_id":null,"html_url":"https://github.com/Khalian/Modulo7","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Khalian/Modulo7","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Khalian%2FModulo7","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Khalian%2FModulo7/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Khalian%2FModulo7/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Khalian%2FModulo7/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Khalian","download_url":"https://codeload.github.com/Khalian/Modulo7/tar.gz/refs/heads/development","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Khalian%2FModulo7/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30451556,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T21:31:01.033Z","status":"ssl_error","status_checked_at":"2026-03-12T21:30:43.161Z","response_time":114,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["music-information-retrieval","music-theory","query-engine"],"created_at":"2024-10-15T07:51:29.562Z","updated_at":"2026-03-13T00:32:03.244Z","avatar_url":"https://github.com/Khalian.png","language":"Java","readme":"# Modulo7\n\n[![Join the chat at https://gitter.im/Khalian/Modulo7](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Khalian/Modulo7?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Build Status](https://api.shippable.com/projects/567744611895ca447466aed8/badge?branchName=master)](https://app.shippable.com/projects/567744611895ca447466aed8/builds/latest)\n\nA semantic and technical analysis of musical scores based on Information Retrieval and SQL principles\n\nOVERVIEW: Modulo7 is an research attempt to build a purely objective music analyzer Music Information Retrieval Engine\nusing music theory, natural language principles and big data principles along with a SQL like querying interface.\n\nMost Music recommendation engines take into account user feedback for recommendation and analysis\npurpose and does not take into account music theory. Modulo7 allows comparisons based on both \nsimple and complex rules of music theory and would eventually allow extensible rules to be defined \nby users for comparisons. Standard Users will be able to use simple rules for recommendation and statistics\nmining, and power users would be able to define their own custom rules for ranking/search and querying. I hope this paradigm\nshift will allow a faster recommendation engine, statistics mining and Music Information Retrieval in general.\n\nModulo7 will also support a query engine and a big data distributed database like format(using HDFS) and a unified representation\nfor all forms of music (using a domain specific conversion followed by a serialization via Avro).\n\nTypically a query on this engine will be sql like. An example query will be of the format:-\n\ne.g. ) select sheet_music from MUSIC_DATABASE where melodic_complexity \u003e some value\n\nThe measure melodic_complexity is a defined parameter for sheet music format and the above query will acquire all such\nsongs from the database.\n\n(MODULO7 IS A RESERACH PROJECT AND FOR INTENDED FOR PRODUCTION USAGE).\n\nModulo7 has the following broad goals:-\n\n1. A vector space model for music representations. These models will represent music in an abstract form\non which standard and customized rules based on music theory can be applied. Concepts like phrasing analysis,\ntimber and pitch analysis and custom rules (e.g - a higher number of power chords implies chances of the music \nsong being a rock or metal song). The vector space model will include custom similarity measure\nand extensible similarity measures based on user input on complex music theory rules (STATUS : COMPLETED)\nTHIS COMPONENT IS THE BULK OF THE WORK AND THE NOVELTY OF THE PROJECT.\n\n2. An acoustics source parser component. The acoustic parser takes files like (.mp3, .midi) etc\nand acquires note, pitch, key and other forms of information from the files. These will be then feed \nto the vector space model component. (STATUS : COMPLETED)\n\n3. A sheet music miner component. The sheet miner will take western music sheets of the\nform (.png, .jpeg etc) files and extract the notes, key signature from the images. This information\ncan then be used to create a (STATUS : COMPLETED)\n\n4. A music xml parser component : It takes files of music XML format and parses the relevant information\nfrom them. (STATUS : COMPLETED)\n\n5. A lyrics analyzer : The lyrics analyzer will take its input from the crawling engine and then make objective\nanalysis on the lyrics (e.g the vocabulary richness of the song, semantic intent based on context etc).\n(STATUS : COMPLETED)\n\n7. A query Engine : This engine will parse a query and run it on top of Modulo7 representation (STATUS : COMPLETED)\n\n8. A persistent store mechanism : This engine will support a persistent store(database) of the vector space models for music sources\n(STATUS : COMPLETED)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhalian%2Fmodulo7","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkhalian%2Fmodulo7","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkhalian%2Fmodulo7/lists"}