

Show HN: Wavepot – Digital audio workstation of the web - stagas
http://wavepot.com

======
JonnieCache
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!

~~~
svantana
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.

~~~
chrisdevereux
Realtime audio DSP seems like about the last thing that in-browser JavaScript
was designed to do well.

Janky audio is unnacceptable in a way that janky visuals aren't. It totally
kills the experience.

Without very strong guarantees about GC latency and thread scheduling that are
neither available nor on the horizon for in-browser js, it won't work for
anything beyond fun hacks.

~~~
CamperBob2
If you don't care about latency, and in this "DSP sandbox" application you
probably don't, JavaScript is fine for real-time DSP. JS under V8 and similar
engines can be quite fast.

You aren't going to digitize 100 MHz of RF spectrum and build an SDR in
JavaScript, but for audio rendering work it'd be fine. Cool hack.

~~~
chrisdevereux
I'm assuming that a full-fledged DAW cares a lot about latency. Live
performance becomes difficult when latency creeps much above 5ms, for example.
A lot of things that you normally don't think about (like when to allocate a
buffer of memory) become critically important with low latency requirements.

That isn't an issue for the demoed app, but it is for the hypothetical longer-
term goal under discussion.

~~~
CamperBob2
Yeah, I think they're making a mistake by using the term DAW. That term
already means something, and this isn't it.

------
japhyr
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.

~~~
Gracana
You might also consider showing the Pure Data. The intro
documentation/tutorial stuff is quite good at explaining the basics of sound
synthesis.

------
jamesmoss
A scene has sprung up around music based on algorithms, called Algorave
[http://en.wikipedia.org/wiki/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...](http://www.vice.com/en_uk/read/algorave-is-the-
future-of-dance-music-if-youre-an-html-coder)

~~~
stagas
This is really, really interesting.

~~~
yaxu
come and do some wavepot at an algorave

~~~
stagas
I'd love to! You guys have some amazing things going on there. I have some
live performance features planned for wavepot, so yeah, not quite there yet!
But keep an eye on it I'm sure you'll enjoy what I have in mind.

------
jchrisa
That was fun. Here is my detuned remix of "on the verge tech mix"
[https://gist.github.com/jchris/04585454570853297974](https://gist.github.com/jchris/04585454570853297974)

~~~
lucb1e
I like it! It is cool to see not just the demo projects, but people actually
making something with it :)

------
jarmitage
For another take on live coding in the browser:
[http://gibber.mat.ucsb.edu/](http://gibber.mat.ucsb.edu/)

Check out [http://algorave.com](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.

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

THIS!

Let's build it!

------
chrislo
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](https://tinyletter.com/webaudioweekly)

------
quaunaut
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.

------
PabloOsinaga
Wavepot team: really awesome stuff! love it.

At Bandhub ( [http://bandhub.us](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

~~~
evo_9
Cool site. You need more genre categories however; Synth and/or Electronic
would be a good start since you are missing anything along those lines.
Probably a EDM category as well otherwise that's what either electronic and/or
synth will end up being.

Also, Find Musicians doesn't seem to be working, at least not in Chrome on
osx.

~~~
PabloOsinaga
what do you see? can you send me the console output too?

~~~
evo_9
When it's spinning looking for musician's the console says:

GET
[http://bandhub.us/discoverUsersList?genres=&instruments=&col...](http://bandhub.us/discoverUsersList?genres=&instruments=&collaborationPreferences=)
400 (Bad Request)

------
maxogden
Seems similar to [http://studio.substack.net/](http://studio.substack.net/)

~~~
thibauts
It is.
[http://studio.substack.net/wavepot](http://studio.substack.net/wavepot)

~~~
notthetup
Wow.. So is Wavepot.com by substack too?

~~~
substack
No.

------
jm547ster
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.

~~~
stagas
Thanks! I have background in Music Technology but I'm just starting with DSP
myself. Most of the stuff I use are ported from code I found online so I can't
really take credit for those though.

A modular piece of software like this can achieve pretty much the same as
professional DAWs. Consider modules that add UI elements, automations, etc. It
won't be long until the abstraction is high enough so everyone just assembles
their own custom DAWs on the fly.

------
rsiqueira
You can help the Wavepot project: Contributors can join the discussion and
mailing list here:
[https://groups.google.com/forum/#!forum/wavepot](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.

~~~
stagas
Just want to clarify that the modules feature is the ability to create them
and import them like this:

    
    
      import DiodeFilter from 'filters';
      
      var filter = new DiodeFilter;

------
recursive
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.

~~~
stagas
Paypal donations have been added to the crowdfund. Thank you people, I
appreciate your enthusiasm, this is a project I am in love as well and I wanna
see it going places.

------
elwell
This is really great. Reminds me of:
[https://github.com/overtone/overtone](https://github.com/overtone/overtone)

------
sokrates
[https://gist.githubusercontent.com/jonasschneider/bfa93fbb35...](https://gist.githubusercontent.com/jonasschneider/bfa93fbb358313f5b708/raw/4deba14485645b5860f6c1526a74ba52c2895c70/gistfile1.txt)

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

------
ff7c11
see also
[https://mohayonao.github.io/CoffeeCollider/](https://mohayonao.github.io/CoffeeCollider/)

------
lukasm
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)

------
enen
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...](https://media.usfca.edu/app/plugin/embed.aspx?ID=mjWcGbE4DUKAVXRVJLL5BA)

~~~
widdershins
Yeah, I'd really like to see a DAW that incorporates SuperCollider in a
transparent way along with traditional audio & MIDI tracks, a bit like how Max
is integrated with Ableton.

------
_druu
Hey, Hey, Hey! I made something with it!

[https://gist.github.com/druu/044b8103e2a4842828bd](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?

------
sossles
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!

~~~
stagas
Uncompressed code export with convenience methods like .play() is planned for
milestone I. This exact use-case is what I had in mind.

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

If so, where can I find the repo?

------
zapt02
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..)

~~~
stagas
A debug console is planned for milestone I that will help for those issues.

------
zhodge
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?

~~~
jarmitage
You don't need to know anything about the physics of sound or programming, to
get algoraving with Tidal or Ixi Lang

[http://yaxu.org/tidal/](http://yaxu.org/tidal/)

[http://www.ixi-audio.net/ixilang/](http://www.ixi-audio.net/ixilang/)

------
notthetup
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](https://gist.github.com/notthetup/65f100f8ecf0f44f568d)

------
rkotcher
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!

------
newrenowhore
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.

~~~
stagas
Thanks! That's a good idea, I have it planned for a next milestone as it is
not one of the immediate priorities.

------
bbrennan
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.

------
zapt02
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)

~~~
hmsimha
Unfortunately the course materials aren't available any more, but you should
watch for the next offering of this course by the California Institutes of the
Arts on Coursera:
[https://www.coursera.org/course/chuck101](https://www.coursera.org/course/chuck101)

------
catshirt
seems like this is really a window for executing javascript, no? where's the
DAW?

------
lomocotive
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?]

~~~
stagas
It is using 3rd party APIs server-side to check wallets' balances, converts
doge to btc and then converts the sum of btc to USD. I like the obfuscation
idea but I'm not sure it's worth the complexity in this particular use-case.

------
rwl4
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.

------
thinkmassive
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/](http://www.csounds.com/)

------
tonetheman
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.

------
yeureka
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!

------
hardikj
You should also checkout -
[http://www.audiotool.com/](http://www.audiotool.com/) Its a DAW, but its more
of a chrome plugin.

~~~
Pot
Also, they're already on their way to migrate to HTML5!

------
anigbrowl
If you like this and have an iPad you should also check out Bitwiz:
[http://kymatica.com/bitwiz](http://kymatica.com/bitwiz)

------
noname123
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..."

------
lucb1e
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)!

------
Gracana
Cool! Reminds me of ChucK[1].

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

------
janesconference
Another more DAW-esque pure HTML / js DAW in the browser:
[http://hya.io](http://hya.io)

------
radmuzom
Does not work in IE, but does in Firefox and Chrome. Is it just me or the
application does not actually work in IE?

------
jbernier
This is really cool. Anyone know of any good tutorials for learning how to
make sounds like this?

------
aaronsnoswell
This is amazing - I had loads of fun playing with this for a couple of minutes
- thanks!

------
objekt
added a filter envelope to "got some 303" and now it sounds much more like a
303 :)

source code here:

[http://pastebin.com/rWMt45ug](http://pastebin.com/rWMt45ug)

------
izolate
I could easily see this become the future of music production. Lovely UI too.

------
thebeardisred
I just want someone to put together a "hypnotoad" sample.

------
robertfw
using super for the keyboard shortcuts is problematic, at least for me -
super-enter for me opens a new terminal, and that appears to take precedence
over the browser shortcut

------
tech-no-logical
it's probably me, but I get nothing... \- ff (latest beta) : waveform thingy
works, no sound \- chrome (latest beta) : no waveform, no sound \- IE (11) :
nothing

~~~
iibewegung
Linux Mint 14 (desktop) and CyanogenMod 10.2.1-flo (mobile, mod based on
Android 4.3.1) user here.

For Mint: Firefox 29 - everything works; Chromium 34 - only grey background

For CyanogenMod: Chrome 35 - everything works; Dolphin 10.3.1 - only grey
background

------
leeoniya
reminds me of [http://www.openscad.org/](http://www.openscad.org/)

------
marko123
what language is this ? i see it is not php ...

------
rabidmachine9
This is perfect!

------
saltyknuckles
Very good work, I like this a lot.

------
nader
Awesome!

------
chillingeffect
Holy crap! This is great!

~~~
chillingeffect
Would someone kindly explain why I and two other users (msane and jrlocke)
were downvoted for simply expressing delight? Is that somehow unwelcome? I
don't see anything against that in the guidelines:
[http://ycombinator.com/newsguidelines.html](http://ycombinator.com/newsguidelines.html)

Note, this isn't a _complaint_ , it's merely a request to understand why my
comment is inappropriate and to understand how I can express my approval of a
submission without losing karma.

~~~
cdcarter
It's not against the guidelines, but it doesn't create conversation. Many
people find that fairly useless, and prefer comments with substance that
advance the community.

The best way to express your approval of a submission? Upvote it.

~~~
pbhjpbhj
> _The best way to express your approval of a submission? Upvote it._ //

Except with hidden vote scores it doesn't express anything at all (except
changing a number on the OP's interface; the OP doesn't even know that _you_
upvoted them).

If you want to _express_ your approval to anyone other than the parent/OP or
have anyone know who is expressing approval [that is occasionally relevant]
then you have to comment.

------
jrlocke
Wonderful

~~~
be2mi9
Great

------
msane
This is dope

