You are currently looking at an older section of the wincent.dev website.
Please check the new version of the site at https://wincent.dev/ for updated content.

wincent Synergy Advance: total audio control

Version history

Public preview release version 0.5.1b (17 May 2007):

  • [Feature] User-customizable Dock menu.
  • [Feature] Five additional optional hot key slots for for assigning half-star ratings.
  • [Feature] Ability to set half-star ratings by holding down the option key while navigating the "Rating" menu; this applies both to the Global Menu and the Dock menu (feature request #240, "Menu items for half-star ratings").
  • [Enhancement] Eliminate some redundant code only used on Panther for better performance.
  • [Bugfix] For the purposes of updating the Global Menu, the "Fast forwarding" and "Rewinding" states are now considered to be functionally equivalent of the "Playing" state; previously they were left to fallback to the default (unknown) state.
  • [Bugfix] To avoid confusion, suppressed echoing of harmless warning messages to console at default log level (bug #568, AEGetParamPtr error message written to Console every two seconds").

Public preview release version 0.5b (26 April 2007):

  • [Feature] It is now possible to provide overrides in the Instant Messaging preferences panel to be used depending on whether iTunes is playing, paused, stopped or not running (feature request #471, "Separate control over iChat status when playing, paused, stopped etc").
  • [Feature] Warning icon now shown when an invalid format string is entered; clicking on the icon takes the user to the appropriate help page on the website (feature request #475, "Show warning icon in UI for invalid format strings").
  • [Feature] Three new checkboxes added to the Growl preference pane, allowing users to determine exactly which state changes ("Playing", "Paused" or "Stopped") should trigger notifications (feature request #527, "Option to turn off 'pause' notifications for Growl").
  • [Feature] Many new Dock icon options for controlling opacity, colors, badging, progress meter; almost every aspect of the Dock icon can be customized.
  • [Enhancement] Plug-ins can now add their own custom preference panes to the Synergy Advance preferences window. As an example, the iChat support is now bundled entirely within the iChat plug-in (previously it consisted of two separate components: a plug-in and a preference pane). This will enable the future deployment of fully-featured plug-ins that are well-integrated into the existing interface.
  • [Enhancement] All Dock-related code has been moved into a separate plug-in which provides a dedicated preference pane for Dock-related preferences. Users not wishing to use Synergy Advance's Dock icon features can now deactivate the plug-in entirely for a performance and memory benefit.
  • [Enhancement] Optimizations made to reduce the number of times Synergy Advance queries iTunes for cover art. Previously Synergy Advance queried for cover art every time a notification was received; now it only queries when there is a track change. As querying for cover art is a relatively resource-intensive operation this should lead to a more responsive user experience.
  • [Enhancement] Application launch time is improved as a result of dismantling the large support framework, WOBase, and incorporating the code directly in the application itself. Likewise, absorbed the shared code used by all preference panes and plug-ins (previously in the "SynergyAdvance.framework") directly into the main application for further gains.
  • [Enhancement] For ease of use the outline view in the Hot Keys preferences pane is automatically "expanded" when first displayed.
  • [Enhancement] Massive code-audit and refactoring effort; almost every method in in every file has been improved and reworked under the rewrite (better logging of error conditions, more extensive exception handling, code more logically grouped for better maintainability and development speed, removal of redundant code for smaller memory footprint, enhancements to thread-safety and general robustness of code).
  • [Enhancement] Rewrote hot key implementation to allow hot keys to work even when a full-screen game or other application has taken control of the display (feature request #524, "Make hot keys work when a fullscreen app/game is running"). This requires access for assistive devices to be enabled in the Universal Access pane of the System Preferences; if it is not enabled then Synergy Advance will fall back to the old hot key implementation.
  • [Enhancement] In the Hot Keys preference pane filter out the "Fn-" prefix when applied by Cocoa to certain keys that always behave as though the "Fn" key (present on some laptop keyboards) were pressed even if it is not; affected keys include the arrow keys, page up, page down and so forth.
  • [Enhancement] Optimizations and clean-up of the preferences back-end which should lead to slightly faster performance and lower resource utilization.
  • [Enhancement] If Synergy Advance fails to find iTunes on the first attempt (as may occur when the user resets the Launch Services database), try again using a hard-coded path as a last resort.
  • [Enhancement] The Dock icon code now uses Core Image for compositing, leading to higher image quality without increased resource consumption.
  • [Enhancement] Icons in the preferences window toolbar now drawn with the assistance of Core Image during clicking and dragging.
  • [Enhancement] Hitting the Return or Enter key after entering your email address and license code is now equivalent to hitting the "Verify" button (no need to use the mouse).
  • [Enhancement] More informative message if a manual version check fails due to a network error (previously just said "No new version available at this time".
  • [Enhancement] More appropriate usage of modal session APIs resulting in better CPU usage when some modal dialogs are displayed (for example, during activation).
  • [Enhancement] Upgraded embedded Growl framework to the latest release (version 0.7.6) plus some minor fixes that have been committed to the Growl repository since then (Subversion revision 4072).
  • [Enhancement] Users no longer need to hold down the Option key in order to insert a carriage return while specifying custom format in the Growl preference pane.
  • [Bugfix] Fixed potential crash in iChat plug-in (bug #402, "Crash in iChat plug-in startScrolling method").
  • [Bugfix] Fixed a known regression introduced with version 0.4b where the "Genres" and "Artists" menus provided album-level access but did not provide submenus for accessing individual tracks directly (bug #421).
  • [Bugfix] Addressed remaining issue with the automatic version checking system wherein the user had to touch the automatic version checking preferences after launch in order to start the automatic version checking timer (bug #326).
  • [Bugfix] Plugged a tiny memory leak in the method used to get the path to the "Application Support" folder.
  • [Note] Changed the possible range of settings for the "Logging level" advanced preferences; possible values now lie in the range of 0 to 7 (the previous range was 0 to 10) and the default level has been changed from 0 to 5. This change was made to bring Synergy Advance in line with the logging levels specified for the BSD syslog facility in RFC 3164 and mirrored in Apple's ASL ("Apple system log facility"). See the documentation for the "Logging level" setting for more information.
  • [Note] Bumped the minimum required Mac OS X version from 10.3.9 to 10.4. For users still running Panther the previous Synergy Advance release continues to be available from the download page.
  • [Note] Removed the code for hiding and showing the Dock-icon for compatibility with Mac OS X Leopard's code-signing feature. The redundant sections of code have been removed in order to give Synergy Advance a smaller memory footprint.
  • [Note] Although there are no plans to include non-English localizations with Synergy Advance prior to version 1.0 it is being developed with future localization in mind; with that end in mind added a small number of Spanish localized resources in order to test that the existing localization mechanisms are working correctly.
  • [Note] Better compression on disk image.
  • [Note] Dropped price of single-user licenses from 10€ to 9.95€.

Public preview release version 0.4 (5 May 2006)

  • [Feature] Fulfilled feature request #298 ("Option to do 'play' and 'pause', but never 'playpause'"); in addition to the requested option (now available in the "Advanced" tab of the preferences, another option has also been added to determine how iTunes works out the current player status (either by asking iTunes or by inferring it from the last known state). See the documentation for the two new options: "Prefer 'play' and 'pause' over 'playpause'" and "Infer player state rather than querying iTunes".
  • [Enhancement] Optimizations to time-to-string formatting code.
  • [Enhancement] Increased resolution of internal track progress measurement (using floating point arithmetic instead of integers).
  • [Enhancement] Extensive optimizations to the Dock icon animation and update code to reduce the number of expensive compositing operations.
  • [Enhancement] Improvements to robustness of singleton implementation (in a multi-threaded context).
  • [Enhancement] Version check results are now logged to the console (depending on the "Logging level" setting in the "Advanced" tab of the preferences).
  • [Bugfix] Fixed a known issue wherein automatic version checks were not performed (although manual checks worked).
  • [Bugfix] Fixed bug #394 ("Unwanted playlist switching on play/pause").
  • [Bugfix] Fixed non-proportional scaling of non-square album art in the Dock icon.
  • [Bugfix] Eliminated the "NSPortDelegateTickler" (bug #388) crash on PowerPC and the related "CFRunLoopDoObservers" (bug #397) crash on Intel that could occur intermittently if Synergy Advance was left running for many hours.
  • [Bugfix] Limit the number of threads spawned at launch time and when iTunes is not responding to Apple Events (for example, when it has its preferences window open); this was actually the intended behaviour all along but the previous implementation didn't conform to the design.
  • [Bugfix] Fixed bug #393 ("Hidden Dock icon preference not honoured when upgrading").
  • [Bugfix] Removed sheet offering to restart Synergy Advance after attempting (and failing) to make changes to Dock icon visibility when running from a write-protected volume.
  • [Bugfix] Fixed bug #391 ("Growl notifications not sent when using Synergy Advance to change ratings").
  • [Bugfix] Fixed bug #398 ("Partial Spanish and English localizations swapped in Registration preference pane").
  • [Note] Added documentation for new advanced preferences added in version 0.4: "Override default Apple Event timeout" and "Apple Event timeout". Also added missing documentation for the "Hide iTunes on launch if launched by Synergy Advance" option in the "Advanced" tab of the preferences.
  • [Note] The "Disable Synergy Advance hot keys when iTunes is not running" option previously in the "Advanced" tab of the preferences has been moved to the "Hot Keys" tab and renamed. It now appears as a secondary checkbox underneath the "Enable Hot Keys" checkbox and is labelled "Only when iTunes is running".

Version 0.4b4 (3 April 2006)

  • [Bugfix] Removes the spurious crash warning that may be shown on first launch.

Version 0.4b3 (3 April 2006)

  • [Bugfix] Removed anti-corruption checks that were causing Synergy Advance to abort when launching on some systems (fixes bug #387 and bug #389).
  • [Bugfix] Fixed broken version number in Info.plist and InfoPlist.strings files.

Version 0.4b2 (1 April 2006)

  • [Enhancement] The details drawer in the crash reporter now uses a non-wrapping text view with a horizontal scrollbar for increased readability.
  • [Bugfix] Fixed a known regression introduced in version 0.4b where the embedded crash reporter application would not launch (upgraded WODebug framework to version 1.4).
  • [Note] Added additional logging information to troubleshoot bug #387 and bug #389.

Version 0.4b (29 March 2006)

  • [Feature] New "About..." menu item in the Global Menu, visible when the Option key is pressed (added because the About window is not otherwise accessible when running Synergy Advance without a Dock icon).
  • [Feature] Half-star ratings, if enabled, now shown in Growl notifications.
  • [Feature] New setting in "Advanced" tab of preferences window, "Apple Event timeout", allows users to control how many seconds Synergy Advance should wait for iTunes to reply to Apple Events before giving up. This leads to a more responsive user interface; previous versions would appear to temporarily hang whenever iTunes stopped responding to Apple Events; such hangs would last for approximately 60 seconds (the default Apple Event timeout).
  • [Enhancement] Speed up all transitions in the Preferences window when switching between panes; an especially notable speed difference applies when switching away from the "Show All" view.
  • [Enhancement] Optimizations to enumeration code (approximately 50% faster) which will especially benefit people with large numbers of tracks in their iTunes libraries.
  • [Enhancement] Synergy Advance now performs all communication with iTunes from a separate thread which means that it will remain responsive at all times when communicating with iTunes via Apple Events, even when iTunes is totally unresponsive (for example, when the iTunes Preferences window is being displayed iTunes becomes entirely unresponsive to Apple Events; this is a limitation of iTunes itself). Previously Synergy Advance would wait up to the default timeout limit (approximately one minute) before giving up waiting for the reply to the Apple Event.
  • [Enhancement] Thread-safety enhancements (use of memory barriers) and speed optimizations made to WOSingleton class.
  • [Enhancement] Now ships with the WOTest unit testing framework, allowing users to perform on-site low-level testing.
  • [Enhancement] WOTest framework now links against the Foundation framework only rather than the entire Cocoa framework, resulting in a smaller memory footprint.
  • [Enhancement] Finer-grained locking in iTunes music library wrapper class for better performance.
  • [Enhancement] Significant optimizations to reduce memory and CPU usage while animating the Dock icon.
  • [Bugfix] Worked around bug in Mac OS X Tiger where stale entries in the Launch Services database would cause Mac OS X to ignore the visibility settings of the Synergy Advance icon in the Dock (bug #279).
  • [Bugfix] Fixed potential crash while switching from the "Advanced" preference pane to the "Hot Keys" preference pane (bug #280).
  • [Bugfix] Work around visual artefacts in the area of the Synergy Advance semi-transparent notification bezel while scrolling in BBEdit and other applications (bug #276).
  • [Bugfix] "Show all" in preferences now correctly capitalized as "Show All".
  • [Bugfix] The status text shown when a duplicate hot key combination is defined is no longer persisent but disappears after the following editing operation (bug #277).
  • [Bugfix] Removed useless text from the Instant Messaging preference pane (sometimes visible when switching between panes).
  • [Bugfix] Fixed failure to launch when run from an HFS case-sensitive filesystem (bug #281).
  • [Bugfix] Fixed console noise when iChat status line scrolling is active (see bug #306).
  • [Bugfix] Correct issue where other preference settings could inappropriately override the "Update iChat status based on current track" setting (see bug #318).
  • [Bugfix] Fixed memory leak of Unicode text strings retrieved via Apple Events.
  • [Bugfix] Fixed two minor memory leaks in the NSArray category of the WOBase framework.
  • [Bugfix] Fixed partly ineffective "Disable Synergy Advance hot keys when iTunes is not running" preference.
  • [Note] Improvements to the build process mean that the build number now appears in the Finder's "Get Info" window along with the version number.
  • [Note] Updated the embedded Growl framework from version 0.7 to 0.7.2.
  • [Note] Qualified for use with iTunes version 6.0.2, 6.0.3 and 6.0.4. Upgrading to at least version 6.0.2 is recommended for all iTunes users because it allows the display of half-star ratings (which you can set using Synergy Advance).

Public preview release version 0.2 (26 July 2005)

  • [Feature] Hot key to show/hide the Global Menu (request #194).
  • [Feature] Basic AppleScript support; it is now possible to control Synergy Advance via AppleScript (request #145).
  • [Feature] Option to "scroll" text in the iChat status line. The scrolling is performed by displacing the text in the iChat status line one character to the left per second. Before activating this feature be aware that although the scrolling will appear to be smooth when viewed from your machine, network latency may cause the scrolling to appear irregular and inconsistent from the perspective of those who are on your buddy list.
  • [Feature] New "General" preference pane with many new settings:
    • "Auto-launch Synergy Advance when iTunes is launched"
    • "Launch Synergy Advance at login"
    • "Auto-quit Synergy Advance when iTunes quits"
    • "Don't show Synergy Advance icon in Dock"
    • "Animate Dock icon when iTunes is playing"
    • "Show cover art for current track in Dock"
    • "Show cover art as badge on top of Synergy Advance icon"
    • "Show track progress in Dock"
    • "Check for new versions of Synergy Advance"
  • [Feature] It is now possible to view the installed visualizers and switch between them using the "Visualizer" submenu in the Global Menu.
  • [Feature] It is now possible to view the equalizer presets and switch between them using the "Equalizer" submenu in the Global Menu.
  • [Feature] New "Growl" preference pane for setting Growl options (request #248). The options which were previously in the "Advanced" preference pane have been moved to the new pane. Additional brand new options include: "Truncate long lines", "Attempt to coalesce notifications" (request #258), "Use custom format for track information change notifications", "Use custom format for player state change notifications" and "Use custom format for when "Show Growl Notification" hot key pressed".
  • [Feature] New setting in the "Advanced" preferences pane to set the level of basic, diagnostic and debugging information that gets logged to the console (request #210).
  • [Feature] When the Option key is held the "Next Track" and "Previous Track" items in the Global Menu change to read "Next Album" and "Previous Album". Selecting these items causes iTunes to move within the current playlist to the first track of the next and previous albums. If there is no next or previous album in the playlist no action is taken. Only "file" tracks (tracks physically stored on your disk) are considered during the search for the next or previous album; tracks stored elsewhere are not considered (this includes tracks on shared playlists, iPods, CDs and Internet radio).
  • [Feature] Hot keys for "Next album" and "Previous album" (request #4). The same limitations apply as for the "Next Album" and "Previous Album" menu items.
  • [Feature] Hot key to pop up the Global Menu (request #255). This is useful for initiating keyboard-based navigation of the menu without having to use the mouse. The cursor keys can be used for movement, the Enter or Return keys to perform the action of the selected menu item, and the Escape key to dismiss the menu.
  • [Feature] New "About" window (also optionally shown as a splash window at launch time) that indicates the version and build number, among other things.
  • [Feature] New "Restart Synergy Advance" menu item in the Global Menu visible when the Option key is held.
  • [Feature] Performance-related diagnostic information printed to the console when the log level is set to 5 or higher.
  • [Feature] Synergy Advance is now a Universal Binary capable of running natively on both PowerPC and Intel processors.
  • [Enhancement] Optimizations to main controller class; replaced conservative accessor methods with fast setters/getters where appropriate.
  • [Enhancement] Removed the 1024 byte limit on Unicode text strings retrieved from iTunes/iChat.
  • [Enhancement] To facilitate the development of plug-ins much of the application's functionality has been split off into a new framework, SynergyAdvance.framework; individual plug-ins can link against the framework and benefit from its functionality without having to reimplement common code. To demonstrate the use of the framework all of the code for communicating with iTunes has been moved into a separate plug-in stored inside the application bundle at "Contents/PlugIns/Player/iTunes.bundle". Similarly all iChat code now resides in the iChat plug-in. A user interface for selectively enabling, disabling, adding and removing plug-ins will appear in a future release.
  • [Bugfix] Ensure that the hot key visual feedback bezels for operations such as "Toggle shuffle", "Toggle muting", "Toggle equalizer" and "Enable/Disable track in iTunes" are shown only in response to hot key events and not when the corresponding menu items are selected in the Global Menu.
  • [Bugfix] In the "Artists" submenu tracks for which no album title is set now appear in the "All Artists" submenu, the "All" submenu for each artist as well as a new "Untitled Album" submenu.
  • [Bugfix] In the "Genres" submenu tracks for which no album title and/or genre is set now appear in the "All Genres" submenu as well as the per-artist submenus and "Untitled Album" submenu if appropriate.
  • [Bugfix] Corrected color and transparency of unlit and half-lit stars in the visual feedback bezels that are optionally shown when changing the rating using hot keys (bug #234).
  • [Bugfix] Force Cocoa to redraw the contents of the visual feedback bezels prior to putting them on screen for the first time. Prior to this change it was sometimes possible to see the previous contents of the bezel for a split second when the bezel had already been on the screen previously and was then placed on screen again.
  • [Bugfix] Fixed small memory leak (NSShadow object leaked when drawing feedback bezel for iTunes volume at maximum volume).
  • [Bugfix] Fixed potential deadlocks during Global Menu updates (bug #209).
  • [Bugfix] Whitespace in custom format strings is no longer gobbled up and discarded by NSScanner (bug #211).
  • [Bugfix] In custom format strings all the listed format markers are now supported (previously listed on the known issues page).
  • [Bugfix] The artist is no longer incorrectly repeated in custom format strings (bug #222).
  • [Bugfix] Low level logging routines in the WODebug framework now correctly handle additional arguments which themselves contain format characters (%); previously these characters were stripped from the arguments and in a specific case (not applicable to Synergy Advance) could cause a crash.
  • [Note] Updated the embedded Growl framework from version 0.6.2 to 0.7. This means that if you have Growl 0.7 or later installed on your system then Synergy Advance will try to coalesce multiple notifications into a single notification (useful for rapidly skipping through tracks when a Growl notification is already on screen); note that not all Growl display plug-ins support coalescing.
  • [Note] The Synergy Advance disk image now shows basic installation instructions for a drag-and-drop install.
  • [Note] Enabled crash reporter functionality.
  • [Note] Bumped the minimum required Mac OS X version from 10.3 to 10.3.9. It is possible that Synergy Advance may run on earlier versions of Mac OS X but such use is not officially supported and all Panther users are advised to upgrade to Mac OS X 10.3.9 or higher.

Public preview release version 0.1.2 (11 May 2005)

  • [Feature] New checkbox in the "Hot Keys" preference pane for turning on additional visual feedback bezels when pressing selected hot keys; affected keys include "Play/Pause", "Next", "Back", "Previous", "Increase rating", "Decrease rating", "Increase volume", "Decrease volume", "Toggle Shuffle", "Cycle Repeat Mode", "Toggle Muting", "Toggle Equalizer", "Skip forwards", "Skip backwards", "Enable/Disable Track in iTunes", "Play", "Pause", "Stop", "Fast Forward", "Rewind", "Resume", "Rate zero stars", "Rate one star", "Rate two stars", "Rate three stars", "Rate four stars", "Rate five stars", "Turn Shuffle On", "Turn Shuffle Off", "Repeat None", "Repeat All", "Repeat One", "Turn Muting On", "Turn Muting Off", "Turn Equalizer On", "Turn Equalizer Off", "Enable (check) Track in iTunes" and "Disable (uncheck) Track in iTunes".
  • [Feature] Optional display of half star increments in the user interface (request #111).
  • [Bugfix] Work around for Cocoa returning an inconsistent NSFileSystemNumber on a small number of systems; this should stop the activation dialog from appearing after rebooting for those users (bug #228).
  • [Note] Qualified for use with iTunes 4.8.

Public preview release version 0.1.1 (6 May 2005)

  • [Feature] New Global Menu item "Report Bug..." visible when holding down the option key (request #207).
  • [Feature] New hot keys to control iChat ("Toggle iChat Away Status", "Show/Hide iChat", "Bring iChat to Front", "Launch/Quit iChat", "Set iChat Away Status", "Set iChat Available status", "Set iChat Offline status", "Show iChat", "Hide iChat", "Launch iChat" and "Quit iChat").
  • [Feature] Many hot keys now modify their behaviour depending on whether the user does a simple press or a press-and-hold. For example, pressing the "Next" hot key skips to the next track but pressing and holding it causes iTunes to fast forward within the current track until the user releases the hot key. Likewise "Back", "Previous", "Increase volume", "Decrease volume", "Increase rating" and "Decrease rating" can now differentiate between a simple press and a press-and-hold.
  • [Feature] New hot keys to control iTunes ("Fast Forward", "Rewind" and "Resume").
  • [Feature] New advanced preference, "Volume change delay", controls the delay between pressing the "Increase volume" or "Decrease volume" hot keys and their "press-and-hold" action coming into effect.
  • [Feature] New advanced preference, "Rating change delay", controls the delay between pressing the "Increase rating" or "Decrease rating" hot keys and their "press-and-hold" action coming into effect.
  • [Enhancement] Optimized the method used to cross-dissolve between preference panes thereby eliminating all flickering and other visual glitches. To see the cross-dissolve in slow motion hold down the Shift key while clicking the mouse on an preference pane icon (see bug #225 for the one remaining known issue with the cross-dissolve).
  • [Bugfix] Fix potential vertical sizing problems when switching between preference panes (bug #216).
  • [Bugfix] Suppress Growl notification when iTunes quits (this was also an issue with Synergy in the past: bug #142).
  • [Bugfix] Adjusted alignment of Global Menu icon by one pixel so that it lines up perfectly with the Spotlight icon when running on Mac OS X 10.4 Tiger (bug #215).
  • [Bugfix] The command-line executable "what" now produces meaningful output when run on the executables in the Synergy Advance bundle (previously Xcode's dead code stripping feature was removing the version information).
  • [Bugfix] Implemented finer-grained locking and some judicial ghosting of the "Playlists", "Genres" and "Artists" submenus to prevent lock contention situations which could result in temporary beachball cursors while updating those menus on slower machines (bug #209).
  • [Bugfix] Hook up "Activate" button that appears in a dialog when launching an registered but unactivated copy of Synergy Advance. Previously this button did appear in the user interface but it didn't actually do anything.

Public preview release version 0.1 (2 May 2005)

  • Initial release.