Music 5000 FPGA

Arc/RPCs, peripherals, RISCOS operating system & ARM kit eg GP2x, BeagleBoard
User avatar
hoglet
Posts: 6083
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol

Re: Music 5000 FPGA

Postby hoglet » Wed Sep 23, 2015 10:20 am

Hi Tricky,
tricky wrote:What would need to be added to the co-pro board to support something like the Music 5000 Synthesiser

There are a few difficulties in doing this:

1. There is a very limited address range available on the Tube FEE0-FEFF I think. The Music 5000 hardware is expected to appear at FCxx and FDxx. That's just not possible through the tube connector. So software changes would be needed.

2. There would need to be an external SPI DAC, and a few (4 I think) signals to drive it.

I'd say this really needs to be a different board that plugs into the 1MHz bus not the tube.

Dave

User avatar
tricky
Posts: 1620
Joined: Tue Jun 21, 2011 8:25 am
Contact:

Re: Music 5000 FPGA

Postby tricky » Wed Sep 23, 2015 11:12 am

Sorry, my mistake, I confused the tube with the 1MHz bus.

User avatar
jgharston
Posts: 2475
Joined: Thu Sep 24, 2009 11:22 am
Location: Whitby/Sheffield

Re: Music 5000 FPGA

Postby jgharston » Wed Sep 23, 2015 11:58 am

A MIDI interface is very simple to build.

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.25
(C) Copyright J.G.Harston 1989,2005-2015
>_

RobC
Posts: 1469
Joined: Sat Sep 01, 2007 9:41 pm

Re: Music 5000 FPGA

Postby RobC » Wed Sep 23, 2015 5:03 pm

jgharston wrote:A MIDI interface is very simple to build.

I'll second that - and it works really well.

User avatar
qUE
Posts: 63
Joined: Tue Dec 16, 2014 11:39 pm
Location: Bristol
Contact:

Re: Music 5000 FPGA

Postby qUE » Thu Sep 24, 2015 10:13 am

Thinking about what you said about two DACs causing distortion. It might be the DACs output voltages at peak are causing the output signal to double and clipping. There's a method and it depends on the timing capability, I gather it must be one of the defacto standards since I've seen Acorn use it with VIDC, various other soundcard manufacturers use it and pro. music gear manufacturers use it;

You set the update timing of the DAC to samples per second * no. of channels and then run through the channels cyclically. Acorn also mentioned with VIDC something about needing a small silence between the channels otherwise they influenced eachother.

So 2 channels at 44100 would be 88200 samples per second with order of channels as 1,2,1,2,etc.
3 channels at 44100 would be 132300 samples per second with order as 1,2,3,1,2,3,etc.

Hopefully you get my drift. I only understand this from a software point of view rather than hardware side, so I may not be entirely accurate.

User avatar
CHRISJJ
Posts: 37
Joined: Sun Feb 02, 2014 1:34 am

Re: Music 5000 FPGA

Postby CHRISJJ » Tue Nov 15, 2016 12:01 pm

hoglet wrote:ChrisJJ, I'd really appreciate you looking over this and seeing if there is anything that seems incorrect, or that I have missed. The bit I was least sure about is the operation of the frequency modulation.

Sorry not to have seen this at the time. My feeback is now at https://github.com/hoglet67/Music5000/issues/1 .

User avatar
CHRISJJ
Posts: 37
Joined: Sun Feb 02, 2014 1:34 am

Re: Music 5000 FPGA

Postby CHRISJJ » Tue Nov 15, 2016 12:07 pm

Darzzr wrote:My understanding is that, when the modulate bit is set in the control byte for channel N, the sign bit of the generated waveform governs whether the primary or secondary parameter set is used for channel N+1 (or +2, from what Chris said?). Is that right?

That's correct. The modulation by channel n takes effect on channel n+2 % 16.

Darzzr wrote:Also, from the schematic, it looks very much as if the stereo chopper causes the left stereo channel to use the encoder output of the AM6070D and the right stereo channel to use the decoder. If that's right

That's correct.

Darzzr wrote:the waveforms from the left and right sides would be significantly different, even from the same waveform source. Is that correct?

No. There's a difference, but it is not significant.

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

Re: Music 5000 FPGA

Postby hoglet » Tue Nov 15, 2016 12:08 pm

CHRISJJ wrote:
hoglet wrote:ChrisJJ, I'd really appreciate you looking over this and seeing if there is anything that seems incorrect, or that I have missed. The bit I was least sure about is the operation of the frequency modulation.

Sorry not to have seen this at the time. My feeback is now at https://github.com/hoglet67/Music5000/issues/1 .

Thanks Chris, I've updated the wiki page with your suggestions.

User avatar
CHRISJJ
Posts: 37
Joined: Sun Feb 02, 2014 1:34 am

Re: Music 5000 FPGA

Postby CHRISJJ » Tue Nov 15, 2016 12:21 pm

qUE wrote:I gather it must be one of the defacto standards

I'd not heard of it being used prior to the Music 500. Which is not to say no such usage existed. If anyone finds record of one, I'd be interested to hear.

qUE wrote:since I've seen Acorn use it with VIDC

Acorn copied it from the Music 500 circuit. You may recall Archimedes pre-release info saying the machine had "an built-in Music 500". :-)

qUE wrote:Acorn also mentioned with VIDC something about needing a small silence between the channels otherwise they influenced eachother.

Acorn initially omitted that bit of the Music 500 implementation. In true Acorn style, they didn't understand it so assumed it was inessential, and then put the silicon to production with apparently no listening test. Hence the dire sound quality of the first Archimedes. Intermodulation distortion turned multi-channel sound to mush.

I later heard it and I pointed out to them the error. They told me they had corrected it in a future version. But I suspect they messed that up too, since the next Archimedes model I heard didn't sound much better.

If the quality of Archimedes 8-bit log sound ever did reach Music 500 level, I'd be interested to hear a recording.

User avatar
qUE
Posts: 63
Joined: Tue Dec 16, 2014 11:39 pm
Location: Bristol
Contact:

Re: Music 5000 FPGA

Postby qUE » Tue Nov 15, 2016 2:03 pm

CHRISJJ wrote:
qUE wrote:I gather it must be one of the defacto standards

I'd not heard of it being used prior to the Music 500. Which is not to say no such usage existed. If anyone finds record of one, I'd be interested to hear.


Ah last time I posted here was a while back, I did some research into what the actual term for it is. It's call TDM (Time Divison Multiplexing), it stems from the Telecom standards much like the (A/Mu/U-law) Log Companding. It's a pretty ancient standard.

CHRISJJ wrote:
qUE wrote:since I've seen Acorn use it with VIDC

Acorn copied it from the Music 500 circuit. You may recall Archimedes pre-release info saying the machine had "an built-in Music 500". :-)


I hadn't seen that advert :)

CHRISJJ wrote:
qUE wrote:Acorn also mentioned with VIDC something about needing a small silence between the channels otherwise they influenced eachother.

Acorn initially omitted that bit of the Music 500 implementation. In true Acorn style, they didn't understand it so assumed it was inessential, and then put the silicon to production with apparently no listening test. Hence the dire sound quality of the first Archimedes. Intermodulation distortion turned multi-channel sound to mush.

I later heard it and I pointed out to them the error. They told me they had corrected it in a future version. But I suspect they messed that up too, since the next Archimedes model I heard didn't sound much better.

If the quality of Archimedes 8-bit log sound ever did reach Music 500 level, I'd be interested to hear a recording.


Yeah, the sound isn't to professional standards, but then the Archimedes was somewhat production cost driven. I have an A3000 with the horrible LPF filter bypassed, I can post some samples of it if you wish (!Maestro is probably what Acorn wanted show off), although RISC OS's audio routines aren't exactly silent on the background noise. It's something I rectified in my Music Sequencer (amcs.3rdevent.net) although the Archimedes versions are just PoC and not the destination architecture for the system.

User avatar
lazarusr
Posts: 565
Joined: Thu Sep 10, 2015 8:56 pm
Location: London

Re: Music 5000 FPGA

Postby lazarusr » Sat Jun 17, 2017 7:23 pm

Managed to get this working on my Papilio One. It really is brilliant. Thanks Dave.

IMG_0180.jpg

One thing (one of the many things) I don't understand - why have you used a 23.7832 MHz clock when the original Music 5000 had a 12 MHz oscillator?

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

Re: Music 5000 FPGA

Postby hoglet » Sat Jun 17, 2017 7:41 pm

lazarusr wrote:One thing (one of the many things) I don't understand - why have you used a 23.7832 MHz clock when the original Music 5000 had a 12 MHz oscillator?

All of the Music 5000 stuff is running of clk6, which ideally should be exactly 6MHz.

The board I was using, the GODIL GOP, has a 49.152MHz oscillator, which isn't a nice multiple of 6MHz.

The best I could do was:
- use a DCM to multiply this by 15/31 (23.7823MHz) which is as near as I could get to 24MHz.
- use a counter to divide by 4

On a Papilio One, with a 32MHz oscillator, you should be able to get exactly 6MHz.

What sort of DAC are you using?

Dave

User avatar
lazarusr
Posts: 565
Joined: Thu Sep 10, 2015 8:56 pm
Location: London

Re: Music 5000 FPGA

Postby lazarusr » Sat Jun 17, 2017 7:57 pm

OK. Yes, it sounds a bit closer to the original with the precise clock.

I am using the same MCP4822 you used.

User avatar
BigEd
Posts: 1247
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Music 5000 FPGA

Postby BigEd » Sat Jun 17, 2017 8:27 pm

hoglet wrote:The best I could do was:
- use a DCM to multiply this by 15/31 (23.7823MHz) which is as near as I could get to 24MHz.
- use a counter to divide by 4

(Hmm, so 6 = 49.152 * 125/1024 but the spartan 3 clock gadgets only support multipliers and divisors up to 32. But it looks like you are allowed to cascade two DCMs. Otherwise, perhaps you could you export a 25/32 clock, re-import and scale by 5/32? Or use direct digital synthesis, as described here?)

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

Re: Music 5000 FPGA

Postby hoglet » Sat Jun 17, 2017 9:07 pm

Hi Ed,
BigEd wrote:But it looks like you are allowed to cascade two DCMs.

Agreed this is possible, but I don't believe it's actually recommended when using the CLKFX (DFS) output of the first DCM, because this can have sufficient jitter to prevent the second DCM from locking. How much jitters depends on the multiplier and divider settings of the first DCM:
https://www.xilinx.com/support/document ... df#page=59

That said, the only time I've actually had problems getting a DCM to stay locked was when I tried to drive one from Phi2 on the Beeb. It definitely didn't like the 1MHz slow down.

Dave

User avatar
BigEd
Posts: 1247
Joined: Sun Jan 24, 2010 10:24 am
Location: West
Contact:

Re: Music 5000 FPGA

Postby BigEd » Sat Jun 17, 2017 9:12 pm

Yes, it's evidently something to do with care and only when necessary. But I think your frequency is 1% off, which is I think noticeable to a musician.

I did see a note that the second DCM should have the reset input fed by the LOCK output of the first.

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

Re: Music 5000 FPGA

Postby hoglet » Sat Jun 17, 2017 9:20 pm

BigEd wrote:But I think your frequency is 1% off, which is I think noticeable to a musician.

I will give this a try I think.

I do need to update this design anyway, as I recently found a much more straightforward way of including DCMs than using Xilinx's Core Gen "DCM Wizard" thingy. You can just instantiate them directly:
https://github.com/hoglet67/opc/blob/co ... opro.v#L85

I did find one place I have used cascaded DCMs, so you are right it can work:
https://github.com/hoglet67/AtomVGAWing ... g.vhd#L179

Dave

jonb
Posts: 1860
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Music 5000 FPGA

Postby jonb » Sun Jun 18, 2017 7:22 am

I've only just got my hands on a 5000. Haven't had time to even connect it when I stumble cross this thread.

Kicking myself now!

Nice one Dave!

User avatar
Elminster
Posts: 1376
Joined: Wed Jun 20, 2012 8:09 am
Location: Essex, UK

Re: Music 5000 FPGA

Postby Elminster » Sun Jun 18, 2017 8:18 am

I can kick you in a week or so if you like :evil:

Looks like something to add to the diy part of the hardware list.

jonb
Posts: 1860
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Music 5000 FPGA

Postby jonb » Sun Jun 18, 2017 5:11 pm

Elminster wrote:I can kick you in a week or so if you like :evil:


No ta... :D

I'm going to be pretty shattered anyway. Just found ANOTHER defect with my car, so I have to swing by the garage on the way to yours. Probably have to borrow one of their old bangers :(

User avatar
Elminster
Posts: 1376
Joined: Wed Jun 20, 2012 8:09 am
Location: Essex, UK

Re: Music 5000 FPGA

Postby Elminster » Sun Jun 18, 2017 5:18 pm

jonb wrote:
Elminster wrote:I can kick you in a week or so if you like :evil:


No ta... :D

I'm going to be pretty shattered anyway. Just found ANOTHER defect with my car, so I have to swing by the garage on the way to yours. Probably have to borrow one of their old bangers :(


Pick up a sinclear c5 for that extra retro flare

jonb
Posts: 1860
Joined: Sat May 21, 2011 12:42 pm
Location: South Coast of England

Re: Music 5000 FPGA

Postby jonb » Mon Jun 19, 2017 8:52 am

Elminster wrote:Pick up a Sinclair C5 for that extra retro flare


No, ta... :D

(There's an echo in here!)

I used to have one BITD. Useless thing. Ended up selling it to a "retro collector" for a sizeable chunk of cash, so it panned out well in the end. :lol:

User avatar
lazarusr
Posts: 565
Joined: Thu Sep 10, 2015 8:56 pm
Location: London

Re: Music 5000 FPGA

Postby lazarusr » Wed Jun 21, 2017 6:09 pm

lazarusr wrote:Managed to get this working on my Papilio One.

OK, don't try this at home. The Papilio One is not 5V tolerant so you could damage it. Luckily, mine seems OK.


Return to “hardware”

Who is online

Users browsing this forum: No registered users and 2 guests