I’m working on a sound installation that involves broadcasting sounds in 12 Loudspeakers, dispatched in a room.
Each loudspeaker need to play an audio loop for a while, and then switch to another loop.
Just “playing” recorded material is not an option because after each loop it needs to pick up a random next loop, and all speakers need to change at the same time (after the current loop has reached its end).
The space of the room should be around 40 squared meters so the speakers don’t need to be super powerful.
I started with the idea of having one “big” computer with a 12 channel soundcard. But I realize that it makes a lot of wires from the sound card to the speakers.
Wireless audio seems to be complicated and very expensive.
So I’m exploring another route :
1 Raspberry Pi 3 running a Pure Data patch that tells (via WiFi) which file each of the receivers (Rasp Zero W) should play. Each “receiver” would run a PD patch with the file players.
I think there’s so many ways to implement what you’re describing, we could go on forever discussing them. But I think you’ve got a good plan going and no reason why the equipment you’ve selected won’t work.
this solution (1 master RPi and cheap receivers) sounds very much like what i would do.
For the network part, i would just buy some wifi router (maybe one that supports openwrt) and define static leases so that each receiver keeps its own IP address. But that’s mainly because i don’t know anything about ad hoc wifi.
Other things en vrac on this kind of implementation:
work a “master” os image for the receivers, that is then installed to each of them to ensure that all are “on the same page”. Try the system early with all the clients connected. Use tcp for sending osc commands. How is audio played on the clients ? Do we need to be able to remote control stuff like levels ? See if all client streaming the audio from the master RPi is reliable / use bash rsync scripts to dispatch audio to client from server (the audio is susceptible to change until the very last minute, even if it’s not supposed to ^^). If location is known, check early if it is saturated with wifi networks or not. i guess there is so much more to think about but then i would be managing the implementation of the entire project
Yep, the client-server model works well, and your hardware stack seems sensible. It probably also means you can have one SD card image for all the ‘clients’, and one for the ‘server’; you just need a way of telling a client which ID it is with either some manual editing or a text-file on disk.
Definitely +1 to the idea of having your own network; the devices should be quite reliable (and are highly cheap to replace), but gallery wifi can be a nightmare. It’s possible the ‘server’ Pi could act as a base-station, but I’m not so sure what its performance would be like with 12 clients - a cheap router would be fine.
Battery power: maybe, but Pis are somewhat power-hungry compared to really lower power microcontroller-based solutions.
While we’re not streaming audio itself over the network, I believe based on the proposed system purpose (triggering files residing on client Raspberry Pi’s over the network) that wifi and a simple UDP command protocol (open sound control or whatever) are sufficient and most reasonable. Going ethernet or purposing one Raspberry Pi for analog output is going to force physical limitations on the installation and increase cost on each cable run (especially cat5/6). I would also do some listening on the target speakers hooked to Raspberry Pi’s output DAC to decide whether it works for you–depending on the content/volume/etc of your audio it could be totally sufficient.
For me the non-use of wi-fi is not a mater of bandwidth, but more of reliability and delay.
I’ve always been told to avoid wi-fi for time sensitive use. That for example, a “package” could just not being transmitted at all. So you could in a worst case scenario send a GO command, and nothing would happen. You’ll have to implement something specific to assure package validation and transmission.
I don’t think that you’re wrong, but for the lowest cost approach (time + money) I believe the system @chapelierfou proposed should be sufficient and then further validated. Premature optimizations can unveil problems that simply don’t need solving, especially for an art installation that might only run a couple days, wasting time and money.
I know what you mean, but damn, this makes a lot of cables. And making it clean can imply very long cable lengths. And the wireless option has the advantage of being set up in another location without extra cost (making new cables with the correct lengths…lot of money and time spent).
The power cables will still be here, of course, but’s it’s so much easier to install, and there is a good chance that there are lots of wall plugs.
I’ll make some tests of course. But in my case, latency is not really a problem. It could even be “one loop late” that it wouldn’t bother me too much. (This is even seen as a possible esthetically interesting option for this project). I could periodically re-send the trigger message during a few seconds to be sure it’s caught by the “receivers”. The trigger message will trigger “finish the loop you’re playing, then play loop number xxx”.
Advice taken, and I’ll have my own router.
This could be the way to go for a wired solution. But I’m leaning towards the (almost) unwired option.
To begin with you’re gonna need 12 speakers - some of the small, self-amplified Genelecs are your best investment. This might sound kinda old school, but the best way to coordinate the installation is with time code. There are several devices, e.g. JL Cooper, that will propagate it and then translate it into midi change commands. So all you need to do is program the devices controlling the loops to respond. I’ve done this on several installations, I’m planning one now using eight Sony APR tape recorders, with the added complication that the levels of sound coming from each of the decks will be adjusted by a collaborator playing a pocket trumpet that goes to an envelope follower and then into a MIDI-controlled fader system.
This might be overkill since latency isn’t a concern (and the project has been mothballed) but Tom Swirly put a ton of work into this system a few years back which was designed to facilitate tightly synced audio/visual networked systems of raspberry pis:
I’m looking for tips and advices regarding a multichannel spatial sound installation.
I’m a student and this is an academic project, so I’d like to spend as little money as possible. I’m posting this here hoping that some of you can help me reach the cheapest, most DIY and also less complex way to execute this!
I have very very very little experience when it comes to audio equipment/hardware and even DAW (really, like, close to 0 experience), as I’m mostly trained as a designer and only recently have started to be interested in sound art. (Sorry in advance for my extremely amateur questions!) As such, I’m struggling a bit in understanding exactly what do I need to do.
My thought process so far is that for, say, an 8-channel installation, I would need 8 speakers (but what kind of speakers?), 8 cables (what kind of cables?) and a sound card with 8 output channels (what kind of sound card? PCI, Firewire, USB? What exactly are the differences between those interfaces?). Then I would need to find a way to route my multichannel piece from my DAW to those 8 speakers. I believe this can be done through Ableton or Max (but I’ve never worked with Ableton, only a bit with Max and usually create my sound projects in Reaper). Anyways this creates another question: do I need to leave a computer in situ for the whole running time of the installation? Or are there alternatives for this?
Assuming that I won’t be able to borrow all the audio material that I need from my school or from friends/other students, what is the cheapest way to get this done?
Sorry if I didn’t put any clear questions out there, but I’m just in need of general help for this whole thing. Definitely not my field of expertise!
(PS: Don’t know if this is useful, but the sound piece should be one hour long and should mostly be composed by human speech.)
Do the pieces of audio need to be strictly in sync (i.e down to the millisecond) or would it be acceptable if they were only roughly synchronised? If they can be out of sync it may be easier (and importantly cheaper) to play the 8 pieces of audio separately Vs from a single computer. This has the benefit of needing far less cabling which is often a complicating factor for installations. In fact, if it only needs to play for one hour over short range it could be done via Bluetooth from several phones or computers. This has a benefit that you might be able to just borrow the equipment.
As for what speakers, this really depends on the space, ambient noise level and the audio. Absolute audio quality isn’t usually the primary goal but the volume level needs to work. In general larger speakers are capable of higher volume levels at better quality, but in a relatively small space (think indoor space in the 30’ square range with low ceilings) you may be able to get away with battery powered speakers you might use with a phone. This has the benefit that, being small, is fairly simple to install them though you need to make sure they start powered on. If you need bigger speakers you may but be able to battery power them, meaning you need to provide individual power, or provide a power amp for each which may be more work.
If you need strict sync, then using a single computer/audio interface may be preferable, and you can play it back in almost any audio software: audacity, reaper, Ableton etc. The audio interface type you use isn’t very important, nor are things like latency as you aren’t syncing with other events, the important part is that it has 8 or more outputs.
Taking a step back my thinking is this: of this event is run in collaboration with a school then ask them what help they can provide. The probably have PA speakers, cabling, sound cards and a while AV team. Similarly think about designing the sound with the space in mind, and with the sound system you’ll be using in mind. If you make the sound according to an imagined spec then try and install it without experience or support it may be a struggle; if you figure out what’s viable in the installation first and what hardware you can get access to at little to no cost you’ll be able to go into the signs creation stage with a picture what you can viably create.
tbh neatly running 8*25 meters of XLRs from a multichannel interface to 8 speakers is way easier than managing 8 playing devices with each their battery status, sound data to be loaded/updated, peculiar power supply and so on.
I mean, that’s less cabling than on a stage for a standard rock band. There no need to waste time on an over-engineered solution when that time could be spent working on actual content. But i agree with the previous advice regarding: see what gear you can use for free and start from there.
Also keep in mind that 8 channels of audio is a lot to write for. If the room is not huge then 4 channels, one in each corner, may be sufficient. I wouldn’t use 8 channels unless there is a requirement for a very precise writing of space.
Side note: multichannel is not necessarily n equal channels, uniformly distributed in space. It can be a frontal stereo plus a few disseminated spots. Huge speakers and tiny ones. Some precisely synced and others random. A flock of cheap drivers hung to a structure/ceiling. etc.