Music 5000 FPGA

for bbc micro/electron hardware, peripherals & programming issues (NOT emulators!)
User avatar
hoglet
Posts: 7990
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Music 5000 FPGA

Post by hoglet » Mon Feb 11, 2019 9:50 am

BrokenARM wrote:
Mon Feb 11, 2019 9:27 am
Not putting your design down at all, I like it, but part of me is actually starting to wonder that in my case it might actually be easier/similar in BOM cost simply to take the belt and braces approach and lay a new pcb out with the original discrete logic as most of them are very inexpensive and all of them, including compatible SRAM and adders, are still active bar the DAC (although some similar u-law DACs are still active). In 100% SMT (bar the DAC) the pcb would be a fraction of the original size.
Yes, I take your point about third-party boards becoming unavailable. This has already happened with the GOP and GODIL modules. But it's also the case that FPGA manufacturers can discontinue certain parts and packages. Xilinx have already done this with the XC9500 and XC9500XL series CPLD which are used in many projects here. It seems to be the hobbyist friendly packages that are most at risk.

Anyway, you are welcome to use as much or as little of my work as you choose. Good luck with whatever you decide.

I am still planning to pursue the idea of a general purpose 1MHz Bus project board, that would make use of the LX9 Core board. I just need to finish decorating the hall first!

Dave

BrokenARM
Posts: 31
Joined: Sat Jul 22, 2017 11:07 am
Location: UK
Contact:

Re: Music 5000 FPGA

Post by BrokenARM » Mon Feb 11, 2019 10:19 am

hoglet wrote:
Mon Feb 11, 2019 9:50 am
BrokenARM wrote:
Mon Feb 11, 2019 9:27 am
Not putting your design down at all, I like it, but part of me is actually starting to wonder that in my case it might actually be easier/similar in BOM cost simply to take the belt and braces approach and lay a new pcb out with the original discrete logic as most of them are very inexpensive and all of them, including compatible SRAM and adders, are still active bar the DAC (although some similar u-law DACs are still active). In 100% SMT (bar the DAC) the pcb would be a fraction of the original size.
Yes, I take your point about third-party boards becoming unavailable. This has already happened with the GOP and GODIL modules. But it's also the case that FPGA manufacturers can discontinue certain parts and packages. Xilinx have already done this with the XC9500 and XC9500XL series CPLD which are used in many projects here. It seems to be the hobbyist friendly packages that are most at risk.

Anyway, you are welcome to use as much or as little of my work as you choose. Good luck with whatever you decide.

I am still planning to pursue the idea of a general purpose 1MHz Bus project board, that would make use of the LX9 Core board. I just need to finish decorating the hall first!

Dave
You've reminded me, I very much wanted to thank you heartily for posting your superb wiki on your reverse engineering of the Music 5000 control interface - a sterling bit of work there.

I strongly suspect we are interested in this little wonder that Chris created from somewhat different angles...

I am very interested in Music 5000 as a stand-alone instrument/complex oscillator primarily to satisfy my endless quest in search of interesting/quirky/characterful vintage sound sources for my sound design. With this in light, although AMPLE is of interest to me (and especially if some kind soul could convert it to a more modern platform!) my ultimate goal is to drive the M5000 from midi directly via an embedded controller by implementing soft envelopes, pitch lookup table, note assigner and CC control of most of the registers so it can be patch programmed from something like a Stereoping box hence my question about uploading new wavetables on the fly (including geometrically generated waveforms). It may be that in practice the existing bus implementation is fast enough for this purpose without having to resort to a dual port SRAM arrangement.

My hope is that once I've written the code to drive the M5000 as a standalone box then I can share my controller design with anyone who is interested.

Please note, this is never likely to be a commercial product (and naturally I would never dream of doing so without Chris's prior permission) but I do have a number of friends in my field who would be very excited to have such a thing for sure in their studios having heard all the old AMPLE demos we've been working our way through of recent.... Moments in Time being my personal favorite to date! :)

https://soundcloud.com/hideaway-studio/ ... th/s-nS3Zo

Oh and BTW... I sent Jean-Michel, who is a friend, a link to Bernie Dawson's rendition of his own music in that playlist for grins & giggles! :mrgreen:
Last edited by BrokenARM on Mon Feb 11, 2019 10:20 am, edited 1 time in total.

User avatar
hoglet
Posts: 7990
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Music 5000 FPGA

Post by hoglet » Mon Feb 11, 2019 11:40 am

BrokenARM wrote:
Mon Feb 11, 2019 10:19 am
I am very interested in Music 5000 as a stand-alone instrument/complex oscillator primarily to satisfy my endless quest in search of interesting/quirky/characterful vintage sound sources for my sound design. With this in light, although AMPLE is of interest to me (and especially if some kind soul could convert it to a more modern platform!) my ultimate goal is to drive the M5000 from midi directly via an embedded controller by implementing soft envelopes, pitch lookup table, note assigner and CC control of most of the registers so it can be patch programmed from something like a Stereoping box hence my question about uploading new wavetables on the fly (including geometrically generated waveforms). It may be that in practice the existing bus implementation is fast enough for this purpose without having to resort to a dual port SRAM arrangement.
Right, I understand where you are coming from now.

It should be possible to replace the 1MHz bus interface with something that could be easily interfaced to a modern micro controller. It would be interesting to estimate what sort of update rate would be required. I suspect an SPI interface would be fast enough, especially if you implemented some kind of a block based protocol to make sequential writes more efficient.
i.e. you would send an 11-bit Wave RAM address, followed by one or more data bytes.

One thing that always surprised me about the original Music 5000 was that it is complement write-only. i.e. the AMPLE software is effectively running open loop, and is not in any way synchronised to the actual waveform synthesis.

Dave

BrokenARM
Posts: 31
Joined: Sat Jul 22, 2017 11:07 am
Location: UK
Contact:

Re: Music 5000 FPGA

Post by BrokenARM » Mon Feb 11, 2019 12:53 pm

I think that is because, rather like MIDI, broadly it doesn't need to be synchronised to the host in closed-loop fashion. One of the aspects of the architecture that has piqued my interest is that once suitable wavetables are loaded you only need to load registers to play them at the desired pitch but furthermore you can instigate phase modulation, ring modulation and sync with little processor intervention due to the way pairs of oscillators are used to modulate one another in hardware even including sub-audible frequency oscillators being used as vibrato and modulation effects. I have already demonstrated this to myself by hand loading the registers from the command line.

It is for this reason, partly based on previous embedded MIDI designs of mine, I think I could implement a basic controller for the M5000 in little more than a fat PIC under MIDI control with real time modulation parameters under CC control. This could be in the form of a little box any M5000 owner could plug their unit into.
Last edited by BrokenARM on Mon Feb 11, 2019 12:54 pm, edited 1 time in total.

User avatar
hoglet
Posts: 7990
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Music 5000 FPGA

Post by hoglet » Wed Mar 06, 2019 1:42 pm

Hi all,

Time for an update....

I've done a bit more work on the Music 5000 FPGA project over the last few weeks:

- I've fixed a bug in the reset behaviour that was pointed out to me by Dominic (dp11). The original Music 5000 hardware has a sneaky was to clear all the channel registers when reset is active, so the current sound is terminated. The FPGA version does this now as well.

- I've done some refactoring of the Music 5000 VHDL Core so it can be used by multiple targets: either stand along FPGA implementations, or BeebFPGA.

- I've parameterized the ID of the core, so it can be either a Music 5000 (id=3) or a Music 3000 (id=5).

- I've written a wrapper that includes a Music 5000, a Music 3000 and an SPI DAC interface:
https://github.com/hoglet67/Music5000/b ... SpiDac.vhd

The combined Music 5000/3000 has been tested with the version of Ample that supports it, using several of the AMPLE discs that Paul identified as containing arrangements that use the extra channels (link). They are definitely being used, and the compositions do sound a bit richer.

Finally, I've been working on a general purpose 1MHz Bus FPGA Adapter board:
Selection_010.png
Selection_011.png
This is designed for the eepizza LX9 Core board (£23) that we are using in other projects:
https://www.ebay.co.uk/itm/Xilinx-XC6SL ... 1640406811

One of the initial uses of the adapter board will be to support the Music 5000 FPGA implementation.

I'll post more about the adaptor board in a separate thread after lunch.

Dave

User avatar
pixelblip
Posts: 1096
Joined: Wed Feb 04, 2015 7:19 pm
Contact:

Re: Music 5000 FPGA

Post by pixelblip » Wed Mar 06, 2019 2:37 pm

Oh this is very interesting Dave.........
Sorry I don't want to highjack this thread..........
I wonder do you think somehow this could be hooked up to something other than a BBC micro......say a raspberry pi or something?

User avatar
hoglet
Posts: 7990
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Music 5000 FPGA

Post by hoglet » Wed Mar 06, 2019 2:43 pm

pixelblip wrote:
Wed Mar 06, 2019 2:37 pm
I wonder do you think somehow this could be hooked up to something other than a BBC micro......say a raspberry pi or something?
Not directly, as the 1MHz bus is 5V TTL.

You could design a similar adapter board for the Pi, but replace the level shifters and 1MHz Bus connector with Pi GPIO connector.

But what software would you then run on in Pi?

alex_farlie
Posts: 132
Joined: Sun Jul 07, 2013 9:46 pm
Contact:

Re: Music 5000 FPGA

Post by alex_farlie » Wed Mar 06, 2019 2:49 pm

hoglet wrote:
Wed Mar 06, 2019 2:43 pm
pixelblip wrote:
Wed Mar 06, 2019 2:37 pm
I wonder do you think somehow this could be hooked up to something other than a BBC micro......say a raspberry pi or something?
Not directly, as the 1MHz bus is 5V TTL.

You could design a similar adapter board for the Pi, but replace the level shifters and 1MHz Bus connector with Pi GPIO connector.

But what software would you then run on in Pi?
There are a few ARM based Forth for RISC OS, Someone could perhaps write a new AMPLE interface to access the GPIO. "In AD 50K there is only waveform..." :lol:

At one point someone had ported some of AMPLE for 26 bit RISC OS, but I don't have the link for that right now.

User avatar
pixelblip
Posts: 1096
Joined: Wed Feb 04, 2015 7:19 pm
Contact:

Re: Music 5000 FPGA

Post by pixelblip » Wed Mar 06, 2019 2:58 pm

It would be great to see this running on modern hardware....a dream come true!

User avatar
fordp
Posts: 1009
Joined: Sun Feb 12, 2012 9:08 pm
Location: Kent, England
Contact:

Re: Music 5000 FPGA

Post by fordp » Fri Mar 08, 2019 7:02 pm

hoglet wrote:
Wed Mar 06, 2019 2:43 pm
pixelblip wrote:
Wed Mar 06, 2019 2:37 pm
I wonder do you think somehow this could be hooked up to something other than a BBC micro......say a raspberry pi or something?
Not directly, as the 1MHz bus is 5V TTL.

You could design a similar adapter board for the Pi, but replace the level shifters and 1MHz Bus connector with Pi GPIO connector.

But what software would you then run on in Pi?
You could modify the HDL to add an SPI port on one of the PMOD connectors then it could hook up to a Pi.
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!

User avatar
pixelblip
Posts: 1096
Joined: Wed Feb 04, 2015 7:19 pm
Contact:

Re: Music 5000 FPGA

Post by pixelblip » Mon Apr 01, 2019 6:08 pm

Sorry Hoglet I forgot to reply to this.
Well ideally it would be super to be able to run Ample on a Raspberry pi with this interface. I guess that's a little out of the realms of possibility isn't it.....
I don't know why I'm so obsessed with Music 5000 but they are so hard to come by and rpis are so readily available that it would be a real dream come true to be able to see that working.

Post Reply