Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 325 lines (300 sloc) 16.774 kB
bd140c8 Starting new git repo with v0.14.94.
William Weston authored
1 [P]hase [H]armonic [A]dvanced [S]ynthesis [EX]permient
2
3 Changelog:
4
5 2012-12-20 William Weston <whw@linuxmail.org> - 0.14.94
6 * Major code overhaul since 0.12.
7 * Renamed variables and functions to improve readability.
8 * Rewrote comments where old comments no longer made sense.
9 * Rewrote at least half of the previous codebase.
10 * Overhauled all major systems, as noted below.
11 * Removed thousands of lines of depracated code.
12 * Reworked startup / shutdown code (very stable).
13 * Added debug thread and DEBUG/ERROR/WARN macros.
14 * Added debug classes for selective debug output.
15 * Build-system overhaul.
16 * Added new optimization flags for better performance.
17 * Fixed library detection (should build on more systems).
18 * Fixed inconsistent installs and uninstalls.
19 * Fixed handling of icons and desktop file.
20 * Updated phasex.spec.in for Fedora 14-18 builds.
21 * Added rpm target to toplevel Makefile.am.
22 * Integration of new features from Anton Kormakov (work in progress).
23 * Added LASH session support (stable).
24 * Added hold pedal support (untested).
25 * Added JACK Transport support (currently broken).
26 * Added DC rejection filter in synth engine (for debugging).
27 * Fixed Chorus Time calculations and typo in chorus math.
28 * Multitimbral architecture (thread per part).
29 * Data structure overhaul, affecting almost everything.
30 * Added Stereo- and multi- outputs for JACK.
31 * Added GUI part switching with hotkeys (F1-F<part_num>).
32 * Added Session management in with session bank in GUI.
33 * Removed pthreads mutexes in favor of atomic index values.
34 * Drivers: new multiple audio / MIDI driver framework.
35 * Added ALSA PCM with mmap and capture support (stable).
36 * Added autodetection of ALSA PCM devices and PCM stream settings.
37 * Added ALSA Raw MIDI support (stable).
38 * Added Generic MIDI support (stable).
39 * Added OSS MIDI support (untested).
40 * Added JACK MIDI support (stable).
41 * MIDI system overhaul.
42 * Added new internal MIDI event framework.
43 * Events are now queued by MIDI thread and processed by engine(s).
44 * Reorganized MIDI event processing code.
45 * Added Active Sensing support (all MIDI drivers. stable).
46 * Added All Notes Off / All Sound Off according to MIDI spec.
47 * Fixed MIDI program change bugs.
48 * Added ignore MIDI program change setting.
49 * MIDI-clock for near sample-accurate audio/MIDI sync.
50 * Implemented engine thread adaptive sleep, syncing to MIDI clock.
51 * Added clock support to ALSA Seq and ALSA Raw MIDI drivers.
52 * Added clock support to ALSA PCM and JACK audio drivers.
53 * Added audio MIDI phase lock setting for fine tuning.
54 * Added commercial exception for licensing of timekeeping.[ch]
55 * GUI overhaul (work in progress).
56 * Separated and cleaned up Synth and GUI callbacks.
57 * Mostly separated GUI code from the rest (work in progress).
58 * Reworked use of GTK callbacks (now utilized in a sane manner).
59 * Replaced synth param spinbuttons with labels (speed increase).
60 * Fixed current param sensitivity system (redesign still needed).
61 * Fixed GUI param update issues.
62 * Fixed notebook page performance issues.
63 * Fixed tab navigation.
64 * Fixed button-box behavior.
65 * Added connect to ALSA PCM hardware to ALSA menu.
66 * Added connect from ALSA Seq and ALSA Raw MIDI devices to ALSA menu.
67 * Added connect from JACK MIDI ports in JACK menu.
68 * Added new widescreen layout.
69 * Added new rendered knob images and new phasex logo.
70 * Added knob size selection.
71 * Added preferences for most command line options.
72 * Fixed theme loading and interface restarts.
73 * Updated gtkknob to use cairo (old methods now depracated by GTK).
74 * Removed use of depracated GTK library calls.
75 * Fixed about_dialog license loading bugs.
76 * Added splash screen.
77 * Updated themes to work w/ nodoka and degrade gracefully w/o.
78 * Synth engine overhaul (work in progress)
79 * Added 24dB/octave Stilson/Smith style Moog filter.
80 * Added 3pole filter (work in progress).
81 * Added Hermite interpolation to oscillator wavetable lookups.
82 * Reworked envelope curves for reduction in artifacts.
83 * Added hard-latching oscillators to FM Mod selections.
84 * Added portamento to osc transpose controller changes.
85 * Added Voice AM to LFO-1.
86 * Added LFO-1 Rate mod amount to LFO-2.
87 * Added Cutoff mod to LFO-3.
88 * Added LFO-3 Rate mod amount to LFO-4.
89 * Improved velocity handling.
90 * Restored panning back to equal power curve.
91 * Added new waveforms (sampled and generated).
92 * Fixed negative envelope offset for filter.
93 * Implemented fast fade-out for mono retriggering.
94 * Fixed problem with partial portamento slides.
95 * Added denormal protection to all feedback loops (less CPU hungry).
96 * Implemented new patch file format and lighter patch parsing code.
97 * Added conversion script for old patches.
98 * Added new command line options for new features useability.
99 * Added PHASEX release checklist with git strategy.
100
101
102 2009-10-12 William Weston <whw@linuxmail.org> - 0.12.0-rc1
103 * Rebuilt Makefile.am files (fixes uninstall and other issues).
104 * Cleaned up gcc version detection logic in configure.ac.
105 * Added --with-atom rpmbuild option in phasex.spec.in.
106 * Fixed bug where system theme setting gets dark theme.
107 * Added key events to rate entries for contrller consistency.
108 * Implemented nav ordering for keyboard (tab) navigation.
109 * Implemented focus handling and key events for detent labels.
110 * Re-worked config dialog with notebook and better layout.
111 * Added setting for small, medium, and large knob sizes.
112 * Added views for standard desktop sizes.
113 * Changed filter mode labels to use full names for basic types.
114 * Added clear patch functionality to patch menu.
115 * Implemented user override for default patch.
116 * Added setting for numeric fonts (in spinbutton, entry, detents).
117 * Moved param_idle_update to g_timer based param_periodic_update.
118 * Fixed patch modified indicator (broken when midi ch. was moved).
119 * Updated alignment/padding in themes and param layout.
120 * Removed unnecessary patch reload in gtkui_thread().
121 * Implemented persistent config dialog across gui restarts.
122 * Reordered code so that patch name updates first on prog change.
123 * Fixed timing of pitch bend smoothing (broken since beta4).
124 * Added event handling to midi channel detent label.
125 * Added setting for buffer periods (1-3).
126 * Removed backing store setting from prefs (still in cfg file).
127 * Added sensitivity changes for params disabled by other params.
128 * Fixed segfault triggered by saving renamed untitled patches.
129 * Fixed osc and lfo freq when switching back to tempo sources.
130
131
132 2009-09-22 William Weston <whw@linuxmail.org> - 0.12.0-pre1
133 * Rebuilt configure.ac (now uses autoconf and automake properly).
134 * Added --enable-32bit and --enable-cpu-power= options to configure.
135 * Enabled gcc version checking for selecting optimization flags.
136 * Updated phasex.desktop file and removed extra copy in phasex root.
137 * Updated phasex.spec.in to work with new changes.
138 * Added GTK engine detection and separated engine def from themes.
139 * Adjusted themes and table layouts to allow one-page on 1024x768.
140 * Added missing extern to variable prototypes in param.h.
141 * Re-Added patch menu and added bank mem mode to it.
142 * Moved MIDI channel from general section to patch box.
143 * Moved patch->midi_channel to setting_midi_channel.
144 * Added MIDI channel to command line options.
145 * Fixed all GTK errors and warnings in file dialogs.
146 * Added amp velocity control (yes, it's finally here).
147 * Fixed smoothing algorithm for aftertouch sensitivity.
148 * Changed default rt priorities for midi and engine to 89 and 88.
149 * Added realtime sched policy setting (choice of SCHED_FIFO or SCHED_RR).
150 * Fixed long-time-lurking patch name corruption bug.
151 * Added hidden maximize setting (remember window state).
152 * Fixed all phasex_shutdown() related segfaults.
153 * Increased buffer periods from 1 to 2 (hardwired).
154 * Fixed ringbuffer read in process_buffer() !!!
155 * Added extra child logic to widget_set_custom_font().
156 * Added extra child logic to widget_set_backing_store().
157 * Fixed layout of controller update window and settings window.
158 * Added support for patch names and program numbers on command line.
159 * Included full text of GPLv2 in licensing screen.
160 * Removed more depracated code bits.
161 * Cleaned up comments/style/whitespace all over.
162
163
164 2009-09-14 William Weston <whw@linuxmail.org> - 0.12.0-beta
165
166 * Fixed midimap load problem on startup.
167 * Added parameter locking.
168 * Updated per cpu-type compiler flags (fixes 64bit builds).
169 * Updated rpm spec (Fedora's changes for handling desktop file).
170 * Added memory locking to avoid page faults in rt.
171 * Changed mutexes for rt threads to PI mutexes.
172 * Added gtk theme support and initial phasex widget color theme.
173 * Fixed amp envelope curve.
174 * Reworked JACK connection code (watchdog loop instead of extra thread).
175 * Implemented global instance number tracking (used for ALSA and JACK).
176 * Changed ALSA client name to match JACK client name (with instance num).
177 * Added initial support for loading sampled oscillators.
178 * Fixed portamento calculations (nice and smooth again).
179 * Implemented portamento for poly keymode.
180 * Fixed problem with legato LFO retriggering in poly keymode.
181 * Added name, class, and role window manager hints.
182 * Added table rebuilds to handle on-the-fly tuning freq changes.
183 * Added sampled waveforms to the wave tables.
184 * Implemented hermite interpolation, now used in chorus.
185 * Renamed Chorus Phase Amount to Chorus Phase Balance.
186 * Retuned chorus delay, now based on the musical scale.
187 * Implemented decayed average smoothing for pitch bender.
188 * Cleaned up code and removed many deprecated code bits.
189 * Added PHASEX_CPU_POWER macro for cpu class tunings.
190 * Added handling of X_CFLAGS when running configure.
191 * Updated README, INSTALL, ROADMAP, and parameter help.
192 * Updated licensing, clarifying use of PHASEX, samples, and patches.
193 * Fixed bug with envelope recalculation while note is in play.
194 * Cleaned up many warnings for gcc-4.3.2.
195 * Changed patch bank size to 1024 and created PHASEX_BANK_SIZE macro.
196 * Removed gtk_widget_realize() calls from file select dialogs.
197 * Set page size for all GtkAdjustment objects to zero.
198 * Fixed file dialog hang problem (delete and re-add idle handler).
199 * Added pan, filter lfo resonance, osc fine tune, and fm fine params.
200 * Fixed font specification in theme gtkrc (default now "Sans 8").
201 * Added option to ignore MIDI when mapping knobs with sequencer running.
202 * Enabled setting of defaults for unreferenced params in patch loads.
203 * Added graceful handling of unknown params in patch loads.
204 * Added better folder/shortcut handling to patch file dialogs.
205 * Added patch directory list to use all dirs in patchbank as shortcuts.
206 * Optimized gtkknob expose events (moved math into adj handling).
207 * Added check for pthread_mutexattr_setprotocol() for older libpthread.
208 * Added --enable-arch=foo handling for more architectures.
209 * Changed max polyphony from a compile-time to a run-time setting.
210 * Fixed GtkKnob for GTK >= 2.16.
211 * Added user switchable themes and fonts.
212 * Added true fullscreen mode.
213 * Added velocity/aftertouch support for filter, oscs, and lfos.
214 * Fixed JACK and ALSA MIDI thread shutdown code.
215 * Added optimizations for Atom processors and k8 varieties w/ sse3.
216 * Reworked handling of compile-time optimization and debug flags.
217 * Implemented complete gtkui thread restart for GUI restarts.
218 * Fixed Load/Save button height expansion issue.
219 * Moved filter_q from part struct to engine stack.
220 * Reduced knob size to 32x28 in order to save space vertically.
221
222
223 2007-08-13 William Weston <whw@linuxmail.org> - 0.11.1
224
225 * Applied Adam Sampson's patch fixing clobbered delay size and segfault.
226 * Added extra logic to sample rate handler to catch rate of 0 from JACK.
227 * Cleaned up whitespace and error reporting in jack.c.
228 * Fixed lack of resonance problem for LP+HP filter mode.
229 * Removed unused filter_key from voice structure.
230 * Added help documentation for preferences, command line, and filter modes.
231 * Added new patches to default patchbank.
232
233
234 2007-08-07 William Weston <whw@linuxmail.org> - 0.11.0
235
236 * Added patch file overwrite checking.
237 * Changed current patch to a dynamic pointer.
238 * Separated table sizes for wavetable, env curves, and freq shifts.
239 * Decreased sizes of lookup tables for speed.
240 * Unified resolution for freq shifts, master tune, and filter.
241 * Updated patchbank to reference patches by filename.
242 * Changed combobox lists to detent knobs.
243 * Reworked lookup table generation for better accuracy.
244 * Modified envelope curve to prevent clicking and to sound more natural.
245 * Implemented on-the-fly switching for layout mode and thread priorities.
246 * Fixed bandlimiting and filter tuning by accounting for oversampling.
247 * Removed division from filter smoothing calculations.
248 * Reordered struct elements to be more compact with forced alignments.
249 * Added command line argument for changing base A4 tuning frequency.
250 * Implemented preloading of patches for patch bank.
251 * Added ability to load multiple patches into bank with a starting offset.
252 * Fixed bank memory mode behavior.
253 * Moved patch load/save dialog code from gtkui.c to bank.c.
254 * Removed JACK side blocking/waiting for audio ringbuffer.
255 * Added --enable-arch=foo handling for all x86 cpu types in gcc-4.1.2.
256 * Renumbered param definitions to start at 0 instead of 1.
257 * Reworked phasex.h for easier tweaking and fine-tuning.
258 * Removed most bits of dead code.
259 * Cleaned up style and whitespace in most files.
260 * Added GUI only (patchbank handling) parameters to the help system.
261 * Fixed an unitialized next pointer problem in open_alsa_midi_in().
262 * Changed knob middle-click centering from release to press response.
263 * Added scroll-wheel support in gtkknob.c.
264 * Added Pete Shorthose's patch to enable backing store for widgets.
265 * Added event boxes behind most widgets for faster expose.
266 * Added parameter locking capability.
267 * Added button press and scroll-wheel handling to detent labels.
268 * Fixed compile and layout issues for GTK versions < 2.6.
269 * Added scroll-wheel support for rate values.
270 * Cleaned up configure.ac for smoother builds.
271 * Added a using phasex section to the help system.
272 * Updated documentation in help system.
273 * Added tuning freq and backing store to settings.
274 * Modified widget packing and spacing slightly to use less space.
275 * Decreased max delay time from 8/1 to 1/1 to save memory.
276 * Updated system patches to work better with filter and env tweaks.
277
278
279 2007-05-23 William Weston <whw@linuxmail.org> - 0.10.3
280
281 * Removed install of phasex.desktop from Makefile.am.
282 * Fixed shutdown when initiated by JACK.
283 * Re-implemented menubar using a GtkItemFactory.
284 * Fixed menu slowness by not using GTK stock items.
285 * Fixed file dialog slowness by prebuilding file dialogs.
286 * Fixed race condition in threads by exiting vs. being cancelled.
287
288
289 2007-05-19 William Weston <whw@linuxmail.org> - 0.10.2
290
291 * Fixed typos and omissions in parameter help file.
292 * Improved error handling and reporting in jack.c.
293 * Fixed JACK thread shutdown.
294 * Fixed improper style handling in gtkknob.c (broke in older GTK versions).
295 * Fixed knob centering on middle click drag events.
296 * Added Peter Shorthose's patch for saving memory with a single knob anim.
297 * Cleaned up style and whitespace in gtkknob.c, added boilerplate.
298 * Added current midimap file to saved settings.
299 * Fixed build and runtime problems with GTK versions >= 2.4.x and < 2.8.x.
300 * Fixed invalid setting of patch modified flag on startup.
301 * Updated error message for unhandled ALSA MIDI errors.
302 * Fixed passing of debug flags in configure.ac.
303 * Fixed detection of functions in libm.
304 * Added install of phasex.desktop to Makefile.am.
305 * Fixed uninitiailized varibable warnings in midi.c.
306 * Fixed missed internal update on bool params first switching to zero.
307 * Removed dead update_widget_val() in callback.c.
308 * Disabled engine side of audio ringbuffer locking.
309 * Changed name of ALSA MIDI sequencer input port for readability.
310 * Added project roadmap.
311
312
313 2007-05-03 William Weston <whw@linuxmail.org> - 0.10.1
314
315 * Fixed delay buffer size crash bug.
316 * Rebuilt config.h from configure.ac (fixes undefined PHASEX_DIR).
317 * Added engine thread cancellation point.
318 * Changed order of setting up JACK callbacks
319 * Moved main sample rate init code from samplerate callback to jack thread.
320 * Fixed oversampling mode.
321 * Fixed type on bank.c.
322 * Disabled debug output in help.c.
323 * Added --enable-debug option to configure.ac.
324 * Fixed volume of bassy-plucked-lead and zeroed input boost on all patches.
Something went wrong with that request. Please try again.