Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
  You are not logged in - nap
HerMIDI V1.0   [2013]

HerMIDI V1.0 Released by :

Release Date :
30 December 2013

Type :
C64 Hardware

MIDI Interface for C64 IEC Bus

User rating:awaiting 8 votes (5 left)   See votestatistics

Credits :
Code .... Hermit of Samar Productions, SIDRIP Alliance, Singular
Design .... Hermit of Samar Productions, SIDRIP Alliance, Singular
Idea .... Hermit of Samar Productions, SIDRIP Alliance, Singular
Concept .... Hermit of Samar Productions, SIDRIP Alliance, Singular
Docs .... Hermit of Samar Productions, SIDRIP Alliance, Singular
Test .... Chabee of SIDRIP Alliance

Download :
http://csdb.dk/getinternalfile.php/125517/HerMIDI-1.0.zip (downloads: 730)
http://sourceforge.net/projects/hermidi/files/HerMIDI-Building-HowTo.pdf/download (downloads: 548)
http://sourceforge.net/projects/hermidi/files/HerMIDI-1.0.zip/download (downloads: 218)

Look for downloads on external sites:

User Comment
Submitted by Hermit on 13 February 2014
I uploaded a newer, improved version of HerMIDI (mainly C64-side code-changes)
HerMIDI V1.0b
I recommend using the fresh version to get better compatibility. The PIC-code and PCB didn't change at all.
User Comment
Submitted by Hermit on 13 February 2014
Three more keyboard-models which works well with HerMIDI after implementing 'running status' correctly:
Yamaha RM1X, Yamaha DX7IID, Roland XP-30

It seems I was too pessimistic when I posted some comments ago. In fact, the timing of all the mentioned MIDI-keyboards seem to match well HerMIDI's timing. The issue was not in HerMIDI but in the C64-side code. It's solved by now, so I'll upload it today.
User Comment
Submitted by Hermit on 13 February 2014
Another keyboard that was found to be working well with HerMIDI:
Elka MK88 master keyboard
User Comment
Submitted by Hermit on 13 February 2014
Forgot to mention that 'running status' mode support is only a change at C64 side in HerMIDI-C64.asm source's GetEvent routine. Nothing needs to change in HerMIDI-code and circuit.
User Comment
Submitted by Hermit on 13 February 2014
I'm adding support for 'runninng status' compression of MIDI-messages, which is generated by some synthesizers/MIDI-keyboards. (Decrease MIDI-cable-traffic by omitting status-bytes for consequent notes.)
A new release will be made for it. It will increase the amount of working synth-models:
There's already one synth-type which it's proven to work with:

Yamaha AN1X
User Comment
Submitted by Hermit on 9 February 2014
Info about how HerMIDI 1.0 works in practice, and further plans, ideas:
I tested HerMIDI with several keyboards (listed in README.txt) and it worked well for me and for some others. On the other hand, meanwhile I've sent some HerMIDI's for testing to some people, some of them had luck, some of them hasn't (some issues with MIDI-signal stability).
The strange thing is that all MIDI-keyboards should send the same standard signal physically and timely, but it doesn't seem to be the case in practice...standards are maybe about 'being inside ranges' instead.
That's why I collect the names of brands & models that seem to work well.
I thought over what could be done better in this regard for the next HerMIDI versions, and concluded that a hardware-USART based microcontroller could minimize the MIDI-sensing jitter very much (which is 12 around microseconds now) and an optocoupler could help to adhere better for the physical layer of the MIDI-standard (avoiding ground-loops and ESD).
The problem then could be the +5V not coming from the MIDI-keyboard. C64 seem to send sufficient power through PIC's legs but that's an undocumented non-standard way as well. This means that probably there's no real future for IEC-based HerMIDI anymore.
The problem presists that the Expansion port is too expensive to have just a MIDI on it, the USER port remains as a solution, or building HerMIDI inside the C64 case where +5V can be taken easily (unlike on Serial port)...
But maybe the ultimate solution is what I've mentioned before: Build MIDI-interface inside the modern cartridges or create a MIDI-card with Amiga-clockport to attach to MMC64/TC64 and the like...)

As a last word of caution: Consider HerMIDI v1.0 as a fast-and-dirty solution which will either perfectly work with your keyboard or not, but at least you don't spend so much money and time on it if you want to check it out...
The more working MIDI-keyboard brands will be collected here the more people can be sure to try building one...
User Comment
Submitted by Hermit on 18 January 2014
HerMIDI is proved to work with Yamaha pss-790 keyboard as well.
User Comment
Submitted by Hermit on 8 January 2014
One more thing to mention about the usage: If you use HerMIDI in daisy-chain with the 1541 Floppy drive, the drive should be switched on. If the drive is turned off it limits the IEC communication lines to roundabout 3V which might risk the data-stability over the serial cable causing communication errors in the sensitive timing of synchron protocol...
Most of the time it wouldn't cause issues but it's better being on the safe side...
User Comment
Submitted by Hermit on 8 January 2014
I got a friendly inclusion of HerMIDI's description at c64midi.com :)


PS: Anyone who successfully tests a HerMIDI please post the type of MIDI-hardware here so people will know in advance if it works well with their MIDI-keyboard. Standard devices should work but you may never know :)
User Comment
Submitted by Hermit on 4 January 2014
Maybe you'll be surprised at the first time when you see HerMIDI running in the C64 when MIDI is not plugged in. Yes, the PIC microcontroller and the LED interestingly can take the +5V from the signal-wires of IEC-bus too, so C64 will detect HerMIDI even when it's plugged in standing alone.
My explanation to this effect is that probably the PIC12F509 gets the minimal operational current through its input-pins' driving transistors.
However, if you check with oscilloscope you'll see the voltages are smaller than 5V when the LED is swithched on and takes the current through the C64's 1kohm IEC-bus pull-up resistor.
Although HerMIDI still operates without the external +5V, this shouldn't be its main use as signal-clarity is not guaranteed this way. Maybe if the LED is taken out the external +5V from the MIDI-keyboard can be disconnected without causing malfunction.
Some MIDI-keyboards ground their 5V output when get switched off. That might cause HerMIDI to cause freeze while being used.
If HerMIDI or the MIDI-keyboard is simply pulled out the C64 will protect itself from freezing. What's more, plugging the device back into the C64 may be able to continue the operation, working as 'plug & play' device, but it's not recommended to pull out /plug in HerMIDI while C64 is switched on...
User Comment
Submitted by Hermit on 3 January 2014
@Akira: Another tip for you to get HerMIDI running with 1541U:
Build the PCB into the C64 and embed a MIDI-input slot into the C64 casing. So C64 will be modded to have a built-in MIDI-input. You can find every signals inside the C64, even +5V, so you can use optocoupler on the MIDI-input while HerMIDI gets the 5V from the C64 instead of the MIDI-keyboard.
Mechanically you can fix the panel by soldering on the built-in MIDI-connector in the way like in the original HerMIDI...
User Comment
Submitted by Hermit on 3 January 2014
Also I'll ask people who get a HerMIDI working to collect here what MIDI-devices they connected to it, so we'll be able to conclude if timing needs to be improved/corrected in further HerMIDI versions.
User Comment
Submitted by Hermit on 3 January 2014
If you won't have anyone around who may build one device as a last resort I can send one to you by snail-mail, and let's hope the postal service works as expected...
I just assembled some HerMIDI devices. I plan to spread them on parties (like Arok Party) but if mailing solution is better for some people we can try that...
However the fastest option still would be to build it locally by you or one of your friends of you know someone doing electronic snearby.
User Comment
Submitted by FATFrost on 3 January 2014
Awesome!! But can anyone please sell these as I will not be able to make...?

Thanks! And Hermit thanks!!
User Comment
Submitted by Hermit on 3 January 2014
the link for the 'Building-HowTo':
User Comment
Submitted by Hermit on 3 January 2014
I created a HowTo PDF file with screenshots that describes a way from PCB-etching till assembly of HerMIDI.
Hopefully it will come handy for some people who want to build a device...
User Comment
Submitted by Hermit on 2 January 2014
Fortunately the daisy-chaining is quite simple: just connecting all communication wires (ATN,CLK,DATA,RESET) to each other. The IEC bus works as 'wired OR' logic, any device can pull the lines down to 0V, and the wire is only at 5V (by C64 internal pullup-resistor) when all devices let it be so by going to high-impedance with their bus-driving transistors... no direct driving from +5V so theoretically you can't make Serial Port wrong by cable-flaws, I guess...

I think if you solder a cable like that or you make an Y-shape exparder that would do the trick and you could have HerMIDI and 1541U at the same time.

On the other hand I believe it wouldn't be hard to implement MIDI-interface and cable-header into 1541U and TC64 and similar cartridges...

Good luck...
User Comment
Submitted by Akira on 2 January 2014
This is awesome!!!! I foresee a problem in my setup though:
I have a 1541U-II so the serial port is used by it and it doesn't have a through (shame).
Is there any way to create a split cable or something that would drive both the HerMIDI and the 1541U at the same time?? I have no idea how the daisychaining of serial devices works.
User Comment
Submitted by andym00 on 31 December 2013
You little diamond, thank you :)
User Comment
Submitted by Yogibear on 30 December 2013
User Comment
Submitted by chabee on 30 December 2013
Great hardware! I was glad that could test ;)
User Comment
Submitted by Hermit on 30 December 2013
I created a separate 'Hardware release' entry for HerMIDI so you can check some poor-quality photos of the prototype...
I wanted better structuring of the PIC12F509 code initially but after many trials it turned out that some kind of 'speedcode' without subroutine-calls served the purpose better.
There are many thigs that could be better (e.g. including opto-isolator) but this is an initial release to be built inexpensively and easily by anyone, maybe even newbies...
But at least you got the idea :) And for me it works flawlessly with different types of hardare...
You may check out README.txt for more info...
Oh, BTW, Happy New Year! New year, new hopes :)
Search CSDb
Prev - Random - Next
Detailed Info
· Summaries
· User Comments (22)
· Production Notes
Fun Stuff
· Goofs
· Hidden Parts
· Trivia
· Discuss this release
Sponsored links
Support CSDb
Help keep CSDb running:

Funding status:

About this site:
CSDb (Commodore 64 Scene Database) is a website which goal is to gather as much information and material about the scene around the commodore 64 computer - the worlds most popular home computer throughout time. Here you can find almost anything which was ever made for the commodore 64, and more is being added every day. As this website is scene related, you can mostly find demos, music and graphics made by the people who made the scene (the sceners), but you can also find a lot of the old classic games here. Try out the search box in the top right corner, or check out the CSDb main page for the latest additions.
Home - Disclaimer
Copyright © No Name 2001-2022
Page generated in: 0.085 sec.