============================================================================= MIDI Player for MSX2/2+/turboR MIDRY Version 1.06 document (MIDRY106.1ST) Copyright(c)1997 Ikatama ============================================================================= This software is designed to play MIDI on MSX2/2+/turboR. There is a separate document file called "MIDRY106.DOC". Please also see there. ----------------------------------------------------------------------------- table of contents ----------------------------------------------------------------------------- 1. Operating environment 1. 1. MSX2 (VRAM 128K), MSX2+ or MSX turboR 1. 2. MSX-DOS or MSX-DOS2 1. 3. Kanji ROM (can be played without it) 1. 4. MIDI data output hardware 1. 5. MIDI-compatible sound sources 1. 6. Other conditions 2. MIDI data output method 2. 1. MIDI Saurus cartridge 2. 2. RS-232C interface + MIDI adapter 2. 3. MSX Magazine MIDI Interface (Original) 2. 4. Joystick port 2. 5. Printer Port 2. 6. MSX-MIDI 2. 7. MIDI interface 2 2. 8. MPU-401 3. Supported Data Files 3. 1. Standard MIDI files 3. 2. Data file for Mujiro series 3. 3. Data Files for RCM-PC98 Version 2 3. 4. Data Files for RCM-PC98 Version 1 3. 5. Geisha data file 3. 6. Micro Musician 2 Data Files 4. Performance processing 5. Overlay processing 6. Directory Files 7. CM-64/32L/P Emulation 7. 1. Emulation part 7. 2. Difference between emulation and real device 8. Terms of use, etc. ----------------------------------------------------------------------------- 1. Operating environment ----------------------------------------------------------------------------- The following equipment is required to use this software. 1. 1. MSX2 (VRAM 128K), MSX2+ or MSX turboR ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It does not work on MSX1 and MSX2 (VRAM 64K). 1. 2. MSX-DOS or MSX-DOS2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Runs on MSX-DOS. You need either because you can't start it from BASIC. In the documentation, MSX-DOS (Version 1.xx) may be abbreviated as DOS1 and MSX-DOS2 as DOS2. On DOS2, mapper memory is supported. You can also set options in environment variables in advance. Also, on DOS1, if you reside "μ" (by Giichi Yamamoto) in advance, you can use mapper memory. 1. 3. Kanji ROM (can be played without it) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Kanji ROM is used to display song titles that use double-byte characters. Therefore, without this, double-byte characters cannot be displayed normally, but it does not affect the performance. Even if there is a kanji ROM, it cannot be displayed properly if characters such as not being in the MSX kanji font or characters that have a font but have a different code are used. 1. 4. MIDI data output hardware ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ See 《2. MIDI Data Output Methods.》 1. 5. MIDI-compatible sound sources ~~~~~~~~~~~~~~~~~~~~~~~~ If you just want to get a sound for the time being, a sound source that supports MIDI will do. As for exclusive processing, it would be nice if it could be processed in a way that does not depend on a specific manufacturer or sound source, such as a standard MIDI file, but note that otherwise it supports a limited range. The exclusive generated by this player itself is output as MT-32, the device ID is 17 for various GS sound sources, and the device number is 1 for XG sound sources. 1. 6. Other conditions ~~~~~~~~~~~~~~~~~~~~~~~ When booting, the TPA must be more than 49 Kbytes to work. ----------------------------------------------------------------------------- 2. MIDI data output method ----------------------------------------------------------------------------- There are several ways to output MIDI data. To determine which output method to use, specify the interface code with the /I option at startup. Numbers enclosed in [] in the interface code are optional. 2. 1. MIDI Saurus cartridge ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The MIDI interface cartridge that comes with the MIDI Saurus. There are two MIDI-OUT cartridges, but only one of them can be used. You might think that you can play 32 parts if you use both, but the programs inside the cartridge are not designed to be used simultaneously in communication mode. The interface code is as follows: 0[1] : OUT1 02 : OUT2 Originally, it was an interface for playing data with a configuration of 8 tracks + rhythm tracks, so it is used quite recklessly. In rare cases, data may not be sent. For the time being, measures have been taken, although they are incomplete, so if the data is not very complicated, it should be fine. Note that since the transmission data loss prevention part depends on the CPU processing speed, CPU locking will not work properly unless it is in accordance with the standard. Also, this cartridge cannot be accessed normally on the R800, so when booted in turboR's fast mode, it switches to Z80 mode during booting, but does not check if it works properly. 2. 2. RS-232C interface + MIDI adapter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Since it is directly accessed from the hardware, even if it is compatible at the BIOS level, it will not work with interfaces where the hardware is not standard. Operation has been confirmed with the built-in RS-232C interface of JVC's HC-90. Also, although I did not check it here, there was a report that it worked with "COMIO" developed by Emil Soft and not with ASCII "MSX-SEREAL232". It is completely unclear whether other RS-232C interfaces are available. The MIDI adapter is for converting RS-232C signals to MIDI signals, and you should be able to use commercially available adapters for the PC-9801. In addition to 31250 bps, the transfer rate can be 38400 bps. It can be used when connecting to a sound source that has a terminal for connecting to a computer such as SC-55mkII and supports 38400 bps. Also, if you connect the SC-88 or MU80 via the PC connection terminal, you can play 32 parts simultaneously with this interface only (please note that this function is described in the manual on the MU80, but not on the SC-88). The interface code is as follows: 1[1] : 31250 bps 12 : 38400 bps 13 : 31250 bps 32 parts 14 : 38400 bps 32 parts When 32 parts are supported, the player is in the same state as if they were using 2 ports. Also, if you specify two interfaces with the /I option, using interface codes 13 and 14 is the same as specifying 11 and 12, respectively. 2. 3. MSX Magazine MIDI Interface (Original) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is a MIDI interface using the 8251, which was published in MSX Magazine. The interface itself was created at the time, but I can't find the MSX magazine that appeared in the issue, so I don't know what year it was published in which issue. The interface code is as follows: 2 : MSX Magazine Edition MIDI I/F (Early Models) 2. 4. Joystick port ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A MIDI message is serially output from pin 6 of the joystick port. As an interface to connect to the joystick port, I think that "Herohero No. 5" (written by Takeshi Aida, Backup Utilization Technique PART 33) can be used. They are not exactly the same, but we have verified that they work with almost the same circuits. The interface code is as follows: 31 : Joystick port 1 3[2] : Joystick port 2 33 : Joystick port 1+2 32-part support 34 : Joystick port 2+1 32-part support Using interface codes 33 and 34 when specifying two interfaces with the /I option is equivalent to specifying 31 and 32, respectively. Note that since the serial output part depends on the processing speed of the CPU, the CPU clock will not operate properly unless it is in accordance with the standard. When booted in turboR fast mode, it switches to Z80 mode during boot. 2. 5. Printer Port ~~~~~~~~~~~~~~~~~~~~~~~~~ Pins 2 (PORT1) and 3 (PORT2) of the printer port output MIDI messages serially. As an interface to connect to the printer port, "MIDI" (published in the "PS ver. 0.13" document by Takumi Geon, which is included on the appendix disc of the October 1994 issue of MSX / FAN) and "Dual MIDI" (written by Yoshikazu Yamamoto, published in the August 1995 issue of MSX/FAN) can be used. The interface code is as follows: 4[1] : MIDI or Dual-MIDI PORT1 42 : Dual MIDI PORT2 43 : Dual MIDI PORT1+2 32 parts 44 : Dual MIDI PORT2+1 32 parts Using interface codes 43 and 44 when specifying two interfaces with the /I option is equivalent to specifying 41 and 42, respectively. Note that since the serial output part depends on the processing speed of the CPU, the CPU clock will not operate properly unless it is in accordance with the standard. When booted in turboR fast mode, it switches to Z80 mode during boot. 2. 6. MSX-MIDI ~~~~~~~~~~~~~~~~~~~ It can be built into turboR or external, such as a μPack. Also, since the presence or absence of an interface is not checked by reading the ROM, MIDI interface 3 (by Masatoshi Fujimoto) can also be used. When the FS-A1GT has two outputs, such as when a μPack is attached, you can specify which power to output (the operation of the μPack side has not been confirmed). You can also play 32 parts using both (again, I haven't verified it). The interface code is as follows: 5[1] : One system only or built-in 52 : μPack 53 : Built-in + μPack 32 parts support 54 : μPack+ built-in 32-part support Interface codes 52~54 can only be specified if there are two MSX-MIDI systems. Also, using interface codes 53 and 54 when specifying two interfaces with the /I option is equivalent to specifying 51 and 52, respectively. In contrast to other output methods, all performance timing control relies on VDP. Timers/counters on MSX-MIDI are not used except to generate MIDI transmit and receive clocks. 2. 7. MIDI interface 2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is a MIDI interface that was originally published in the October 1989 issue of MSX Magazine. I couldn't handle it because I didn't have the MSX magazine of the published issue and didn't make an interface, but I knew the specifications, so I did. With the kindness of Masatoshi Fujimoto, I borrowed MIDI interface 2 and checked the operation. However, we have not tested when a MIDI sound source is connected to the CH-B side. The interface code is as follows: 6[1] : CH-A 62 : CH-B 63 : CH-A + CH-B 32 parts 64 : CH-B + CH-A 32 parts Using interface codes 63 and 64 when specifying two interfaces with the /I option is equivalent to specifying 61 and 62, respectively. Note that Z80-SIO cannot be accessed normally on the R800, so when booted in turboR's high-speed mode, it switches to Z80 mode during booting, but does not check whether it works properly with it. 2. 8. MPU-401 ~~~~~~~~~~~~~~~~~~ Output from MPU-401. The MPU-401 and MSX must be connected according to the interface specification proposed by Masatoshi Fujimoto. The interface code is as follows: 7 : MPU-401 ----------------------------------------------------------------------------- 3. Supported Data Files ----------------------------------------------------------------------------- The playable data formats and support status are as follows. 3. 1. Standard MIDI files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It supports Format-0 and Format-1 (extension..MID. STD or. SMF and other extensions must be specified including the extension.) Format-1 allows up to 48 tracks. After track 49, it is ignored. The timebase has a lower bound of 24 and an upper bound of 960. Timecode format is not supported. The number of simultaneous sounds is 127 notes for each note in the MIDI channel. This should have been enough for a normal song, but it seems that there are some rhythm parts that do not have any note-off data at all. Oh well, so if there are more note-ons than the number of simultaneous pronunciations, I put out one note-off and then output the note-on. By default, MIDI channel 10 is the rhythm channel. When using two ports, the output port is assigned by a meta-event specifying the MIDI port (although it does not seem to be officially recognized as an event for standard MIDI files yet). Otherwise, MIDI port-specific events are ignored and all messages are output from one port. As a special case when using 2 ports, ports may be assigned by the track name meta-event. This is mainly for the convenience of playing the demo data that comes with the SC-88, but it does not need to be demo data if the port is specified in the same way. Only in this format, files with Mac binaries can be read as is. 3. 2. Data file for Mujiro series ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Muji-kun, Mujiro/2, Ballade/2/3 (extension. SNG) data. There are 64 simultaneous sounds per track. If it is exceeded, ignore it. MIDI channel 10 becomes the rhythm channel. For processing purposes, one bar is added in 4/4 time signature with a tempo of 120 before the performance data. In Musico, when using the PCM sound source section, it seems to use a different receiver channel on the sound source side with exclusiveness, but in this player, the transmission channel is adjusted to the initial state of the CM-64. User-defined tones are not supported. 3. 3. Data file for RCM-PC98 Version 2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RCM-PC98 Version 2 for recomposer (extension. RCP、. R36) file. The timebase uses what is specified in the data, but if it is 0, it is treated as 48. If the timebase in the data is 1~24, it cannot be played at a normal tempo because it is forced to be 24. The total number of simultaneous sounds is 64 notes for all tracks, including rhythm tracks. If this is exceeded, ignore it. There is no limit per track unless the total number exceeds 64 notes. MUTE specified tracks are not played. The MIDI channel of a track that has rhythm specified or keyshift turned off becomes the rhythm channel. If the same channel is specified for multiple tracks, and at least one of them has a rhythm or keyshift off, that channel becomes a rhythm channel. Tempo change gradients are not supported. It is always an immediate change. When using 2 ports, the output port is assigned according to the MIDI port specification. Otherwise, the MIDI port specification is ignored and all MIDI messages are output from one port. Exclusive supports those for Roland, user-defined exclusive, and track exclusive. Sound files for CM-64 and GS sound sources can be sent. Either a file name is specified in the data, or the base file name is the same as the data file, and the extension is .CM6. Send the GSD file if you have it (when using 2 ports, output only the 1st port). 3. 4. Data file for RCM-PC98 Version 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ For RCM-PC98 Version 1 and others (extension. MCP) files. The original is an N88-DISK BASIC format disk, so you must convert it to MSX-DOS format in some way. If the timebase is less than 24, you cannot play at a normal tempo because you are forced to 24. The total number of simultaneous sounds is 64 notes for all tracks, including rhythm tracks. If this is exceeded, ignore it. There is no limit per track unless the total number exceeds 64 notes. The MIDI channel specified in the rhythm track becomes the rhythm channel. Tempo change gradients are not supported. It is always an immediate change. Note numbering for rhythm tracks is assumed to be the factory setting. If it is different, please respond with a configuration file. Exclusive is only supported for Roland. Tone files are not supported for any sound source. 3. 5. Geisha data file ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PC-9801 series for geisha (extension .SEQ) files can be played. The total number of simultaneous sounds is 64 notes for all tracks, including rhythm tracks. If this is exceeded, ignore it. There is no limit per track as long as the total does not exceed 64 notes. Note numbering for rhythm tracks is assumed to be the factory setting. If it is different, please respond with a configuration file. The MIDI channel specified in the rhythm track becomes the rhythm channel. Exclusive is only supported for MT-32. 3. 6. Micro Musician 2 Data Files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Micromusician 2 for (extension. MM2) data can be played. This file extension is also used by MIDI Saurus, but the contents are different, so be careful not to confuse them. The total number of simultaneous sounds is 64 notes for all tracks, including rhythm tracks. If this is exceeded, ignore it. There is no limit per track unless the total number exceeds 64 notes. The MIDI channel specified in the rhythm track becomes the rhythm channel. 32 parts cannot be played properly. Use only one port (all MIDI messages are output from one port). The exclusivity of this file is not well understood. For the time being, I am sending something that seems to be for Roland, but it seems to differ depending on the version. It seems that it is not possible to determine from the data which version the data was created, so we do not even know which version the processing method of this program supports. HELLO! MUSIC! I can play the data for 98 for the time being, but it doesn't support exclusives at all. ----------------------------------------------------------------------------- 4. Performance processing ----------------------------------------------------------------------------- When running on DOS1, performance data is read into VRAM (64 Kbytes) that is not used for display. When used on DOS2, if there is a free segment in the mapper memory, it will be used in addition to VRAM. VRAM and mapper memory together support up to 1 MB. Mapper memory on secondary slots can also be used, but having more free segments in the primary slot is advantageous in terms of processing speed due to fewer slot switching. Due to internal processing, it may not be possible to play even in [Data file size You won't know if the data is large enough to be read until you read it once. Please note that errors may occur after taking a long time to read. Timebases are supported in the range of 24~960 (for standard MIDI files), but due to processing speed, they may not always play decently. In addition, time management during performance relies on interruptions from VDP. Since the interrupt interval is fixed, even if the timebase increases, the load on the performance process will only become heavier, and it will not be controlled by fine timing. Regardless of the data in the file, it applies its own running status rules. Even if the status is not omitted in a standard MIDI file, etc., it will be output as appropriate. Outputs start, stop, continue, and timing clocks of real-time messages (only to the 1st port when using 2 ports). However, during disk access or file screen display, the timing clock output is interrupted. In addition, since there is no MIDI equipment that works synchronously with an external clock at hand, the operation has not been confirmed. ----------------------------------------------------------------------------- 5. Overlay processing ----------------------------------------------------------------------------- Playing processing destroys most of the program because it uses the area where the program that processes the file screen resides as the work area. Therefore, when moving from the play screen to the file screen, part of the executable file may be reread. This part that needs to be reread is stored at the end of the memory for performance data. When the performance is finished and the file moves to the file screen, it is actually reread only if the saved by the performance data has been destroyed. If a rereading is required, DOS1 uses a file named "MIDRY.COM" above the current drive at startup. DOS2 uses the file specified by the environment variable "PROGRAM", but if this environment variable is not set, it searches for the file named "MIDRY.COM" in the current directory at the time of startup and the directory specified by the environment variable "PATH" and uses the one found. If you cannot find the file to reread, a message will be displayed and you should replace it with the disk containing the executable file accordingly. If you compress MIDRY.COM using a tool that compresses executable files, you will not recognize it yourself and will decide that you cannot find the file to read. Do not compress unless you do not start in file mode or when you have enough performance data memory to ensure that you do not need to reread it. ----------------------------------------------------------------------------- 6. Directory Files ----------------------------------------------------------------------------- When booting in file mode, in order to display the file list as quickly as possible, and to record file-specific options, the drive containing the data file (directory in DOS2) is set to "MIDRY. Create a file named "DIR". We will refer to this file as a directory file. The directory file is written after the title is obtained, or when the drive or directory is changed, or when it is determined that it needs to be created or updated when it exits the file screen. When an option is set or changed, it is not written immediately, but is held until the next write. When used on DOS2, if a directory file is created first, it is marked invisible. It cannot be used on DOS1 as it is, so if you want to use it for both, turn off the invisible attribute on DOS2. When updating a directory file, the invisible attributes remain intact. Titles are retrieved in bulk when the list is displayed. Therefore, if you change to a drive or directory with many untitled files, it will take some time for the list to be displayed. Once retrieved, it is recorded in a directory file, so this time will be shortened from the next time. ----------------------------------------------------------------------------- 7. CM-64/32L/P Emulation ----------------------------------------------------------------------------- This player has the ability to emulate the CM-64/32L/P using the MT-32/CM-32P compatible tone array provided by the SC-55 and others. However, it is not a perfect emulation, so you will not be able to play exactly the same. Also, when using 2 ports, only the 1st port can be emulated. 7. 1. Emulation part ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The GS instrument parts corresponding to the emulated sound source are as follows. Emulating the CM-32L LA Instrument Part 1~8 → GS Instrument Part 2~9 Rhythm Part → GS Instrument Part 10 Emulating the CM-32P PCM Instrument Part 1~6 → GS Instrument Part 11~16 Emulating the CM-64 LA Instrument Part 1~8 → GS Instrument Part 2~9 Rhythm Part → GS Instrument Part 10 PCM Instrument Part 1~6 → GS Instrument Part 11~16 However, if Mujiro 2 and Ballade3 specify a source other than LA/PCM, or if a non-LA/PCM sound source is specified in the configuration file, the part corresponding to that channel will not be emulated. 7. 2. Difference between emulation and real device ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The main differences between emulation in this player and on the real device are as follows. ・ The number of simultaneous pronunciations is different. ・ The number of partials used in each tone is different. ・ The volume balance between each tone may vary. ・ The way the tone changes due to velocity modulation is different. ・ The pan pot setting is reversed. ・ Exclusive for CM-64/32L/P is not accepted at all. ・ We will accept exclusives for sound sources that are actually in use. ----------------------------------------------------------------------------- 8. Terms of use, etc. ----------------------------------------------------------------------------- The copyright of this software set is owned by the creator "Ikutama". There are no particular restrictions on personal use, but please keep the following points in mind. ・ The author shall not be liable for any damage caused directly or indirectly as a result of the use of this software set. ・ If there is a defect in the Software Set, the author is not obliged to correct or correct it. In addition, when distributing or reprinting this software set, please do so under the following conditions. ・ Distribute all files included in this software set. ・ Please distribute any files without modification. ・ Please distribute it free of charge (excluding the collection of actual costs required at the time of distribution). ----------------------------------------------------------------------------- Ikatama NIFTY-Serve ID : QZB03477 ===== End of FILE =================== MIDRY Version 1.06 (MIDRY106.1ST) =====