I ended support for iTunes visualizer development in 2017.
This page is for historical reference only.

date version remark
20170605 3.3.8 Code changes for iTunes 12.6.1 on Mac.
20150503 3.3.7 Fixed crash on Windows.
20150404 3.3.6 Added support for 64-bit iTunes on Windows.
20141018 3.3.5 Fixed typography layout on Mac for Yosemite.
20130804 3.3.4 Added support for Retina Mac display.
20130409 3.3.3 Fixed blank lines in autoscrolling text.
20121201 3.3.2 Fixed crash bug on start with iTunes 11.
20121117 3.3.1 Bugfixes.
20120923 3.3 Multiline text layout. Autoscrolling text view for lyrics.
20120715 3.2 Fixed keyboard event handling.
20120708 3.1 Simplified individual visualizer branding with centralization of settings in VisualCustomization.
20120603 3.0.1 Fixed crash when no cover artwork is found. Fixed options dialog on Mac for multiple plug-ins.
20120325 3.0 Moved to new interface with iTunes Visualizer SDK (07/2011) for 64-bit iTunes (>=10.4). Removed Carbon and QuickTime legacy.
20100926 2.3.1 Bugfix for iTunes 10.
20090823 2.3 Streamlined color channel handling and improved pixel data transfer. Consolidated pixel color tools. Implemented PNG write function for Windows. Removed internal cache reference to pixel data in VisualTextureContainer. Thread-safe VisualTiming. Fixed histogram calculation. Moved call to register for notification into interface of VisualActor.
20090524 2.2.2 Tread-safe notification queue.
20090401 2.2.1 Fixed color channel and byte ordering issue.
20090328 2.2 Synchronized multithreading. Introduced ability to create image with framebuffer data and added resample method to image class. Added histogram for calculating averaged color values with k-means algorithm. Fixed call of ATSFontActivateFromFileSpecification with font name (not directory). Fixed calculation of stereo audio signal. Updated iTunesCOM interface with distribution of (2008-07-15). Added conversion from and to PixelColor and VertexColor.
20080814 2.1 Reduced legacy dependencies. QuickTime not being used anymore for decoding image data. Switched to Quartz' ImageIO framework on Mac. Switched to Gdiplus on Windows. Removed QuickTime dependency on Mac completely. Dependency on QuickTime library on Windows not completely removed to be able to call GetHandleSize() (used for getting the byte size of the album artwork image data as it is returned by PlayerGetCurrentTrackCoverArt()). QuickDraw dependency on the Mac remaining only because of CGrafPtr data type in iTunes' Visualizer API. Asynchronous URL data download and embedded update service.
20080131 2.0 Integrated updated iTunes API header files as released by Apple (20071112). Completely removed configuration of fullscreen resolution (in favor of init option kVisualDoesNotNeedResolutionSwitch). Complex animation support. Dedicated preference value system. Introduced VisualCamera. System requirements changed from iTunes 5.0 to iTunes 7.0. Updated to Xcode 2.5 project, with gcc 4.
20070503 1.9 Introduced VisualImage class. Added convolution filter. Added VisualFile class. ShowMode -> PlayerShowMode. Renamed and separated NotificationKey enum as VisualNotificationKey in VisualNotificationKey.h. Simplified VisualActorState. Removed class VisualPlayerStateSetter. const reference parameters in VisualActor. Removed class VisualItemIdentifierRegistry. VisualEventQueue -> VisualNotificationQueue. Abandoned VisualMessaging (in favor of VisualNotification). enum keys for Preferences und Values. Enhanced lyrics evaluation to handle right-to-left text direction correctly. Horizontal alignment of multiline text. QuickTime dependency encapsulated in new VisualQuickTime class. Reduced dependency on OS libraries by including MacTypes.h in header files. Included in implementation file <windows.h> and <CoreFoundation/CFBase.h>. Afx dependency of OptionsDialog limited to UI files (explicit link order set to Nafxcw(d).lib Libcmt(d).lib).
20061014 1.8 Calling aglSetCurrentContext() with each render action (for iTunes 7). Enhanced VisualString class (concatenation, substrings). Removed setupActorBeforeShow(). Introduced VisualAnimation. kTrackInfoDataIsAvailableMsg sent only if trackDidChange. More explicit encapsulation of VisualMain. Added notification: kAudioPlayReachedFadeOutTimeBeforeEndOfTrackEvt. Added writeDebugLog() function. Fullscreen display resolution now defaults to maximum quality ("default" entry in popup menu means: no call of PlayerSetFullScreenOptions()). Removed QuickDraw dependencies of makeCoverArtTexture() (OS X 10.3 required). Lazy initialization of Cocoa. Fixed crash in fullscreen mode in iTunes 7 (AGL_DEPTH_SIZE now 24 instead of 16).
20060802 1.7 Access of lyrics. Introduced VisualAudioMetaData, VisualString. Improved debugging and tracing possibilities. Added VisualPluginRenderMessage.currentPositionInMS (iTunes 4.7 required).
20060517 1.6 Timelined behaviour by adding interpolation and timeline. Introduced VisualItemIdentifier. Improved positioning by adding VisualStageBox and VisualStagePosition. VisualAsset texture and boxing information. Added Nurbs support. Universal target (ppc and i386) on Mac. Visual Studio 8 project. VisualActors are initialized only when canvas is set up. Improved class design.
20051214 1.5 Use of AGL for fullscreen mode on Mac. Introduced namespace VizKit. Typedef'ed enums with bit values (showMode, visualPlayerState). Optimized VisualPlayerState classes (VisualPlayerSetter instead of VisualPlayerStateReader). Renamed visualActorStates for clearer understanding of functionality. Added VisualActorState.h. TextureContainer with margin values. Default preference value as additional optional return value. Differentiation between stop and pause / play and resume in VisualConfiguration (kFadeInTimeOnPlayInMS, kFadeInTimeOnResumeInMS, kFadeOutTimeOnStopInMS, kFadeOutTimeOnPauseInMS). Enlargement of preference file reading buffer on Windows. Turned on Window Compositing of the options window on Mac.
20050826 1.4 Cleaned up VisualGraphics, added VisualActorGraphics and VisualGraphicsCore. Moved Windows project to Visual Studio .NET. Moved Xcode project to Version 2.1 (new extension of project file is .xcodeproj). Minor Tiger modifications. Cocoa function not declared __private_extern__ anymore (Tiger refuses to call these functions while Panther did). Changed VisualDataStore and VisualTiming methods to static. Added depth buffer to agl and cgl setup.
20050624 1.3 Improved switching to fullscreen resolution by calling PlayerSetFullScreenOptions(). Progress meter and pause/resume resp. stop/start event handling.
20050430 1.2 Easier extensibility by reducing and consolidating modification possibilities. Improved preference system. Improved code layout of OptionsDialog. Improved track title texture generation on Windows. Constantness in function declarations.
20050208 1.1 Improved track title texture generation on Windows. Preference values for character types and factory (default) preference values. Call of ChangeDisplaySettings in cleanUpWGL (since iTunes sometimes doesn't manage it). ImageRep release in createStringTexture on Mac OS X. Cleared texture memory before creation of new texture of cover or track title. Call of function setCoordVals in VisualGraphics.
20041210 1.0 Added configuration of display resolution with OptionsDialog. Also about info with OptionsDialog. Improved process monitor info string show. Added possibility to hide process monitor audio info. Changed preprocessor definition TARGET_OS_WIN32 to TARGET_OS_WIN.
20040919 0.9.2 Rewrote string texture generation by Cocoa. Now only function calls inside of the bundle are used, since the classes were visible in global namespace. If multiple VizKit based plug-ins were loaded by iTunes, the Cocoa classes were mixed up and caused a crash of the Carbon application.
20040901 0.9.1 Improved creation and positioning of cover art texture. Added spectrogram and spectrum analyzer to ProcessMonitor. Added Release resp. Deployment target settings to projects. Improved display of waveform data with ProcessMonitor. Changed visualEnsembleActors from array to vector. Renamed vizKit to "VizKit".
20040608 0.9 Initial release.