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

Synergy Advance help: advanced

The Synergy Advance advanced preferences pane provides a compact user interface capable of displaying a large number of customizable options that power users may wish to adjust. Most users will never need or want to alter these settings but for the curious this page describes the purpose of each setting and the effects of the possible values.

Show splash window at launch

If checked, Synergy Advance shows a "splash window" at launch time which indicates the version number, build number and other information. The default value for this setting is on.

Increment track played count when skipping to next track

iTunes keeps count of the number of times that you have listened to the tracks in your music library. To be precise, it increments the "played count" whenever it comes ot the end of a track. This means that if you listen to a track in part but do not allow playback to continue all the way to the end then the played count will not be incremented.

Some users would prefer to have the played count increment whenever they listen to a song, even if only part of it. You can use the "Increment track played count when skipping to next track" setting to achieve this goal. When this setting is set, Synergy Advance will increment the played count by one whenever you skip forward to the next track (by using a Synergy Advance hot key or the Global Menu). If you skip tracks using iTunes itself then Synergy Advance will not intervene or increment the play count. In this way you have can choose whether the count should be incremented: to increment the count when skipping tracks use Synergy Advance to perform the skip; to avoid incrementing the count use iTunes itself to perform the skip.

Note that this setting only applies when skipping forwards through the playlist (using the "Next track" menu item or hot key). It will not have any effect when skipping backwards through the playlist.

Prefer "play" and "pause" over "playpause"

Synergy Advance communicates with iTunes via Apple Events. There is a bug in iTunes' Apple Event implementation (described in detail here) that causes its behaviour to be subtley different depending on whether it is sent a "playpause" message rather than "play" or "pause". One might expect that sending "playpause" to iTunes when it is paused would be equivalent to sending a "play" command, and that sending "playpause" when iTunes is playing would be equivalent to sending "pause", but this is not the case.

One example of undesirable an side-effect caused by this bug is the following: use Synergy Advance to select a song from a different playlist; it starts playing as expected. If you hit the "Play/Pause" hot key playback will stop rather than pause and if you hit it again then iTunes will counter-intuitively go back to the previous playlist. The play/pause/stop button in iTunes itself exhibits this behaviour, but the implementation of "playpause" is still a bug because it deviates from its documented purpose (the iTunes AppleScript dictionary says that the command can be used to "toggle the playing/paused state of the current track"; if it truly did "toggle" the state then two successives invocations of the command could be expected to return iTunes to its original state without changing tracks).

By default Synergy Advance always sends a "playpause" command whenever you hit the "Play/Pause" hot key. As such it is possible that you might encounter the counter-intuitive behaviour caused by the buggy behaviour of the iTunes "playpause" implementation. You can override this behaviour by turning on the 'Prefer "play" and "pause" over "playpause"' preference (defaults to no). When this preference is active Synergy will send a "play" command if iTunes is paused and a "pause" command if it is playing, avoiding the "playpause" command entirely. If it is unable to determine the current player state then it will fall back to sending a "playpause" command.

See also the "Infer player state rather than querying iTunes" setting below.

Infer player state rather than querying iTunes

This setting only has meaning if the 'Prefer "play" and "pause" over "playpause"' setting (above) is set to on. When that setting is active, Synergy Advance does not use the "playpause" command when the user presses the "Play/Pause" hot key. Rather, it sends a "play" command if iTunes is paused and a "pause" command if iTunes is playing.

The "Infer player state rather than querying iTunes" setting allows you to fine-tune how Synergy Advance determines what command should be sent. If turned on, Synergy Advance will select the appropriate command based on the last-known player state. If turned off, it will make no assumptions about the player state and will query iTunes directly to find out the current state. Querying iTunes can result in less responsive behaviour, as sometimes iTunes is slow to respond to Apple Event requests (for example, when a visualizer is running it may respond very slowly, and when its preferences window is open it may not respond at all). Depending on your usage patterns you may find that turning this setting on leads to a better response (because fewer steps are involved), but you may also find that turning it off is better (because iTunes tends to responds slowly to Apple Events).

This setting defaults to off.

Hide iTunes on launch if launched by Synergy Advance

When this setting is active and Synergy Advance is used to launch iTunes, iTunes will be automatically hidden once it has finished launching. The default value for this preference is off.

Volume change step

You can define hot keys to increase or decrease iTunes' current playback volume. The playback volume can range between 0 (silent) and 100 (maximum volume). This volume setting is independent of the system-wide volume setting and applies only to iTunes. By default these hot keys adjust the volume by 10 units per invocation. You can change the number of units by altering the "Volume change step" setting in the advanced preferences. The smallest allowed step is 1 unit and provides the finest possible control over the iTunes playback volume. The largest allowed step is 100 units which provides the most coarse control over the iTunes playback volume (effectively moving between silent and maximum volume with a single key press).

Volume change delay

If you define hot keys to increase or decrease iTunes' current playback volume you will notice that you can continuously increase or decrease the volume by pressing and holding those hot keys (the alternative is to press and immediately release the keys to adjust the volume by the amount specified by the "Volume change step" setting). You can adjust the "Volume change delay" setting to specify the delay between pressing the hot keys and the "press-and-hold" action coming into effect. The default value is 0.10 seconds. This means that on first pressing the hot key the volume will be adjusted by the "Volume change step" amount; 0.10 seconds later it will be adjusted again, and again for each 0.10 second interval that subsequently passes. The minimum permitted value for "Volume change delay" is 0.05 seconds, and the maximum is 1.00 second.

Rating change step

You can define hot keys to increase or decrease the rating of the current track in iTunes (although not all tracks permit ratings to be set; for example, you cannot set ratings while listening to Internet radio tracks). In the iTunes user interface track ratings are shown using stars, with zero stars being the minimum rating and five stars being the maximum. Internally iTunes represents these ratings using a number between 0 (zero stars) and 100 (five stars). When you press a hot key to increase (or decrease) a rating Synergy Advance will adjust it upwards (or downwards) by 20 units. This change is reflected in the iTunes interface by the addition (or subtraction) of a star in the rating of the current track.

If you wish to change the adjustment from the default value of 20 units you can alter the "Rating change step" in the advanced preferences. For example, if you specify a step of 40 units then the iTunes ratings will change two stars at a time. If you specify a step of 10 units (equivalent to the notion of a "half-star") then you will have to adjust the rating twice in order for a complete star to be added (or subtracted) to (or from) the rating. The smallest allowed step is 1 unit and provides the finest possible control over ratings. The largest allowed step is 100 units which provides the most coarse control over ratings (effectively moving between zero and five stars with a single key press). Note that if you do specify a fine-grained step (less than 20 units) the iTunes user interface will only display rating changes at the whole-star level (or half-star if you are using iTunes 6.0.2 or later); your fine-grained ratings are applied internally but the iTunes user interface "rounds them off" to the nearest star for display purposes.

Rating change delay

If you define hot keys to increase or decrease the rating for the current track you will notice that you can continuously increase or decrease the rating by pressing and holding those hot keys (the alternative is to press and immediately release the keys to adjust the rating by the amount specified by the "Rating change step" setting). You can adjust the "Rating change delay" setting to specify the delay between pressing the hot keys and the "press-and-hold" action coming into effect. The default value is 0.30 seconds. This means that on first pressing the hot key the rating will be adjusted by the "Rating change step" amount; 0.30 seconds later it will be adjusted again, and again for each 0.30 second interval that subsequently passes. The minimum permitted value for "Rating change delay" is 0.10 seconds, and the maximum is 1.00 second. Please note that on slower machines the you may not be able to use very low values because each time you increment (or decrement) the rating iTunes will send a notification and Synergy Advance will respond to it, a process which may take longer than the time you specify for "Rating change delay".

Show half star ratings

As mentioned in the description of the "Rating change step" setting iTunes internally represents song ratings using a scale of 0 to 100 even if it only displays ratings in the user interface using a whole number of stars between 0 and 5 (or half-stars as of iTunes version 6.0.2). Synergy Advance is capable of managing ratings with a much finer degree of control and can display half star ratings in its own user interface (specifically in the feedbacks bezels that are optionally shown when pressing ratings hot keys or in Growl notifications). Note that half star ratings are never shown in the Global Menu regardless of the state of the "Show half star ratings" setting.

By default the "Show half star ratings" is set to on. To fully benefit from this setting you should combine it with an appropriate value for the "Rating change step" setting; a value of 10 is recommend because this corresponds exactly to one half star.

Skip forward/back interval

You can define hot keys to skip forward or backwards within the currently playing track by a predetermined number of seconds. This feature is particularly useful for transcribers who use iTunes to listen to material that must be transcribed. By default, Synergy Advance will skip 3 seconds at a time when these hot keys are pressed. You can change the number of seconds skipped by altering the "Skip forward/back interval" setting in the advanced preferences. The smallest allowed interval is 1 second and the largest is 60 seconds.

Poll interval for updating track position

Synergy Advance receives notifications from iTunes whenever the player state or the track information change. In this way it does not have to wastefully consume resources by polling iTunes and asking for updates about its current state. Nevertheless some features of Synergy Advance need to know more information than iTunes provides in its notifications; the key piece of information that iTunes does not provide is the position within the currently playing track. Synergy Advance can make an educated guess about what the current position is because it knows when you commence playback or pause the track but it has no way of knowing if you have skipped forward or backwards within the track. For this reason it must periodically query iTunes to find out the current playback position. It tries to do so in an economical way by sending a single, lightweight Apple Event. On most modern systems the CPU activity caused by this polling is unlikely to rise above 1% even when polling once per second (in fact, in the Activity Monitor the CPU usage will most likely hover between 0 and 0.1%).

By default the polling interval is 1 second. You can adjust this by altering the "Poll interval for updating track position" setting in the advance preferences. The smallest allowed interval is 1 second and the largest is 60 seconds. The lower the value you choose, the fewer resources will be consumed. The higher the value, the greater the scope for inaccuracies in Synergy Advance's best guess about the position within the current track.

Dock icon animation frames per second

Synergy Advance can animate its Dock icon to indicate when iTunes is playing. The default rate for the animation (when enabled) is 10 frames per second. You can change this rate by altering the "Dock icon animation frames per second" setting in the advanced preferences. The minimum possible setting is 1 frame per second (lower fluidity, lower resource usage); the maximum possible setting is 24 frames per second (higher fluidity, higher resource usage).

Logging level

Synergy Advance can print information to the console (see the "Console" application at "/Applications/Utilities/Console") for the purposes of feedback, diagnostics, debugging and troubleshooting. The verbosity of this logging can be configured using the "Logging level" setting in the advanced preferences. The minimum possible setting is log level 0; at this level Synergy Advance tries to be completely "silent" and not print anything at all to the console (although some error conditions may still arise in which the system libraries, outside of the control of Synergy Advance, print information to the console). The maximum possible setting is log level 10 which is the most verbose setting. The default log level is 1, which means that Synergy Advance will print only a minimum of information to the console, such as error conditions and other events considered as "noteworthy".

Override default Apple Event timeout

Synergy Advance communicates with iTunes via Apple Events. In most cases iTunes responds immediately to Apple Event requests but there are some cases in which it responds very slowly (for example when it is showing a visualizer) or not at all (such as when its preferences window is open). The "Override default Apple Event timeout" setting allows the user to control how long Synergy Advance should wait for iTunes to reply to an Apple Event before giving up.

If this setting is turned on then the user may specify a custom timeout using the "Apple Event timeout" preference (below). Otherwise the "Apple Event timeout" setting is ignored and the system default is used (about 60 seconds). The default value for this setting is off.

Note that regardless of the selection you make for these Apple Event preferences Synergy Advance will attempt to remain responsive to the user at all times, even when iTunes itself is blocking communications. Thanks to Synergy Advance's threaded communications engine the main thread (responsible for interaction with the user) will only ever wait for a maximum of two seconds; if iTunes takes longer than that then Synergy Advance will continue to operate responsively and the reply from iTunes (if any) will eventually be processed by a background thread. This means that you should never see the dreaded "spinning beach ball of death" (the Mac OS X busy cursor) while using Synergy Advance.

Apple Event timeout

If you turn on the "Override default Apple Event timeout" setting (above) then you may specify a custom timeout value using the "Apple Event timeout" setting.

The allowed range of values is from 0 to 120 seconds. The default value is 60 seconds.