Made the Tada MIDI cable this weekend. Posted a youtube video of playing a MIDI file using the cable and MSP player. The cable is connected to the printer port, it only does MIDI out.
Login or register to post comments
Made the Tada MIDI cable this weekend. Posted a youtube video of playing a MIDI file using the cable and MSP player. The cable is connected to the printer port, it only does MIDI out.
Hm, tell more about this cable?
One more example here. The schematic was published on the MSX-FAN magazine (issue October 1994).
Players that support it :
http://sakuramail.net/fswold/music/midry106.lzh
http://hp.vector.co.jp/authors/VA011751/PS013.LZH
I do not know if a game supports it.
If a "replayer" exists if would be easy to add midi tracks to any new game release... (just like on X68000).
Someone can do a replayer that I can use from my Nestor Basic programs ? hum ?
If it is supported in a game, it might be in meteor's kiss (has quite a few different midi settings).
I don’t think it’s really very suitable for a game, as it’s quite CPU intensive; it costs 1145 Z80 cycles per byte transmitted (1/52nd of a frame). Most MIDI messages are 3 bytes at least.
But, it could work I guess, as long as the MIDI played stays within certain constraints, and the game isn’t very reliant on the amount of time available each frame.
Out of curiousity, is that also true for other Midi interfaces ? (I am not familiar with (coding for) the various options for MSX)
No, with one instruction they send a byte at a time and then deliver an interrupt to signal when you can send the next byte. The interrupt handler has an overhead of roughly 300 cycles per byte if using the BIOS hooks, and less than 100 cycles when using one’s own ISR. Additionally, it does not rely on exact CPU timings, so it doesn’t care when the CPU is running at 7MHz or is an R800.
Some interfaces have even less overhead because they’re buffered so you can send multiple bytes at a time, like the Bit² interface. I don’t think there are any other buffered MIDI interfaces for MSX though. Among RS232 interfaces, the Sunrise RS232 uses the buffered 16550 UART.
This TADA type of interface needs the CPU to manually do the timing, so it needs to use cycle accurate CPU timing to send the data bit-by-bit, and no other tasks can be performed while it’s waiting for the next bit to be sent. Of course, in exchange it’s super cheap.
Thanks for the clear explaination.
hummm..what you said is disapointing Grauw !
Don't you have an account yet? Become an MSX-friend and register an account!