{"id":15627186,"url":"https://github.com/eggsyntax/sonify","last_synced_at":"2025-10-07T00:59:43.128Z","repository":{"id":8204637,"uuid":"9637644","full_name":"eggsyntax/sonify","owner":"eggsyntax","description":"Sonification middleware","archived":false,"fork":false,"pushed_at":"2020-10-07T03:05:53.000Z","size":1605,"stargazers_count":12,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-12T09:49:47.198Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/eggsyntax.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":"2013-04-24T02:11:53.000Z","updated_at":"2022-09-13T21:14:10.000Z","dependencies_parsed_at":"2022-07-13T16:44:53.948Z","dependency_job_id":null,"html_url":"https://github.com/eggsyntax/sonify","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/eggsyntax/sonify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggsyntax%2Fsonify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggsyntax%2Fsonify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggsyntax%2Fsonify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggsyntax%2Fsonify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eggsyntax","download_url":"https://codeload.github.com/eggsyntax/sonify/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eggsyntax%2Fsonify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278703572,"owners_count":26031205,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-10-03T10:15:36.112Z","updated_at":"2025-10-07T00:59:43.101Z","avatar_url":"https://github.com/eggsyntax.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"sonify\n======\n\nSonify is a unified API for doing sonification (http://en.wikipedia.org/wiki/Sonification).\n\nSonify provides a consistent workflow and object structure, regardless of the type of data\nyou're using (at least for timeseries-based data and similar structures) and regardless of\nyour output method. Output methods will ultimately include CSound, pure-Python audio, MIDI\ncontroller data, and Pylab visualizations. Creating new data parsers and/or new renderers\nis straightforward. If you write a parser or renderer for Sonify, I'd love to know about\nit.\n\nThe flow of data through classes is as follows:\n1. Use a subclass of DataParser to generate a DataObjectCollection.\n2. Use a map and DataObjectCollection.transform() to transform the DataObjectCollection \n    into another DataObjectCollection that meets the renderer's needs.\n3. Use a subclass of DataRenderer to render to MIDI, csound, audio, whatever.\n\ntest\\_datamapper gives some examples of usage.\n\nInstallation:\n===\nRequirements are listed in requirements.txt -- they can be installed automatically using `pip install -r requirements.txt` (https://pypi.python.org/pypi/pip).\nSonify was written under Python 2.7. It might work fine under earlier versions or it might not. At worst, the port would probably be trivial, assuming there were compatible versions of the libraries for the python version you're using. Note that some of the requirements could be omitted entirely, depending on what parsers and renderers you're interested in.\nNote that the project uses MIDIUtil (http://midiutil.googlecode.com). However, there's a minor bug in the library (I've confirmed this with the author, and he'll fix it, hopefully soon). In the meantime, I've added a patched version to the repository (just deletes line 92 from MidiUtil.py). The local version is automatically installed by `pip install -r requirements.txt`.\n\nLicensing:\n===\n\nLicensing: full licensing to follow later. In short: free in every way for noncommercial\nuse. If you're using my code in the context of a commercial enterprise, you need to \ntalk to me about a license. This applies only if your business model is a technical one,\nfor example if you sell software.\nIf you're a musician and are using using my tools or your own modification of them to\nmake music, and then selling the music, that doesn't qualify as commercial use. You're\nfree to do whatever you want with it (although I'd love to hear about it if you're\nusing these tools to make music!). \nThis license may open up more later so that it's free and unencumbered for all use, \nnoncommercial and commercial, but I haven't totally decided yet. I'll worry about \nthat when there are people using it. If you're considering using it but are \nconcerned about licensing, just talk to me and we'll work it out.  \n\nHint:\n===\nI suggest using nose for testing (https://nose.readthedocs.org/en/latest/).\nFor my dev environment, anyway, nosetests runs better if I actively add\nthe sonify directory to virtualenv's pythonpath (after installing nose in the\nvirtualenv). So edit\n`./lib/python2.7/site-packages/sonify.pth`\nand add a line like:\n`/Users/egg/Documents/Programming/sonify-env/sonify`\nYou may *possibly* also have to run the version in the virtualenv explicitly, one time.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feggsyntax%2Fsonify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feggsyntax%2Fsonify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feggsyntax%2Fsonify/lists"}