{"id":24529727,"url":"https://github.com/learosema/muzimake","last_synced_at":"2025-03-15T18:19:48.931Z","repository":{"id":271157293,"uuid":"912556125","full_name":"learosema/muzimake","owner":"learosema","description":"Work in progress project to explore sound programming","archived":false,"fork":false,"pushed_at":"2025-03-13T22:48:54.000Z","size":680,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T23:26:22.127Z","etag":null,"topics":["adlib","dos","textmode"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/learosema.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":"2025-01-05T22:30:25.000Z","updated_at":"2025-03-06T07:40:28.000Z","dependencies_parsed_at":"2025-02-08T15:24:04.059Z","dependency_job_id":"4e210567-5ea1-4412-a251-ee7c46100852","html_url":"https://github.com/learosema/muzimake","commit_stats":null,"previous_names":["learosema/muzimake"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/learosema%2Fmuzimake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/learosema%2Fmuzimake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/learosema%2Fmuzimake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/learosema%2Fmuzimake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/learosema","download_url":"https://codeload.github.com/learosema/muzimake/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243770352,"owners_count":20345283,"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":["adlib","dos","textmode"],"created_at":"2025-01-22T07:52:18.330Z","updated_at":"2025-03-15T18:19:48.925Z","avatar_url":"https://github.com/learosema.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MUZIMAKE\r\n\r\nJust a plain C++ project exploring AdLib Sound Programming.\r\nStill in a very early state. Not sure where it leads to.\r\nI want to build a basic composing tool some day.\r\n\r\nI followed tutorials by [root42](https://codeberg.org/root42) to get me started.\r\n\r\nAlso started to explore how to mess with int 10 and text mode, and tried to mess\r\nwith the OPL2 chip of the old Sound Blaster and Adlib cards.\r\n\r\n## Vendor libs\r\n\r\n- Contains some code from the \u003chttps://github.com/learosema/asciijoy\u003e repository for basic text mode functions.\r\n- OPL2 lib used from \u003chttps://github.com/Superilu/lib16\u003e, but changed the instrument_t struct to also contain a `drumType`\r\n\r\n## AdLib Programming\r\n\r\nRabbit Hole:\r\n\r\n- \u003chttps://codeberg.org/root42/dosadlib/\u003e\r\n- \u003chttps://www.youtube.com/watch?v=kP2B9a7Btpk\u0026list=PLGJnX2KGgaw2L7Uv5NThlL48G9y4rJx1X\u0026index=39\u003e\r\n- \u003chttps://cosmodoc.org/topics/adlib-functions/#anyway-heres-the-opl2\u003e\r\n- \u003chttps://www.vgmpf.com/Wiki/images/4/48/AdLib_-_Programming_Guide.pdf\u003e\r\n- OPL2 lib used from \u003chttps://github.com/Superilu/lib16\u003e\r\n\r\n## Building\r\n\r\n### 32bit DOS4GW\r\n\r\nThe only 32 bit platform tested so far is 32Bit DOS with DOS4GW and Watcom C.\r\n\r\nType `wmake`. It will create an MUZIMAKE.EXE and copy\r\nDOS4GW.EXE into the current dir.\r\n\r\n### \"Unit tests\"\r\n\r\nThere are a couple tests in this project. Well, without using a test framework, just tinier programs testing the functionalities.\r\n\r\nI didn't get a proper test framework working yet:\r\n\r\n```sh\r\nwmake tests\r\n```\r\n\r\nThis builds a couple of test programs:\r\n\r\n- `test_bnk` for testing bnk files, playing every instrument inside a bnk\r\n- `test_rol` for testing the rol file loading routing\r\n- `testinst` for testing the instrument datastructure\r\n\r\n## Real mode\r\n\r\nType `wmake /f makefile.16`\r\n\r\n### Is DJGPP supported?\r\n\r\nNot yet. I need to understand how video ram access works and put together the makefile.\r\nI guess this is a good place to start: \u003chttps://www.delorie.com/djgpp/doc/ug/compiling/port16.html\u003e\r\n\r\n## Why?\r\n\r\nBecause I can. Yeah, there is perfect music software out there.\r\nAdlib Visual Composer by Ad Lib Inc or Adlib tracker, for example. They're awesome \u003c3.\r\n\r\nI still wanted to code something like that myself, for educational purposes.\r\n\r\nLike the hard mode in Monkey Island.\r\n\r\n## Credits\r\n\r\n- [Angela Galliat](https://github.com/agalliat/) helped me a lot with the programming and\r\n  optimization of the software architecture\r\n- `STANDARD.BNK` is the default instrument bank library shipped with\r\n  [AdLib Visual Composer](https://vgmpf.com/Wiki/index.php?title=AdLib_Visual_Composer), (C) 1987 Adlib Inc.\r\n- `STARTREK.ROL` contains a minimalistic soundtrack of the Startrek TNG TV series,\r\n  created by an unknown artist, originally composed by Dennis McCarthy.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flearosema%2Fmuzimake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flearosema%2Fmuzimake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flearosema%2Fmuzimake/lists"}