Permalink
Browse files

Pulled in changes for v0.14.97.

  • Loading branch information...
1 parent e6f7f8c commit 5463faab01a64aeae08352bd3539a2a60e17f3df William Weston committed Jan 12, 2013
Showing with 925 additions and 867 deletions.
  1. +1 −0 .gitignore
  2. +30 −0 ChangeLog
  3. +3 −2 INSTALL
  4. +2 −2 LICENSE
  5. +11 −0 Makefile.am
  6. +2 −2 README
  7. +0 −2 TODO
  8. +15 −0 config.h.in
  9. +19 −6 configure.ac
  10. +143 −0 doc/release-checklist.txt
  11. +23 −11 help/parameters.help
  12. +15 −1 misc/phasex-convert-patch
  13. +1 −0 phasex-version
  14. +2 −2 pixmaps/Makefile.am
  15. +11 −0 scripts/version-sh
  16. +1 −1 src/Makefile.am
  17. +6 −23 src/alsa_pcm.c
  18. +1 −1 src/alsa_pcm.h
  19. +1 −1 src/alsa_seq.c
  20. +1 −1 src/alsa_seq.h
  21. +1 −1 src/bank.c
  22. +11 −10 src/bpm.c
  23. +2 −2 src/bpm.h
  24. +9 −2 src/buffer.c
  25. +2 −2 src/buffer.h
  26. +2 −4 src/debug.c
  27. +8 −11 src/debug.h
  28. +5 −8 src/driver.c
  29. +1 −1 src/driver.h
  30. +3 −3 src/engine.c
  31. +1 −2 src/engine.h
  32. +1 −1 src/filter.c
  33. +1 −1 src/filter.h
  34. +34 −41 src/gtkknob.c
  35. +2 −2 src/gtkknob.h
  36. +1 −1 src/gui_alsa.c
  37. +1 −1 src/gui_bank.c
  38. +1 −1 src/gui_jack.c
  39. +1 −1 src/gui_jack.h
  40. +1 −1 src/gui_layout.c
  41. +1 −1 src/gui_layout.h
  42. +3 −14 src/gui_main.c
  43. +1 −1 src/gui_main.h
  44. +3 −2 src/gui_menubar.c
  45. +12 −192 src/gui_midimap.c
  46. +1 −2 src/gui_midimap.h
  47. +10 −15 src/gui_navbar.c
  48. +146 −136 src/gui_param.c
  49. +1 −4 src/gui_param.h
  50. +1 −1 src/gui_patch.c
  51. +1 −1 src/gui_patch.h
  52. +1 −1 src/gui_session.c
  53. +1 −1 src/gui_session.h
  54. +3 −2 src/help.c
  55. +113 −85 src/jack.c
  56. +1 −2 src/jack.h
  57. +2 −2 src/jack_midi.c
  58. +1 −1 src/jack_midi.h
  59. +5 −1 src/jack_transport.c
  60. +1 −1 src/jack_transport.h
  61. +3 −17 src/lash.c
  62. +1 −4 src/lash.h
  63. +15 −11 src/midi_event.c
  64. +1 −1 src/midi_event.h
  65. +59 −107 src/midi_process.c
  66. +1 −1 src/midi_process.h
  67. +1 −1 src/mididefs.h
  68. +75 −13 src/midimap.c
  69. +2 −1 src/midimap.h
  70. +1 −1 src/param.c
  71. +11 −1 src/param_cb.c
  72. +1 −0 src/param_cb.h
  73. +1 −1 src/param_parse.c
  74. +1 −1 src/param_parse.h
  75. +1 −1 src/param_strings.c
  76. +1 −1 src/param_strings.h
  77. +1 −1 src/patch.c
  78. +1 −1 src/patch.h
  79. +16 −21 src/phasex.c
  80. +9 −8 src/phasex.h
  81. +17 −15 src/rawmidi.c
  82. +1 −1 src/rawmidi.h
  83. +1 −1 src/session.c
  84. +1 −1 src/session.h
  85. +10 −21 src/settings.c
  86. +1 −1 src/settings.h
  87. +1 −1 src/string_util.c
  88. +1 −1 src/string_util.h
  89. +2 −2 src/timekeeping.c
  90. +1 −1 src/timekeeping.h
  91. +1 −1 src/wave.c
  92. +1 −1 src/wave.h
  93. +0 −10 themes/Phasex-Dark
  94. +1 −1 themes/Phasex-Light
View
@@ -25,6 +25,7 @@ config.status
configure
phasex.spec
phasex-*.tar.gz
+phasex-*.rpm
stamp-h1
misc/phasex.desktop
src/.deps/
View
@@ -2,6 +2,36 @@
Changelog:
+=======
+2013-01-11 William Weston <whw@linuxmail.org> - 0.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.
+
+
2012-12-28 William Weston <whw@linuxmail.org> - 0.14.96
* Added initial JACK Session support.
* Added sess dump dir skipping for Load Session dialog.
View
@@ -87,8 +87,9 @@ flag. Options are: 1 (slow CPU), 2 (average CPU), 3 (fast CPU and
The number of active synth threads (and thus the number of active
synth parts) can be set with the --enable-parts= option. In general,
enabling one part per CPU core will provide rock-solid xrun-free
-performance. Modern multi-core systems may perform the same with as
-many as two synth threads per CPU core enabled. YMMV.
+performance (recommended for live / on-stage use). Modern multi-core
+systems may perform the same with as many as two synth threads per CPU
+core enabled (recommended for studio use). As usual, YMMV.
By default, 64-bit builds are enabled on 64-bit architectures. To
force a 32-bit build on a 64-bit architecture (for a native 32-bit
View
@@ -8,7 +8,7 @@ PHASEX Waveform Logo (branding) Copyright (C) 2012 William Weston
<whw@linuxmail.org>. All Rights Reserved. Permission is hereby
granted to use this logo to represent PHASEX (in desktop menus,
software repositories, websites indexing such repositories, etc.) as
-built from the author's source packages, a clone of the author's
+built from the author's source packages, or a clone of the author's
source code repository. While forking of the PHASEX code is of course
permitted and encouraged by the GPL, the use of this Logo for branding
of branches outside the author's tree is not permitted. For the
@@ -31,7 +31,7 @@ Inclusion of these images with commercial or otherwise non open source
projects without explicit written consent of the author is not
permitted.
-Source code and audio samples Copyright (C) 1999-2012 William Weston
+Source code and audio samples Copyright (C) 1999-2013 William Weston
<whw@linuxmail.org>, with portions of the source code Copyright (C)
2010 Anton Kormakov, Copyright (C) 2007 Peter Shorthose, Copyright (C)
2004 Sean Bolton, and Copyright (C) 1999 Tony Garnock-Jones (see
View
@@ -37,6 +37,16 @@ distclean-local:
rm -rf autom4te.cache
+phasex-$(PACKAGE_VERSION).tar.gz: dist
+
+
+phasex-version:
+ scripts/version-sh
+
+
+phasex.spec: phasex-version phasex.spec.in
+
+
rpm: phasex-$(PACKAGE_VERSION).tar.gz phasex.spec
rpmbuild=$$(mktemp -d -t rpmbuild-phasex.XXXXXXX); src=$$(pwd); \
cp phasex-$(PACKAGE_VERSION).tar.gz "$$rpmbuild"; \
@@ -52,3 +62,4 @@ rpm: phasex-$(PACKAGE_VERSION).tar.gz phasex.spec
popd; \
mv "$$rpmbuild"/$$(arch)/*.rpm . && mv "$$rpmbuild"/*.src.rpm . && \
rm -rf "$$rpmbuild" && ls -1 *.rpm
+
View
@@ -1,5 +1,5 @@
-PHASEX-0.14.96:
+PHASEX-0.14.97:
-------------------------------------------------------------------------------
[P]hase [H]armonic [A]dvanced [S]ynthesis [EX]periment
@@ -506,7 +506,7 @@ LICENSING AND COPYRIGHT:
PHASEX is distributed under the terms of the GNU Public License,
version 3. See LICENSE for details.
- Copyright (C) 1999-2012 William Weston <whw@linuxmail.org>.
+ Copyright (C) 1999-2013 William Weston <whw@linuxmail.org>.
With portions of and contributions to the PHASEX source:
View
@@ -192,8 +192,6 @@ MIDI improvements:
* Add support for modwheel and generic high-res controllers.
-* Save part --> MIDI channel mapping with session and/or midimap.
-
* Add MIDI Program Change option to select sessions with values >= 64;
View
@@ -57,6 +57,21 @@
/* Define to 1 if you have the `isupper' function. */
#undef HAVE_ISUPPER
+/* Define to 1 if you have the <jack/session.h> header file. */
+#undef HAVE_JACK_SESSION_H
+
+/* libjack has jack_set_latency_callback(). */
+#undef HAVE_JACK_SET_LATENCY_CALLBACK
+
+/* libjack has jack_set_port_rename_callback(). */
+#undef HAVE_JACK_SET_PORT_RENAME_CALLBACK
+
+/* libjack has jack_set_session_callback(). */
+#undef HAVE_JACK_SET_SESSION_CALLBACK
+
+/* Define to 1 if you have the <jack/weakjack.h> header file. */
+#undef HAVE_JACK_WEAKJACK_H
+
/* Define to 1 if you have the `m' library (-lm). */
#undef HAVE_LIBM
View
@@ -3,7 +3,7 @@ dnl # configure.ac
dnl #
dnl # PHASEX: [P]hase [H]armonic [A]dvanced [S]ynthesis [EX]periment
dnl #
-dnl # Copyright (C) 2007-2012 William Weston <whw@linuxmail.org>
+dnl # Copyright (C) 2007-2013 William Weston <whw@linuxmail.org>
dnl #
dnl # PHASEX is free software: you can redistribute it and/or modify
dnl # it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@ dnl #
dnl # You should have received a copy of the GNU General Public License
dnl # along with PHASEX. If not, see <http://www.gnu.org/licenses/>.
-AC_INIT(PHASEX, 0.14.96)
+AC_INIT([PHASEX], m4_esyscmd_s([scripts/version-sh]))
AC_CONFIG_AUX_DIR(scripts)
AM_INIT_AUTOMAKE(0.10.0)
@@ -186,6 +186,17 @@ PKG_CHECK_MODULES(JACK,
AC_MSG_ERROR([need JACK >= 0.99.0])
)
AC_SUBST(JACK_CFLAGS)
+AC_CHECK_HEADERS([jack/session.h])
+AC_CHECK_HEADERS([jack/weakjack.h])
+AC_CHECK_LIB(jack, jack_set_port_rename_callback,
+ [AC_DEFINE_UNQUOTED(HAVE_JACK_SET_PORT_RENAME_CALLBACK, [1],
+ [libjack has jack_set_port_rename_callback().])])
+AC_CHECK_LIB(jack, jack_set_session_callback,
+ [AC_DEFINE_UNQUOTED(HAVE_JACK_SET_SESSION_CALLBACK, [1],
+ [libjack has jack_set_session_callback().])])
+AC_CHECK_LIB(jack, jack_set_latency_callback,
+ [AC_DEFINE_UNQUOTED(HAVE_JACK_SET_LATENCY_CALLBACK, [1],
+ [libjack has jack_set_latency_callback().])])
# libsamplerate
PKG_CHECK_MODULES(SAMPLERATE,
@@ -229,7 +240,7 @@ fi
AM_CONDITIONAL(WITH_LASH, test x$without_lash != x1)
-# librt (for clock_gettime)
+# librt (for clock_gettime and clock_nanosleep)
have_librt="no"
found_librt="no"
AC_ARG_WITH(librt,
@@ -334,7 +345,8 @@ AC_DEFINE_UNQUOTED(PHASEX_GCC_MINOR, [$gccminor], [Built with gcc minor version]
CPU_POWER_LEVEL=2
ARCH_OPT_CFLAGS=""
ARCH_MATH_CFLAGS=""
-ARCH_BITS=`( file /bin/true | grep 'ELF 64-bit' > /dev/null && echo 64 ) || echo 32`
+ARCH_TRUE=`which true`
+ARCH_BITS=`( file $ARCH_TRUE | grep 'ELF 64-bit' > /dev/null && echo 64 ) || echo 32`
WARNING=`echo "*"`
case "$OPT_ARCH" in
@@ -692,7 +704,7 @@ AC_CONFIG_FILES([
phasex.spec
misc/phasex.desktop
])
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS([config.h])
AC_OUTPUT
@@ -701,6 +713,8 @@ AC_OUTPUT
AC_MSG_NOTICE([
******************************************************************************
*
+* Build configuration for phasex-$PACKAGE_VERSION:
+*
* Optimized for arch: ... $OPT_ARCH (${ARCH_BITS}-bit)
* CPU power level: ...... $CPU_POWER_LEVEL / 4
*
@@ -731,6 +745,5 @@ AC_MSG_NOTICE([
* make clean
* make
* make install
-*
$WARNING
******************************************************************************])
@@ -0,0 +1,143 @@
+------------------------------------------------------------------------------
+PHASEX Release Checklist
+------------------------------------------------------------------------------
+
+The PHASEX git repository follows a simple branch naming scheme:
+
+Branch: Description:
+------------------------------------------------------------------------------
+master Root of all branches (v0.x.w, v0.x.y-dev, v0.x.y, ...).
+v0.x.w Old release branch.
+v0.x.y-dev Current dev branch, based on old release branch.
+v0.x.y New release branch, based on current dev branch.
+v0.x.z-dev New dev branch, based on new release branch.
+feature-q New feature branch, to be merged into new dev branch.
+------------------------------------------------------------------------------
+
+
+------------------------------------------------------------------------------
+
+1) Prepare git repository, starting by committing all changes to
+ current development branch:
+
+ git commit -a -m "Finished changes for v0.x.y"
+
+2) Switch to previous release branch:
+
+ git checkout v0.x.w
+
+3) Create the new release branch and switch to it:
+
+ git checkout -b v0.x.y v0.x.w
+
+4) Merge commits from development branch:
+
+ git merge --no-commit v0.x.y-dev
+
+5) If necessary resolve any merge conflicts manually, then commit
+ the merge:
+
+ git commit -a -m "Merged in changes for v0.x.w --> v0.x.y."
+
+6) Browse through git log and spot-check / proofread all changes.
+
+7) Update all documentation to reflect changes (README, INSTALL,
+ LICENSE, AUTHORS, NEWS, TODO, ChangeLog, parameters.help,
+ signal-diagram.txt, etc.) Proofread and/or spell-check.
+
+8) Give credit where credit is due. For significant contributions,
+ make sure the developer's name and email are listed at the top of
+ each source code file containing the contributions, and keep a
+ master list of authors and contributors in the AUTHORS file.
+
+9) Test all new features and bug-fixes for correct behavior.
+
+10) Test core functionality with a known MIDI file and saved session.
+ Does everything sound like it should?
+
+11) Test all audio and MIDI drivers and the ability to change their
+ settings.
+
+12) Test all new patches and samples.
+
+13) Test all parameters and functionality exposed to code changes.
+
+14) Test running with and without the GUI, and with and without
+ seldom-used configuration / build options.
+
+15) Test 32- and 64-bit builds, generic and native optimized builds,
+ monotimbral and multitimbral builds, local installs and RPM or
+ any other binary package installs, across as many distributions
+ as possible.
+
+16) Compare with previous versions and test for regressions.
+
+17) Verify that all significant changes are listed in the ChangeLog.
+
+18) Verify source packaging with 'make distcheck'.
+
+19) Update version number in source files (currently in multiple
+ places, so use grep to find them all.)
+
+20) Commit changes to git repo and revisit steps 6-20 until no
+ commits are necessary to complete all steps. All tests must pass
+ before progressing beyond step 20.
+
+21) In the upstream repository, create new release branch:
+
+ git checkout v0.x.y v0.x.y-dev
+
+22) Pull in release branch from development repository:
+
+ git pull --squash <dev-repo> v0.x.y
+
+23) Clone upstream repository and checkout new branch with:
+
+ git clone <upstream-repo> phasex-release
+ cd phasex-release
+ git checkout v0.x.y
+
+24) Verify build with 'make distcheck'.
+
+25) Build official release source tarball with 'make dist'.
+
+26) Unpack new source archive and verify that it builds.
+
+27) Verify local install with 'make install' and 'make uninstall'.
+
+28) Build and verify RPMs made from official source tarball.
+
+29) Archive source tarball, i686 RPM, x86_64 RPM, and source RPM.
+
+30) If any new commits have been made during steps 22-28, repeat
+ steps 22-30 until the official packages can be built from the
+ sources checked out from git using the proper version tag. This
+ practice allows the always-avoided last minute commits to be
+ included with the proper branch, and guarantees that the release
+ packages are built with the same sources as found in the git
+ branch named with the corresponding release version.
+
+31) Add a new git branch for the next version's development cycle with:
+
+ git checkout -b v0.x.z-dev v0.x.y
+
+ where v0.x.z will be the next release _after_ the newly released
+ v0.x.y. Be sure to remember the -dev at the end of the version
+ tag and branch name for the upcoming development branch. This
+ practice provides a well defined way to differentiate between
+ release branches and development branches.
+
+32) Announce / distribute the new release.
+
+33) Answer emails and fix bugs. If a hot-fix if necessary, make the
+ hot-fix changes on a new hot-fix branch based on the new release
+ branch. Pull hot-fix branch into upstream repository and go back
+ to step 23.
+
+34) Work on new code in new development branch, and pull in new
+ features from feature branches.
+
+35) When new features and/or bug-fixes are ready, code is deemed
+ stable and worthy of release, go back to step 1.
+
+------------------------------------------------------------------------------
Oops, something went wrong.

0 comments on commit 5463faa

Please sign in to comment.