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

CLAP

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

View diagram on GitHub

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.

phase scope

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.

The Room

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

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

warmth

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

the / 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
══════════════════════════════════════════════════════════════════