Posts

Showing posts with the label MIDISID

Enclosures for MIDISID

Image
 The default configuration for MIDISID  looks fine and is functional. I have fitted wooden cheeks to my own, which gives it a look and tilts the top forward, making it a little easier to use when you're sitting back from it. MIDISID was designed from the start with 'bring your own box' in mind. It's a modular design, the top and bottom parts are easily separated and connect with a 4-way jst-sh cable. In my head I saw it being used in a sloping-top case. Paul of Bad Dog Designs has come up with a different solution. It achieves the same goal - tipping the controls and screen forward. It's a 3D print in two parts. It takes zero effort to fit - MIDISID just drops in. I don't know whether he has made the design files public but  please contact him  if you're interested. Update Nov '23 The current version of MIDISID is now larger, has a tilted front and custom side supports: Owners are still being creative with enclosures. Here's a beautiful one from  @k...

Music for an Imaginary Martial Arts Game, entirely using MIDISID

Image
This is an original tune that goes back a long way and if you rummage through my older videos you'll find versions (sometimes called Eastern Promise) played using real C64 (3 voices).   This time I wanted to use MIDISID and make a multitracked version using SID voices. It still doesn't use a large number of voices. There are six tracks in Logic, including two percussion tracks which somehow aren't shown in the video, and I'm mostly using polyphonic mode but I think the chords just have two or three notes.   The only effect I've applied is a little reverb on the recorder. The rest is as captured from the back of MIDISID.The advantage of multitracking is that you can set the relative levels of the voices, which is hard to do with SID when you're using different sounds using different waveforms.   More info about MIDISID:  https://peacockmedia.software/midisid/
Image
During the week I learned that SCUMMVM (which allows you to play a large selection of adventure games) has options for routing the music to a device of your choice, while still playing speech and sound effects through the computer. (I'm guessing there was a small window in time when games stored their music as MIDI and also had sampled effects and speech.) There are some things that I want to add. This of course relies on the audio being available as MIDI within the game. I found other games that didn't work this way. When it worked, it worked surprisingly well and is fun. But like playing .mid files into MIDISID, it's not perfect. Because of the limitations and the way that it maps the channels, sometimes parts of the music are lost.  (This is part of the reason why I edited the DOTT intro.) This applies to playing .mid files too, although with .mid files you have the option of editing the files a little to get more from them. It's easy to find the .mid files for the m...

Echoes on Stone Walls by Autumn Altair, entire album rendered by dual-SIDs using MIDISID

Image
Last year, Autumn Altair published Echoes on Stone Walls . It is "is the soundtrack to a DOS game that doesn't exist". For a limited time it was available on floppy disc but even if you only buy the album digitally, you still get the .mid files as well as audio. I love the album, I love Skoddie's compositions - I like the way they play with time signatures and cross-rhythms, and the way they use all of the sounds/instruments available, particularly the percussion. I love the fact that it was published as MIDI. Using a notation editor to read the music while listening really does enhance your appreciation of the music. Making the tracks work with MIDISID wasn't straightforward. They weren't written with six voices in mind, so in some cases I've had to edit them down or at least make sure that the important parts are heard.  Some of the instruments play chords, eg harp and harpsichord. In some cases I've spread out those parts over multiple channels so t...

MIDISID Sunday : but can it play DOOM? (yes it can)

Image
 Thanks to my partner finding these MIDI files , I've really enjoyed going through them and making them work with MIDISID. I've put all 9 levels on one video. (actually it's one short - one of the levels made an automatic copyright claim with an unrelated song!)  I've mixed them up so that if you only hear two levels, they're the two that I think work the best. Ideally, they'd just work with MIDISID exactly as downloaded, and level 1 does just that (after making a couple of improvements to the firmware.) Other levels involved a little tweaking. When MIDISID is released, I'll publish a proper tutorial, but in a nutshell, it's mostly about editing down the midi file if there are more things than the 6 voices can play. 

#MIDISID Sunday 17 July 2022

Image
Updates The first new thing is this lovely face plate. I wasn't really keen on a clear panel but my partner lasercut some of these in different materials and I'm in love with this.   It's partly to make sure that everything lines up (it almost does!) and now I've ordered what I hope will be the final 'production' PCBs - in purple!  What is MIDI and how do you use it? The lovely 5-pin din below is like USB for musical instruments. In fact it is serial and nowadays things tend to do MIDI over USB or bluetooth. Some things like this DATEL MIDI cartridge for the C64 have 3 ports, midi in, out and through. Some devices just have in and out and some have one or the other. MIDI consists of just a few bytes telling you which notes to play when and on what instrument. Like sheet music. So .mid files are very small and have the charming feature that they sound different according to what you use to play the audio. That's where MIDISID's General MIDI mode comes in....

#MIDISID Monday 11 July - monophonic mode, honky tonks and an annoying hum

Image
This first video is about monophonic mode. I'll be talking about the modes a lot because MIDISID works in three very different ways and it'll be good to demo them as much as possible.  In this one I talk about the honky tonk and how we might reproduce that rustic sound. I've also been working on an annoying hum I've been experiencing since building the last revisions of the boards. Counterintuitively it seemed worse when on battery power (there's a clue). Today I've been cutting traces and adding bodge wires. Adding capacitors and generally messing around, trying to find out where the problem lies.  Here is the problem. The first half of this demonstrates the problem. You'll hear the chime of the SwinSID Nanos as I apply the power, and then you'll hear the hum before the music starts.  The second half is how things sounded after fixing the problem. The hum is undetectable and the sound level is better (these things are visually obvious too in the Sound S...

MIDISID Monday, General MIDI mode with a wacky solo

Image
This week has mostly been spent working on mono mode but it's not yet ready for a demo. Components have arrived for the next hardware version (which is going to look great) but the boards haven't turned up yet. So the update this week will consist of a piece of music I put together partly to demo MIDISID's General MIDI mode, and partly to have fun playing with a new instrument I've just put together. Rakits are a fab introduction to the world of modular synthesis, I love my baby8 and atari punk console. I had the good fortune to meet the 'MakeaRakit team' at emfcamp a couple of weeks ago and couldn't resist buying some more kits. What attracted me to the Cracklebox was partly the method of playing it and partly the unpredictability, which goes against my nature completely.  You have a little control but really don't know what you're going to get. Something quirky and slightly sinister was required for a backing groove. A 3+3+2 (which has a waltz fee...

MIDISID Monday 20 Jun : playing with sound

Image
In one respect it doesn't seem as if we're very much further on than last week because what I have to demonstrate are the parameters within polyphonic mode. If you liked the animated visualisation of the ADSR envelope last week, then this is more of the same, but this time a proper run-through of all of the parameters that make the SID the legendary synthesiser on a chip that it is. We now also have animated representations of the Pulse Width, Pulse Width Modulation, Filtering, Vibrato. Tuning is also incorporated with fine and coarse controls.  In other respects we've made leaps forward and the finished product seems closer. I've done a lot of work on the boards. As the output circuit really needs 9v, I've added a 9v jack / battery clip and regulator and put all the ports neatly at the back.  Incidentally, with the audio circuitry powered from a good 9v source and the chips powered by regulated 5v from that. the audio output is way better than when driving the whol...

MIDISID Monday 13 Jun

Image
This week I've continued to work on the menu / controls and have added something that I'm really pleased with. I've made a video demonstration, with commentary - below the video is a transcript with pictures in case, like me, you prefer text and images. (If you need background, the SID is the sound chip from the Commodore 64, it's a 3-oscillator synthesizer with many features; wave, envelope, pulse width, filters, ring modulation. I'm driving it here with a microcontroller and writing the software to turn this into a midi sound module / musical instrument.) I'd like to demonstrate a feature that I've just added, which I'm really pleased with. Today I've got a MIDI keyboard beside me, plugged into MIDISID using the DIN socket. Its output is audio and I've got that plugged into a portable speaker. I'll be using the polyphonic mode, which puts the same sound on all of the SID voices available and allows you to play up to (in this case with 2 sid...

#MIDISID Monday - the sound of goblins and first look at the form factor

Image
I've started to realise that the quality of the sounds that I build into MIDISID will have a large effect on its appeal. It will be fun to implement some of these: What should 'Goblin' sound like?? These aren't my names, they're part of the General MIDI specification , anything that implements GM should implement all 127 of these sounds in some way.  I've been away for most of this week  but while away,  the board I designed last week has arrived! As with the main board, this is a very quick and dirty iteration, just to get components off the breadboard and securely soldered together while I work on the firmware. This little demo of the menu system is the same as the one I made last week, but here we can see the 2-board system I now have planned. There will be a third layer which is a face plate just below the knobs with a cut-out for the screen. Those three boards could be sandwiched for a nice-looking unit, or separated to fit into any box you like. Alternati...

#MIDISID Monday #2 - A physical UI and menu system take shape

Image
This week has been mostly about the user interface; physical knobs, buttons and screen. I've procrastinated with this because, frankly, I've found designing a menu system hard.  3 modes So the starting point is that MIDISID will have three modes. I've demonstrated two of these many times already. One is general MIDI input, another is MIDI controller input (eg keyboard) with polyphony (hit as many notes at a time as you like, up to a maximum of the number of SID voices). The third is monophonic, which is the same as polyphonic, but making more of the SID's features and using more of the SID voices together to make complex sounds, at the expense of the polyphony. I'd like MIDISID to just work when powered up and given input. So the Mode menu will be the first menu at power-on and General MIDI will be selected and operational. Here's my plan for the menu system. There will be a lot more, but it'll still start with the 3 modes. Mode > General MIDI > D...

MIDISID Monday: When the Pico's 30 GPIO aren't enough

Image
This is the first of a weekly roundup of progress and problems with this project.  (An introduction is here if you need it.)  Two decent steps forward this week are arpeggios and GPIOs .  More GPIOs!  Being short on Pico GPIO pins felt wrong but I have been struggling.  First of all, of the theoretical ~30 on the RP2040, 'only' 26 are easily available to the user.  This project already uses quite a few for SID addressing and data.  We want to be able to add more SIDs in future and each SID requires a chip select.  There just aren't enough available for the push-switch rotary encoders that I'd like for this project. Playing with so many settings using a single knob with push switch is fiddly and would spoil what could be a useful and usable module.  Ideally, I'd love four knobs - to play with A/D/S/R at the same time, or filter/PWM  etc.    Picos are cheap, and the idea of using another to manage the inputs and the display did...

Implementing MIDI pitch bend signals into MIDISID

Image
I've long thought of MIDI as being 'stepped', locked into the 127 notes in semitone intervals.  I've been aware of pitch bend wheels on MIDI devices, but that has seemed like some dark art to me and a look at the documentation doesn't help to allay that opinion. Before the gory details, here's a short video showing MIDISID with pitchbend successfully implemented, first with MIDI input from Logic Pro and then with keyboard input (the only keyboard I have with a pitch wheel) The MIDI message is Ex where x is the channel. There follows (usually) two bytes, each supplying 7 bits of a 14-bit number, the 7 least significant bits first. When you have your 14-bit number, that'll be hex 2000 if the wheel is in the centre, going down to 0000 and up to hex 4000. I believe that this usually represents a tone each way (though there are other messages that can set the 'sensitivity' of the wheel). I procrastinated with this feature because this seemed way too scary...

More improvements to MIDISID and Music Box 2 rendered on dual SID

Image
This is my 'Music Box 2' tune again, this time with MIDISID doing its thing and receiving 6 channels of MIDI, rendering them using the 6 voices of 2 SIDs.  Recent improvements are that we now have pulse width modulation to improve some of the sound patches. The SID allows you to set the pulse width of a square wave, which changes the sound. But the real magic happens when you move that pulse width programmatically while the note is sounding. It's a part of the SID's very distinctive sound. And we've moved to a new version of the pcb. The pcb is still very early stages but here we get more components off the breadboard, notably the transistor output stage.

Getting kit drum sounds working on MIDISID

Image
This week I've been mostly working on the drum 'patches' within MIDISID.  This demo uses a single voice on a single SID. Some of that drum track is being lost because of the nature of general MIDI and MIDISID. Drums are usually on channel 10, MIDISID is designed to channel one MIDI channel to one voice, so we're limited to one note at a time. Mostly, this work has involved a lot of coding and debugging of wavetables and other types of table. This bug kept me busy for quite a while! But I've also spent some fun time designing the sound patches. Here is my tom sound in progress, playing the famous intro to Eastenders An important question has been whether I want to work hard to try to make the sounds as realistic as possible or to make a set of sounds that are in keeping with the distinctive SID chip's sound. I think the answer is that the SID is an analogue synthesizer and even if I try to make realistic sounds, it will definitely still have that character.  The ...

Getting polyphony working on MIDISID

Image
I have three modes in mind for MIDISID. One is the General MIDI mode I've been demonstrating, another is 'polyphonic', which uses the voices of the SIDs (in this case 2 sids for 6-note polyphony) to allow you to use the SID voices with any MIDI controller (such as a keyboard). Here I have my piano injecting MIDI into the MIDISID. It's very responsive, despite the fact that bluetooth and a USB-MIDI adaptor are involved. I am only messing around here to demonstrate the responsiveness (which is superb) and the 6-note polyphony. There are no amazing SID sound effects (yet). So far just some plain patches to simulate various keyboards.  I am able to change 'patch' using the controls on my piano, although those don't match up with the GM program numbers that I'm implementing in the MIDISID.

SID sound patches and vibrato

Image
Having established that I could turn voices on or off according to the MIDI information coming in, the next step is to shape those notes beyond just beeps. This isn't going to be a Roland SC55, but we can get quite a bit of the way there while retaining the characteristics of the SID chips. General MIDI specifies 128 sounds / sound effects and our MIDI input may instruct us to use any of those for a given channel.  Building some of those sounds will be fun - reverse cymbal, or synth drum for example. Some are going to sound very similar to each other. Automagic! Which sound is played for each channel will be automatic, at least in this 'MIDI' mode.   My program for C64 allows the user to map instrument to MIDI channel, but that's a pain to configure each time you use it, and a MIDI file usually contains the 'program' information. If you're using a DAW or scoring tool like Musescore, it's very easy to make sure that information is there. (the 'prog...

MIDISID - the idea and first steps

Image
I've long wanted to be able to use the SID (or multiple SIDs) as a MIDI instrument. ie MIDI in and sound from a real SID chip out. This would allow a controller such as a keyboard to play notes on the SID. Either with polyphony, or monophonic with multiple voices combined to produce complex sounds.  I've achieved this some time ago using a MIDI cart in the back of a C64 and my own code: Note that I'm using the sustain pedal on the piano and that I'm changing sounds by changing sounds on the piano (which sends control messages to my program). I'd also like to be able to experiment with sounds by turning knob(s) to adjust parameters. Again I've done this using a real C64 and MIDI cart, with a joystick-controlled interface. I've recently discovered MIDISlave Manager which does pretty much the same thing.  Lastly, if you use MIDI player software, and you have enough SID voices to cover the MIDI channels, you could have a SID-based hardware General MIDI module. ...