PHASEX:
[P]hase [H]armonic [A]dvanced [S]ynthesis [EX]periment
PHASEX is an experimental software synthesizer for use with Linux/ALSA/JACK.
The name comes partially from its experimental method of using phase offset
modulation, where each oscillator can have its phase offset between right and left
channels modulated by an LFO or another oscillator.
Please keep in mind that PHASEX is in an active state of development, and new
features will be added from time to time.
Screenshots:

Notebook mode w/ Sans 9 font and Dark theme (default).

One-Page mode w/ Papercuts 12 font (from SuperTux) and Light theme.

Notebook mode w/ glisp 6 font and Dark theme. Fits inside 800x600!

Preferences window.
Features
- GTK Interface:
Access to any of the 146 parameters is just a mouse click away.
Notebook and fullscreen modes are provided to accomodate screen size.
- Polyphonic:
In poly mode, voices are allocated dynamically up to the runtime
configurable voice limit. Oscillators and filters function
independently per-voice. (LFOs, however, function on a per-part
basis). In addition to Poly mode, the three legacy Mono modes are
still supported: Mono Smooth mode puts new notes back into sustain
if playing legato. Mono Multikey mode maps the keys played, in
order, round-robin style to all oscillators based on MIDI note
frequencies in use. In Mono Retrigger mode, envelopes and
oscillator init phases are retriggered every time a note is
played.
- JACK Audio:
JACK is used for the audio input and output. PHASEX supports any
sample rate or buffer size used by jackd. Future plans include
supporting the JACK sequencer for MIDI input. If there's enough
interest, support for other audio systems such as ALSA (w/o JACK)
or portaudio may be added as well.
- ALSA MIDI Control:
PHASEX receives its MIDI input via standard ALSA sequencer ports
for full realtime control over any parameter. Parameter names are
right clickable for quick and easy MIDI controller assignments.
Each MIDI controller can be mapped to up to 15 parameters.
Initial velocity/aftertouch support has been added in the latest
beta.
- Multithreaded:
PHASEX uses separate threads using realtime scheduling for JACK
audio, MIDI input, and the synth engine. The GTK UI runs in its
own thread at normal scheduling priority.
- 4 Oscillators:
Each oscillator features wave shape selection, bipolar or unipolar
output, frequency source selection (midi note, tempo based, tempo
based w/ phase trigger, or audio input), mix modulation supporting
standard or AM mixing, per-osc transpose and pitchbender amounts,
and selectable modulation sources for AM, FM, phase offset, and
waveshape modulation. For all but waveshape modulation, both
oscillators and LFOs are available as modulation sources. Fine-
tuning has been added for oscillator pitch and FM depth.
- 4 LFOs:
The dedicated per-osc LFOs have been replaced with generic
per-part LFOs. The LFOs are identical to the oscillators except
that they are per-part instead of per-voice, they do not accept
other modulation sources (yet), and they are not transposed by the
master transpose parameter.
- ADSR Envelopes:
PHASEX comes equipped with standard ADSR envelopes for the
amplifier and filter. Duration times follow a parabolic curve.
The amplitude of the amplifier envelope follows a logarathmic
curve covering the dynamic range of 14 bits. The filter envelope
is linear with respect to the musical scale. Both can also be
used as oscillator and LFO sources.
- Filter:
The filter is a Chamberlin filter (2-pole 12db/octave) hacked up
so it doesn't destasblize at high cutoff or resonance values. Low
pass, high pass, band pass, and band stop modes are available, as
well as four combo modes. The filter has it's own ADSR envelope
(identical to amplifier envelope with the added option of
switching to negative polarity). One of the LFOs may be mapped to
modulate filter cutoff. Cutoff controller values map directly to
MIDI note numbers. Optional keyfollow mode allows cutoff to
follow the key played for the MIDI note, or the lowest, highest,
or most recent key in play. The filter is per-voice in Poly mode.
- Chorus:
The PHASEX stereo crossover chorus (inspired by the chorus on the
old Akai S-series samplers) adds depth and that extra bit of
fullness, and comes with a builtin phaser for an expansive stereo
soundstage.
- Delay:
The delay sports the normal mix and feedback controls, along with
a channel crossover option. Use of an LFO allows modulation of
playback position, great for flange-like effects (or really
messing with people's heads at longer delay times). Delay times
are selectable based on tempo, in both 1/64th and 1/48th
increments.
- Input Processing:
Up to two JACK input channels (as mono, dual mono, or stereo) may
be used as frequency sources for both oscillators and LFOs. An
input envelope follower and input boost allow for sources like
guitar or vocals to be processed with ease.
- Stereo Width:
The width of the stereo image is adjustable via a MIDI controller
from pure mono to pure stereo. Can be used during sound design to
help create patches that sound very different when a center
playback channel is present.
- Multiple Instance Support (*new*):
Running multiple instances of PHASEX is now fully supported. Each
instance keeps a persistent ID and provides its own JACK and ALSA
ports.
- Velocity and Aftertouch Sensitivity (*new*):
PHASEX now has full support for note-on velocity, key aftertouch,
and channel aftertouch MIDI data. Velocity and aftertouch can be
routed to the amplifier, filter, LFOs, or oscillators.
Check out the new PHASEX pre-release!
phasex-0.12.0-pre1 is now
available for download. New version contains a build system overhaul,
numerous bugfixes, sampled oscillators, fine tuning, velocity and
aftertouch sensitivity, multiple instance support, improved sound
quality, improved interface with JACK, two new colorful GTK themes,
selectable fonts, and a true fullscreen mode. This is the pre-release
for the stable 0.12.0 series. No glitches. No crashes. Just pure
sound.
Download PHASEX-0.12.0-pre1!
Source code
Fedora 11 RPMs (32-bit)
Fedora 11 RPMs (64-bit)
Fedora 8 RPMs (32-bit)
PHASEX Git Repository:
You can now grab the latest phasex source with git!
$ git clone http://sysex.net/git/phasex.git phasex
If you would like write access to a developer repo, please let me know.
Project Roadmap:
-
- 0.12.x: Focus on useability.
- 0.13.x: LASH/LADI support. True multitimbral support.
- 0.14.x: JACK MIDI support.
- 0.15.x: OSC/DSSI/LV2 support.
- 0.16.x: LFO clock-sync for MIDI clock and JACK transport.
- 0.17.x: ?????
Feedback:
PHASEX is in active development. Constructive criticism is highly welcomed.
Please direct all questions and comments to
weston@sysex.net.
|