Open thomasf opened 6 years ago
After further research I have decided that I'm personally only interested in the defMON sync interface and since that uses the user port it's probably better to just build myself one of those instead...
This would be amazing though - to build MIDI functionality into the 1541 Ultimate!
I've been thinking about this as well, and just thought I'd throw some ideas out there. Time permitting, I might try and put an implementation together this winter:
The most widely-supported MIDI interfaces (Datel, Passport, Sequential Circuits, Kerberos, etc.) are essentially an ACIA with current-loop drivers, clocked for 31.25kbps.
A generic 'ACIA device' cartridge type could potentially be used for both MIDI and a SwiftLink-compatible serial interface.
RTP MIDI is a widely-supported standard for sending MIDI data over UDP, and looks lightweight enough to implement on the Ultimate-II. For my use case (picking out tunes on a keyboard connected to my Mac without too much concern for latency) this would be preferable to hardware-MIDI anyway.
In case this helps, I've written a simple handler API for MIDI input on C64: Some discussion and working version here: https://groups.google.com/forum/#!topic/kerberos-midi/xuK7lCEFQD8
Basically, you only need to define in arrays, which routines to JSR to, whenever the library has received the specific command. It handles running state, and it's possible to select from the previously mentioned 4 cartridge types in software. Only tested with Kerberos. Heavily dependant on CA65.
In addition to emulating the past MIDI cartridges, there could be a completely new version too. But what could / should it have? Perhaps this message type (and channel) filtering could be done "in hardware", along with data byte collecting, and an interrupt could be sent when all data bytes for interesting command have been received. Obviously it should handle running state too (MIDI protocol allows sending devices to reduce amount of data by in specific cases allowing to omit the command, if it's the same as for previous command)
Obviously support for the "past" MIDI carts is probably the most important thing.
Hi all!
This thread has been asleep for a long time.
Has perhaps some of these suggestions gone into U64 firmware development for a 'later-to-be-released' version?
Masses of SID musicians would run to the U64 over this. To just plug a midi-keyboard into the USB and play would be a game changer for many of us, and as seen in this thread there's so much old and new software that could be used.
The most simple/basic implementation (DATEL simulation perhaps), not covering the countless myriads of possible variations in software/hardware would more than suffice for the average user.
I have experimented with MIDI input on the USB. I do seem to be able to catch the Midi bytes over the interface, but I still have to find the time to implement a MC6850 "mockup" to get the bytes to the C64. There are other things on the roadmap list that have priority, though.
Thank you. Good to hear that it might be possible. On the topic of MIDI. I read threads that say that the DATEL cartridge (and others following the most common standard of the IO1 ($DE00) addressing space) will not work on the C64E and others that claim that it should work. Do you know?
It doesn't matter. I will not produce or sell DATEL cartridges.
My question was more related to how well the U64E (which you do produce and sell) perform as a C64 in regard to handling the most common MIDI interfaces. But i'm sorry i am going offtopic in this thread.
I am following this thread since a long time… 100% agreed, being able to use a standard modern midi keyboard with the U64E through usb (so c64 software would see it as any of the popular c64 midi interfaces internally) would be a huge game changer. One of the most outstanding feature of the c64 is it’s timeless original sound with the sid chip, if we could pair it up with any modern midi keyboard with USB it would actually save commodores & stop sid chip harvesting for audio devices/synths.
Well, it's rather frustrating having to swap 1541 Ultimate 2 to Kerberos whenever I want to use MIDI. More so, as it doesn't (still, I guess?) have even "SD2IEC level write support" (which would be enough for most MIDI needs), but will need separate drive / drive emulator, mostly I just stick to creating software, that doesn't need save at all.
As I commented previously, I see the past standards primarily for backwards compatibility, new software can be written either for old or new standards. In my opinion, there isn't really anything wrong with the old standards, but it would be nice, if I could get a complete MIDI message at once (except for sysex), and maybe have an option for the implementation to filter message by type (many keyboards send MIDI clock, even if you're just playing notes, and NoteOn and NoteOff would be enough)
It's really nice to hear that this idea isn't at least completely buried!
Well, it's rather frustrating having to swap 1541 Ultimate 2 to Kerberos whenever I want to use MIDI. More so, as it doesn't (still, I guess?) have even "SD2IEC level write support" (which would be enough for most MIDI needs), but will need separate drive / drive emulator, mostly I just stick to creating software, that doesn't need save at all.
This I don't understand? The 1541 Ultimate has had SD2IEC level write support for years. In the later versions this has even been extended and improved quite a bit.
This I don't understand? The 1541 Ultimate has had SD2IEC level write support for years. In the later versions this has even been extended and improved quite a bit.
Yes, but as I said, Kerberos doesn't. Yep, I can use 1541U2 as floppy emulator when using Kerberos, but it's more annoying to setup in stand alone mode (more cabling + "blind" use), and in any case, I'd prefer to be able to do everything on a single cartridge :)
I really love my 1541 Ultimate II+, everything works well, so thank you for this really great cartridge. But from this musical perspective it can do really more. I use mentioned above tracker defMON, which supports also two sid chips via SIDFX for example, so i can use 6 channels, which is great and i also have defMON sync adapter so i can sync to defMON for example any midi synth or via analog sync to analog synthesizer. But i also have Cynthcart, version 1.0 as cartridge and version 2.0 as software, and i really don't want buy another midi interface such as that Frank's Kerberos, just to play on Cynthcart from midi keyboard, if 1541 Ultimate II+ add midi support i can connect via usb port my keyboard. Additional question aside of midi is what is that Ultimate audio module with 7 channels and 8/16-bit samples support, it is normal pcm sample playback device? If someone adds support of this in tracker (defMON), then it can be incredible powerful device to compose music on, if i count everything, 2 sids (6 channels), midi sync and 7 channels of sampled audio.
@martin-demsky 💯
I have built an open source MIDI interface that uses the user port, for precisely this reason (so I can leave my u2+ installed): https://github.com/anarkiwi/vessel (there is SID Wizard and Station64 support, including a high performance MIDI clock following mode).
Ironically, while the author of defMON gave me the idea for this interface, defMON does not yet support it (but I believe the current plan is defMON is being rewritten from scratch (I currently host defMON's doku at https://www.vandervecken.com/defmon).
I have built an open source MIDI interface that uses the user port, for precisely this reason (so I can leave my u2+ installed): https://github.com/anarkiwi/vessel (there is SID Wizard and Station64 support, including a high performance MIDI clock following mode).
Ironically, while the author of defMON gave me the idea for this interface, defMON does not yet support it (but I believe the current plan is defMON is being rewritten from scratch (I currently host defMON's doku at https://www.vandervecken.com/defmon).
wow thank you so much!
MIDI in and or out support would be great, some trackers support MIDI to various extents.
This issue is primarily for gathering requirements and documentation
Introduction
There are a bunch of midi interfaces for C64, most are cartrigdes, at least one of them are IEC based. A MIDI circuit design is very simple, mostly just an UART with a resistor and an opto isolator so some kind of extension board would probably be preferred.
I would want a solution that works for the largest possible user base, I don't know which trackers people are actually using these days but my research focus will be on SID-Wizard and defMON for the time being.
Documentation
C64 midi/sync interfaces
reference: http://www.c64midi.com/C64midi/Interfaces/Interfaces.html
HerMIDI
https://csdb.dk/release/?id=126812
A pic based MIDI input circuit which is connected via the IEC bus.
Note: this device draws 5v from the MIDI host which IIRC is not in the MIDI spec so this device might not always work.
kerberos
A MIDI in/out/thru cartridge.
schematics + source code: https://github.com/FrankBuss/kerberos/
info page: http://www.frank-buss.de/kerberos/index.html
defmon-sync
schematics + avr firmware source: https://github.com/kiwanowski/defmon-sync
defMon Sync Adapter is an adapter for the Commodore 64 computer. It is used to synchronize a tracker called defMon with other music equipment. It connects to the user port and outputs the following signals:
It can only work as the master. It should also work with Prophet64.
Since this interface is connected to the user port it can coexist with 1541u without having to use multiple cartriges so it's probably not something that is terrible interesting to implement inside of u1541
C64 music programs supporting some kind of external interface option
reference: http://chordian.net/c64editors.htm
defMON
defMON support generating clock sync to DINsync/MIDI using defmon-sync.
SID-Wizard
SID-Wizard supports MIDI note input with a large range of hardware interfaces.
Cynthcart
receives midi notes and plays them directly
http://www.qotile.net/cynthcart.html
Station64
http://csdb.dk/release/?id=142049
DATEL/SIEL/JMS/C-LAB PASSPORT/SENTECH SEQUENTIAL/NAMESOFT HERMIDI
1541u MIDI hardware interface
USB midi
To avoid creating new circuitry a solution might be to add support for class compliant USB midi devices in the firmware.
Appendix
SID-Wizard MIDI in handling code