HN Theater @HNTheaterMonth

The best talks and videos of Hacker News.

Hacker News Comments on
Feross Aboukhadijeh, The Lost Art of MIDI – Bringing bgsound Back to the Web

JSConf Colombia · Youtube · 4 HN points · 1 HN comments
HN Theater has aggregated all Hacker News stories and comments that mention JSConf Colombia's video "Feross Aboukhadijeh, The Lost Art of MIDI – Bringing bgsound Back to the Web".
Youtube Summary
In the days of Geocities and Angelfire, a quirky HTML tag called bgsound enabled sound files to play in the background of webpages. Usually, these files were in the MIDI format. What a glorious era that was! Sadly, bgsound has been removed from browsers and MIDI is obscure and hard to play back. In this talk, we'll bring MIDI and bgsound back from the dead using WebAssembly, Emscripten, Web Audio, and Web Components. When we're finished, you'll be able to give your webpages the 90's treatment in a modern, standards-compliant way!
HN Theater Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this video.
Mar 27, 2019 · feross on MIDI Maze
Wow, MIDI continues to show up in so many places! I recently gave a talk about how to reincarnate the <bgsound> HTML tag with MIDI support and included a huge list of surprising ways that MIDI is used, but I'll have to add MIDI Maze to the list! https://youtu.be/BmfDMylKo5I?t=624
romwell
>MIDI continues to show up in so many places

It always surprises me when people say that :)

The thing is, background MIDI on web pages was sort of an accidental quirk in the history of the protocol. Its primary function has always been its face value; it's literally in the name: Musical Instrument Digital Interface. And that's where MIDI has dominated since its introduction in the 80's.

Which, in some ways, is not for the best, because a better name for the protocol would have been Keyboard-Driven Instrument Interface. MIDI messages (to the extent that they are standardized) aren't good for anything else.

ROLI Seaboard is an example of pushing the protocol to its limits. The original spec didn't have polyphonic pitch bend (so a continuous slide from a minor chord into a major one is not possible); ROLI gets around it by transmitting each note one a different MIDI channel as if it were a separate instrument.

This example is just one limitation, but there are plenty; there's no good (read: standard) way to control a stringed instrument (or its emulation) with MIDI. You can play one note on a guitar in 4 ways (on 4 different strings), but MIDI isn't specced for that. Horns are passable because they are monophonic, but controlling performance aspects is up to the software. Drums get away by assigning different MIDI notes to different ways of playing a drum. Etc.

The thing is, the protocol was made just barely flexible enough that it lasted to these days; and the ability to drive an 80's synth with a controller built today (and connect them all to a modern computer/iPad/etc) is an amazing feature.

Because of that, MIDI underpins all modern digital instruments and music software. And because of that, anyone who makes electronic music is a keyboardist (or at least has a MIDI keyboard). The word MIDI controller pretty much defaults to MIDI keyboard.

Want to really have your mind blown about where MIDI shows up? The shape of the protocol defines the shape of the music. Just like different programming languages encourage different styles, so do musical instruments and their physical interfaces.

And so the absolute majority of electronic music today is written from a keyboardist perspective.

You won't get to hear a minor chord continuously slide into a major one in pretty much any music you hear that was made with digital/software instruments/computers.

Because the piano can't to that.

And because of that, the keyboards can't.

And so the synthesizers don't.

And so MIDI doesn't.

And so nearly all music software, for decades, wouldn't. (Some does, but it's not standard, so no mass adoption.)

And so your music doesn't have it a major chord slide into a minor. Because even if you don't play keyboards, your interface to digital instruments is still a piano roll.

Because MIDI.

I'm really looking forward to MIDI 2.0.

navane
minor chords continuously slide into a major one hasn't really been done by orchestra's in the hundreds of years before MIDI either. I don't think this is MIDIs fault.
url00
> You won't get to hear a minor chord continuously slide into a major one in pretty much any music you hear that was made with digital/software instruments/computers.

I'm not sure I understand this. I can go into FL Studio right now, add the two chords to the piano roll and set the notes to slide and it works.

Are you implying that composers/producers don't do the slide because of how annoying it is to input via MIDI controller?

Nition
In standard MIDI you can only specify the pitch bend as a whole. So all three (or more) notes in your chord would bend the same amount.
romwell
Yes, but to bend a major chord to a minor they would need to bend by different amounts. There's no standard support for that in MIDI.
Nition
Yes, that's what I was trying to say.
dkdbejwi383
If you want to just bend the chord quality, ie slide the 3rd from minor to major, but leave the root & fifth, it’s not possible without MPE.
romwell
>I can go into FL Studio right now, add the two chords to the piano roll and set the notes to slide and it works.

FL Slide Notes is a proprietary feature (a creative use of MIDI) that only works with FL Studio Plug-ins[1][2]. The new shiny plugin you got for that fat sound? No note slide for you.

So, this is not a feature you can count on in any DAW, but specific to particular set of plug-ins. (In particular, Live had nothing like that last time I checked, nor did the DAW's I use).

ROLI has a more advanced version of this, but again, the support is limited because it is not standard MIDI.

[1]https://forum.cockos.com/showthread.php?t=187047

[2]https://forum.image-line.com/viewtopic.php?t=174776

tomc1985
True, FL's note-slide is proprietary, but you do get some degree of pitch-bend (not sure if you can do it per-note without hacks) because of the mod wheels on keyboards

MIDI CC messages are a bit more flexible, but you're still limited to "[Channel#] [CCCode] [Value]"

romwell
You can do everything with CC and NRPN. The problem is not the limitation of what you can send over the wire, but what is specified in the protocol.

>(not sure if you can do it per-note without hacks)

No can do. But hack it enough, and you get MPE[1], which is finally coming this year.

[1]https://www.midi.org/articles-old/midi-polyphonic-expression...

dwringer
Portamento is a fairly standard feature on many synthesizers - there's no need to use MIDI to spell out the full range of sliding one note into another, or to use a pitch bend. On supporting instruments (such as a great number of vintage and modern analog synthesizers, and perhaps a majority of software synthesizers/samplers) MIDI can send a control to enable portamento (and to set a desired speed) right before moving from one set of notes to another. After the slide is done, portamento can be disabled with another MIDI control signal. This can be used precisely for the effect of sliding a minor chord into a major chord, for example. Admittedly, this does require that the instrument be designed with portamento support in mind, which does seem like it could be an arbitrary limitation on instruments that may otherwise be capable of only simple pitch bends (though since these typically affect all notes at once I'm still not sure how trivial the portamento idea would be to implement in general).
romwell
TL;DR: it doesn't quite work[1].

------------------

>Portamento is a fairly standard feature

On monophonic synthesizers.

There's no standard on how that would work with polyphony (that would be pretty much equivalent to polyphonic pitch bend). With your trick, you'd still need to specify which note goes to which new note with portamento/glide, and there is no standard for that.

The problem is usually worse with analog gear, where oscillators are commonly assigned to keys via a round-robin scheme. So enabling polyphonic portamento means that even if you play the same chord over and over, you'd hear the notes slide! Not quite what you intend.

So while some polyphonic synths have portamento/glide in poly mode, lack of support in the protocol means that it acts unpredictably: you only have control of where the notes are sliding to, as a set.

You can see the problem very clearly, using Behringer Deepmind 6 (6-voice analog with poly portamento) as an example here[1].

At this point, you break out your polyphony into voices, put each voice on its own track / MIDI channel, and pitch bend / portamento that (and record separately, if needed). And then you have the ROLI solution. Which is not compatible with any other MIDI controller.

As I said, MIDI is hackable enough to allow one to do pretty much everything, but it's going to be non-standard. And standards and defaults matter.

For that matter, that's why we have MPE[2], which is an extension of MIDI, but it's very, very new (2018-new).

[1]https://www.youtube.com/watch?v=o9cvMCHgB2s

[2]http://www.rogerlinndesign.com/mpe.html

dwringer
Well for polyphony the "which note goes where" issue could, with creative sequencing, be solved by using different channels for each individual note to override the synthesizer's configured behavior [also enabling the use of simple pitch bends for the effect] - but I guess any good solution here will end up requiring even more hardware or software to allow this [it looks like this is essentially the goal of MPE] and, as you imply, arguably be a "nonstandard hack". But music IMHO is often about finding value and personal expression in the nonstandard along with the standard (perhaps I'm a little biased from too much jazz, because admittedly this isn't the case for all players in all styles). And musicians have certainly employed MIDI to use these techniques for decades.

Regardless of my possibly misguided attempts at defending a 36-year-old spec, I absolutely still agree with you, however, that an improved standard could certainly make having more creative control simpler and easier, requiring fewer "hacks".

barryhoodlum
But having the concept of per-note pitchbend built into MIDI itself would be a much easier way of achieving this.

Their point wasn't "sliding notes in a chord is 100% impossible, prove me wrong!", their point was that the only reason it's not trivial in the first place is because MIDI is biased towards piano keyboards, and that has had a huge influence on a lot of the music released in the past few decades.

dwringer
I appreciate your response, though my point wasn't to "prove [the above poster] wrong", but that the ability to slide notes in chords is not exclusively dependent on a specific FL Studio plugin and has always traditionally been the domain of synthesizer builders rather than the MIDI standard. Perhaps the effect is more uncommon in music through the past few decades as a result of this, but it's not absent and dedicated musicians with enough resources were still able to make it work.

I do agree that it is a potentially limiting influence on the music most readily produced, but for that matter (IMO) so is the traditional adherence to 12-tone equal temperament that is often implicit in how the standard is implemented. It would be nice to have finer control here without having to resort to various hacks, but finer resolution means more bits required to represent a given frequency. Finding a different better way to encode MIDI data that could be used as a standard going into the future is something that I believe requires great consideration and might do well with a significantly different approach (but I don't presume to have given it enough thought to say one way or the other).

Feb 26, 2019 · 1 points, 0 comments · submitted by feross
Feb 25, 2019 · 3 points, 0 comments · submitted by feross
HN Theater is an independent project and is not operated by Y Combinator or any of the video hosting platforms linked to on this site.
~ yaj@
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.