[LAA] PHASEX-0.14.97

William Weston whw at linuxmail.org
Sat Jan 12 09:54:11 UTC 2013

Announcing PHASEX-0.14.97 !!!

[P]hase [H]armonic [A]dvanced [S]ynthesis [EX]periment

The new version of PHASEX is shaping up quite nicely.  For those of
you who missed the announcement of v0.14.96 on linux-audio-dev, here's
a recap of what's new since v0.12.0:

New Features:
- Multitimbral (1 thread per part).
- Session bank (very much like the patch bank).
- Jack Session.
- Stereo- and Multi- outputs for JACK.
- ALSA PCM audio.
- Generic MIDI (/dev/midi support).
- MIDI clock for timestamping and queuing events.
- Active Sensing.
- New oscillator waveforms.
- Portamento for Osc Transpose events.
- FM oscillator latching.
- New LFO parameters.
- Moog (24db/octave) filter.
- Fast fade-out mono retriggering.
- Interpolated oscillator table lookups.
- Ability to run with no GUI.
- JACK MIDI / ALSA Raw / ALSA Seq connections in menus.
- Widescreen layout mode.
- New preferences dialog w/ nearly all settings.
- New knobs.
- Pure 64-bit math in builds with --enable-cpu-power=4.

New Features from Anton Kormakov:
- MIDI Hold pedal.
- JACK Transport.

Bugs Removed and/or Squashed:
- The "bad PHASEX noise" is gone.
- GUI widget sensitivity is fixed.
- Notebook tabs behave properly (and quickly).
- Patch loading bugs are gone.
- MIDI program change works dependably.
- Spurious envelope triggering pops are gone.
- Offsets for neg. filter env. now calculated properly.
- Chopped portamento slides are fixed.
- Keytriggering for all keymodes is fixed.
- Voice stealing works as expected.
- Chorus phase balance issues have been corrected.
- System lockup on shutdown is a thing of the past.
- Denormals don't eat up all the CPU anymore.

Code Overhaul:
- Build system overhaul.
- Reorganization of source code.
- Rebuilt data structures for multimbral architecture.
- New driver layer (engine relies on no libraries).
- Replaced pthreads based buffer synchronization code.
- New lightweight patch parser / patch format.
- New thread-safe MIDI event queue.
- Restructured engine, GUI, and MIDI code.
- Almost complete separation of GUI and engine.
  (still need to separate bank changes from the GUI.)

ChangLog for v0.14.96 --> v0.14.97:
 * Cleaned up pointer sign warning in queue_midi_event().
 * Included (/usr)/bin/true configure.ac fix from Jörn Nettingsmeier.
 * Included falktx's build patch for src/Makefile.am.
 * Added synth-part to MIDI channel assignments to midimaps.
 * Removed unused type_id from struct jack_port_info.
 * Added proper detection and conditions for new JACK features.
 * Reworked BPM handling and removed duplicated code.
 * Fixed typo in pixmaps/Makefile.am.  (Adam Sampson)
 * Implemented note-off instant release from attack and decay.
 * Implemented round-robin voice assignment for mono-multikey.
 * Fixed bug with assigning MIDI CC in GUI.
 * Changed MIDI CC mapping event (now ctrl-middle-click).
 * Changed depracated AM_CONFIG_HEADER to AC_CONFIG_HEADERS.
 * Fixed FTBFS on systems w/o CLOCK_MONOTONIC_RAW.  (Adrian Knoth)
 * Fixed crash and clock sync issues with changing jack buffer size.
 * Consolidated gtkknob frame offset calculations.
 * Added checks to prevent errors on JACK client close.
 * Fixed usage of JACK stereo/multi menuitems for monotimbral builds.
 * Fixed potential LASH client name bug when using ALSA MIDI.
 * Added JACK latency recalculation when changing buffer_latency.
 * Added git version tag tracking to build system.
 * Changed default locale to "C" instead using env defaults.
 * Fixed settings not saved on quit.
 * Fixed new dirs/files not created bug in phasex-convert-patch.
 * Fixed GUI param update race condition on updated flag.
 * Fixed sporadic GUI param sensitivity update issue.
 * Updated system synth-patches.

Thank you everyone who contributed build fixes for v0.14.96.  Out of
the box, v0.14.97 should build cleanly on any recent Fedora, CentOS,
Debian, Ubuntu, ArchLinux, Puppy, or Mint distribution.  Please report
any build failures immediately!

NOTE: The patch file format has changed, so any old patches (or patch
directories) will need to be converted with the phasex-convert-patch
script (included).  Any old (pre- v0.14.x) patches found in
~/.phasex/user-patches will be converted to new v0.14.97 patches in
~/.phasex/patches automatically.  Patches in other directories will
need to be converted manually.  Please take this as an opportunity to
sit down and familiarize yourself with the new features and cleaner
sound.  (If you actually do prefer a more aliased sound, you can
always configure your build with --enable-cpu-power=1...)

Overall, I am pleased with where PHASEX has arrived.  In the past, I
had always been disappointed with PHASEX and its shortcomings, and for
many reasons.  Until now.  The code is cleaner and easier to work on.
Most of the old bugs have been replaced with more intelligent design.
On an -rt kernel, xruns are a thing of the past.  Sound quality is
cleaner.  GUI is much more responsive.  Starting from the command line
is only necessary for running without the GUI.  Sessions can be
managed with ease.  Per part memory and CPU utilization has decreased
vs. multi-instance v0.12.x.  Timing is almost as good as it gets
(sample accurate for JACK MIDI, near sample accurate for ALSA seq, and
almost as good as your hardware will allow for ALSA raw MIDI.)  Most
of the major barriers to use that have been identified over the years
have been eliminated.

Many thanks go out to Anton Kormakov for his work on PHASEX and his
git repo, which appear to have served the community well in the time
since the old server went down.  And of course, I'd like to thank the
regular posters to linux-audio-dev and linux-rt-users for sharing the
knowledge that's made this release possible.

PHASEX-v0.14.97 is currently availiable in source code form only.
(Binaries will be available starting with v0.14.99.)  Sources are
available via git:

        git clone https://github.com/williamweston/phasex.git

Number of synth parts is configurable at compile time.  For live /
on-stage use, please limit to 1 part per CPU core and test your
polyphony limit ahead of time.  For songwriting / studio settings, 1-2
parts per CPU core is recommended.  (Tested extensively with 8 parts
on a quad-core q6600.)  As usual, YMMV.  Please refer to INSTALL and
README for more details.

Enjoy the new PHASEX.  This release aims to be as bug-free as possible
(and IMHO, v0.14.97 is already more stable and trouble-free than any
previous version).  As is usual with GPL'ed software, there's no
warranty whatsoever and I'm not responsible if you blow out your
speakers (or your hearing), but please don't let that hold you back
from trying it out.

Let's make some music!

--William Weston

More information about the Linux-audio-announce mailing list