Hey! I had an idea for an array of many small speakers, each capable of playing different sounds so I could dynamically re-arrange which speaker is playing what. This would be paired with some LEDs and some water to make (what I hope will be) a fantastic visual effect. But of course all this is a bit over my head, so I'd like some feedback on my idea! After a bit of research, here's how I think I'll do it: General Concept Essentially what I'm trying to do is make a waveform generator with lots and lots of separate channels. I would hook up my microcontroller to several, multi-channel Digital to Analog Converters (DACs). The microcontroller would feed these DACs signals to generate the wave forms that I want for each individual speaker. The waveforms that the DACs output would each go through an extremely simple amplifier. The amplified signal would go to my speakers. I've attached a diagram that should give you a better idea of what I'm doing. Specifics The microcontrollers I'm looking at are the ChipKIT series from Digilent because I have access to a bunch of these. I'm currently planning on using the uC32, but I actually have access to pretty much all their other boards. The uC32 runs at 80MHz. The DAC I'm looking at is the AD5628 from Analog Devices. That's used in Digilent's PmodDA4, which I also have access to. Alternatively I might just order a bunch. They have 8 analogue outputs, and the SPI communication can run at 50MHz clock speed. I'm planning to have eight of these (for 8^2 total outputs). I haven't figured out what amplifier I'm going to use yet. It'll need to be simple and cheap, as I'm expecting to have 8^2 of them, but I'd also like one that can operate over a large band of frequencies. I've also attached two pictures of the speakers I'm planning to use. I kinda randomly acquired a lot of these, so I'd rather not switch to a different speaker type. According to Wikipedia, the highest note on a piano keyboard is a little over 4kHz. If I split the sinusoidal wave into 16 segments, that means an update frequency of 76kHz. This is way below my max operating speed of 50MHz so I think I can get away with it. Questions What am I doing wrong? I'm hardly an expert on any of this, so I'm certain there's a much simpler way. Are there ICs that do what I want? Maybe something that takes in a digital signal and outputs waveforms? This would be similar to how a servo controller would output different PWM signals, only changing the frequency rather than the duty cycle. What sort of amplifiers should I be looking at? This is my first time on the forum so please let me know if I'm doing anything wrong (or could do anything better).