Talk:MIDI/Archive 2

Latest comment: 11 years ago by Dementia13 in topic compatible OS

Composition

It is not possible to compare MIDI files and mp3 files. They contain entierly different kind of data. Therefore, the last paragraph in this section should be deleted — Preceding unsigned comment added by 90.230.14.73 (talk) 17:03, 6 February 2012 (UTC)

Tend to agree here. MIDI files are not a lossy compression format, or an audio format in the strictest sense of the term. MIDI files are like electronic sheet music, and are played using a set of instruments stored on the computer. The article says "Small file sizes made MIDI files a popular way of sharing music on the Internet in the early to mid 1990s, before broadband connections made it practical to share files in the MP3 format. Many gopher, and later web, sites hosted directories of MIDI files created by fans, thus avoiding the copyright issues that would later plague other forms of online music sharing." This is broadly true, but it does risk giving the impression that MIDI files are actual recorded sounds in audio files, which they are not. On a more general note, the current version of the article has far too many unsourced statements, and needs a thorough cleanup.--♦IanMacM♦ (talk to me) 17:14, 6 February 2012 (UTC)
This has been reworded with added detail, so any confusion has hopefully been eliminated. It is now also referenced. The same statement appeared in another part of the article, and it has been deleted from there. This also has little to do with "Composition", so it will eventually be moved to some future "MIDI and computers" section. Dementia13 (talk) 03:28, 8 August 2012 (UTC)

compatible OS

it ll be nice to write that all desktop OS support midi and ONLY apple phone device support midi nothing for android or windows phone or blackberry !! — Preceding unsigned comment added by 88.175.66.16 (talk) 22:21, 30 April 2012 (UTC)

Best not to add that kind of statement, because it's so subject to change. Plus, mobile device support is such a small part of the overall subject. Dementia13 (talk) 03:32, 8 August 2012 (UTC)

This could simplify the article a mite

MIDI is basically audio's analog to SVG: they are both not bitmap formats. 68.173.113.106 (talk) 01:42, 26 June 2012 (UTC)

That is a rather poor metaphore. True, a wave file can be compared to a bitmap, but svg carries all information te generate a bitmap, whereas with midi you fundamentally miss the instrument samples. Perhaps mp3 would compare closer to svg, as it describes the components of the wave form.−Woodstone (talk) 07:55, 26 June 2012 (UTC)
No, it's simply wrong: MIDI is not audio, and it's not audio's analog to anything. It's a control signal, which shows where that idea breaks down: if MIDI is used to control stage lights, in what way is that analogous to anything to do with audio? Besides, when you try to define something in terms of what it is not, that's the opposite of simplifying. Dementia13 (talk) 04:12, 28 June 2012 (UTC)

Copy Edit request

Hi, all. This page is tagged as needing a copy edit, but I'm seeing a page with enough issues that a copy edit would be of limited usefulness. I'm thinking of doing a brief copy edit, but tagging it for other issues so that it can be made ready to for a good polishing later. Let me go through section-by-section and point out specific issues:

  • Overview: The primary functions of MIDI include communicating event messages about musical notation, pitch, velocity, control signals for parameters (such as volume, vibrato, audio panning, cues, and clock signals (to set and synchronize tempo) between multiple devices; these complete a signal chain and produce audible sound from a sound source.
An above reader complained about "big words", and being unable to understand the article. This is the kind of thing where, maybe if you work with MIDI every day this makes sense to you, but it's not reader-friendly. Hey, I work with MIDI every day, and that sentence makes my eyes glaze over. You could say, "You're the copy editor, that's what you're there for", and that's fair, but the problem is, there's not a single reference given for this whole paragraph. To do this right, I'd have to do the research, and rewrite the article from scratch. That's a big project- no, it's a new hobby. This needs referenced, and it needs to meet the Wikipedia standard of "plain English" style. Instead of simply throwing these technical terms around, this section needs to answer basic questions like, "Who does this and why? And why should I care?"
For users, MIDI enables a single player to sound as though they are playing two or more instruments simultaneously. Huh. That's all it does? That's the big deal? Yeah, that's a thing it does, but not so significant that it's the first thing a beginner needs to know about MIDI, yet it's right there up front in the "Overview". This could be replaced by two or three sentences worth of properly referenced material that details some of MIDI's prime functions. Dementia13 (talk) 04:52, 28 June 2012 (UTC)
Advantages->Portability: Not sure that wisegeek.com is a good source. It may be accurate, and I might actually have written that article, but anything there is going to be third-hand or worse. Sources are divided into what's called primary (did it/saw it), secondary (interviewed the people who did it and saw it), and tertiary (pieced together from a bunch of secondary sources). With so many good secondary sources around, it makes no sense to cite sites like wisegeek.com as authorities. Dementia13 (talk) 05:01, 28 June 2012 (UTC)
  • History: Up until that point, analog synthesizers could only play one note (or voice) at a time.
I tagged this. The Prophet 5 was not the first polyphonic synth, as this statement implies. Dementia13 (talk) 05:08, 28 June 2012 (UTC)
This section is long, and might be an article in itself. Eyes glazing again. Dementia13 (talk) 05:24, 28 June 2012 (UTC)
  • Applications: Sound modules, synths and samplers intended to be remotely controlled from a MIDI keyboard or sequencer, are a glaring omission. Dementia13 (talk) 00:28, 29 June 2012 (UTC)
  • Interfaces: The material's good enough, but again, not a reference to be found. There's a problem with the images; the text is not properly wrapping around them in my browser. A browser that many other readers use. Dementia13 (talk) 05:16, 28 June 2012 (UTC)
  • Controllers: Needs more references. Could use more mention of experimental controllers, and of exotic controllers like the Lemur. Fails to mention important controllers like sustain pedals, ribbons, pitch/mod wheels and aftertouch. If there's a separate article for controllers, and there should be, some content should be moved there. Dementia13 (talk) 05:24, 28 June 2012 (UTC)
  • Messages: Broken record. Just so you know, I've got some articles here of similar or shorter length, they cite anywhere from 100 to 200 references. Dementia13 (talk) 05:29, 28 June 2012 (UTC)
  • Composition: This is a good section, but the article seems to be written from the assumption that its readers understand that MIDI is not audio, so the phrasing is sometimes ambiguous. If anything, err on the side of overexplaining. Dementia13 (talk) 05:34, 28 June 2012 (UTC)
  • File Formats/Extensions: I'm not seeing any information on SysEx or SysEx files. GS and XG could be fleshed out with some specifics of what's added. Dementia13 (talk) 05:40, 28 June 2012 (UTC)
  • Alternative Transports/Beyond MIDI 1.0: These are the sections that are adequately referenced, but they duplicate a lot of the material from MIDI usage and applications. Dementia13 (talk) 05:54, 28 June 2012 (UTC)

I'll clean up what I can on this page, but I'm not going to do much with sections that I suspect will cease to exist in their present form. I'll start tomorrow, and it will take a few days. Dementia13 (talk) 05:54, 28 June 2012 (UTC)

We found the box with my copy of The MIDI Manual. That's a good reference for improving this article, but this subject is too big to tackle as anything but a back-burner project. A few things that I feel need discussed:

  • MIDI slop
  • Proprietary extensions like eMagic's AMT
  • Controversy over the suitability of USB for MIDI transmission
  • Turnkey workstations like the MUSE Receptor
  • Mixer control deserves more than a single-sentence mention under "Extensions"; if this is truly an extension, than it needs to be explained why this is so and how it came to be about, and in general the topic is big enough to warrant discussion in further detail
  • More detail can be given to the evolution of the DAW and the home recording studio, with mention of how MIDI relates to technologies such as samplers, ProTools, MIDI editor/librarians
  • SysEx is barely mentioned, SysEx dumps are not mentioned at all.
  • MIDI sample dumps
  • synchronization needs more mention
  • Historical technologies like MIDI editor/librarians
  • Notation and auto-accompaniment software

Dementia13 (talk) 14:28, 29 June 2012 (UTC)

I'm tagging this page as copyeditor reviewed; with so many issues in need of attention, a copy edit is not yet appropriate. I will continue to work on this page, but it won't all happen overnight. Dementia13 (talk) 23:07, 1 July 2012 (UTC)

New Outline

I think the article has to many sections. A better outline could be

  • Overview
  • Applications (Skip "advantages section")
  • Synthesizer control
  • Music performance editing and storage This sub-section describes MIDI and MIDI sequencers. The use of MIDI files etc (Probably sub-sub-sections is needed)
  • Other applications
  • History
  • Technical specification
  • Hardware interfaces (Connectors cables signal-levels etc)
  • Message structure (The logical contents of MIDI message. A C struct is good for the field size spec)
  • More technical description of SMF (relate this to the section above)
  • Extensions
  • Alternative hardware transport
I think that could be a good start, though I feel like there's a section or two missing. The article doesn't just need fewer sections, it needs the right sections, and it needs a lot of subsections. Keep in mind that each of the various possible subtopics has spawned an entire industry, and has in its own way changed the way music is made today. This is a huge subject, and the article needs to be longer, not shorter. If it's logically organized and clearly written, beefing it up won't make it hostile to the readers. It's too easy for any one person to miss an entire area of the subject, so I'm thinking that the best way to outline this is to gather a few references- comprehensive, textbook-level works- and compare these to see what main areas they have in common. Some subtopics may need spun off into separate articles.
I like your idea of eliminating the "advantages" section, though I don't think it should be removed, it needs to be improved and made into a subsection. As stands, it's trying to point out MIDI's advantages, when it has not yet been clearly explained what MIDI is or does! I don't like a separate section for "Alternative hardware transport", it should be a subsection of "Extensions". I'd put "Instrument control" ahead of "storage": MIDI is not a computer-first technology, it's a musical instrument technology that has been adopted for computer use. What do you mean by "Message structure (Write it in C?)"? MIDI messages are not written in the C language, if that's what you mean.Dementia13 (talk) 20:00, 12 July 2012 (UTC)
By write it in C I mean specifying the content of a message like
typedef struct tagMIDIMessage
{
uint8_t status;
uint8_t data_1;
uint8_t data_2;
} MIDIMessage_t;

and then describe each field of this struct.

By listing advantages or disadvantages makes the article less neutral. Therefor, there should be no section or subsection named advantages. Actually, one byte more in the message and we do not have to worry about padding in the C struct above.
I see what you mean about neutrality. I was looking at "advantages" from a historical standpoint, because the distinct advantages offered by the introduction of MIDI revolutionized the music industry. It could be called something else, so that it points out what MIDI made possible. Keep in mind that the MIDI "advantages" are not as compared to some competing technology, they're vs. "nothing at all". It's like saying "advantages of the Internet" vs. "no Internet". As for the "C" part, no. That might be from a C library that encapsulates MIDI messages, but it's not MIDI. MIDI is not a computer technology, and it's not written in a computer language. It's just one- (sometimes two)-byte binary messages, more like ASCII. Dementia13 (talk) 01:08, 27 July 2012 (UTC)
OK, "Advantages" already is a subsection. I like where it is, but it needs improved. The "Overview" is inadequate. Here's a way to push the existing structure into a smaller number of sections. It's still not necessarily the best layout, but it's improved, because it's easier to navigate and it's not so scattered. Right now, you've got "Applications", and ten sections later, "Other Applications". Haphazard.
  • 1 Overview
  • 1.1 Advantages
  • 2 Technical specifications
  • 2.1 The MIDI 1.0 specification
  • 2.1.1 Hardware Specification
  • 2.1.2 Messages
  • 2.2 MIDI 2.0
  • 2.2.1 Standard MIDI Files
  • 2.3 The General MIDI Specification
  • 2.3.1 GM Extensions
  • 3 History
  • 4 MIDI Devices
  • 4.1 Interfaces
  • 4.2 Controllers
  • 4.3 MIDI Instruments
  • 4.4 Other Devices
  • 5 Applications
  • 5.1 Standard applications
  • 5.2 Composition
  • 5.2.1 hardware sequencers & workstations
  • 5.3 Computer applications
  • 5.3.1 MIDI Sequencing Software
  • 5.3.2 Virtual Instruments
  • 5.3.3 File formats
  • 5.4 Other applications
  • 6 Extensions
  • 6.1 Alternative hardware transports
  • 6.1.1 USB
  • 6.1.2 XLR3
  • 6.1.3 Ethernet
  • 7 The Future of MIDI
  • 8 See also
  • 9 References
  • 10 External links

Still a lot of sections, but better organization. Maybe "Extensions" can go under "Technical Specifications"? Are "See also" and "External links" both necessary? Are they necessary at all? Dementia13 (talk) 20:36, 12 July 2012 (UTC)

The concept of "Standard applications" is bad because int not neutral.

Also I do not think a different cable implies a different protocol. I send MIDI 1.0 messages over UDP. Is downloading a MIDI file over http to be considered as an extension? A real extension is what latin-1 or UTF-8 is to ASCII. The original MIDI specification only use 7 bits per field. Allowing 8 bits would be the only real extention.

The catch is, MIDI is not just a software protocol, it also provided a strictly defined hardware interface. Any expansion of the available set of hardware interfaces could then be considered an extension. You may be thinking of MIDI as a computer technology, but it was not designed with computers in mind, it was designed for synthesizers, and would never have taken off if there were not a standard means for them to connect. As for the "http" part, that's comparing apples and oranges, because "downloading" is not "using" a MIDI file. What's non-neutral about "standard applications"? Would "common applications" be better? I think that there's a need to point out MIDI's practical applications in the "Overview" section, because it's one of the first things a casual reader would want to know. It's currently in a list format that isn't informative, it needs improvement in a big way. Also, please sign your messages, if only because it shows on what date the comment was made. Dementia13 (talk) 01:08, 27 July 2012 (UTC)
I rewrote the beginning of "Overview", to make it clearer that there are two sides to MIDI, and that it is not simply a software standard. Dementia13 (talk) 17:02, 27 July 2012 (UTC)

Most MIDI messages are three byte long and perfectly described by the struct above. All messages includes the status field, which tells what kind of message it is (and for some messages, which MIDI channel it is aimed at). However, there are a few messages that doesn't use the data fields. To be onest, I do not know if the specification tells that three bytes should be sent anyway or if the struct is truncated using the fact that status&0x80 always evaluates to true.

For the "Computer technology" part it can be hard to define what a computer is. As soon as the implementation contains a microcontroller it conains a computer because the microcontroller actually is a fully-functioning computer.

Speaking about the hardware interface again, different cabels does not imply icreased functionallity. It is not an extension to the power grid functionallity to use a BS 1363 plug (used in Brittain) rather than the Schuko CEE 7/7 plug (used in many countries). The thing here is that the grid provides 230 V AC and that is the functionallity not how my machine is connected. To me, it is clear that an extention should allow me to do more than I can without and chaning cable, there is still 16 MIDI channels. Using a computer network for MIDI messages is an encapsulation rather than an extension. Compared to the power plug, it is like a travellers adaptor. — Preceding unsigned comment added by 90.229.159.222 (talk) 11:24, 31 July 2012 (UTC)

That still misses the point on both counts. MIDI is not sent as part of a struct, it's a raw piece of binary code, like ASCII. If you give an ASCII value of "64", that stands for a certain character. In the same way, a MIDI value of "64" will send a certain note. You forget that this was developed in 1979-1981, and it was created by engineers who specialized in analog audio circuits, not by computer scientists. It's simpler than you make it out to be. You're trying to encapsulate it in a "C"-style struct, but that's not how synthesizers work. Synth microprocessors are programmed in assembler, BTW, and MIDI is not assembly code, which would have to be different for each model of chip. It doesn't work at such a low level.
You forgot that a C-style struct maps 1:1 to corresponding byte sequence (if we do not consider padding) and the MIDI specification gives the field names. By the way, it is for some messages more accurate to split the status field in two nibbles. To play note 64 on channel one in C
typedef struct tagMIDIMessage
{
uint8_t status;
uint8_t data_1;
uint8_t data_2;
} MIDIMessage_t;

void play(int velocity, int channel, void *midi_port)
{
MIDIMessage_t msg;
assert(sizeof(msg)==3);
msg.status=0x90|channel;
msg.data_1=64;
msg.data_2=velocity;
write(msg,midi_port);
}
And the device connected at address midi_port will play. The only thing C adds is stack managment so I do not have to worry about calling conventions, but that is outside context.
You're not describing MIDI itself. You're describing a particular piece of software that can send MIDI messages. That's a small piece of the picture, and it's far too minor and technical to deserve mention on this page, or further discussion here. If you like, you can start an article relating to computer-specific use of MIDI. MIDI itself is independent of this. MIDI was designed so a Prophet-5 could talk to a DX7. Computers were not even in the picture at that point, and stop trying to cloud the picture by broadening the definition of a "computer". Dementia13 (talk) 13:18, 1 August 2012 (UTC)
"A computer is a general purpose device that can be programmed to carry out a finite set of arithmetic or logical operations." To me, it is still a computer even if the logic is pre-programmed in ROM. That is, a computer is everything from a pocket calculator to huge supercomputers. At least a wavetable synthesizer fits somewhere in this range.
Also you think of computer languages as solely computer language. A computer language is a formal way of writing a recipe including definitions of measurement units. Instead of the very readable play function I could have said: Playing note 64 on channel x: Consider 24 bits. Let the first of these be a logical one. Set the next 2 to logical 0 ... until all bits has been described. Now the complete specification is gone. But if you rather like bit-level than message level, than it is fine.
It's not a matter of "I like". The thing has a definition, and that's not open to discussion. If you don't believe me, then go do the research and find out for yourself. Stop wasting my time. Dementia13 (talk) 17:40, 2 August 2012 (UTC)
As for the hardware part, you're focused too narrowly on the idea that MIDI is solely a software protocol, but its nature is dual. The example of UDP was given earlier, but that's comparing apples to oranges: MIDI is more analogous to Ethernet. Think of the 7-layer networking model: UDP resides on one layer, but the hardware is on another. The two parts are isolated from each other. MIDI would occupy two layers of that model, because the hardware connection is an essential part of the definition, and it's a bigger difference than having the correct adapter or not. Go to midi.org and look up the definitions, if you like. You do have somewhat of a point, but it would be incomplete and wrong to ignore that a specific hardware connection is part of the very definition of MIDI.
There are USB to PS/2 adaptors out there. I have also seen adaptors that makes it possible to connect the parallell port of old printers to USB. And as far as I know USB is a Universal SERIAL Bus which makes this thing more tricky. But the USB bus is powered so... I do not know if you concider a "powered adaptor" as an adaptor in the true sense.
At any rate, I haven't been working on this page for long, and I don't know that I'm in love with the whole "extensions" concept, but it's good enough for at least the time being. If the article fails to make clear the basic concept of what MIDI is and how it works, that's a more pressing issue. Dementia13 (talk) 23:48, 31 July 2012 (UTC)
Alternate hardware transport cannot be considered as a true extension. On the hardware side, the only extension availible is allowing longer cables and higher transfer rates which might imply the need of better shielding and better high-frequency connectors, which in turn probably will not be backward compatible and therefore not an extension rather a new standard. For the software part, any extension is availible as long as MIDI messages is small enogth to be transfered through the specified hardware. When sending MIDI messages over ethernet, the hardware part of the standard is not needed: just plug the sythesizer to the switch or router. The fact that we actually replaced the hardware completly means that it is not an extension in hardware (it is a completly new interface) and as long as we keep the format of a MIDI message, the software is the same.
I'll keep that in mind. Dementia13 (talk) 13:18, 1 August 2012 (UTC)
Aah you got it :-)