Working on MIDI in/out Module for Gadgeteer

If that’s the general midi chip, they usually lack any character. I haven’t heard this particular one, but I’ve heard enough GM soundsets to know they just about always stink for anything but prototyping and “hey, I made a sound”.

You know how people say “that sounds like ‘a midi’” or when you browse to a site and it plays friggin “wind beneath my wings” in the background? Yeah, that’s the typical GM on-chip sound set.

GM can, in theory, sound just fine, but no one puts the effort into it. Plus, it’s all stock sound. I worked in a music (instrument) store during highschool/college and got to try out just about everything.* GM sounds the same now as it did way the heck back then.

The MP3 parts are more interesting.

I’m not baised or anything :slight_smile:

Pete

Pete,

Digging that Ovation t-shirt. :slight_smile:

And I love the pic of your custom guitar…never knew you were a luthier as well. Truly a renaissance man, you are.

Thanks Pete.
You met nice people.

Sure those $20 chips probably don’t sound very fat and deep. A little better than goo’old OP3 ?
SID, at least the original one, sounded quite well. Its sound was very characteristic. It’s a pity that those chips are now collectors and almost un foundable or at expensive price.
I’ve heard that SammichSID does it quite well.

Back to MeeBlip, the specs (http://meeblip.com/what-is-meeblip/detailed-specifications/) says :

::slight_smile:
8+8 doesn’t make 16. 9 may be, but not more.

I still own very old hardware : Alpha Juno2, MT-32 and TX81Z. It’s been years I’ve got them out of their box :frowning:
Maybe playing a bit of code around MIDI and NetMF will get my fingers from one keyboard to the other…

[quote]Sure those $20 chips probably don’t sound very fat and deep. A little better than goo’old OP3 ?
SID, at least the original one, sounded quite well. Its sound was very characteristic. It’s a pity that those chips are now collectors and almost un foundable or at expensive price.[/quote]

The trick is to buy an old C64 and just…ummm…rescue the SID chip. I have a reasonable collection of them both rescued and new old stock. I also have a collection of open C64s. I love those old computers but there were so many of them around, a few more silent ones won’t hurt anything. At least that’s what I tell myself :slight_smile:

The OPL3, being an FM synthesizer, has some character you can unearth. Most GM sound sets are just bland samples. The Midibox FM is made out of OPL3 chips and has circuitry to make it do things the Soundblaster never did.

http://www.midibox.org/dokuwiki/doku.php?id=sammichfm

audio from a regular midibox FM: http://www.youtube.com/watch?v=iHqR0sk11jE

and, for grins, audio from a midibox SID. Amazing what you can do with just two SID chips and a PIC chip. (drums are the only thing not coming from SID)

8 + 8 can certainly make 16, albeit not as precisely with that analog circuitry doing the shift. I’m not sure how you figure 9. Can you elaborate, or are you talking subjective quality?

If you send the sample’s top 8 bits to one channel, and the bottom 8 bits to another channel, and then combine them in such a way that the top 8 is moved to the top of the signal, you can get 16. Like I said, though, with that analog logic in there, it’s probably not all that precise. Then again, you can make a pretty reasonable DAC using an R2R ladder.

Pete

Pete

If a single 8-bit DAC provide voltage in the range K*[0…255], the sum of 2 identical DAC would be K*[0…510], hence the 9 bits

To get 16 bits you would need to sum output of DAC 1 + output of DAC 2 * 256 :
K * [0…255] + 256 * K * [0.255] = K * [0…65525]

In the real world, it is unlikely that the linearity of both DAC would give you anything but a good result.

Thanks for the link

It looks like you have enough SID to make a SID Orchestra :smiley:

Any plan for a SID Gadgeteer module ?
Would be fun

DACs
I can’t disagree with your math. Does it look like, in the schematic, he’s doing something to bump that up? See attached - two lines coming from the two output channels of the DAC are going into those op amps. As best as I can figure (I’m new to this) it looks like he’s attenuating the second one before they get combined together.

In any case, I agree it’s not likely to be equivalent to true 16 bit DAC.

Gadgeteer SID Module
I’m planning on creating a fairly generic one which can also be used by Gadgeteer. To control a number of SIDs, you need an on-board processor (probably an AVR in my case. TBD). Communication protocol is the big question. MIDI is not flexible enough or fast enough, but something MIDI-like over SPI may be fine.

I’m specifically staying away from the MIDIbox implementation because they have too many restrictions around their licensing.

Pete

Pete

Your’re correct. I didn’t noticed the different values 1K and 274K…

Hi Pete,
I am reading your post here and on your blog. We have the same passion :slight_smile:
I am very interested by this MIDI module and by .net MF
I have tons of ideas and MIDI projects.
If you want to work with me on the software part, or if you need hard testing, I am here
Regards,
Dan

Video of the MIDI Module in Action:

Plus: minor synth pr0n.

Pete

@ Dan13

Cool, thanks. The current one I have requires such an ugly hardware hack that I’m not going to send it out beyond like Kerry.

The next set of modules should be coming soon. They’ll be more kit friendly and also not require the nasty wiring of the opto isolator :slight_smile:

I haven’t decided yet where to host the driver source. I’ll start another thread on that.

Pete

Nicely done, Pete. Can’t wait for the next version so I can get hold of one. :slight_smile:

Very cool, Pete. When do the CD’s hit the market?

Thanks guys.

@ ian lol. I have about as much talent as Justin Bieber, and none of his boyish looks :slight_smile:

@ devhammer the PCBs are in production and the shipment of parts from Mouser is already on its way. So, probably 2 weeks at most.

Pete

You had some latency with the midi soft thru?
why? it should be near 0ms
Is the timing stable enough to play midifiles with the GHI modules?

I want to create a midifile player + merging midi notes from midi in, with near 0ms latency.

Great progress! Reminded me to change my ring tone.

@ Dan13

I’ll measure it on my analyzer and let you know the actual latency.

Latency is to be expected. The protocol is slow enough that even in classic synthesizers, if you chain more than a few of them together using regular hardware Thru, the last one in the chain has very slight but audible delay. That’s actually a big part of why I built my MIDI thru box.

And, to be honest, NETMF is far slower than bare hardware. I’ve kept that part of the code reall trim, but I may need to investigate having it on its own thread (which brings up locking and other things I’ll need to consider on the serial port) as tying up the main thread means soft thru would choke. I’ll also need to make some changes here which will almost certainly add a little more latency: in order for thru to work correctly with Gadgeteer-generated messages, I’ll need to make sure that the entire 3 byte (or 2 in some cases) MIDI message was copied to out before I allow any new messages to come in. That may mean more than one read, although in practice, that rarely happens. That means rather than just blindly forward, I need to inspect and decode the first byte, decide how many bytes it should have to be a full message, and then make sure I copy that many over before handling any pending Gadgeteer-generated messages.

It’s actually something that should be implemented at as low a level as possible, since it’s simply copying input to output. In fact, most Arduino and similar drivers don’t bother with this complexity because native code is pretty quick. NETMF is awesome and very productive, but not signal-processing-fast on a 72 MHZ piece of hardware.

Of course, soft thru is an option. If your code is going to be really busy, simply disable it. Many smaller modules don’t include any thru port or option. In any case, it’s all totally usable as-is now, just need to make sure you’re not doing so much on the main thread.

I’ll need to do some more testing to see how much robustness I actually need to build in :slight_smile:

Pete

I’m looking to see what the complexity of playing a MIDI file will be like. I don’t have my head yet wrapped around how to handle things like multiple notes with different overlapping timings. It’s probably a tight loop, which would require some special handling to make work with thru and whatnot.

As to 0ms latency, you don’t even get that with pure hardware MIDI, so I’ll take the “near” with a grain of salt :wink:

In any case, I’m looking at it, but it’s not the highest priority on the module code.

This is why I need to get a repository set up, so people with ideas can help contribute :slight_smile:

Pete

The new PCBs just arrived from Seeed

Some anomalies, just like last time. In this run:
[ulist]No silk screen around the mounting holes
Despite several notes to them, they didn’t use the box I provided for the numbers, but instead crammed their tracking numbers around the silk screen on the back. Uuuuugly.[/ulist]

Not bad otherwise. I’ll assemble one this evening and see how it works.

Pete

PS: This time, I paid extra for blue resist and 100% e-test. I know blue isn’t an official G color :slight_smile:

Blue - looks nice!

I don’t think there is an official “G Color” for modules other than red for power. Isn’t black merely a “suggested color”? I would hate to have to give up purple…