- From: Chris Wilson <cwilso@google.com>
- Date: Mon, 18 Mar 2013 09:50:18 -0700
- To: Nora Petit de la Villéon <garrayfigura@hotmail.fr>
- Cc: "public-audio-dev@w3.org" <public-audio-dev@w3.org>
- Message-ID: <CAJK2wqXJfkzHGC+ZOZbnqfSXhzr_e+D+6uzqxewRiueYbR8StA@mail.gmail.com>
Nora, Yes, audio input (from the default audio device) works, but currently only on Chrome, and only Mac and Windows, and you have to enable "Web Audio Input" on the chrome://flags page (and relaunch the browser). -Chris On Fri, Mar 15, 2013 at 12:12 PM, Nora Petit de la Villéon < garrayfigura@hotmail.fr> wrote: > > > > > hello every body, > sorry i am absolutely newbie in this API (and my english is not very > good....) > > i see that it is possible to record voice in a microphone but the demo i > try to use does not seem to work. > > does it work? > Only Chrome? Windows? Mac? > send it to a serveur is simply httprequest? > Sorry for this question that i think is stupid for all of you. > > thanks a lot > > Nora (from Paris) > > > ------------------------------ > Date: Fri, 15 Mar 2013 12:00:54 -0700 > From: crogers@google.com > To: me@jory.org > CC: public-audio-dev@w3.org > Subject: Re: Multi-channel hardware support available for testing in > Chrome Canary > > > > > On Fri, Mar 15, 2013 at 11:53 AM, Jory <me@jory.org> wrote: > > Ah, so it was the panner that was messing with me. Are plans to make the > panner into a steerable multichannel one? I'm sure I won't be the only > audio developer to get thrown by this, as I'd have expected it behave quite > differently. I guess for the moment, custom panning code has to be written > to handle surround steering. > > > It's certainly possible to consider extending the PannerNode, but for now > it's stereo, so yes you'll need to matrix the channels yourself, and there > are many interesting ways to do it. > > By the way, another way to output multiple channels very simply is to > create your own AudioBuffer manually (not decode an existing audio file) > having say 4 channels. Put some interesting data into the AudioBuffer and > play it back. Or another simple way is to create a ScriptProcessorNode > with say 4 output channels and render whatever you want there. These would > not require a ChannelMergerNode. > > Chris > > > > I'll give your suggestions a try in a bit. > > Thanks! > > Jory > > me@jory.org > http://studio.jory..org <http://studio.jory.org/> > > On Mar 15, 2013, at 11:08, Chris Wilson <cwilso@google.com> wrote: > > I will be writing a demo, yes. As Chris said, to utilize the > multi-channel output you really want to use ChannelMergerNodes - unless > you're playing a source buffer node that is multichannel. > > I'd point out text from the spec on AudioPannerNode: "The output of this > node is hard-coded to stereo (2 channels) and currently cannot be > configured." You won't get surround-sound placement from Panners, at least > not based on the current spec - similarly ConvolverNodes will never output > more than two channels. If you run a 6-channel source through one of those > nodes, it would get downsampled to stereo. This is mentioned in their > respective sections, but also in Section 9: > > // PannerNode and ConvolverNode are like this by default. > pannerNode.channelCount = 2; > pannerNode.channelCountMode = "clamped-max"; > pannerNode.channelInterpretation = "speakers"; > > As for a 6-channel WAV file - well, I don't have a 6-channel system handy, > but it should work. I tested decoding a 6-channel WAV (sample from McGill: > http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/WAVE/Samples.html) > and it worked fine. As in the spec, if you had 5.1 hardware, you'd have to > set this to get it to output correctly: > > // Set “hardware output” to 5.1 > context.destination.channelCount = 6; > context.destination.channelCountMode = "explicit"; > context.destination.channelInterpretation = "speakers"; > > Then connect the 6-channel BufferSourceNode to the context.destination.. > > The output.L, .R, .C in section 9.1 are misleading you - that is > effectively pseudocode detailing how up/downmixing should be done between > layouts. Your "forced mono gets sent to the Center channel" is shown in > that section: > > 1 -> 5.1 : up-mix from mono to 5.1 > output.L = 0; > output.R = 0; > output.C = input; // put in center channel > output.LFE = 0; > output.SL = 0; > output.SR = 0; > > > Simplistic version: you either need to > > - work with original multi (>2) channel sources and set your "hardware > output" to interpret as speakers - which case you need to be careful with > nodes that downsample (Convolver and Panner), or > - set interpretation to "discrete", and make sure you're sending the > correct number of channels to the output to fill up all the channels. This > would use mergers, and would also be the way you would implement a digital > DJ app or other multiple-paired-stereo-outputs case (e.g. a DAW). > > Either way, of course, you'll want to set the > context.destination.channelCount to the desired number of channels, and the > channelCountMode to "explicit". > > Hope that helps, > -Chris > > > On Fri, Mar 15, 2013 at 10:47 AM, Jory <me@jory.org> wrote: > > I spent a lot of time reading through that part of the spec lat night, > but to no avail. I didn't try the ChannelMergerNode, so I'll give that a > shot. > > Something that was completely unclear to me was what output.L, output.R, > output.C, etc referred to. Where is output coming from? I didn't see > anything like that in any of the examples elsewhere, nor could I found > anything that subdivided channels inside the Inspector in Canary. > > Also, should multichannel audio files play? If so, what formats? > > Jory > > me@jory.org > http://studio.jory..org <http://studio.jory.org/> > > On Mar 15, 2013, at 10:34, Chris Rogers <crogers@google.com> wrote: > > > > > On Thu, Mar 14, 2013 at 11:11 PM, Jory <me@jory.org> wrote: > > On Thu, 14 Mar 2013 15:53:50 -0700, Chris Rogers wrote: > > For those interested in multi-channel output in the Web Audio API, here's > > your chance to try out an early build. This could be of interest for > > digital DJ type applications, or rendering to multi-channel speaker > > installations... > > > > Please note this is an early build and little testing has yet been made. > > So far I've tested on several devices on OSX. I'm interested in your > > feedback! > > > > The .maxChannelCount attribute is now exposed to show the actual number > of > > hardware channels: > > > > https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioDestinationNode > > > > The .channelCount attribute should now be settable on the > > AudioDestinationNode to values up to .maxChannelCount > > > > Cheers, > > Chris > > Well, I've spent a couple hours playing around, since multichannel > audio certainly interests me, both for games and music. I've had very > little success, though. > > I'm finding it very difficult to get any audio to play out anything but > the Left and Right channels. The only success I've had was forcing a > down-mix to 1 channel, where sound finally came out my Center channel. > So clearly the system functions in some manner. I've tried setting up a > 3D panner and hard-coding positional panning, but sound never leaves my > Lft-Rht channels. > > > Hi Jory, I believe Chris Wilson will be writing an article with more > details and complete sample code. In the meantime, you can look at some of > the partial example code here: > https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#UpMix > > Just to add a little more detail, with the "digital DJ" example you'd want > to use a ChannelMergerNode to combine two separate stereo mixes. The first > one would be connected to input 0 of the merger and the 2nd to input 1. > Then the merger would be connected to the destination as configured in the > partial example code. > > The ChannelMergerNode turns out to be really important for these types of > applications. In another example, if your hardware supported 8 channels of > output, you could configure it as 8-channel discrete, then create a merger > and connect eight independent mono AudioNodes to inputs 0 - 7 of the > merger. Then you could hookup eight speakers and place them anywhere in > the room you like. And the mono sources could be whatever you want - maybe > 8 de-correlated channels of white noise... > > Hope that helps. > > > > > I also tried playing back a 6-channel interleaved WAV file, but while > the file appears to "play", sound doesn't come from any speaker, no > matter how I try to configure the channelCount. > > I'm beginning to wonder if 6-channel source files are playable at this > time or if that's unsupported. (Everything seems to have choked when I > supplied a 6-channel AAC file, but I'm not even 100% the file I > supplied was even playable, since getting multi-channel AAC output is > kinda challenging with today's tools.) Also, a bit of sample code would > do my morale wonders right about now. :-) > > Thanks! > > Jory > > me@jory.org > http://studio.jory.org > > > > >
Received on Monday, 18 March 2013 16:50:52 UTC