W3C home > Mailing lists > Public > public-audio@w3.org > July to September 2012

Re: nop

From: Marcus Geelnard <mage@opera.com>
Date: Mon, 20 Aug 2012 06:52:15 +0000
Message-ID: <20120820065215.sob9s9nbdv48c0o0@staff.opera.com>
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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 20 August 2012 06:52:46 GMT