Blog

  • Blips and bleeps

    I’ve used Spotify links here for convenience. Not everyone likes Spotify. Don’t worry, these tracks are available pretty much everywhere.

    So, it’s been a long time since I updated this site. And I’ve been doing things. Music things.

    I started making music many years ago but as time went on it fizzled out. Real life got in the way.

    Space Voice

    I didn’t give up entirely, though. Once in a blue moon I’d still write a new track. I used a few of them as background music for my YouTube videos.

    Then, in 2015 I made one called Space Voice which got a bit out of hand and ended up at nearly 8 minutes long. I thought, let’s see what happens if I put it out there. So I released Space Voice as a single. It got a few listens, and a couple of friends liked it.

    Shades

    Two years later I was experimenting with some animations on YouTube and made a soundtrack for one of them. It was a bit bass-heavy and weird – honestly, a bit muddy – but the fact I wrote it specifically to put online led me towards making it another single. This was Shades.

    Then, during 2020, everyone at work decided to set ourselves a task to do during lockdown. I set myself the task of making a new EP.

    The Night Wall

    To cut a long story short, I did it. This became The Night Wall. I even got a friend to collaborate on one track: Back in the Box featured KURLY on vocals and guitar, and he did a great job.

    This made me think, why did I stop making music like I used to? I used to be making new stuff non-stop. Is it just a matter of getting older? Or perhaps just too many distractions? What if I disciplined myself to work on music regularly? What if I streamed work on music so people would expect me to do it regularly?

    To my surprise, the rusty gears started to turn again and ideas started to come. I started work on a second EP.

    From the Sky Down

    After a few weeks I had enough tracks for that EP. I didn’t feel like stopping, though, and kept going. The EP became an album: From The Sky Down. It included noises made my home-made synth, SoundMaker, and I revised two tracks from The Night Wall with new vocals1. I hired AlexArtMe to do the cover art, and her design led me to restructure the track listing into a loose concept album. I’ll talk about that another time.

    Life as a Passenger

    At this point I’d got the attention of one or two people online. In particular, Project Dits was (and is) my first big fan. He promoted the album on his streams and was very encouraging for me to continue.

    I began work on another album soon after, and after some months, Life as a Passenger was complete. This included the track Gordon’s Theory, which featured guest appearances from John Panettiere, Project Dits, Aisha Anime, KURLY, Chris McAuley and Elfie Oakwood.

    Someone Like You

    AlexArtMe, as usual, provided the cover art, depicting Gordon as a dragon surrounded by his theories.

    In 2024, I released a third album, Someone Like You, in which I remade and extended one of my earliest music tracks from about 1992, Stratosphere.

    Towards the end of the year, a fourth album came along, The Telescope, once more including a remake of one of my old Amiga tracks, in this case Universe.

    The Telescope

    That brings us up to 2025, and I’m part-way through making a fifth. You can see how it’s coming along most Sundays at 2pm UK time on Twitch.

    1. I can’t stand the sound of my own vocals. I don’t know why I keep letting myself get persuaded to do it. I much prefer hiring other people or using SynthV. ↩︎
  • Beech: a BBC Micro emulator (v0.3)

    Beech: a BBC Micro emulator (v0.3)

    Yes, Beech can run Elite
    Yes, Beech can run Elite

    Beech is a BBC Micro emulator. It emulates a Model B with 8271 DFS, and also supports the Music 500/5000 synthesizer.

    The program is licensed under the GPL v2.

    Requirements

    Beech is currently Windows-only, and requires at least Windows 7.

    Before running Beech, you’ll need to find the following ROM images and place them in the roms directory:-

      • os12.rom
      • basic2.rom
      • dfs.rom or wdfs.rom (optional, if you want to use disks; either the Acorn or Watford DFS will do)
      • ample.rom (optional, if you want to use the Music 5000)

    Downloads

    Please note that none of these downloads include ROMs, disks, tapes, or snapshots.

    As well as Beech itself, you might need the Visual C++ 2013 Redistributable too. If Beech complains of missing DLLs, just download the appropriate redistributable from here and run it. Alternatively, if you prefer, you can get them direct from Microsoft.

    Windows 32-bit binary: Beech-x86.zip
    Windows 64-bit binary: Beech-x64.zip
    Source code: Beech-src.zip
    Visual C++ 2013 Redistributable for Windows 32-bit: vcredist_x86.zip
    Visual C++ 2013 Redistributable for Windows 64-bit: vcredist_x64.zip

    How to use

    At this point, Beech is still in a relatively early state and there are some known issues (see below). However, the vast majority of software works fine. If you do find anything that doesn’t work correctly, do let me know. Supported file formats are:
    Disks: SSD and DSD
    Tapes: UEF
    Snapshots: UEF (broadly compatible with BeebEm)

    When the emulator starts, it will be in a paused state. To start it, click on the “Go Live” checkbox, then click on the screen display so it will receive keyboard input. (You can tell if the emulated machine has keyboard focus from the border colour. If it’s light, it has focus.) By default, the PC keyboard layout will be used, which should make typing more natural. If you are playing games, however, you’ll probably want to uncheck “PC Keyboard Mapping” so the layout matches the real BBC more closely. In either case, the Break key is assigned to both F11 and F12, and Copy is Home.

    The other checkboxes work as follows: “Go Max Speed” makes the emulator run as fast as it can; “Audio” enables audio; “Hear Tape” lets you hear the tape input; “Flashload” speeds up tape loading considerably; “Show Debug Info” opens a side panel with some debugging facilities. Hopefully, everything else is self-explanatory.

    If you have a joystick or game controller plugged in, it should be automatically detected, and you can use it in games with joystick support.

    How to build

    The prerequisites are zlib and PortAudio. PortAudio needs to be placed in “Beech/Beech/portaudio”, and built with MSVC according to the instructions on its site.

    Once that’s done, you can build Beech from the Visual Studio solution file in its root directory.

    Notes on the Music 500/5000

    While the AMPLE ROM is sufficient for the Music 5000, if you want to use the 500, you’ll need to use the interpreter on its system disk instead. Note that the two versions of the language are not compatible: songs for the disk AMPLE will not play on the ROM version and vice versa.

    Here’s a quick start guide for each version.

    Music 500 Start the AMPLE interpreter with *AMPLE (or, if you have the 5000 ROM installed, use */AMPLE instead to force the disk version to load). If you want to play the song called SONG, just type

    "SONG" LOAD RUN

    and press Return, and it should start. If it produces an error instead, either the disk is missing some extra modules the song needs, or it’s a 5000 program, or possibly it’s just a bad file. Some disks have a MENU file you can load the same way.

    Beech plays the blues
    Beech plays the blues
    Music 5000 I’ve found that, although many 5000 disks have a !BOOT file, they don’t have the boot option set. If that’s the case, don’t ignore the !BOOT file because it’ll probably preload modules the music files will need. Either *OPT 4,3 and Shift+Break, or just *EXEC !BOOT manually. This should bring you into a menu system. From here you can load a song/program and play it just by selecting the appropriate options.

    Some disks have a JUKEBOX program which lets you choose songs from a menu.

     

    For more information on the Music System, some good sites are:-

    Known bugs

      • Very occasionally the shift keys seem to stick and won’t produce shifted characters. You can toggle the “PC Keyboard Mapping” checkbox to clear this.
      • Sound in general is slightly choppy. I need to use more precise timing code.
      • The Music 500/5000 synth outputs mono instead of stereo (easy to fix, I just haven’t got around to it).
      • The 500’s “SYNCRON” program sounds different from a recording of the real unit. Not sure why.
      • The teletext character rounding is wrong on the lowest scanline of each character. This is most noticeable with descenders and double-height.
      • Watch Impact’s demo mode. The ball falls through the bat!
      • Firetrack’s in-game screen flickers like crazy.

    Things I’m thinking of adding

      • Better GUI (including fullscreen mode).
      • UI for configuring ROMs and sideways RAM.
      • Undocumented 6502 opcodes.
      • Tape writing.
      • Snapshot saving. (Would need a new UEF chunk type for the Music 5000’s internal RAM. Not sure who allocates chunk IDs.)
      • 1770 disk support, and therefore ADFS.
      • Internally it’d be pretty easy to add extra modules for the B+, Master and even Electron. It’d be very nice to have the BBC and Electron in one emulator.
      • Instant tape loading. This is very tricky because of the way the OS uses interrupts to receive each byte from the serial system. It’s not just a matter of hooking a single ROM routine as it is on, for example, the Spectrum.