screenshot_62

Open a new tab, and suddenly you have a powerful, sequenced drum synth making grooves. Give it a shot:
https://irritantcreative.ca/projects/x0x
Or read more. (This latest creation came out in June.)

This is either the future of collaborative music making or the Single Greatest Way To Make Music While Pretending To Do Other Work I’ve ever seen.

But, as a new effort works on sharing music scores in the browser, it’s worth checking up on the Web Audio API – the stuff that makes interactive sound possible – and connections to hardware via MIDI.

And there’s a lot going on, the sort of fertile conversation that could lead to new things.

Web Audio and Web MIDI are quite fresh, so developers around the world are getting together to learn from one another and discuss what’s possible. That includes the USA, UK, and Germany:

London: http://www.meetup.com/Web-Audio-London/
New York: http://www.meetup.com/New-York-Web-Audio-Meetup/
Berlin: http://www.meetup.com/berlin-web-audio-meetup/
Philly: http://www.meetup.com/Philly-Web-Audio-Meetup/

Paris was also host to an annual, international conference, which took place this year at famed research center IRCAM.

Online synths and other proofs of concept are likely just the beginning. Web music development began as a sometimes muddled conversation about whether browsers will replace traditional app deployment (so far, probably not). But as the tech has matured, developers are instead looking to ways to use the Web to create new kinds of apps that perhaps didn’t make sense as standalone tools in “native” software (or, for that matter, hardware).

That’s why it’ll be interesting to watch efforts like Yamaha’s to add browser-based patch editing and sharing for their Reface line. There are also more ambitious ideas, like using the browser to share audio for interviews, radio conversations, backup, and works-anywhere recording and streaming.

And there’s more.

Keith McMillen has a great two-article series introducing you to Web MIDI.

It explains what this is all about and what it can do – whether or not you are a developer, worth reading. And if you are a developer, code snippets!

There’s even some explanation of how to use MIDI code outside of Chrome. (Firefox and even Microsoft’s new Edge promise support soon.)

Making Music in the Browser – Web MIDI API

Making Music in the Browser – Web Audio API, Part 1

And their blog in general is full of surprisingly geeky wonderful stuff, not the normal marketing stuff. (In fact, let’s be fair, you’d fire your marketing manager if they did this. But… kudos.)

http://www.keithmcmillen.com/blog/

When we first started using the Web, it seemed like a clumsy way to duplicate things done better elsewhere. Now, it promises to be something different: a place that takes the software and hardware we love, and makes it more useful and connected. There’s something wonderful about switching the Internet off in the studio and focusing on making music for a while. But in this model, when you do turn the Internet on again, it becomes a place to focus more on music rather than be distracted.

  • D
    • D

      http://www.w3.org/TR/webaudio/

      ctrl-f for thread, ctrl-g to see where else it’s mentioned on the spec.

      • D

        Lots of hand waving here:

        https://github.com/WebAssembly/design/issues/104

        When you consider that webaudio is handwaving that webassembly will deliver proper threads unto them, Then, questions like

        “What are Web Assembly threads” not being answered after their annoucement sounds rather unsatisfactory.

  • D
    • D

      http://www.w3.org/TR/webaudio/

      ctrl-f for thread, ctrl-g to see where else it’s mentioned on the spec.

      • D

        Lots of hand waving here:

        https://github.com/WebAssembly/design/issues/104

        When you consider that webaudio is handwaving that webassembly will deliver proper threads unto them, Then, questions like

        “What are Web Assembly threads” not being answered after their annoucement sounds rather unsatisfactory.

  • itchy

    people will hate on this , but im not sure why.

  • itchy

    people will hate on this , but im not sure why.

  • PaulDavisTheFirst

    I still don’t understand why ANYONE thinks that the browser is a sensible platform for creating audio software, other than the theoretical appeal of “write once, run anywhere”. It remains to be seen if that claim is even true in the real world, and other than that, everything about the platform is worse than native platforms unless JS is all you know.

    • itchy

      if you can make some beat or bassline anywhere export the midi email to yourself.
      not sure why anyone would be against it. maybe the people who make plugins. but money shouldn’t stop progress we have enough of that in the world. im sure it will get better as it is still kinda new.

      • PaulDavisTheFirst

        The platform is inherently worse, whether it is new or not. Developing (complex) software inside the environment represented by a web browser is an inherently more limiting and more difficult process, at least once the complexity hits a certain level.

        What is happening here is that there are now a lot of Javascript-capable programmers who are trying to write much more sophisticated applications than they have in the past. Rather than switch to use native development environments, which have tried to tackle the problems of application development for at least 2 or 3 decades, they want to remain in the little sandbox (the web browser) that they’ve come to know and love. They hope that W3C etc. can expand the capabilities of the sandbox, but they don’t recognize the inherent, builtin limitations of the sandbox, which will either never be fixed or not fixed for at least a decade.

        Their compelling argument is the cross-platform-ness of the whole thing. It isn’t convincing (to me) and it isn’t very compelling.

        • Sophisticated application, no.

          I’m beginning to see the problem from the other direction.

          If you have an “application” that is essentially already a Website, and it makes sense to produce interactive sound, or show a score, or connect to MIDI gear, then I’d rather continue to do that inside the browser rather than download a separate native app and start using that.

          By the same token, if the primary purpose of an application is connectivity, it might make sense to integrate that application with a Website and skip the download process rather than try to build connectivity into the native app.

          Now, I don’t disagree with your criticisms and speculation here as far as the developer audience. But there’s potential for certain use cases looking at the audience.

          • PaulDavisTheFirst

            All programming languages have libraries that make moving data via the network trivial (some more trivial than others, to be fair). Connectivity is not an argument in favor of a browser-located solution.

            What the browser really offers is very fast GUI development for anyone who already knows HTML, CSS and JS. People who do know these 3 will typically find native GUI development painfully slow and/or complex. But some of that represents the enhanced capabilities of the overall development platform, which web-centric development just avoids by pretending there is no need for it (see the JWZ post linked to below by D).

            But sure, I get your point about trying to bridge the gap between a presentational website and a generative one, and that’s certainly an interesting problem. However, if that’s what this is good for, why are the first things we’re seeing using the Web Audio API essentially versions of mid-period plugins?

          • Polite Society

            What the web browser offers that native apps don’t is portability. Imagine the same kind of portability for your DAW that you have with your mail client. Though I think thinking about the Web Audio API with music software in mind is being too short sighted. I imagine this kind of thing would be a massive boon for people creating web based gaming content and other interactive media.

          • PaulDavisTheFirst

            a DAW relies on computing resources and performance that are not available inside the “portable web browser platform”. so while web audio and related technologies might be useful to bring more limited applications into the browser, it doesn’t provide a way to implement realtime low latency multithreaded large-scale-I/O applications.

            it is an unanswered questions how many applications/use cases fall on each side of the line.

  • PaulDavisTheFirst

    I still don’t understand why ANYONE thinks that the browser is a sensible platform for creating audio software, other than the theoretical appeal of “write once, run anywhere”. It remains to be seen if that claim is even true in the real world, and other than that, everything about the platform is worse than native platforms unless JS is all you know.

    • itchy

      if you can make some beat or bassline anywhere export the midi email to yourself.
      not sure why anyone would be against it. maybe the people who make plugins. but money shouldn’t stop progress we have enough of that in the world. im sure it will get better as it is still kinda new.

      • PaulDavisTheFirst

        The platform is inherently worse, whether it is new or not. Developing (complex) software inside the environment represented by a web browser is an inherently more limiting and more difficult process, at least once the complexity hits a certain level.

        What is happening here is that there are now a lot of Javascript-capable programmers who are trying to write much more sophisticated applications than they have in the past. Rather than switch to use native development environments, which have tried to tackle the problems of application development for at least 2 or 3 decades, they want to remain in the little sandbox (the web browser) that they’ve come to know and love. They hope that W3C etc. can expand the capabilities of the sandbox, but they don’t recognize the inherent, builtin limitations of the sandbox, which will either never be fixed or not fixed for at least a decade.

        Their compelling argument is the cross-platform-ness of the whole thing. It isn’t convincing (to me) and it isn’t very compelling.

        • Sophisticated application, no.

          I’m beginning to see the problem from the other direction.

          If you have an “application” that is essentially already a Website, and it makes sense to produce interactive sound, or show a score, or connect to MIDI gear, then I’d rather continue to do that inside the browser rather than download a separate native app and start using that.

          By the same token, if the primary purpose of an application is connectivity, it might make sense to integrate that application with a Website and skip the download process rather than try to build connectivity into the native app.

          Now, I don’t disagree with your criticisms and speculation here as far as the developer audience. But there’s potential for certain use cases looking at the audience.

          • PaulDavisTheFirst

            All programming languages have libraries that make moving data via the network trivial (some more trivial than others, to be fair). Connectivity is not an argument in favor of a browser-located solution.

            What the browser really offers is very fast GUI development for anyone who already knows HTML, CSS and JS. People who do know these 3 will typically find native GUI development painfully slow and/or complex. But some of that represents the enhanced capabilities of the overall development platform, which web-centric development just avoids by pretending there is no need for it (see the JWZ post linked to below by D).

            But sure, I get your point about trying to bridge the gap between a presentational website and a generative one, and that’s certainly an interesting problem. However, if that’s what this is good for, why are the first things we’re seeing using the Web Audio API essentially versions of mid-period plugins?

          • Polite Society

            What the web browser offers that native apps don’t is portability. Imagine the same kind of portability for your DAW that you have with your mail client. Though I think thinking about the Web Audio API with music software in mind is being too short sighted. I imagine this kind of thing would be a massive boon for people creating web based gaming content and other interactive media.

          • PaulDavisTheFirst

            a DAW relies on computing resources and performance that are not available inside the “portable web browser platform”. so while web audio and related technologies might be useful to bring more limited applications into the browser, it doesn’t provide a way to implement realtime low latency multithreaded large-scale-I/O applications.

            it is an unanswered questions how many applications/use cases fall on each side of the line.

  • John Sebastian Hussey

    Collaborative garage band style web app prototype, certainly worth checking out: https://vimeo.com/96477738

    • Well, and to Paul’s point below, here the idea isn’t “hey, let’s build an audio editor in a browser for no reason.” The idea is, “hey, let’s build a collaborative editor, for which the Web is the best tool.”

      You might still arrive at the conclusion that it *wasn’t* the best tool, but at least in this instance there’s some underlying logic.

  • John Sebastian Hussey

    Collaborative garage band style web app prototype, certainly worth checking out: https://vimeo.com/96477738

    • Well, and to Paul’s point below, here the idea isn’t “hey, let’s build an audio editor in a browser for no reason.” The idea is, “hey, let’s build a collaborative editor, for which the Web is the best tool.”

      You might still arrive at the conclusion that it *wasn’t* the best tool, but at least in this instance there’s some underlying logic.

  • Benedikt Eickhoff

    ” Learn C – and silence. ”

  • Benedikt Eickhoff

    ” Learn C – and silence. ”

  • Has anyone had success/seen anything about receiving MIDI clock in the browser?.. I have an idea

  • Has anyone had success/seen anything about receiving MIDI clock in the browser?.. I have an idea

  • Sonofabitch!

    I made a drum machine in the browser four and a half years ago at http://www.bitrotten.com/dr110 using HTML5 audio. It sucked, because Javascript timing is terrible. Before that, I started a DR-110 emulation in Flash, but never finished it or put it online.

    I’d basically abandoned my HTML drum machine after posting it back then, but two weeks ago I went to a Web Audio Meetup in Philadelphia, which inspired me to look into the web audio API, and now I’m working on updating my DR-110 to use synthesis rather than sample playback. I did some 606 & DR110 emulations on my Tempest that I’m pretty proud of, and I’m putting what I learned from that into this, as best as I can.

    And in four years from now, I’ll rewrite it in whatever the flavor of the moment is for the web. It’s a fun exercise, and it’s great that all you need is a browser to dive into this sort of thing now, but I don’t see it as much more than a gateway to the real stuff. Getting the HTML5 Audio version to work across all browsers four years ago was an impossible chore, and I’m already running into compatibility issues between browsers with web audio playback.

  • Sonofabitch!

    I made a drum machine in the browser four and a half years ago at http://www.bitrotten.com/dr110 using HTML5 audio. It sucked, because Javascript timing is terrible. Before that, I started a DR-110 emulation in Flash, but never finished it or put it online.

    I’d basically abandoned my HTML drum machine after posting it back then, but two weeks ago I went to a Web Audio Meetup in Philadelphia, which inspired me to look into the web audio API, and now I’m working on updating my DR-110 to use synthesis rather than sample playback. I did some 606 & DR110 emulations on my Tempest that I’m pretty proud of, and I’m putting what I learned from that into this, as best as I can.

    And in four years from now, I’ll rewrite it in whatever the flavor of the moment is for the web. It’s a fun exercise, and it’s great that all you need is a browser to dive into this sort of thing now, but I don’t see it as much more than a gateway to the real stuff. Getting the HTML5 Audio version to work across all browsers four years ago was an impossible chore, and I’m already running into compatibility issues between browsers with web audio playback.

  • miatch

    I’ve writing this Web Audio synth: http://www.websynths.com

  • miatch

    I’ve writing this Web Audio synth: http://www.websynths.com