{"id":700,"date":"2021-03-12T00:23:39","date_gmt":"2021-03-12T00:23:39","guid":{"rendered":"http:\/\/tlindner.macmess.org\/?p=700"},"modified":"2021-11-16T16:26:09","modified_gmt":"2021-11-16T16:26:09","slug":"mame-coco-and-midi","status":"publish","type":"post","link":"https:\/\/tlindner.macmess.org\/?p=700","title":{"rendered":"MAME, CoCo, and MIDI"},"content":{"rendered":"<p>I recently added a cartridge to MAME that emulated a MIDI port for the Color Computer. This post is about how to use the feature with the command line version of MAME.\n<a href=\"http:\/\/tlindner.macmess.org\/wp-content\/uploads\/2021\/03\/IMG_0092-Cropped-761x1024.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/tlindner.macmess.org\/wp-content\/uploads\/2021\/03\/IMG_0092-Cropped-761x1024.png\" alt=\"IMG_0092-Cropped-761x1024\" width=\"1024\" height=\"761\" class=\"alignnone size-full wp-image-813\" \/><\/a>\nFirst you&#8217;ll need to setup your host computer&#8217;s MIDI functionality. On macOS you use a program called Audio MIDI Setup in the Utilities folder. I do not know how to setup MIDI on a Windows or Linux computer.\n<a href=\"http:\/\/tlindner.macmess.org\/wp-content\/uploads\/2021\/03\/Screen-Shot-2021-11-16-at-8.23.43-AM.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/tlindner.macmess.org\/wp-content\/uploads\/2021\/03\/Screen-Shot-2021-11-16-at-8.23.43-AM.png\" alt=\"Screen Shot 2021-11-16 at 8.23.43 AM\" width=\"527\" height=\"392\" class=\"alignnone size-full wp-image-812\" \/><\/a>\nAfter setting up the host interface you will want to start MAME and have it list the MIDI interfaces it can find:<\/p>\n<pre>\ntlindner$ .\/mame -listmidi\n\nMIDI input ports:\nIAC Driver Bus 1 (default)\n\nMIDI output ports:\nIAC Driver Bus 1 (default)\n<\/pre>\n<p>Next, let&#8217;s attach a Multi-Pak to the CoCo emulation&#8217;s expansion port and list the devices we can attach to each slot.<\/p>\n<pre>\ntlindner$ .\/mame coco2b -ext multi -listslots\nSYSTEM           SLOT NAME        SLOT OPTIONS     SLOT DEVICE NAME\n---------------- ---------------- ---------------- ----------------------------\ncoco2b           rs232            dec_loopback     RS232 Loopback (DEC 12-15336-00)\n                                  ie15             IE15 Terminal\n                                  keyboard         Serial Keyboard\n                                  loopback         RS232 Loopback\n                                  null_modem       RS232 Null Modem\n                                  printer          Serial Printer\n                                  pty              Pseudo terminal\n                                  rs_printer       Radio Shack Serial Printer\n                                  sunkbd           Sun Keyboard Adaptor\n                                  swtpc8212        SWTPC8212 Terminal\n                                  terminal         Serial Terminal\n\n                 ext              cc2hdb1          CoCo2 HDB-DOS\n                                  cc3hdb1          CoCo3 HDB-DOS\n                                  ccpsg            CoCo PSG\n                                  cd6809_fdc       Codimex CD-6809 Disk BASIC (1986)\n                                  cp450_fdc        Prol\u00f3gica CP-450 BASIC Disco V. 1.0 (1984)\n                                  dcmodem          CoCo Direct Connect Modem PAK\n                                  fdc              CoCo FDC\n                                  fdcv11           CoCo FDC v1.1\n                                  games_master     CoCo Games Master Cartridge\n                                  midi             CoCo MIDI PAK\n                                  multi            CoCo Multi-Pak Interface\n                                  orch90           CoCo Orch-90 PAK\n                                  ram              Disto 1024K RAM Cartridge\n                                  rs232            CoCo Deluxe RS-232 PAK\n                                  ssc              CoCo S\/SC PAK\n                                  stecomp          Speech Systems Stereo Composer\n                                  sym12            Speech Systems Symphony Twelve\n\n                 ext:multi:slot1  ccpsg            CoCo PSG\n                                  dcmodem          CoCo Direct Connect Modem PAK\n                                  games_master     CoCo Games Master Cartridge\n                                  midi             CoCo MIDI PAK\n                                  orch90           CoCo Orch-90 PAK\n                                  ram              Disto 1024K RAM Cartridge\n                                  rs232            CoCo Deluxe RS-232 PAK\n                                  ssc              CoCo S\/SC PAK\n                                  stecomp          Speech Systems Stereo Composer\n                                  sym12            Speech Systems Symphony Twelve\n\n                 ext:multi:slot2  ccpsg            CoCo PSG\n                                  dcmodem          CoCo Direct Connect Modem PAK\n                                  games_master     CoCo Games Master Cartridge\n                                  midi             CoCo MIDI PAK\n                                  orch90           CoCo Orch-90 PAK\n                                  ram              Disto 1024K RAM Cartridge\n                                  rs232            CoCo Deluxe RS-232 PAK\n                                  ssc              CoCo S\/SC PAK\n                                  stecomp          Speech Systems Stereo Composer\n                                  sym12            Speech Systems Symphony Twelve\n\n                 ext:multi:slot3  ccpsg            CoCo PSG\n                                  dcmodem          CoCo Direct Connect Modem PAK\n                                  games_master     CoCo Games Master Cartridge\n                                  midi             CoCo MIDI PAK\n                                  orch90           CoCo Orch-90 PAK\n                                  ram              Disto 1024K RAM Cartridge\n                                  rs232            CoCo Deluxe RS-232 PAK\n                                  ssc              CoCo S\/SC PAK\n                                  stecomp          Speech Systems Stereo Composer\n                                  sym12            Speech Systems Symphony Twelve\n\n                 ext:multi:slot4  cc2hdb1          CoCo2 HDB-DOS\n                                  cc3hdb1          CoCo3 HDB-DOS\n                                  ccpsg            CoCo PSG\n                                  cd6809_fdc       Codimex CD-6809 Disk BASIC (1986)\n                                  cp450_fdc        Prol\u00f3gica CP-450 BASIC Disco V. 1.0 (1984)\n                                  dcmodem          CoCo Direct Connect Modem PAK\n                                  fdc              CoCo FDC\n                                  fdcv11           CoCo FDC v1.1\n                                  games_master     CoCo Games Master Cartridge\n                                  midi             CoCo MIDI PAK\n                                  orch90           CoCo Orch-90 PAK\n                                  ram              Disto 1024K RAM Cartridge\n                                  rs232            CoCo Deluxe RS-232 PAK\n                                  ssc              CoCo S\/SC PAK\n                                  stecomp          Speech Systems Stereo Composer\n                                  sym12            Speech Systems Symphony Twelve\n\n                 ext:multi:slot4:fdcv11:wd17xx:0 qd               5.25\" quad density floppy drive\n                 ext:multi:slot4:fdcv11:wd17xx:1 qd               5.25\" quad density floppy drive\n                 ext:multi:slot4:fdcv11:wd17xx:2 qd               5.25\" quad density floppy drive\n                 ext:multi:slot4:fdcv11:wd17xx:3 qd               5.25\" quad density floppy drive\n<\/pre>\n<p>There is a lot to take in, but what we&#8217;re interested in is that slot &#8216;ext:multi:slot3&#8243; has an option of midi. To start an emulation with a MIDI cart in that slot you type:<\/p>\n<pre>\n.\/mame coco2b -ext multi -ext:multi:slot3 midi\n<\/pre>\n<p>Don&#8217;t worry there is no floppy disk cartridge specified, it is the default for slot 4.\nNext we need to connect the host&#8217;s MIDI interface to MAME. Refer back the the start of this tutorial and recall the names of the available midi interfaces.<\/p>\n<p>The host-to-emulation MIDI connection is made using a medial type. Issue this command to see the available media types:<\/p>\n<pre>\ntlindner$ .\/mame coco2b -ext multi -ext:multi:slot3 midi -listmedia\nSYSTEM           MEDIA NAME       (brief)    IMAGE FILE EXTENSIONS SUPPORTED\n---------------- --------------------------- -------------------------------\ncoco2b           cassette         (cass)     .wav  .cas  \n                 printout         (prin)     .prn  \n                 cartridge1       (cart1)    .ccc  .rom  \n                 cartridge2       (cart2)    .ccc  .rom  \n                 cartridge3       (cart3)    .ccc  .rom  \n                 cartridge4       (cart4)    .ccc  .rom  \n                 midiin           (min)      .mid  \n                 midiout1         (mout1)    .mid  \n                 midiout2         (mout2)    .mid  \n                 cartridge5       (cart5)    .ccc  .rom  \n                 floppydisk1      (flop1)    .dmk  .jvc  .dsk  .vdk  .sdf  .os9  .d77  .d88  .1dd  .dfi  .hfe  .imd  .ipf  .mfi  .mfm  .td0  .cqm  .cqi  \n                 floppydisk2      (flop2)    .dmk  .jvc  .dsk  .vdk  .sdf  .os9  .d77  .d88  .1dd  .dfi  .hfe  .imd  .ipf  .mfi  .mfm  .td0  .cqm  .cqi  \n                 harddisk1        (hard1)    .vhd  \n                 harddisk2        (hard2)    .vhd  \n\n<\/pre>\n<p>Note the avaiablilty of midiin, midiout1, and midiout2. Midiin is the media type used to send information to the CoCo. Midiout1 is the MIDI THRU port that automatically sends any incoming data out. Midiout2 is the regular MIDI OUT that is under software control in the emulation.\nThis is an example of sending MIDI input into the CoCo emulation:<\/p>\n<pre>\ntlindner$ .\/mame coco2b -ext multi -ext:multi:slot3 midi -midiin \"IAC Driver Bus 1\"\n<\/pre>\n<p>Using CoCo software to do something with all this is left as an excessive to the reader.<\/p>","protected":false},"excerpt":{"rendered":"<p>I recently added a cartridge to MAME that emulated a MIDI port for the Color Computer. This post is about how to use the feature with the command line version of MAME. First you&#8217;ll need to setup your host computer&#8217;s &hellip; <a href=\"https:\/\/tlindner.macmess.org\/?p=700\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-700","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/posts\/700","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=700"}],"version-history":[{"count":16,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/posts\/700\/revisions"}],"predecessor-version":[{"id":713,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/posts\/700\/revisions\/713"}],"wp:attachment":[{"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=700"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=700"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}