Releases: OpenMixerProject/OpenX32
Third alpha version
OpenX32 - Third alpha version
We are proud to release the third alpha version of the OpenSource Operating System for the Behringer X32. It is the first version with stable audio-processing within the DSPs and full support for the newer Lattice ECP5-versions of the X32-boards.
As the system is full of microcontrollers, an FPGA and two DSPs, several individual files are in the scope of this first release:
Files in this release
- dcp_corefs_openx32.run
- This is the compiled Linux-Kernel in version 6.18 LTS ready to be loaded via an USB-thumbdrive on booting up the X32 console (like any regular firmware-update for the X32)
- if Linux is not loaded, press and hold the "View"-Button next to the USB-connector when starting the X32
- x32ctrl
- the main Linux application that controls the X32-hardware like scribble-strips, faders, buttons, encoders, etc.
- offers a nice GUI based on LVGL v9.3 on the built-in display
- controls the FPGA and DSP
- binary is compiled as static, so no dependencies are there
- xilinx.bit and lattice.bit
- bitstream to configure the Xilinx Spartan 3A FPGA or the Lattice ECP5 FPGA
- support for all 32x XLR inputs, 16x XLR outputs, 6x AUX in/out, Talkback-mics and Expansion Card in/outs
- support 1:1 routing between all inputs and outputs
- support for UltraNet output
- dsp1.ldr
- configuration-file for the main Analog Devices ADSP-21371 SHARC DSP (dsp1)
- support for 40-channel audio-mixing
- noisegate and compression implemented for 32 channels (EQ is not working at the moment)
- audio-level-metering
- dsp2.ldr
- configuration-file for the secondary Analog Devices ADSP-21371 SHARC DSP (dsp2)
- receiver for 24 audio-channels from main-dsp
- creates test-sine-waves with different frequencies on all 24 output-channels back to main-DSP (keep volume low when switching to these channels)
How to use this stuff
- Extract ZIP-file and copy all individual files together with "dcp_corefs_openx32.run" to an USB thumbdrive
- Plugin USB thumbdrive to X32 console and power it on (if the DCP-Bootloader is not showing up, press and hold VIEW-button next to USB-port)
- OpenX32 will boot after file has been checked
- After Linux has booted, remove the USB drive, connect an USB-hub with keyboard, reconnect the USB-thumbdrive and mount the USB thumbdrive:
mount /dev/sda1 /mnt/usb
cd /mnt/usb
- Run the following commands to start the system:
./startXilinx.sh (if you are using an older device with Xilinx FPGA - original Firmware starts with "FX12" on booting up)
./startLattice.sh (if you are using a newer device with Lattice FPGA - original Firmware starts with "FL12" on booting up)
- Connect a microphone to XLR input 1-32 or any AUX-input and some loudspeakers to control-room outputs
- Use regular channel-faders and main-fader to control volume
Known issues
- Linux is booting into a shell, but you need a keyboard with USB-hub and the steps mentioned above to get the main-software up and running
- EQ is not working at the moment
- AES50 is not implemented yet, but all other hardware-features are already available
- No enhanced audio-mixing options are available - just Gate/Compressor per Channel and a general main-bus-mixing
Outlook
Besides these issues try it out and enjoy this cool device from a totally different point of view. These files will not change anything on the SD-card or the general hardware so a simple power-cycle is enough to bring back the original operating system. Perhaps you would like to participate in this project - now that the general system is up and running, lots of great things could be done with this device.
This open-source version of the X32 only includes about 20% of the features of the original system. Think of it primarily as a way to better understand complex digital audio systems. Feel free to create an issue here on GitHub if you have ideas or feedback.
Second alpha version
OpenX32 - Second alpha version
We are proud to release the second alpha version of the OpenSource Operating System for the Behringer X32. It is the first version that allows booting from an USB-thumbdrive directly.
As the system is full of microcontrollers, an FPGA and two DSPs, several individual files are in the scope of this first release:
Files in this release
- dcp_corefs_openx32.run
- This is the compiled Linux-Kernel ready to be loaded via an USB-thumbdrive on booting up the X32 console (like any regular firmware-update for the X32)
- if Linux is not loaded, press and hold the "View"-Button next to the USB-connector
- x32ctrl
- Linux application that controls the X32-hardware like scribble-strips, faders, buttons, encoders, etc.
- offers a nice GUI based on LVGL v9.3 on the built-in display
- general support for X-Remote protocol (X32-Edit and MixingStation)
- binary is compiled as static, so no dependencies are there
- fpga.bit
- bitstream to configure the Xilinx Spartan 3A FPGA
- support for all 32x XLR inputs and 16x XLR outputs, 6x AUX in/out, Talkback-mics
- support 1:1 routing between all inputs and outputs
- support for UltraNet is there, P16 detects the system, but something is still wrong with the signals
- dsp1.ldr
- configuration-file for the main Analog Devices ADSP-21371 SHARC DSP (dsp1)
- support for 40-channel audio-mixing
- noisegate, compression and 4-band EQ for each channel implemented
- basic audio-level-metering
- dsp2.ldr
- configuration-file for the secondary Analog Devices ADSP-21371 SHARC DSP (dsp2)
- receiver for 24 audio-channels from main-dsp
- direct passthrough of audio without processing back to DSP1 at the moment
How to use this stuff
- Copy all files to a USB thumbdrive
- Plugin USB thumbdrive to X32 console and power it on
- OpenX32 will boot after file has been validated like any other regular firmware-update
- After Linux has booted, remove the USB drive, connect an USB-hub with keyboard and mount the USB thumbdrive:
mount /dev/sda1 /mnt/usb
cd /mnt/usb
- Run the following commands to start the system:
./x32ctrl -fpga fpga.bit -dsp1 dsp1.ldr -dsp2 dsp2.ldr
- Connect a microphone to XLR input 1-32 or any AUX-input and some loudspeakers to control-room outputs
- Use regular channel-faders and main-fader to control volume, or use EQ-controls to control the four EQs
Known issues
- XLR-outputs flips Out 1-4 and Out 5-8 due to sync issues from time to time
- the DSP needs sometimes 2-3 attemps to sync with the FPGA. If you cannot hear anything or have distorted audio, restart the x32ctrl-software several times.
- At the moment only the Xilinx Spartan 3A version of the X32 is supported. The Lattice FPGA-version is in progress.
- Linux is booting into a shell, but you need a keyboard with USB-hub and the steps mentioned above to get the main-software up and running
Outlook
Besides these issues try it out and enjoy this cool device from a totally different point of view. These files will not change anything on the SD-card or the general hardware so a simple power-cycle is enough to bring back the original operating system. Perhaps you would like to participate in this project - now that the general system is up and running, lots of great things could be done with this device.
This open-source version of the X32 only includes about 20% of the features of the original system. Think of it primarily as a way to better understand complex digital audio systems. Feel free to create an issue here on GitHub if you have ideas or feedback.
First alpha version
OpenX32 - First alpha version
We are proud to release the very first alpha version of the OpenSource Operating System for the Behringer X32. As the system is full of microcontrollers, an FPGA and two DSPs, several individual files are in the scope of this first release:
Files in this release
- x32ctrl
- Linux application that controls the X32-hardware like scribble-strips, faders, buttons, encoders, etc.
- offers a nice GUI based on LVGL v9.3 on the built-in display
- general support for X-Remote protocol (X32-Edit and MixingStation)
- binary is compiled as static, so no dependencies are there
- fpga.bit
- bitstream to configure the Xilinx Spartan 3A FPGA
- support for all 32x XLR inputs and 16x XLR outputs, 6x AUX in/out, Talkback-mics
- support 1:1 routing between all inputs and outputs
- support for UltraNet is there, P16 detects the system, but something is still wrong with the signals
- dsp1.ldr
- configuration-file for the main Analog Devices ADSP-21371 SHARC DSP (dsp1)
- currently 8-channel audio-mixing is implemented:
- DSP-Out 1 is sum of DSP-inputs 1-8 without volume-control (for debugging)
- DSP-Out 2 is main left
- DSP-Out 3 is main right
- DSP-Out 4 is main sub
- support for Noisegate, 2-band PEQ and Compressor per Channel
- x32sdconfig
- accesses the internal SD-Card of the X32 and reads the configuration (MAC-address, serial, etc.) into the file /etc/x32.conf
- openx32.bin
- This is the compiled Linux-Kernel ready to be loaded via the USB Type-B connector at the back of the larger X32 models
- Starts Linux using U-Boot, boots into the shell and is ready for mounting usb-thumbdrives. I suggest to use an USB-hub to connect a keyboard next to the USB-thumbdrive.
How to use this stuff
- Connect the X32 via the USB Type-B port to your (linux) computer
- copy the linux-image (openx32.bin) to your computer and download pyatk from https://github.com/hbock/pyatk
- patch pyatk with the following files from the OpenX32-repository:
"OpenX32/files/usbdev.py" -> "pyatk/pyatk/channel/"
"OpenX32/files/boot.py" -> "pyatk/pyatk/"
"OpenX32/files/meminit.txt" -> "pyatk/bin/"
- upload the linux file using this command:
cd pyatk/bin
mx-toolkit.py run -b mx25 OpenX32/openx32.bin 0x80000000 -i meminit.txt
- After Linux has booted, mount an USB thumbdrive:
mount /dev/sda1 /mnt/usb
cd /mnt/usb
- Run the following commands to start the system:
./x32sdconfig
./x32ctrl -fpga fpga.bit -dsp1 dsp1.ldr
- Connect a microphone to XLR input 1 and some loudspeakers to XLR output 1
Current Issues
- If you cannot hear anything on XLR1, check XLR5. At the moment the output-boards seem to boot sometimes with reversed order of Channel 1-4 and Channel 5-8
- In this early alpha-stage the DSP needs sometimes several attemps to boot correctly. If you cannot hear anything and issue 1 is not the problem, simply restart the software several times. Then it is working
- Nothing is optimized at the moment. Linux and the main application require more space in RAM than is actually necessary. In a future release this will be addressed, but for now the 64MB of the X32 are sufficient.
Outlook
Besides this issues try it out and enjoy this cool device from a totally different point of view. These files will not change anything on the SD-card or hardware so a simple power-cycle is enough to bring back the original operating system. Perhaps you would like to participate in this project - now that the general system is up and running, lots of great things could be done with this device.
Feel free to create an issue here on GitHub if you have ideas or feedback.