Author Topic: A Bluetooth Speaker Array  (Read 5460 times)

Offline Alex Gleason

  • byte
  • *
  • Posts: 37
    • View Profile
    • Google+
A Bluetooth Speaker Array
« on: February 08, 2013, 06:22:02 PM »
I have no clue where one would begin with something like this or what the technical implications are. This is just an idea I had and I was hoping you guys could provide some insight.

I think it would be useful to be able to purchase multiple Bluetooth speakers and use software to designate each speaker as a separate channel. For instance, one could purchase five mono Bluetooth speakers and a Bluetooth subwoofer and designate each speaker as FL, FR, RL, RR, center, and bass for a 5.1 surround sound configuration.

The benefit of this is that any speaker system could be easily upgraded  to support more channels, clutter is removed, and speakers needn't be wired all the way to a central box. Also, a portable computer or phone could be paired or unpaired from the array without adjusting anything physical.

What do you guys think?

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3495
  • Developer
    • View Profile
    • PaulsCode.Com
Re: A Bluetooth Speaker Array
« Reply #1 on: February 08, 2013, 07:52:44 PM »
This is a very interesting idea.  I imagine you'd want a single virtual Bluetooth audio device to pair your devices to, rather than pairing it to every single speaker individually.  This means you will need a host "server" of sorts that is paired to all the speakers individually.  Devices would pair with that host, and send it a stream of audio output.  The host would process and split that data and decide which speakers should receive what.

I think the first thing to consider is what you'd use as the host.  That will affect what programming languages and APIs will be available to write the server software.  My initial thought was a dedicated android device (running ICS or JB preferably), but you could also use a computer or netbook or something.  For that matter, it wouldn't really have to be dedicated - in theory you could even host it as an app on your phone that you just fire up and it automatically pairs with the speakers and broadcasts itself as an audio device.  When you're done, exit the app, stick your phone back in your pocket, and be on your way.
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline Alex Gleason

  • byte
  • *
  • Posts: 37
    • View Profile
    • Google+
Re: A Bluetooth Speaker Array
« Reply #2 on: February 08, 2013, 09:42:24 PM »
Thanks so much for your insight, Paul. I hadn't thought too deeply into it and imagined a separate app for every platform (Android, Windows, Linux, etc.) that would save your speaker configuration on your device and manage the Bluetooth connections to them. This would require the array to be manually configured on each device.

Having a separate host unit would definitely simplify this process and software wouldn't have to be written for every platform that may use this.

I just read a little more into this, though, and unfortunately it doesn't look like any existing Bluetooth audio profile will actually carry more than 2 channels of sound... http://en.wikipedia.org/wiki/Bluetooth_profile#Advanced_Audio_Distribution_Profile_.28A2DP.29

That being the case, I imagine I'd have to use something like SPP to stream multi-channel audio to the host unit, meaning I'd end up having to write a driver for every platform anyway, right? Unless I was content with a speaker array playing only two channels across many speakers (in this case, I could perhaps program the host unit to optionally simulate surround sound).

Thanks!
« Last Edit: February 08, 2013, 09:46:09 PM by Alex Gleason »

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3495
  • Developer
    • View Profile
    • PaulsCode.Com
Re: A Bluetooth Speaker Array
« Reply #3 on: February 09, 2013, 06:05:18 PM »
I hadn't thought of the 2-channel limitation.  There could still be a benefit of having a host device even if you do end up needing to write a driver for each connecting device (it could be useful for global settings that you always want to apply, for example)  Simulating surround sound like you mentioned is the only other option if you didn't want to have a special driver on every device (I've never really looked into that to see how technically difficult it is)
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted