Active Line Array Project

Introduction

The active line array project described in these pages is the culmination of many years of part-time line array development, starting with the array described in this article: “Case study #3: A line array with DSP“. That early design has proven to be an excellent music and TV speaker. However, that design was started over 11 years ago, and it is now ready for a technology facelift. The links on this page provide the details of the new circuitry and software that will go into the refreshed line array.

I have tried to include enough details of the design to allow others to make their own active line arrays. That means providing the PCB project files, schematics, Sigma Studio code, Arduino code and Android Studio files needed to control the hardware from a cell phone. All of this material will be made available in the pages linked from this top-level outline. There are no restrictions on its use other than you must understand that much of this design was done quickly and in many cases is in need of refinement, editing, refactoring and other improvements. You will be looking at an experimenter’s notebook, not a proven commercial product. Also, please understand that the information is presented “as-is” and that I have limited time to respond to questions.

Rationale

why active line arrays are good. DSP with lots of amps make constant directivity possible. DSP also makes open baffle much easier.

Design overview

The overall design goals and block diagram are presented on this page, along with a brief description of how this speaker can be used in the home. The individual components on the block diagram are discussed in the links in the next section. The software that controls the DSP is discussed in a section that follows.

Electronics

Amps

The amplifiers for the midrange and tweeters in a line array do not require much power, and there are quite a few single-chip solutions that can be used for the active line array, but a standout solution is the SSM3582. This page details the PCB design and construction of a modular 4-channel board based on the SSM3582 that is a little over 2 square inches. This page also includes a snippet of C++ code that shows how these chips are initialized.

Motherboard

We need a motherboard to connect the amplifiers to the DSP and to connect the DSP to MCU. Also, we need some I/O circuitry and connectors to bring in audio and control. This page describes both the early prototype based on the ADAU1466 DSP and a later prototype based on the ADAU1467 DSP.

DSP

With at least 20 channels of audio that need to be updated every audio sample, we need a capable digital signal processor (DSP). This page provides an overview of the DSP processing for the active line array and documents the design and construction of one of the DSP boards. The actual DSP “program” that runs on the DSP is detailed in a later section, under “Software”.

MCU

Hmmm…a fair question is: do I really need or want a computer in my speakers? The answer is no, you don’t need it, but you will probably want it. This page explains what the microcontroller does in the active line array, and why it is more useful than you might expect.

Other Modules

There are a couple of power supplies and purchased modules that are detailed on this page.

Software

Software Overview

The software overview page describes the various software environments and how the different types of software interact. It also provides a lame excuse for not using Github to host the code.

SigmaStudio “Code”

The SigmaStudio code for the active line array is shown on this page. The graphical tool allows building the DSP processing threads, but you will also need to understand how to set the registers using SigmaStudio.

Arduino Software

The Arduino code has undergone many revisions and transformations, as it has been adapted for small speakers using adau1701 DSP chips and more ambitious line arrays with the ADAU146X DSP chips. The description of the code is separated into two parts, and there is an overview that ties the two parts together. Part 1 is the core functionality of controlling the DSP chip and the “new” interface to control the DSP functions. Part 2 describes the menu system and integrated HCI, and it describes how the state of the DSP is saved and restored.

Android/IoT/other HCI Software

This page describes the Android app to control the DSP. It also describes other methods to send messages to the DSP, such as the Android Cloud app and several other user input options.

The Android code used for controlling the line array was originally written in Java for Android 4, and whereas there have been many updates along the way, the current code base is not what anyone should use for new implementations. The code still works fine on my Android 16 Pixel 8 and on the Samsung A14 phone, but it would require a major overhaul to conform to the new programming standards that have evolved since the initial design. This section describes the layouts and provides links to the files that someone would need to develop a new Android or IOS app.

Drivers and Cabinetry

There were no pictures taken during the build for this speaker, but there will be enough documentation of the finished cabinet to allow designers to be inspired to build their own version. More to come…

Testing and tweaking

I will be taking measurements and showing how to use the equalization and leveling tools to optimize these speakers for your room. More to come after this work gets started…