PowerAudio is a project that aims to port audio plugins to IBM Power systems
running GNU/Linux. The focus is on adding support for ppc64le
—modern 64-bit
PowerPC running in little-endian mode—as this configuration has the highest
level of support in GNU/Linux distributions like Debian, Ubuntu, and
Fedora.
Many ports also contain fixes and improvements for other processor architectures, as well as GNU/Linux in general. Care is taken to ensure that fixes for one architecture or platform do not adversely affect others.
Modern IBM Power systems have become more accessible to individuals due to the offerings of companies like Raptor Computing Systems. As such, there is a greater desire to run software geared toward personal use, such as audio plugins, on this platform. In fact, most of the ports here were created because I (taylordotfish) wanted to use those plugins on my own ppc64le machine.
Below is a summary of software ported by PowerAudio. These lists exclude software for which all changes have been merged upstream, as well as dependencies used only by a single program (see PowerAudio’s repositories page for a complete list).
Plugins:
- ArtyFX: adds support for Power in build files.
- Bitrot: replaces binary blob, increases optimizations, and adds
--lv2-only
option. - DISTRHO Ports: uses patched JUCE with Power fixes and adds support for non-x86/ARM to Vitalium and pitchedDelay.
- DPF-Plugins: allows choosing compiled plugin formats.
- Dragonfly Reverb: fixes VST 3 on Power and allows choosing plugin formats.
- Helm: fixes GCC errors, adds support for Power in build files, installs to
/usr/local
, and prevents unnecessary re-linking. - Monique: uses patched JUCE with Power fixes, adds installation rules, and
adds
LV2_ONLY
option. - Odin 2: uses patched JUCE with Power fixes, adds installation rules, and
adds
LV2_ONLY
option. - plugdata: uses patched JUCE with Power fixes, installs to
/usr/local
(customizable), and addsLV2_ONLY
option. - Surge XT: uses patched JUCE with Power fixes, adds workaround if LuaJIT is
unsupported, and adds
LV2_ONLY
option. - tap-lv2: fixes build process on Power.
- Triceratops: replaces binary blob and increases optimization level.
- Vaporizer2: uses patched JUCE with Power fixes, adds support for
non-x86/ARM, and adds
LV2_ONLY
option. - Wavetable (SocaLabs): uses patched JUCE with Power fixes, adds
installation rules, disables non-free VST 2, and adds
LV2_ONLY
option. - Zyn-Fusion (ZynAddSubFX): installs to
/usr/local
(customizable), uses submodules, improves build process, and fixes LTO errors.
Libraries:
- autowaf: adds branch with old
autowaf.py
but new Waf, sometimes needed when replacing blobs. - JUCE: fixes linker errors on Power, adds fallback SIMD types on unsupported architectures, and fixes VST 3 generation on Power.
- NTK: replaces binary blob.
- rust-lv2: adds support for Power.
For more information on PowerAudio’s approach to porting software, see the list of policies that govern development activity.
This article on Talospace further describes the history of PowerAudio and the technical details of the porting process.