Showing posts with label Roland MC-505. Show all posts
Showing posts with label Roland MC-505. Show all posts

Friday, May 8, 2026

Switching Things Up

So recently I got the urge to actually make a little music. For reasons I may or may not explain in a future blog post, I decided to use my MC-505 to do the job.

I probably should have grabbed my QY100 instead, because as soon as I powered on the MC-505 I was reminded that I still definitely needed to replace the main key switches for the sequence/keyboard buttons along the bottom. They were double-triggering whenever I released a key, which was really not helpful for trying to make music, as you might imagine.

So, apart it comes.

The black switches with the grey silicone domes are the culprit. They sit underneath the black and white plastic "keys" and do the job of actually being a switch. The silicone rubber dome makes them a little more squishy and mostly silent compared to the usual clicky tact switch, which is appropriate for this function in a musical instrument.

Anyway, I happened to buy a whole bulk bag of replacements from some mysterious source in the far east, so in they went.

I put everything back together and powered the system on and to my delight the triggering was now very solid with no bouncing and multi-triggering. Unfortunately I was reminded of the two OTHER reasons that this box was still sitting in the repair queue: the 8 main part mixer sliders were rather dramatically misbehaving, and the main jog wheel encoder was barely functional.

I'm pretty sure both these issues can be solved with a little careful disassembly and cleaning, but that task would have to wait for another day. First, I needed a little break to touch some grass.

Mmm, greenery.

Anyway, since the MC-505 still needed work I grabbed my MC-303 and set to work hammering out a tune.

This lasted for all of about 3 seconds before I remembered that it too needed a new set of key switches. Well, I've got the soldering iron warmed up so let's get to it I guess.

Much like the MC-505 this involves removing literally every component in the entire system. But then it's out with the old...

And in with the... also old? You see, I'd found a source for some new-old-stock switches that exactly matched the originals in the MC-303, and I wanted to try them out.

You can see the new, NOS and original switches lined up here from left to right, and the difference with the new switch is pretty plain to see.

It would still probably work, but there was one issue with the new switches that was giving me pause: the contact resistance.

Here's the new switch when pressed.

100Ω is pretty trash tier for most switches, but for a carbon pill switch without any additional coatings to improve conductivity it's kind of par for the course.

So let's compare that to one of the original switches.

It's a bit on the high side, but 3Ω is an order of magnitude lower resistance than the candidate replacement. This wasn't too much of an issue on the MC-505 since its original switches were reading more in the 100Ω-ish range too, but something felt wrong with replacing a low resistance switch with a high resistance one in the MC-303.

The NOS switches, despite being 30 years old, were obviously built different from the new switches.

That's more like what I expect to see from a switch that's working properly.

But that leads us to another problem, which is that these switches have been lingering around for 30 years, exposed to the atmosphere, humidity, and so on, and that's taken its toll on the leads.

Solder isn't going to stick to that black, sooty oxidation no matter how much heat I use. So I need to scrub it back to clean metal with a wire brush first, then tidy up with some isopropyl alcohol. Here's a little before-and-after.

The leads were still a little disagreeable when soldering them but I think I managed to get a solid joint on most of them. I wouldn't be surprised if at some point down the line some of the solder joints fail, but that's a future-me problem. For now they're all working reliably.

And after all that I still ended up using my Yamaha QY100 instead.

Friday, April 10, 2026

Wibbly Wobbly

With the MC-505 up and running after the previous adventure with fixing its screen, I decided that it was time to tackle the wobbly knob-blies.

One of the tools/techniques that I didn't address in the video was using my vinyl cutter in order to cut out stencils of the reinforcement plate design so that I could check the dimensions against the actual system. This was a lot quicker and wasted a lot less planet-killing plastic than 3D printing out the pieces as I went.

This was made a bit more challenging than it might have otherwise been due to me using just some plain, lightweight printer paper, but I bought a brick of heavy card stock to use for the next project, which I'm sure won't take me 7-8 years to get around to using like this vinyl cutter has.

Wednesday, April 1, 2026

Five-Oh... Five

So my Roland MC-303 levelled up by a solid 202 to become a MC-505.

I had originally been looking to pick up either an MC-303 or an MC-505, and the latter tended to be quite a bit more expensive since it actually ended up getting used by some actual musicians from time to time, and was just largely a much improved instrument over the MC-303.

When I stumbled across a "For Parts or Repair" MC-303 selling for cheap I jumped on it and, as discussed previously, gave it a solid spit shine to bring it back to life.

But then just the other day I spotted a "For Parts or Repair" MC-505 for a very attractive price, low enough that I really had no excuse to not buy it, and so buy it I did.

Naturally it has a few issues that need addressing, such as the screen being in a pretty sorry state, which I fixed here:

It also needs some new switches, though oddly the main tact switches are doing fine. It's just the sequencer/key switches that are a little scratchy and are sometimes triggering when I let off the key. Furthermore, the volume control pot doesn't work, nor do two of the effects pots, both due to some damage to the front panel PCB. Finally, all the pots other than the volume and bass boost are feeling pretty wiggly.

But all that will be addressed in due time. First, though, I wanted to make sure that the firmware is up to date. To do this, you're meant to download a set of midi files that you play back into the box from a computer or sequencer. Simple enough, right?

Well it would be, except that somehow Roland messed up the .mid files and wrote the wrong length in the header. This means that basically every modern piece of midi playback software will simply refuse to load the file because it's detected as being corrupt.

To fix this, the easiest thing to do is to rewrite the header with a simple python script. Since I hate python I just yelled at the google search AI mode until it wrote it for me.


import os

def fix_midi_track_header(filename):
    with open(filename, 'rb') as f:
        data = bytearray(f.read())

    # Locate the MTrk (Track Chunk) marker
    mtrk_index = data.find(b'MTrk')
    if mtrk_index == -1:
        print(f"Skipping {filename}: No MTrk header found.")
        return

    # The length field is 4 bytes long, starting 4 bytes after 'MTrk'
    # Actual data length = Total file size - (Header + MTrk marker + Length field)
    # For MC-505 files (79081 bytes), this should be 79081 - 22 = 79059
    actual_data_len = len(data) - (mtrk_index + 8)

    # Convert the new length to 4-byte Big-Endian format
    new_len_bytes = actual_data_len.to_bytes(4, byteorder='big')

    # Overwrite the old length field (bytes 4, 5, 6, 7 after MTrk)
    data[mtrk_index + 4 : mtrk_index + 8] = new_len_bytes

    # Save as a new 'fixed' file
    new_filename = f"fixed_{filename}"
    with open(new_filename, 'wb') as f:
        f.write(data)
    
    print(f"Fixed {filename} -> {new_filename} (New Track Length: {actual_data_len})")

# Run on all .mid files in the current directory
files = [f for f in os.listdir('.') if f.endswith('.mid') and not f.startswith('fixed_')]
for f in files:
    fix_midi_track_header(f)

This script worked nicely, and I was able to import the files into SysEx Librarian and then play them back to the MC-505, and the system updated perfectly.