- From: Marcus Geelnard <mage@opera.com>
- Date: Mon, 20 Aug 2012 06:52:15 +0000
- To: rl baxter <baxrob@gmail.com>
- Cc: public-audio@w3.org
Citerar rl baxter <baxrob@gmail.com>: > On Sun, Aug 19, 2012 at 12:38 AM, Marcus Geelnard <mage@opera.com> wrote: > ... >> A bit off-topic: this is pure JS + HTML5 audio (non-real-time so be patient >> - might make a real-time version some day): http://mzl.la/R9GLQD >> > > Sweet tracker interface. I never got into tracker software, and, to > me, it's a little daunting to have to compile the sequence in order to > audition an instrument, .. but funny to think that before > webkitAudioContext the state of the art in web audio production was > analogous to desktop audio production circa 1990 .. Actually, the fact that it does non-real-time audio generation is a "lucky" coincidence of Web tech limitations and design goals, so doing real-time audio generation is not necessarily a goal of the tracker (though I admit it would make it slightly easier to work with). First of all, it's a tool for making very minimalistic tunes, with the aim of having the (compressed) song data AND player routine weigh in at less than 4KB, in order to use it in very small demos (typically 4K demos, such as [1], [2], [3], [4] - all using lengthy pre-calculations). Secondly, it's design is heavily inspired by a similar native Windows tool, [5], that served the same purpose for 4K demos on the Windows platform. It too is non-real-time, and it's user interface is kind of limited too. > Wondering how you would approach the task of building a real-time > audio engine for this... Typically with fixed size buffers that are filled regularly (e.g. jsNode), and preserving the channel state between buffer fills (each channel has the ability to play an infinite number of notes concurrently and it has a filter state). I have to try it some day to see if it makes the player routine bigger or not (Web Aduio API and state preservation vs. HTML5 audio and data URI generation). /Marcus [1] http://pouet.net/prod.php?which=59071 [2] http://pouet.net/prod.php?which=59419 [3] http://pouet.net/prod.php?which=59203 [4] http://pouet.net/prod.php?which=59414 [5] http://www.pouet.net/prod.php?which=53615
Received on Monday, 20 August 2012 06:52:45 UTC