{"id":16678424,"url":"https://github.com/royaltm/amiga-midiin","last_synced_at":"2026-03-16T16:04:43.510Z","repository":{"id":142206763,"uuid":"278664152","full_name":"royaltm/Amiga-midiIn","owner":"royaltm","description":"A MIDI-controlled sample player for AMIGA","archived":false,"fork":false,"pushed_at":"2020-10-13T13:59:02.000Z","size":621,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-13T07:13:41.487Z","etag":null,"topics":["amiga","midi","samples"],"latest_commit_sha":null,"homepage":"","language":"E","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/royaltm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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":"2020-07-10T15:07:07.000Z","updated_at":"2024-10-24T04:35:12.000Z","dependencies_parsed_at":"2023-03-17T05:46:02.907Z","dependency_job_id":null,"html_url":"https://github.com/royaltm/Amiga-midiIn","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/royaltm/Amiga-midiIn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royaltm%2FAmiga-midiIn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royaltm%2FAmiga-midiIn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royaltm%2FAmiga-midiIn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royaltm%2FAmiga-midiIn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/royaltm","download_url":"https://codeload.github.com/royaltm/Amiga-midiIn/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royaltm%2FAmiga-midiIn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28101486,"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-12-28T02:00:05.685Z","response_time":62,"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":["amiga","midi","samples"],"created_at":"2024-10-12T13:29:15.254Z","updated_at":"2025-12-28T16:44:33.463Z","avatar_url":"https://github.com/royaltm.png","language":"E","funding_links":[],"categories":[],"sub_categories":[],"readme":"midiIn\n======\n\nThis is the source repository of the [MIDI-controlled sample player] for AMIGA under the [GPL-3.0-or-later](COPYING) license. It is Open Source now.\n\n![midiIn32.010b Main](pics/QuickGrab.003.png)\n![midiIn32.010b Project](pics/QuickGrab.002.png)\n![midiIn32.010b Settings](pics/QuickGrab.001.png)\n\nHistory\n-------\n\n`midiIn` was developed by me from early 1995 until late 1999, and it was my first mature project. The idea came from Sebastian Witkowski, who was also a big fan of the AMIGA. As a professional musician, he wished he could play samples without pesky limits, using the MIDI interface, in the studio, as well as on stage. There were many programs for AMIGA that provided similar functionality. Most of them were built primarily for other purposes, and MIDI-controlled sample playing was always their secondary function. `midiIn` was designed and developed solely with the one thing in mind: to play as many samples as can fit in memory, pushing the AMIGA to her limits. Because of that, it became the best tool for such a task available at a time.\n\n`midiIn` was battle-tested during many in the studio and on the [stage hours](https://www.youtube.com/watch?v=fZkUvcbqcgg\u0026list=PL23E3B9D150F8F020) during [Najakotiva performances](https://www.youtube.com/watch?v=cOjqpoVyNVs\u0026lc=Ugw2RlhaID3FPzMIYZ14AaABAg). Together in tandem with the AMIGA A1200+030 the Atari ST was also used with its sequencer, the awesome Cubase.\n\nThe first publicly released version was [midiIn v1.0](https://aminet.net/package/mus/midi/midiIn). It could only play 2 samples at once using a simple and already well-known trick to make Paula produce two 14-bit audio channels instead of its 4 DMA channels with the 8-bit quality. But it could run even on A500. At the time of its release, I already had the \"Unlimited\" version of mixing routines in the alpha stage. For the next 2 years, the program was tested by Sebastian, as well as several other musicians around the world, before I decided to release its successor: [midiIn32](https://aminet.net/package/mus/midi/midiIn32). This time it could play as many 16-bit samples, mixed in real-time, as the CPU could allow - which was around 10 on A1200+030 and 32 on MC68040/060.\n\nAround the end of 2019, the two great [Musicians](https://twitter.com/_Adoru_/status/997923877224370176) from [The Other Days](http://theotherdays.net/) have contacted me regarding midiIn32. They have been using it for at least a few past years with their own custom-built MiST-based-ultimate-play-every-chiptune-format-and-mix-in-real-time-DJ-machine, and wanted to add some new features. For the next several months, we have been discussing how to approach this. Finally, I have decided that it would be best if I'll just release the sources.\n\n\nCopying\n-------\n\n    midiIn v32.014, midiIn v32.020b\n    Copyright (C) 1995-1999 Rafal Michalski \u003croyaltm75@gmail.com\u003e\n\n    midiIn is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    midiIn is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with midiIn.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\nThe above copyright notice applies to all of the files in this [repository](https://github.com/royaltm/Amiga-midiIn) except the files in the [Modules](Modules/) directory.\n\n\nVersions\n--------\n\nTagged as [32.020] is a [never before](Dokumentacja/News) released version of `midiIn` with great \"new\" features, and with its sound mixing routines targeting the [AHI] subsystem instead of native Paula chipset. This one was not as thoroughly tested as the previous versions, but here it is.\n\nI've also added sources of a pre-release version, tagged [32.014], that includes the original Paula-only mixing routines. Just do `git checkout 32.014`. Unfortunately, I didn't preserve sources for the released `midiIn` v32.15b, but 014 is the closest I could find. Back in the days, GIT wasn't a thing yet, and as a self-taught programmer without the Internet, version control systems were not commonly used as they are today. I don't even know if there was such a solution for AMIGA anyway. So I've developed my system, which was archiving source files between releases. Unfortunately, only a few of those archived files survived all of the hard disc crashes that happened in the meantime.\n\n\nPrerequisites\n-------------\n\n* The AMIGA (or an emulator).\n* The [AmigaE] compiler with all of the necessary modules, including EasyGUI, AHI, ARQ, IFFParser and midibase.\n* [EasyGUI] v3+ (not sure if the whole installation is needed).\n* An MC68020+ assembler to compile `modules/softmix.s`, try [Barfly].\n* Assuming your `AmigaE` installation resides in `Prog:E_v3.2a`, add to the `user-startup` the following:\n\n```\n;BEGIN E\nAssign \u003eNIL: E: Prog:E_v3.2a\nAssign \u003eNIL: EMODULES: E:Modules\nPath E:bin/ ADD\n;END E\n```\n\n\nCompilation\n-----------\n\n* `cd src`.\n* Build `modules/softmix.o` from [modules/softmix.s](src/modules/softmix.s), using an MC68020+ assembler.\n* Run `Amiga Shell` script: [make](src/make).\n\nThis should produce `midiIn` executable in `src`.\n\n\nTroubleshooting\n---------------\n\n`midiIn` GUI was written in [AmigaE] using the [EasyGUI] library. Mixing routines are written in 68k asm and require an assembler that understands MC68020+ instructions.\n\nTo run `midiIn` you'll also need some libraries (these were distributed with the original [midiIn] archive file):\n\n* reqtools.library v38+\n* midi.library\n\nand last but not least: a working [AHI] sound driver.\n\nSystem `mathieeedoubbas.library` is also being extensively used. For the optimal experience, speed it up with [FastIEEE].\n\nWhen using the 3.3+ version of [EasyGUI], some constants might need to be removed or refactored, mainly because it dropped the `EG_WIDTH/EG_HEIGHT` concept to replace it with `EG_MAXH/EG_MAXW` booleans.\n\nIf still in trouble, see the [Modules](Modules/) directory.\n\n\nContribution\n------------\n\nBecause I didn't have yet nowadays the opportunity to test the compilation process myself, feel free to create an issue if you have any trouble with making it compile. I'll try to address it if I'm able to.\n\nThese sources are old and not maintained since the last century (hehe). They are also very seldom commented, as they were not intended for opening, and many things may seem to be odd. But if you feel like it, I'll gladly accept pull requests.\n\n\n[midiIn]: http://aminet.net/mus/midi/midiIn32.lha\n[MIDI-controlled sample player]: https://aminet.net/package/mus/midi/midiIn32\n[AmigaE]: http://strlen.com/amiga-e/\n[EasyGUI]: https://aminet.net/package/dev/e/EasyGUI_v33b3\n[AHI]: https://aminet.net/search?query=AHI\n[FastIEEE]: https://aminet.net/package/util/sys/FastIEEE\n[Barfly]: http://aminet.net/package/dev/asm/BarflyDisk2_00\n[32.014]: https://github.com/royaltm/Amiga-midiIn/tree/32.014\n[32.020]: https://github.com/royaltm/Amiga-midiIn/tree/32.020\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froyaltm%2Famiga-midiin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froyaltm%2Famiga-midiin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froyaltm%2Famiga-midiin/lists"}