How does a MIDI file know what sound to play?

Support and feedback for Acoustica's Mixcraft audio mixing software.

Moderators: Acoustica Greg, Acoustica Eric, Acoustica Dan, rsaintjohn

Post Reply
Albee
Posts: 7
Joined: Tue Jun 07, 2016 7:04 am

How does a MIDI file know what sound to play?

Post by Albee »

When I find a MIDI song on the web and open it in Mixcraft, it separates into different tracks. How does Mixcraft know what sounds (what VST instrument) to play for each of those tracks? How is that information stored? Please explain like I'm a noob at music and software, because I am. :-)

Since I'm an amateur, I need help with ideas and good sounds - MIDI files are perfect, I can discover such wonderful sounds that way. But I don't know how they are making those sounds. When I click "Change Instrument" (the piano keys button), there's nothing selected. So I don't know which VST instrument was used to make that particular sound, so I can't easily reproduce it. If I'm lucky, the track might be labeled "Elec Piano", which makes it obvious. But other MIDI files don't label anything, and I really have no clue at all how I might begin to reproduce a particular sound that I'm hearing in the MIDI file that I really like.

I hope someone can explain these "magical" little MIDI files to me and how it all works. I'm rather amazed at the various sounds I hear across all the MIDI tracks, and with no VST instrument visibly selected! How is that happening? The bass in one MIDI file can sound completely different from the bass in the next one. So it's not just using some "stock" bass sound, it's almost as if the MIDI file contains the entire modeling of the bass frequencies, if that makes any sense. If MIDI files were just using a "standard palette" of sounds, all the basses in MIDI files should sound the same, right? But they don't. Same with drum sounds. Same with every track! How? -Albee

Edit: The only instrument that doesn't seem to be able to be "realistically" reproduced is guitar. Guitar lines always sounds very "cheesy" in MIDI files (very cheap, very fake), but every other instrument sounds terrific. I guess this would be a second question from me - why do MIDI files sound so amazing, unless there is a guitar line in them, and then they sound so cheap and fake and bad? Of course, I can take that track and change to one of Mixcraft's VST instruments, and then it sounds much better... but the point is - if a tiny MIDI file can play such amazingly full and complex songs, why can't they play guitar tracks the same way? The whole subject is baffling to me, so I hope someone can explain how MIDI files work and how they do what they do when I open them in Mixcraft.
User avatar
Rolling Estonian
Posts: 2055
Joined: Sun Jan 11, 2015 9:42 am
Location: MD/DC

Re: How does a MIDI file know what sound to play?

Post by Rolling Estonian »

Hi there and welcome to the forum!

Without blathering on, here's an intro tutorial done by SOS. It's a pretty old article but should answer your questions, and if not, you'll find that the folks here are more than willing to help.

http://www.soundonsound.com/sos/1995_ar ... sics1.html

M
User avatar
fredfish
Posts: 1365
Joined: Sun May 23, 2010 12:57 pm
Location: Colchester, Essex, UK

Re: How does a MIDI file know what sound to play?

Post by fredfish »

When the file has loaded in to mixcraft and if the instrument isnt named do the following (This happens if the writer of the MIDI file hasn't embedded the name of the instrument):

Click on the piano icon as if you were going to change the instrument
In the Instrument track box that comes up click on "Show Details"
You should now see a table that shows the Synth being used (If it is a bog standard MIDI file this will likely be Acoustica Instruments).
You should also see "Preset" - this is the midi Instrument being used for that track.

I completly agree that some instruments are more effective than others. You can of course substitute any good instruments that you find for those that you dont like.

I hope this helps.

Oh - Welcome to the forum.

Cheers

John
Tiasdad
Posts: 614
Joined: Fri Apr 12, 2013 5:29 pm
Location: Tamworth, UK

Re: How does a MIDI file know what sound to play?

Post by Tiasdad »

Hi & welcome to the forum.

Midi is a whole new world which can take quite a while to get your head round .. I still have trouble.

I have uploaded a copy of the book I use when stuck. It's well worth a read

.. The MIDI Manual
Gary
“Without deviation from the norm, progress is not possible.” ― Frank Zappa
My Soundcloud
User avatar
Mark Bliss
Posts: 7313
Joined: Fri Jan 20, 2012 3:59 pm
Location: Out there

Re: How does a MIDI file know what sound to play?

Post by Mark Bliss »

Another hello and welcome.

Both are great resources. My favorite part of the SOS article- (and if I have to bend the truth occasionally to keep things simple, it won't do you any lasting damage!). 8)

I recommend studying the provided info, but let me jump to a comment that might get quickly lost in the fray.-

Based on your question, I think the sounds played when you add a generic MIDI file are what is known as General MIDI (GM). This "library" is a standard set of sounds found within every computer. The MIDI data says use piano, it uses GM piano. Etc.
You will probably find GM sounds to be a bit flat, blah, lacking much interest or character. Some arent too bad, others sound like a toy synthesizer...... or worse. (Maybe just IMO.)

This is where virtual instruments, samplers, libraries and such come in, since you can use that MIDI data to operate anything from that GM sound, to triggering a quality recorded sample of a real instrument. (I sense another pending computer upgrade folks......)
Try loading a GM piano arrangement and replacing the instrument with a quality sampled Piano such as Pianissimo if you have it. Big difference.

The other part of the question, identifying what the intended GM sound is, I am honestly not sure, gonna have to research that. But in general, if it sounds like its supposed to be a piccolo, try a piccolo. Many of the sounds included in Mixcraft are pretty good. Or at least a good step up from GM. :wink:

In my journey so far in learning about this stuff, I have found that the truth about MIDI is that its such a simple based thing yet so ridiculously complex its mind boggling. I would suggest not getting hung up on any more of the technical side than necessary to do what you want, and focus on finding "front ends" (Software, instruments) that suit your needs and methods. My theory is that a good "front end" removes the need to get so geeky about the technical details.
Well I try to tell myself that anyway........ 8)
Stay in tune, Mark

My SOUNDCLOUD Page
Albee
Posts: 7
Joined: Tue Jun 07, 2016 7:04 am

Re: How does a MIDI file know what sound to play?

Post by Albee »

Mark Bliss wrote:Based on your question, I think the sounds played when you add a generic MIDI file are what is known as General MIDI (GM). This "library" is a standard set of sounds found within every computer. The MIDI data says use piano, it uses GM piano. Etc.

The other part of the question, identifying what the intended GM sound is, I am honestly not sure, gonna have to research that. But in general, if it sounds like its supposed to be a piccolo, try a piccolo. Many of the sounds included in Mixcraft are pretty good. Or at least a good step up from GM.
Thanks to all for the replies, and hello to everybody, I decided it was time to ask some questions instead of just floundering. So here I am. :)

Yes, this seems to be the answer - "The Midi Manual" (tyvm for that, Gary!) on page 238 shows the General MIDI "patch map", there are 128 for non-percussion, and they have very familiar-sounding names. Are these 128 "GM" sounds are available in Mixcraft somewhere, somehow? Via a preset? Perhaps they all are in the preset list already?

EDIT: Answer to last question is "YES" and I just found them, thanks to John's post which I'll quote below. It turns out the "Acoustic Instruments" Presets 0:0 thru 0:127 correspond precisely to the 128 GM sounds, which is why I typed "familiar-sounding names" in my post earlier. :) Now we're getting somewhere, so thanks to all of you for the help!
fredfish wrote:When the file has loaded in to mixcraft and if the instrument isnt named do the following (This happens if the writer of the MIDI file hasn't embedded the name of the instrument):

Click on the piano icon as if you were going to change the instrument
In the Instrument track box that comes up click on "Show Details"
You should now see a table that shows the Synth being used (If it is a bog standard MIDI file this will likely be Acoustica Instruments).
You should also see "Preset" - this is the midi Instrument being used for that track.
That brings to mind yet another question - is this list of Presets editable by the user? Or since they are "Acoustica Instruments", I suppose we wouldn't want to touch those. But perhaps we can add our own somehow? I have presets going from 0:0 all the way up to 128:48, perhaps 300 or 400 total presets. Where did they all come from I wonder? Acoustica?

And on a somewhat related note... perhaps getting off-topic, but is there a way to organize my list of VST instruments somehow? Break my list into more manageable categories, for easier browsing? I collect a lot of freeware VST instruments, and can't ever seem to navigate the VST maze to find the sound I'm hearing in my head since I have to scroll down a very long list of names, with no descriptions for most of them. Is this a common problem, and are there any suggestions? Thanks!
User avatar
fredfish
Posts: 1365
Joined: Sun May 23, 2010 12:57 pm
Location: Colchester, Essex, UK

Re: How does a MIDI file know what sound to play?

Post by fredfish »

Albee wrote:
That brings to mind yet another question - is this list of Presets editable by the user? Or since they are "Acoustica Instruments", I suppose we wouldn't want to touch those. But perhaps we can add our own somehow? I have presets going from 0:0 all the way up to 128:48, perhaps 300 or 400 total presets. Where did they all come from I wonder? Acoustica?

And on a somewhat related note... perhaps getting off-topic, but is there a way to organize my list of VST instruments somehow? Break my list into more manageable categories, for easier browsing? I collect a lot of freeware VST instruments, and can't ever seem to navigate the VST maze to find the sound I'm hearing in my head since I have to scroll down a very long list of names, with no descriptions for most of them. Is this a common problem, and are there any suggestions? Thanks!
As I think you have worked out yourself the presets in the Acoustica Instruments "Synth" are in fact Acousticas interpretation of the GM MIDI set of instruments and as such cant be edited. Other Synths however can have your own presets stored and these would show up in their corresponding list of presets.

As for your second question - go to the file menu, select "Manage Plug-ins" and have a bit of a play.

Also in the vst selection box you can just start typing the name of a vst or a preset in the search box and it will come up.

Cheers

John
Post Reply