blow your phase off
GitHub ↗
One tone, many voices. An untamed, opinionated instrument that uses
mathematical
irrationality to reach uniquely stable inharmonic timbres.
Download
| Linux x86_64 | macOS arm64 | macOS x86_64 | Windows x64 |
| SHA256SUMS | SHA256SUMS | SHA256SUMS | SHA256SUMS |
Install
LINUX Download → bypomono-linux-x86_64.tar.gz Extract Run → ./blow-your-phase-off-gui Copy .clap → to the directory your DAW indexes
MACOS Download → [Intel] bypomono-macos-x86_64.zip [Silicon] bypomono-macos-arm64.zip Extract Clear quantine → xattr -dr com.apple.quarantine <folder> Right click to open → BYPO.app Copy .clap → to the directory your DAW indexes [~/Library/Audio/Plug-Ins/CLAP/]
WINDOWS Download → bypomono-windows-x64.zip Extract Run → blow-your-phase-off.exe Copy .clap → to the directory you DAW indexes [%COMMONPROGRAMFILES%\CLAP\] Windows version hasn't been fully tested by myself yet.
Build from source
git clone https://github.com/wraithsys/bypomono.git && cd bypomono
make # standalone, blow-your-phase-off-gui
make check # engine tests
git clone --depth 1 https://github.com/free-audio/clap /tmp/clap
make bypo.clap EXTRA_CPPFLAGS=-I/tmp/clap/include # the plugin
Package names, the ones the CI runners use:
# Debian / Ubuntu
sudo apt install build-essential pkg-config libsdl2-dev libfreetype-dev libasound2-dev libx11-dev
# macOS
brew install pkg-config make cmake # SDL2 and FreeType are built from source by .github/macos-deps.sh
# Windows, MSYS2 MINGW64 shell
pacman -S make git mingw-w64-x86_64-gcc mingw-w64-x86_64-pkgconf mingw-w64-x86_64-SDL2 mingw-w64-x86_64-freetype
# Fedora
sudo dnf install gcc make pkgconf-pkg-config SDL2-devel freetype-devel alsa-lib-devel libX11-devel
Algorithmic Phase Modulation
The architecture is PM with a dual algorithm selector: the arrangement of modulators, carriers and feedback is chosen by roman numeral I to VIII, and the ratio palette supplies five named starting configurations for operators 1–5. Loading a palette writes those five ratios directly to the operators; their ratios can then be tuned independently and are preserved when the algorithm changes. PM depth is tuned through these recursive algorithms
Phase Violence
|
There are some additional controls that allow for even deeper timbric exploration that I encourage you to experiment with those being RIP, haunt, and ghost. Operators can be turned off removing not only its signal from the output but from the modulation signal chain. I'd highly recommend experimenting with turning off operators to find unique mixtures (especially in conjunction with The Room's ghost). A sum of the carriers leaks into a short delay through an all pass filter to actively try to cause phase cancellation by modulating the phase of the voice with it's own altered past. The delay and the phase rotation of the allpass filter work together - bending time to modulate away the voice, the modulation rarely manages to stop the voice - merely tearing it apart as it drones on. |
|
Operator Structures
I · SSSS [1]↺ │ [2] │ [3] [4] └─┬─┘ [5] ══╧══ out |
II · SSSP [1]↺ │ [2] │ [3] │ [4] [5] ═╧═══╧═ out |
III · PSSP [1]↺ │ [2] │ [3] [4] [5] ═╧═══╧═══╧═ out |
IV · PPSP [1]↺ │ [2] [3] [4] [5] ═╧═══╧═══╧═══╧═ out |
V · PPPP [1]↺[2] [3] [4] [5] ═╧═══╧═══╧═══╧═══╧═ out |
VI · PPPF
[4]
│
[1] [2] [3] [5]↺
═╧═══╧═══╧═══╧═ out
|
VII · PPFF [1] [4] │ │ [2]↺[3] [5] ═╧═══╧═══╧═ out |
VIII · PFFF [1] │ [2] [4] │ │ [3]↺[5] ═╧═══╧═ out |
| # | ID | Structure | Carriers | Max depth | Feedback on |
|---|---|---|---|---|---|
| I | SSSS |
full FM tree: (1→2→3)and 4both modulate 5 |
1 | 4 | op 1 (depth 4) |
| II | SSSP |
true 4-op stack 1→2→3→4, plus sine 5 |
2 | 4 | op 1 (depth 4) |
| III | PSSP |
3-op stack 1→2→3, plus sines 4, 5 |
3 | 3 | op 1 (depth 3) |
| IV | PPSP |
FM pair 1→2, plus sines 3, 4, 5 |
4 | 2 | op 1 (depth 2) |
| V | PPPP |
five independently tuned parallel sines (additive) | 5 | 1 | op 1 (depth 1) |
| VI | PPPF |
FM pair 4→5, plus sines 1, 2, 3 |
4 | 2 | op 5 (depth 1) |
| VII | PPFF |
FM pairs 1→2and 4→5, plus sine 3 |
3 | 2 | op 2 (depth 1) |
| VIII | PFFF |
3-op stack 1→2→3and FM pair 4→5 |
2 | 3 | op 3 (depth 1) |
Chambers
|
The Room is a uniquely close sounding reverb with a dirty tank and a modulation linked dampener (via field). It has its own tricks with haunt and ghost that have novel effects, and of course The Room was structured using fibonacci recursion. Here it was used to define phase offsets via the all pass filter networks. |
|
Ratio Palettes
harmonic op 1 2 3 4 5 × 1 2 3 4 5 rₙ = n |
fibonacci op 1 2 3 4 5 × 1 1 2 3 5 rₙ = Fₙ |
golden · default op 1 2 3 4 5 × 1 φ φ² φ³ φ⁴ rₙ = φⁿ⁻¹ φ = 1.618… |
mirror op 1 2 3 4 5 × φ⁻² φ⁻¹ 1 φ φ² rₙ = φⁿ⁻³ |
plastic op 1 2 3 4 5 × 1 ρ ρ² ρ³ ρ⁴ rₙ = ρⁿ⁻¹ ρ = 1.3247… |
φ² = φ + 1 ρ³ = ρ + 1 |
Progenitor
|
Chandas listens to the signal before and after we do. It's a unique granular delay that can sync with the internal sequencer. Whilst syncing it has a polyrhythmic texture though Chandas also features its own massive lush reverb with two multi controls to tune its bloom. Named chandas, the ancient Indian study of Sanskrit poetic metre. In the work traditionally attributed to Pingala, long and short syllables were systematically arranged and enumerated, producing mathematical structures we now recognise in terms of binary combinatorics and the Fibonacci sequence. |
Textural Utility
And finally warmth, it's mainly an output level utility - with some extra juice packed into the slider's range. Near the top end of its range it starts upward multiband compression, even-bias clipping, spectral processing and an auto-release limiter stage.
Console
You can record takes within the application that writes a 48khz 32bit float .wav files to your Music folder. The instrument runs at 48khz sample rate, selects your default output device and is fully midi compatible. A console accessed using "/" is available for mapping MIDI CC to parameters. -- the console is still a work in progress
Presets
┌──────────┬─────────────────────────────────────────────┐
│ Platform │ Your presets │
├──────────┼─────────────────────────────────────────────┤
│ Linux │ ~/.local/share/bypo/presets/ │
├──────────┼─────────────────────────────────────────────┤
│ macOS │ ~/Library/Application Support/bypo/presets/ │
├──────────┼─────────────────────────────────────────────┤
│ Windows │ %APPDATA%\bypo\presets\ │
└──────────┴─────────────────────────────────────────────┘
The shipped bank lives in presets/BYPO/ beside the app. On first run the app copies it into your folder under BYPO/, and anything you save lands in your folder from then on. Presets are plain JSON, one file each, the filename is the preset's name.
62 in the core bank · presets/BYPO/*.json
BRUTALISM drifting minority slinky Fermi eddie the eagle miopic space battleships Fluffy eleventeen moaner stellar_breeze GlassD fall of rome mr bojangles storyteller Summon fibbing mustang ballaie symmetriad Woofer goodbye- neo bass test flip point barbershop hexD net terminal gene the conch bong hexD_alt one the_nine chakra init orthogonal throaty church instability oslo tokyo ghost cinematic it had the power phraze unbeknownst click jiggle physics plinky washed out crash landoger present wet bong default lil glider pressure wibbly discovered harmony logarhythm saturated woof drama mathsmatic shuffling a deck
Contributors
PRESETS → core bank |
BUGS → issues |
CODE |
akindoflikeness / AKOL
On AI
Without AI this wouldn't exist. Primarily it has been programmed by AI agents. Every change is read, committed and tested by hand and the design and audio architecture are mine (akindoflikeness/AKOL). AI is not exclusively a force for good, and has been especially damaging in music and the arts generally. This is written to be open so that you can make an informed decision about whether to engage with it or not.
══════════════════════════════════════════════════════════════════ MIT · fonts: Pixeloid Mono, European Teletext, Unifont Ex Mono see THIRD-PARTY-LICENSES.txt ↑ top ══════════════════════════════════════════════════════════════════