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.
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.
I still own very old hardware : Alpha Juno2, MT-32 and TX81Z. It’s been years I’ve got them out of their box
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
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.
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.
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.
Hi Pete,
I am reading your post here and on your blog. We have the same passion
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
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
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
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
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
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…