back
132 comments
This isn't really a DAW. For those unfamiliar, a DAW is a fully-featured music creation environment including sound design, composition, recording, arrangement and mixing in one interface. Examples include logic, cubase and ableton.

While I suppose this does allow for all of those things, as much as any programming language with access to an audio API does, this would be better described as a web-based DSP livecoding environment.

Apart from the naming quibbles, it looks excellent! I wonder what's generating the sound? I'm aware of the oscillator/filter primitives in the HTML5 audio API from the minimoog google doodle, but this seems more elaborate than that.

EDIT: for fun times, load "need more 303," scroll down to the bottom, and change some of the numbers around. Setting the slide() call to 1/1024 yields a nice FM-ish sound. You can even overdrive the filter. Reach for the lasers!

It seems their goal is to make a full-fledged DAW in the browser, but they are not there yet (and far from it from what I can tell). How they would be able to fund all that for $2k is beyond me.

That said, it's a really clever idea to have all the source editable, since js is an interpreted language anyway. One can imagine a future where the community not only shares songs and sounds, but the DSP units themselves. Unlike desktop DAWs, which rely on dylibs (dlls) to supply external synths and effects, a js-based DAW can load, re-compile and hotswap units on the fly.

In my head, a DAW is exactly what it says. A workstation for digital audio. That said, this has the potential to evolve to something more similar to existing professional DAWs and maybe even surpass them.

I'm glad you like it. The sound is generated purely by a JavaScript function returning sample values that are then handled by the Web Audio API and buffered. That's how you hear sound.

On edit: It's really easy to remix tracks that way, even small changes to values yield quite different results. It's fun!

This is awesome!

I'll certainly contribute to this. Will the source be opened up?

Here's a delay filter:

  var delay_array = [];
  var delay_length = 5;
  var delay_feedback = 0.6;
  var delay_volume = 0.4;

  function delay(x) {

    y = 0;
  
    if (delay_array.length < (delay_length * 1000)) {
      delay_array.push(x);  
    } else {
      y = delay_array.shift();
      delay_array.push(x + (y*delay_feedback));  
    }

    return (x) + ( y * delay_volume );
  
  }
Include this in the DSP return code, ie;

  return delay(synth);
> I'm aware of the oscillator/filter primitives in the HTML5 audio API from the minimoog google doodle, but this seems more elaborate than that.

An oscillator and a filter modulator are pretty much all you need to create this particular app. There's no reverb, and any delay effects are being "hard-coded" with simple degrading velocities. All synthesizers are built from these ultra-simple components, maybe 2 or 3 more and you have everything you need to build a digital synth purely with web technologies.

Yeah, it's definitely cool for what it is -- but it is NOT a DAW.

I would call it the audio equivalent of OpenSCAD.

which controls are usable? everything i click just gives me an annoying "gimme $$" popup, haven't actually found a function that works
This is great! I teach high school math and science, and students often ask how sound waves can be turned into music. I give them a big-picture overview of sine waves and superposition, but I've never had a tool that lets students play with the math easily.

I look forward to showing this to students in the fall.

You might also consider showing the Pure Data. The intro documentation/tutorial stuff is quite good at explaining the basics of sound synthesis.
A scene has sprung up around music based on algorithms, called Algorave http://en.wikipedia.org/wiki/Algorave

Vice did an article on the subject a few months back which gives an overview of the scene (from a layman's view) http://www.vice.com/en_uk/read/algorave-is-the-future-of-dan...

> it is quite contrary to normal raves due to the fact that the music can be very stop-and-start and the ingestion of MDMA, ketamine or other illicit drugs does not usually happen

- wikipedia

Oh, this is so good, thanks for posting the link to Vice! Very much Oval-like performance, super awesome!
That was fun. Here is my detuned remix of "on the verge tech mix" https://gist.github.com/jchris/04585454570853297974
For another take on live coding in the browser: http://gibber.mat.ucsb.edu/

Check out http://algorave.com for more info on the live coding music scene, which has really taken off in the last year.

I can't wait for someone to combine live coding with Swift Playground/Bret Victor 'revealing the system' style interfaces.

If you like this, you might also be interested in a newsletter I write called Web Audio Weekly. I link to interesting projects that use the Web Audio and Web MIDI APIs as well as more general stuff of interest to musicians and developers.

https://tinyletter.com/webaudioweekly

This is such a great example of a great experience changing behavior. I haven't thought of making music in years, and I've seen other projects kinda similar to this in the past- but this reacts so quickly, so immediate to my inputs, that it's hard to step away from.

You've really got a great product here.

Wavepot team: really awesome stuff! love it.

At Bandhub ( http://bandhub.us ) we are looking for ways to integrate programmed music into our web DAW.

If you guys are up for a collaboration or want to discuss ideas, ping me osi (at) getbandhub (dot) com

This is really cool, really nice level of abstraction.

The 303 example in the environments in which I learned computer music fundamentals (PD, Max, CSound, Supercollider) would require either much more or less understanding and/or 3rd party implementations of components to generate something similar. Most importantly the sound is really nice.

Btw the categorisation of it being a DAW is dependent on the user perspective, I've created what I would consider to be DAW equivalents in Max/Pure Data, that facilitate audio/midi recording and playback; just because a toolkit doesn't do stuff for you automatically doesn't mean it isn't capable. DAW in my opinion is just a marketing term not a descriptive one.

You can help the Wavepot project: Contributors can join the discussion and mailing list here: https://groups.google.com/forum/#!forum/wavepot

They also have a funding campaign (accepting paypal) to finish this project that will include modules like Oscillators, Sequencers and:

Effects: Amp, Chorus, Delay, Dynamics, Eq, Filter, Flanger, Modulation, Phaser, Reverb.

Synths: Ambient, Analog, Bass, Drums, Flute, FM, FX, Modular, Organ, Pads, Percussion, Piano, Samples and Strings.

Is there a way to contribute without using bitcoin? This is awesome and I want to support it, but I'm not really interested in getting involved in bitcoin.
This is really great. Reminds me of: https://github.com/overtone/overtone
https://gist.githubusercontent.com/jonasschneider/bfa93fbb35...

Extended the melody & progression a bit. I'm so proud, this is awesome!

It goes into loop when I want to switch a file "You've made some edits!"

Also

yntaxError: Unexpected token * at Function (native) at t (blob:http%3A//wavepot.com/576aa761-8f7c-4918-b4e7-8bdd7c77ff39:2:16401) at Function.<anonymous> (blob:http%3A//wavepot.com/576aa761-8f7c-4918-b4e7-8bdd7c77ff39:2:16779) at Function.i.emit (blob:http%3A//wavepot.com/576aa761-8f7c-4918-b4e7-8bdd7c77ff39:1:2656) at DedicatedWorkerGlobalScope.i.isMaster.self.onmessage (blob:http%3A//wavepot.com/576aa761-8f7c-4918-b4e7-8bdd7c77ff39:2:12723)

As a heavy Ableton user and coder I would like to have a coding environment that also has powerful gui libraries so I can quickly implement faders and knobs and stuff when needed but also be able to change code on the fly. Kind of get the best of both worlds for the ultimate hacking music environment. This is something similar and very interesting but for visual stuff based on openFrameworks: https://media.usfca.edu/app/plugin/embed.aspx?ID=mjWcGbE4DUK...
Hey, Hey, Hey! I made something with it!

https://gist.github.com/druu/044b8103e2a4842828bd

It's the melody of the song 'Popcorn'. While this might not be special, I implemented a first draft of a (going-to-be) multi-track sequencer. </shameless self plug>

Whatcha think?

What a great idea. I want to make synthesized sound effects for a game I'm making, and building them algorithmically in Javascript would be great. My alternatives have involved twiddling a zillion predefined knobs in a overwhelming UI, but as a developer this is far more appealing.

If only I could export the generated sound!

This is amazing, but I wish there was a clear way of knowing when there is an error causing your changes to not be output.

I fiddled for a couple of minutes without any changes before realizing i had forgotten to initialize a variable. (the x checkmarks don't seem to work for unassignad variables..)

Hi stagas, great job on wavepot! Is there any way we could get in touch off of this thread? My startup company is working on a very similar idea, and I think it would be great to know each other. If you'd like I can send write down my email onto this thread. Hope to talk soon!
This is really, really impressive. Cool range of sounds. Have you thought about attaching a user-friendly, knobby interface to the modules? I could see it as a really easy way for non-programming musicians to learn how to use this and other music generation systems like it.
As someone who's completely ignorant to the concepts behind algorave, could anyone more experienced outline the helpful prerequisites to know before I experiment with a tool like Wavepot?

I assume it's mostly the (basic?) physics of sound waves that I'd need to understand?

Made a gist with some of the scripts people have been making.. Add yours to the comments and I'll curate the list.

https://gist.github.com/notthetup/65f100f8ecf0f44f568d

I'd love to help develop this (and experiment myself!). Is it open source?

If so, where can I find the repo?

Slightly related question: Are there any courses I can take specifically aimed at making music by programming? Lynda or similar preferred, articles / books also work as long as they have examples using some sort of software (not just algorithms)
This looks way more user-friendly than stuff like CSound. Would be awesome to see a real DAW-like GUI built on top of it...I've always wanted a DAW that would let me flip between GUI editing and code.

If you could use any help coding, please let me know.

seems like this is really a window for executing javascript, no? where's the DAW?
I love it! I want to see something like this for the iPad. I could also imagine a Soundcloud + Spotify + Github hybrid playlist site where you could actually present your creation for people to play in a playlist format.
can you tell more about how you coded the fundraiser modal? is it just checking the balances on those addresses then converting them to USD? im sure its a simple solution but i'd be happy to hear more about it - i was thinking of making a similar one for my own project, but it would be good if it displayed different addresses per visitor for better obfuscation...lets say have half of a wallet full of addresses, then also check server side whether the displayed is a valid one

[edit: using something like coinbase would solve this, but how could you work it out without a 3rd party and any fees?]

Looks like a modern (in-browser) take on CSound[1]. I love the idea of modifying the code during runtime.

[1] http://www.csounds.com/

this is really cool... it is really hard to see how the math ends up making music though. I almost would have an example of a scale or a 4 beat measure. very interesting stuff.
You should also checkout - http://www.audiotool.com/ Its a DAW, but its more of a chrome plugin.
If you like this and have an iPad you should also check out Bitwiz: http://kymatica.com/bitwiz
Can't wait to go to the next Girl Talk show where instead of DJ pressing space bar to play, they press F5 to "Compile and Run..."
Making music with code seems pretty neat, perhaps I'll learn to play an instrument after all some day (that being the instrument of code)!
This could be really useful for prototyping realtime sfx for games.

I am floored by how well it runs on my Moto G, specially the 303 and the subwah patches.

Great job!

Another more DAW-esque pure HTML / js DAW in the browser: http://hya.io
Cool! Reminds me of ChucK[1].

[1] http://chuck.cs.princeton.edu/