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.
Here's a screenshot of PHASEX in action.
Please keep in mind that PHASEX is in an active state of development, and new
features will be added from time to time.
Features
- GTK Interface:
PHASEX now has a GUI! Gone are the days of editing patch files by
hand. Access to any of the 136 parameters is just a mouse click away.
Notebook and fullscreen modes are provided to accomodate screen size.
- Polyphonic:
PHASEX is now polyphonic! In poly mode, voices are allocated
dynamically up to the voice limit set at compile time.
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 Output:
JACK is used for the audio 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.
- Multithreaded:
PHASEX uses separate threads using realtime scheduling for JACK
output, 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.
- 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.
phasex-0.12.0-beta2 is available for download. New
version contains bugfixes, sampled oscillators, new parameters,
improved sound quality, improved interface with JACK, and a new
colorful GTK theme. This may be only a beta, but so far looks like
the most solid phasex release yet. Visit the beta
page for tarballs, Fedora 10 RPMS (optimized for arch), and more info.
Older PHASEX release:
Project Roadmap:
-
- 0.12.0: Multitimbral support, optimize dsp code more.
- 0.13.0: LASH support.
- 0.14.0: Implement LFO clock-sync for MIDI clock and JACK transport.
- 0.15.0: JACK MIDI support.
- 0.16.0: ???
- 0.17.0: Overhaul parameters to add generic ctlr-float conversions
and add mod-matrix (w/ velocity and aftertouch handling).
- 0.18.0: OSC and DSSI support.
- 0.19.0: GUI enhancements.
- 0.20.0: Programmable arpeggiator? LV2 support?
Feedback:
PHASEX is in active development. Constructive criticism is highly welcomed.
Please direct all questions and comments to
weston@sysex.net.
|