Another question: If I use an arranger workstation keyboard to put together a song, then edit it, I can then save it as a MIDI file. Can I then come back to that MIDI file later and fully and completely edit the file, or has some of the information the keyboard uses to allow editing been lost?
Well, even if the keyboard won't let you edit the song after you've converted it to a MIDI file and then loaded it back into the keyboard (I'm not sure whether it will or won't), you can certainly edit the MIDI file in a DAW program.
I think Gary/happyrat1 might be confusing the General MIDI Level 1 ("GM" or "GM1") and General MIDI Level 2 ("GM2") specifications with MIDI file formats??? There are three MIDI file formats-- type 0, type 1, and type 2-- but they don't have anything to do with the GM1 and GM2 specs; instead, they differ in the number of MIDI "tracks."
All MIDI files have a "header chunk" and at least one "track chunk." A type 0 file has only one track chunk but it contains the data for all of the MIDI channels. (It's common for people to refer to a MIDI channel as a "track," but they aren't the same things-- a MIDI track can contain data for multiple channels.) A type 1 file has two or more track chunks, typically with the data for each MIDI channel being stored in its own track chunk, hence all of the tracks are intended to be processed/played at the same time as each other. A type 2 file also has two or more track chunks, but each track is intended to be played by itself-- e.g., a type 2 file might contain a set of drum rhythms (one per track), or music loops (one per track), or songs (again, one per track), etc., such that a program could be told to play a given track for a while, then play a different track, then a different one, etc.-- thus, you aren't playing all of the tracks concurrently, but are instead selecting a single track to be played at any given time-- or at least, that's my understanding of how a type 2 file is used. From what I've read, type 2 MIDI files are said to be rarely used, or at least they're used much less frequently than type 0 and type 1 files are.
On the other hand, the GM1 and GM2 specs include (among other things) a list of standard "program numbers" for different instrument sounds, which people commonly refer to as "patches," although Yamaha calls them "voices" and Casio calls them "tones." The GM1 specs list 128 instrument sounds, each having a specific program number, with the intention that if a MIDI file uses only the GM1 instrument sounds then it can be played by any keyboard or DAW that includes the GM1 sound set-- which doesn't mean it will sound the same on all keyboards, since the GM1 specs don't actually stipulate how the programs are supposed to sound (e.g., the "Grand Piano" program might sound quite a bit different from one keyboard to the next). The GM2 specs list 256 different instrument sounds, with each one having specific Program Change and Bank Select numbers. A MIDI-capable keyboard doesn't have to include the GM1 or GM2 instrument sounds, but if the manufacturer identifies the keyboard as being GM1- and/or GM2-compatible then it must include the GM1 and/or GM2 sounds.
Anyway, when you record a song on a Yamaha keyboard the Bank Select (BS) and Program Change (PC) numbers will be saved so the keyboard will know which voice(s) to use when playing the song, and if you convert the song to a MIDI file then the BS and PC numbers will be written to the file. They can be for any voice that the keyboard is capable of playing, regardless of whether it's a GM1, GM2, XG, GS, or other type of voice. (XG is Yamaha's extension of the GM specs, whereas GS is Roland's extension.) If you want to play the MIDI file back on a keyboard other than the one it was created for, you might need to "revoice" the channels (change the BS and PC numbers used by the channels) to get the best sounds for the keyboard, otherwise if the keyboard doesn't have a voice for the specified BS/PC numbers it will pick some other voice instead and the song might not sound "right."
Also, the different manufacturers have their own System Exclusive (SysEx) messages, so a Yamaha keyboard might not recognize Roland's SysEx commands, and vice versa, therefore any SysEx commands in the file might need to be converted to an equivalent message that the keyboard can understand.
Anyway, you will
not lose any of your keyboard's non-GM voices when you convert the song to a MIDI file.
Edit: Corrected "RS" to "GS."