Thursday, November 2, 2017

QuadCore soundtrack story

After almost a year of silence I continue to write articles to kompjut0r blog. Excuse me that I skipped months and a review of the SIDfx board, sometimes it's hard to find the time to write a post and sometimes it's even harder to find some motivation to write a post.
Anyway, let's skip this part and jump to today's topic which is:

Quad Core by Singular Crew

This demoscene production generated quite a bit of hype since its release at Function 2017 demoparty. I had the pleasure (and the pain, but let me explain it later) to be involved in this production as the composer of the soundtrack which is the first ever 4 SID music played on 4 C64's in the same time. There are thumbups and thumbdowns, praises and hates about it and I would like to address some of the feedback and comments here with the technical details of composing a 4xSID music.

Disclaimer: I'm not going into details about syncronizing the demo on 4 C64's because I don't know much about the method. That's something you should ask from the programmers of the demo. All I know about the sync is that you can use the joystick port to start the demo on the 4 computers at the same time and there's a time and frame counter that tries to keep everything in sync. Further details might follow later, there's a chance for an interview with Scorpy (he is the main programmer behind Quad Core).

I was excited when Scorpy first explained his idea about making this demo. It sounded great and I jumped straight into it without knowing and thinking much about the technical aspect of composing a 4xSID music. A bit later I realized it's not going to be trivial, simply because there were no tools for this kind of work. The only thing is close enough is SID Wizard where it's possible to use 3 SIDs at the same time, also, VICE can emulate the 3 SIDs but we still needed 1 more SID.
However, it might not be even possible to create an expansion board for the C64 that can handle 4 SIDs. Is it even possible with memory addresses and channel assignment..? Is there enough CPU power and/or memory for handling the 4 SIDs and the editor and the music data..? Also, is there someone who could make a 4xSID editor quickly because of this production only..? Takes a lot of resources and time.

Okay, then compose the SIDs 1 by 1. Well. How would you sync the individual SIDs together? How would you listen to them together? How would you start 4 VICE or 4 C64 at the same time? How is the sync between the 4 music playback granted to be proper?

...and after some research I decided to skip native C64 editors/VICE and use a PC (multitrack) music editor called Reaper.

The explanation is again, very simple:
I could use 12 tracks and keep them in perfect sync in Reaper. Also, with a VST plugin called SIDizer it's possible to emulate the C64 sounds almost like they are on the C64. So let's see how this happened:
- create 12 channels in Reaper
- assign 1 instance of SIDizer per track
- stop here and start to think about the limitations of the real C64

Well, while SIDizer (or any other VST like QuadraSID, Chipsounds, etc.) are great for emulating _some_ of the features and sound of the real machine they are not capable of doing everything.
For example, it's not possible to do sync and ringmod in the VST's like it's possible on the C64 because the VST's channels are not independent. If for example I use one oscillator for channel 1 in the VST (same way like on the real SID), it's not possible to ringmod this with another instance of the VST's channel 2 (SID channel 1 vs 2). This pretty much puts a limit to the instrument design options.
I realized the best I could do was to use the SID's filter *4 times with different settings.

*the SID's filter can be used as global effect and it's not a per channel feature

Next issue was to fill the 12 channels with instrument and musical notes in a way that sounds like a multi-SID music. 12 channels for a musician who is used to use 3 channels is waaaaay too much. Of course, these 12 channels can be filled easily with musical data, however, the previously mentioned issues are still real and we are still talking about the C64 and its capabilities.

After some experiment this became the final channel assignment and basic instrument design with SIDizer:
SID 1: kick, snare, hihats
SID 2: bass, additional intrument, delay line for the main melody
SID 3: 3 channels of chords
SID 4: arpeggiated chords, additional bass, main melody

One of the greatest feature of SID Wizard is the MIDI2SWM converter. It was easy to export the 12 tracks from Reaper as 4 pieces of 3 track MIDI files and convert them into 4 pieces of SID Wizard module (aka SWM).
After this conversion I took the first SWM, loaded it into SID Wizard and started to finetune the musical data and design the instruments. Then loaded the remaining SWM's one after another and did the same.

And then I found an issue with the music data, the last few patterns in each SWM were different than they were in Reaper. Lenght and music data was different and seemed to be corrupted with random-look-a-like notes, something might went wrong during the conversion. Unfortunately I spent too much time with composing the music and setting up the instruments in SID Wizard and found this issue too late when we had no time for fixing it before the release.
I decided to go with a shorter pre-rendered wav file where the corrupted ending was cut and the music looped seamless. We released the product in video format at the party anyway so this was the better solution at that moment.

Later I had time to fix the music data and finetune the music further.
You can listen to the result here:

Source, can be loaded into SID Wizard 1.7, all the audio data is in the zip and it's up to you to hack the 4th SID into the game somehow. Let us know if you find a way to play it properly on the real hardware. Or even in VICE: QuadSID source

C64 executable, playing the (fixed) music on 3 SIDs with a missing 4th SID, can run under VICE on real C64:

C64 executable of the whole presentation (final, 100% release) with visuals and music:

Final release on YT with fixed music:

Thank you for your attention.

Friday, November 25, 2016

C64 repaint - 2nd Chapter

Well, sometimes we simply _have to_ experiment and try out new things. There's an infamous saying in my hometown: "Once in a lifetime you have to try everything you can. Except folk-dancing."
So, here it is, I'm almost finished with repainting a C64. Yes, I know, this is not the first time I'm repainting a C64 but this is the first time I'm doing it right. At least I tend to think I'm doing it in the right way.

The case was yellow. Very. Yellow.
Keys were dirty. Very. Dirty.
There was no sunshine for a long time, I have no balcony or garden area where I live.
This made me to do it, even if some might say I'm vandalising the good ol' sixtyfour.
Whatever. Once in a lifetime you have to try it. It's still not dancing. Folk-dancing.

First question: what color shall I use?
How about the signature Commodore blue-red? -ish. It's hard to find matching colors, especially by looking at some pictures on the internet. They can be misleading, however, maybe accurate as well. So I gave a try (still not dancing) to Plastikote Satin Navy Blue and Satin Wine Red.

Well, they are definitely not similar to Commie's blue-red but these were the better-looking colors.

Dismount C64, clean it with warm and soapy water. Let it dry out properly. Start painting.
We need a place where it's possible to use the spray paint without damaging walls/furniture/lung/etc...
Ok, whatever, I went down to the front of the building and painted the C64 with people staring at me. I became kinda famous because at the second round I've been asked what the hell I'm doing and somebody even made a selfie with me in the background, spraying.

Anyway, sprayed the case on the street but let it dry inside the flat. Not 100% satisfying but worked well, I just had to keep in mind to open the windows from time to time, to get rid of the smell of the paint.

Yaaay, this spray paint is awesome. Not just because the color is pretty but the paint gets even on the plastic. Push the button, spray it, move your hand from left-to-right, repeat. It's done.

1 day was more than enough to let the first layer dry out.

Nope, I have nothing to do with football, nothing to do with Barcelona. It just happened to be similar to their colors. I'm especially proud of the red-blue crossing on the top cover. It's smooooooth.

After a week of leaving it dry out - it wasn't gluey anymore - I started to assemble it.

And in the meantime SIDfx arrived! Why not make this C64 even more special by mounting the SIDfx inside this machine?

Great. It fits. FYI: you should use 6mm drills for the jack connector and switches.

Almost done. The keyboard looked pretty off whit the usual white-yellow-ish keys. I even tried with black-brown keys but it still looked ridiculously off. I'm still waiting for the new C64 keycap set, probably they never going to arrive... so I didn't want to order another set.

Brilliant idea, let's use the (pretty a lot) remaining of the red-blue spray paint. Similar way, similar method, similar technique.

Add a layer of matte paint and that's it. Looks better and brighter in real, this picture can't give back the proper look of it.
I still need to find a solution to the keys, or I just simply have to learn to type blind. Oh, and a nice LED that fits this color-scheme.

I'm going to post about the SIDfx next time, will write about my experience after a deeper test.
See ya' there.


Today's music: SIDRIP Alliance - 2nd Reality (remix)

Friday, November 11, 2016

C64 music vs. GoatTracker

We live in a world where it's possible to compose Commodore 64 music basically on any platform. I'm not sure how popular SID music is compared to the Gameboy chiptunes. It would require some research to find it out so let me skip this part and jump straight into music editors and leave research for another day.

Back in the good ol' days I 'composed' music with Future Composer and various versions of Demo Music Creator. Since then, I've used and still use SID Wizard which is a great tool and it's up to todays standards in composing C64 music.

Those were the days, when I started to play with those editors without any knowledge about the SID chip and without any documentation given to the tools. Now it's not even unusual to create a C64 music on PC, either with loading a native music editor into VICE or similar emulators. Or just simply using a tool that was made for composing SID music on the PC/Mac and saving it in C64 format.

One of these tools is Goat Tracker. Widely used and loved together with CheeseCutter, now it's quite simple to make some noise without having a real breadbox.

The main reason of today's post with this introduction is to mention those music editors AND show you a great example of using Goat Tracker by my good friend, NecroPolo. He's got some serious guitar playing skills and talent in making the SID bleed - in the meaning of creating unusual sounds and using the SID as it was his beloved guitar. And distortion. Because metal, that's why.

His passion is to release videos of his C64 tunes from time to time, let me share the latest one here:

Now this is how Goat Tracker does look and sound like - good old tracker interface with SID registers for tweaking the sound and all with hexadecimal numbers of course. I recommend to subscribe to his channel as well.

I, hereby save and publish this post with recommending to check NP's other videos and have a listen to his music:


Saturday, November 5, 2016

Amiga 500 vs Gotek drive vs KMTech extension board

Previously I wrote about the Gotek drive with Cortex firmware for Amiga computers. It works like a charm, the only issue is the placement. I wanted it inside the A500 without drilling additional holes on the original case so I was looking for a solution.

Actually, I found a great solution quite fast. Googled "mount gotek into amiga 500" and got a bunch of forum posts and this: KMTech's Gotek Extension Board

This is a nice looking board that is easy to assemble into the A500. I don't want to go into details, their webpage shows the installation steps nice and clear. A little bit of soldering required but don't worry, you can do it if I was able to do it :)

I simply followed the steps and mounted the 2 boards together into the Amiga:

That adhesive stuff keeps the boards in place. It's not super-strong but strong enough. You can try to hotglue them to the plastic, it'd be definitely stronger, however, permanent.

Of course, there are many options to mount the Gotek inside the Amiga, this is one of the easiest and fastest solutions. I'm very happy with the result, it looks good and the plastic case is still intact.


Today's music: Driveclub OST

Sunday, October 23, 2016

Gotek vs Amiga 500

The Girlfriend 500 - sounds like a cheesy advertisement in one of those weird TV shows, right? - is a beautiful computer of its time and nowadays it still has the charm. I remember, I was around 14-15 years old when one of my mates bought an A500 and we played games, watched demoscene productions all weekend long without pause. I had a C64 back then, we used 386 PC's in school and the difference between the computers were remarkable. While I was still in love with the C64, the PC's were kinda soulless, or how to describe it. The Commodore computers definitely had somekind of charm and personality. Not just because the audio-video capabilities but... I don't have words to describe it. They were just simply better :)

So, I have an A500. Cleaned it from top to bottom, from inside to outside and... It doesn't load any software from any disk, while the same disks work without problem in my A1200.
Captain Obvious here, the A500's floppy drive is broken.

I've read a few articles about fixing it, but I decided to order a Gotek drive with the Cortex Amiga Firmware. It's a clever device and a clever new firmware that might not work with the A500' without further modification. There can be an issue with older Kickstart and/or using the Gotek as additional (DF1) floopy and not primary (DF0).

I simply replaced the broken floppy drive with the Gotek:

And it works. Just, simply works. It's sooooo comfortable to copy .ADF (Amiga Disk Format) files to the USB stick and switch whenever it's needed.

However, the first setup of the USB stick wasn't obvious on the first look but fortunately I was able to gather all the required information from various forums.

The Gotek with Cortex Amiga firmware is not enough on its own, the USB stick needs a file called SELECTOR.ADF.

You can download it from Cortex' page, don't forget to rename the extension to .ZIP: cortexamigafloppyemulator_v105a.docx

The SELECTOR.ADF can be found in \\CortexAmigaFloppyEmulator\Bootdisk\ folder.
By default it is an empty disk file.

Next step is to download games, demos, whatever you want to run on the A500. One of the best source of demoscene productions is
Use the "Search Box" feature on the top-right corner of the page.

I downloaded ~100 demos for the A500 (OCS/ECS), but oh noes, a lot of them were .DMS and not .ADF files. This is a compressed Amiga Disk Format, WinUAE can read it without any problem but the Gotek can't. It works with .ADF files only.

Don't worry, there is a solution for that!
ADF Opus and its batch convert option did the job and converted the DMS files to ADF in a few seconds.

Now we need to create a "tracklist" that the Gotek and its SELECTOR.ADF would use for listing/tracking of the .ADF files on the USB stick.

There is a tool called Amiga Gotek Cortex SELECTOR.ADF Edit (pretty long title but it perfectly describes the tool).

  • install SELECTOR.ADF Edit
  • copy .ADF files, including SELECTOR.ADF to USB stick
  • run SELECTOR Edit
  • quit SELECTOR.Edit
  • pause Kaspersky and/or any other virus scanner
  • run SELECTOR Edit again

The tool scans and lists all the .ADF files on the USB stick, now you can move the files from the right-side to the left-side, then click SAVE. This will be your "playlist" and you can select the disk image files with the small buttons on the Gotek drive.

Insert the USB stick to the Gotek, boot up the Amiga. The SELECTOR.ADF will start automatically and you can browse the list and run any of the .ADF files. Yaaaaay, happiness, flawless victory.

I've spent the whole night with watching some neat demoscene stuff and enjoyed the same goosebumps as I had X years ago.

Sushi Boyz by Ghostown:

Rink a Dink Redux by Lemon:

And a lot more of course :)

Now the next step is to mount the Gotek drive into the A500 without drilling, without destroying the plastic case. That's the story of the future, I'll share it with you once it's done.


Today's classic A500 demo: Enigma by Phenomena

Tuesday, October 18, 2016

Saturday, October 15, 2016


A while ago I posted about Blu, my blue C64C. I made most of the SID comparison recordings with its 2 SID setup and, because the SID is a fragile chip I wanted to have something that would protect its circuits.

I asked my good friend Hermit (he is one of the developers of the new SwinSID Ultimate) if he's got an idea how I can do it. He took the question very serious and designed a circuit:

Let me copy-paste his words from CSDB, where the official release have happened:

"I designed this simple SID-protector some months ago as Vincenzo needed some protection for SIDs to record safely. I tested the circuit in ngspice (SPICE circuit simulator linux implementation), and Vincenzo built and tested it on real hardware. He didn't try to stress-test it for obvious reasons (too many SIDs died already in C64 history), but the circuit simulation shows that this simple circuit protects SID's output from overvoltages and reverse voltages/currents. If the diodes are of Schottky type (with enough reverse breakdown voltage for the task), the circuit can have less impact on the output signal due to the series diode and more protection in the negative voltage region on SID-output. 50V and more breakdown voltage diodes are preferred because in practice phantom power around 48V is the biggest that a mixer or other devices can drive to the C64 output by accident. 
If the diodes are normal-type (e.g. 1N4148), then D2 in parallel with the Zener doesn't do much and can be left off...
The circuit only worsk with DC output of the SID (or maybe the transistor current amplifier output) and provides DC output which should be filtered with a series capacitor to remove the DC component of the signal or connected to the transistor current amplifier in the C64. The latter hasn't been tested yet, Vincenzo simply used RCA sockets to directly drive the outputs out from the C64... That worked with both 8580 and 6581 SIDs despite the 6581 having incomplete (non-complementer) output...
We hope this can prevent some further SID-deaths for people who try it...

The only difference to the schematics is that I've used 1N4148 instead of Schottky diodes.
After testing this circuit I experienced a bit of volume-loss on the output level, but basically that's it. It worked so far without any further complications and it's small enough to fit inside the C64.

ps: in case you were wondering who is that Vincenzo guy Hermit' mentioned, FYI it's me, vincenzo /StrayBoom Music. composer, sound designer and owner of this blog.


Today's audio-visual experience: Offscreen Colonies by Conspiracy

Wednesday, October 5, 2016

C64 C - new look with old board

Ever wondered how to identify the inside of a C64 by just looking at it from the outside?
I can highly recommend Ilesj's article to start with because it gives you nice examples with photos and explains the differences well.

I recently get my hands on a C64 C, it looks nice from outside, has just slight yellowing. Keys are stiff, on/off switch isn't lose so I was sure it will just simply work when turned on.

Oh yeah, it did! Nice red LED, old-style keys, C64 C is written on the back. I quickly loaded my favorite test track (Jammer - Club Style) to hear how the SID sings.

I immediately realized it's a 6581 because of the filtered sounds and the fact the track is kinda broken. I also made a guess that it's a 6581 R4.

Hint: read my previous articles about comparing different SID revisions, search for "C64 SID shootout" in this blog. Cheers.

Opened the case, removed the shiny alu-cover aaaaaand...!

It's an "old" board, Assy No. 250466. Youngest of the old boards. And have a closer look on the SID:

It's a 6581 R4AR aka. R4 Advanced Resonance. My guess was close enough, right?


Today's music: BitJam Podcast #195 - Manifesto - Dane's Mix From X2014

Saturday, October 1, 2016

Back from holidays with a new post

After a very exciting but also exhausting summer time the Kompjut0r blog returns with new posts. I had the chance to take a photo of my current collection and would like to share it. I'm not going to fight for "The Biggest Obsolete Computer Collection" title, it's just a bit of bragging about my stuff because I'm proud of it.

Most of them are in good condition just need cleaning inside and out, but still need to test a few of the C64's since they are newcomers and I never switched them on.

ps: I'm looking for a bigger flat and a huge shelf to store all this stuff


Today's music: Surprise, just click and pump up the volume

Tuesday, July 5, 2016

C64 repaint

After a few weeks of silence - pun intended, the previous posts were about music - I'm back with a completely different topic of renovating retro computers.

I've posted a few pictures about a C64 C months ago in this post: C64 C - I'm blue, I'm blue!
Since then I made progress with renovating the scratched case and decided to try out something new: repaint and make it unique.

Started with a warm bubble bath - no, not me, I washed the plastic case in a warm, soapy bubble bath then let it dry out. Some very fine sandpaper helped to soften the scratches, tho it wasn't enough to completely remove them. Well, my patience was over as well, so I went online to check available spray paints.

Went with a very simple grey colored spray can, he only criteria was to be able to paint plastic with it. The whole C64 case was a wreck already so I had nothing to lose - I thought.

Bubble bath followed the sandpapering session, had to clean it before painting. Then, two layers of spray painting has been applied, including 2 days of drying between the 2 layers.

After the second layer of grey paint I left it on the balcony, fortunately there was no rain, only calm wind that helped with drying.

Grey base. Well, looks better than the original, scratchy surface but it's still not enough. What to do, what to do..? Add colors! And add some well-known game characters.

It seemed to be a great idea but wasn't easy to realize it. It's not easy to draw without any talent... Anyway, I had to try it.

And failed. So I repainted the whole thing with grey again.

And then asked my wife if she wants to help me with drawing and she did offer her help! I'm a lucky man.

We chose a few classic games like Bruce Lee, Pacman, Space Invaders, Inter Karate and printed the characters on an A4 paper (thanks to Poison for helping with setting up the proper size).

It took a few hours to properly draw and fill the characters but I think it worth the effort.
They looked really cool but overall, it was just a few black characters on a grey plastic so we decided to fill 'em up with some colors.

Looks a bit abstract, right? Yeah, it's not _that_ great as I had it in my vision but it's still looking good and what's important: it's unique and it's the first one. The next one will be better, because I won't stop here. You've been warned.


Today's music: BRUCE LEE (1984) - LukHash REMIX (performed by Kung Foo Panda)