{"id":48686123,"url":"https://github.com/tomejanzen/textmiditools","last_synced_at":"2026-07-15T06:00:57.322Z","repository":{"id":43346526,"uuid":"395403564","full_name":"tomejanzen/textmiditools","owner":"tomejanzen","description":"Interconvert MIDI, SMUS and text files; generate random non-AI music automatically","archived":false,"fork":false,"pushed_at":"2026-07-02T03:04:47.000Z","size":20813,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-07-02T05:04:23.764Z","etag":null,"topics":["midi","midi-files","midi-parser","music","music-composition","portable","random","smus"],"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/tomejanzen.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-08-12T17:59:40.000Z","updated_at":"2026-07-02T03:02:53.000Z","dependencies_parsed_at":"2024-02-08T03:21:33.146Z","dependency_job_id":"c133c210-eedb-4dd0-88fe-40fdce498db2","html_url":"https://github.com/tomejanzen/textmiditools","commit_stats":{"total_commits":75,"total_committers":1,"mean_commits":75.0,"dds":0.0,"last_synced_commit":"2c0456e57fd921f477316489af53ccb1e9103056"},"previous_names":[],"tags_count":102,"template":false,"template_full_name":null,"purl":"pkg:github/tomejanzen/textmiditools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomejanzen%2Ftextmiditools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomejanzen%2Ftextmiditools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomejanzen%2Ftextmiditools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomejanzen%2Ftextmiditools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tomejanzen","download_url":"https://codeload.github.com/tomejanzen/textmiditools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomejanzen%2Ftextmiditools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35493172,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-15T02:00:06.706Z","response_time":131,"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":["midi","midi-files","midi-parser","music","music-composition","portable","random","smus"],"created_at":"2026-04-11T04:05:24.164Z","updated_at":"2026-07-15T06:00:57.317Z","avatar_url":"https://github.com/tomejanzen.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"======================================================================\n    TextMIDITools -- MIDI file converters and computer-generated music.\n\n                    Thomas E. Janzen\n                    \u003cjanzentome@gmail.com\u003e\n\n======================================================================\nWhat is this?\n======================================================================\n\nGeneral Information\n\nTextMIDITools is a collection of four programs for converting MIDI and SMUS\nfiles in and out of text format, and for automatic generation of music.\n\nThe converters are:\ntextmidi - convert a text representation of a MIDI file into a binary\n           standard MIDI file.\nmiditext - convert a binary standard MIDI file into a text representation.\nsmustextmidi - convert a Simple Musical Score file into a text\n               representation in textmidi language.\ntextmidicgm - Generate music in textmidi text file format, using a\n              model of musical form based on slowly-changing sinusoids\n              that control the means and ranges of pitch, dynamics,\n              duration, and the complement (number of instruments\n              playing).\n\ntextmidicgm is a rewrite of AlgoRhythms, an open-source computer-music\ngenerator by Thomas E. Janzen for the Commodore Amiga first\nseen publically in 1990.\n\nsmustextmidi is a rewrite of smusmidi, an open-source convertor\nfrom Simple Musical Scores, first seen in 1992 from Thomas E. Janzen.\n\ntextmidi and miditext are rewrites in C++20 of programs developed for\nprivate use from 1999 to 2003 and enhanced later by Thomas E. Janzen.\n\n======================================================================\nFeatures\n======================================================================\n\n* textmidi\n  + Defines a text language that represents standard MIDI files for\n    musical use.  It permits the specification of anything a musical\n    MIDI file (from the MIDI Specification 1.1) can include.\n  + Defines a \"LAZY\" or \"BRIEF\" mode that makes it quicker to type in\n    long conventional instrumental scores, such as those from\n    Johann Sebastian Bach.\n  + Use with text tools and a macro processor such as m4 can enrich\n    the language.\n* miditext\n  + Converts a standard MIDI file for musical purposes into a text\n    representation in textmidi language.  The text can be hand-edited,\n    or automatically processed.\n* smustextmidi\n  + Converts an SMUS (Simple Musical Score) file, defined by Electronic\n    Arts in the mid-1980's, into a text representation of a MIDI file\n    in textmidi language, using LAZY mode for the note events.\n* textmidicgm\n  + Generates random musical pieces in terms of MIDI key numbers, velocities,\n    and durations, using a model of musical form the describes slow\n    sinusoids that modulate the mean and range for pitch, dynamics, and\n    durations, as well as the complement (number of voices).\n  + The XML form input file is hand-editable.\n  + textmidicgm can generate a random XML form file, making it altogether\n    unnecessary to think about what music you are writing.\n\n======================================================================\nWhere to get a copy\n======================================================================\n\nThe latest release of TextMIDITools are available at:\ngithub.\n\n======================================================================\nHow to install\n======================================================================\n\nRefer INSTALL file in the distribution, but try this:\n\naclocal\nautoconf\nautomake --add-missing\n./configure\nmake\nsudo make install\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomejanzen%2Ftextmiditools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomejanzen%2Ftextmiditools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomejanzen%2Ftextmiditools/lists"}