iTunes Visualizer

Particle Dance (Composition by cybero)

Author: cybero
License: (unknown)
Date: 2010.07.06
Compatibility: 10.5, 10.6
Required plugins:

An iTunes visualizer utilising GL Tools, Particle Tools [VBO & Textured], Colour shifting & GL Tools [Point Structure].

OpenCL Convertor | Particle Video Visualizer | W I P

cybero's picture

Little has been spoken of the proper use of the OpenCL convertor, which is hardly surprising as it hardly seems to recognise some OpenCL streams at all :-).

Essentially it is meant to convert an OpenCL structure into an image and it can do a pretty good job of dealing with video and streamed movies too.

This is a bit of a tangent to my creating some really effective OpenCL Optical Flow kernel based constructs. That is definitely a work in progress.

This little beauty shows how the Colours structure can be turned into a representation of the video [ - online version]. There actually is more variation amongst the other structure members than this grab gives lie to :-) .

The other OpenCL structures also yield graphically renderable information, chromatic and movement. Note the image output from the Convertor patch. The other two Convertors output the rainbow background and the texture grid.

Put together, they make for a rather graceful visualizer, albeit a slow vehicle fps wise, which I don't find matters too much, especially as feeding the audio peak to the movie rate [Asynchronous mode] keeps the whole moving structure synced to the audio throughput.

Still it would be nice to find an even more effective fps capable kernel based construct.

Post 10.6.3 - Interface Degradation Issue

cybero's picture

This might be Safari related, might be Quartz Composer related, but I've been experiencing occasional, but severe interface degradation issues following the 10.6.3 update.

A pity, and I have tried the usual housekeeping & maintenance including the Combo Update and the post installation maintenance check routines, but still get a difficult to capture interface regression, just loading top sites and having Quartz Composer.

I had half suspected the installation of Many Cam but having checked that out am left with just 10.6.3 and no further specific idea.

Doesn't happen with any OpenCL breakdown or any specific technology - just seems to bubble up from the frameworks and proceed to regress the interface and do so by means of painting some interface grabs over every window. However it does often as not happen after a restart of QC following some sort of OpenCL hiccup.

Having iTunes visualising does seem to speed up the arrival of such an interface foul up.

Happens , difficult to reproduce and harder to capture as Shift Enter 3 doesn't seem to work when this is happening.

GL Reel - [ 4 in 1] (Composition by cybero)

Author: cybero
License: (unknown)
Date: 2009.12.18
Compatibility: 10.5, 10.6
Required plugins:

This composition provides a simple help system using '/' and allows one to change the loaded composition using '.' .

The contents of the zip file should just be dropped straight into your ~/Library/Compositions folder, boot up iTunes, select GLReel from the drop down list and just hit that '.' key to switch your visuals.

The primary aim here was to create a set of compositions that closely replicated the currently problematic, OpenCL mesh based Aurora visualizer, these compositions could then be switched through using a simple key stroke.

I really like the Aurora example and this suite of compositions is as closely similar as I've managed to get non OpenCL based objects to function as well as that example does once it has been 'tamed' a little.

The great advantage with these is that although they require the installation of GL Tools that's it - they just run - and they don't leak memory or trip up over its own compiler - or whatever it is that OpenCL is mysteriously doing to great consternation in these quarters.

A tutorial follows shortly, but for the time being, do download and try out the utility and the associated files.

My idea here would be to enable you to switch through a large number of compositions without having them clutter up the iTunes menu with a long list of compositions.

Think maybe three or four of these having several particular compositions being loaded via ./qtz/File.qtz as file paths, all done without a menu list dropping below one's dock :-) .

Currently lacking the polish of an on screen list and a few other refinements, but it's the beginning of a better way of presenting iTunes visualizers for me.

The 4 accompanying visualisation compositions, CameraCosmos, ToyCosmos, AuroraWaves and AuroraGL, lend themselves well to being employed for their audio interactivity. AuroraGL is the closest replica of the oft vexing and crashing OpenCL Aurora. CameraCosmos seeks to replicate some of that early satellite shifty viewport [think clockwork camera], whilst ToyCosmos shows how all of that can be done smoothly.

Thanks to Kineme for GL Tools 1.4 with its outstanding GL Wave Structure patch and the updated support for meshes, the delivery of audio reactive objects like the Aurora audio generated OpenCL mesh bands has now become a distinct possibility.

Interestingly enough, although they all work AOK in the intended medium [iTunes with GLTools] , due no doubt to having been edited on 10.6.x, it is not reliably purposable now upon 10.5, so those wanting to study the examples as they really are shall have to do so in 10.6.x where the .qtz file will be faithfully restored for editing.

This , however, in no way stops a properly supported environment rendering these in either 10.5 or 10.6.

GL Tools 1.3 in Snow Leopard - Resulting Crashes - probably post update 10.6.1

cybero's picture

The following was the resulting output when running GL Tools 1.3 on Snow Leopard and saving a composition from Quartz Composer that had originally been produced on the PPC with GLTools 1.1, then 1.2 and finally 1.3.

iTunes Visualizer was running in the background - probably unimportant. *~ - edit - as it happens, upon closer examination, when iTunes isn't running the crash does not occur - probably down to the queueing of the current data state from the music :-)

This happened in both 32 and 64 bit mode.

The same standard working procedure results in the same type of crash upon the PPC and the crash can be avoided by not explicitly going down this route.

It is being precipitated specifically by having Command + W , or otherwise clicked to close down either the Viewer or Editor window, leaving the other open.

Once this has been done and one is left with the remaining QC window, when one Command + W's to close the remaining window and clicks on the save dialog button, the application crashes.

Work Around

Work can be saved if one saves Command + S at the first of the two open windows, then proceeds to close the remaining window and clicks the Don't Save button.

So I guess this workaround wouldn't be needed if one wasn't working on a Music Visualizer protocol item with iTunes Visualizer running just to see if it really does do what one wanted it to do.

Process:         Quartz Composer [2285]
Path:            /Developer/Applications/Quartz Composer
Version:         4.0 (103.1)
Build Info:      QuartzComposerEditor-1030100~1
Code Type:       X86-64 (Native)
Parent Process:  launchd [663]
PlugIn Path:       /Users/cybero/Library/Graphics/Quartz Composer Patches/GLTools.plugin/Contents/MacOS/GLTools
PlugIn Identifier: net.kineme.GLTools
PlugIn Version:    1.3 (20090903)
Date/Time:       2009-10-22 14:34:53.341 +0100
OS Version:      Mac OS X 10.6.1 (10B504)
Report Version:  6
Interval Since Last Report:          75955 sec
Crashes Since Last Report:           5
Per-App Interval Since Last Report:  67750 sec
Per-App Crashes Since Last Report:   5
Anonymous UUID:                      5480A871-6E0B-4AF4-B8DA-1E7DC47D4D1C
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
Crashed Thread:  0  Dispatch queue:
Thread 0 Crashed:  Dispatch queue:
0   net.kineme.GLTools               0x000000011a3619e3 -[KinemeGLSplinePatch state] + 259
1         0x00007fff8037fe3f -[GFGraph(Private) _saveState:filterTarget:filterAction:flatten:] + 2829
2         0x00007fff8037fffd -[GFGraph state] + 420
3         0x00007fff803cff9b -[QCPatch(Override) state] + 51
4         0x00007fff8037fe3f -[GFGraph(Private) _saveState:filterTarget:filterAction:flatten:] + 2829
5         0x00007fff8037fffd -[GFGraph state] + 420
6         0x00007fff803cff9b -[QCPatch(Override) state] + 51
7         0x00007fff8037fe3f -[GFGraph(Private) _saveState:filterTarget:filterAction:flatten:] + 2829
8         0x00007fff8037fffd -[GFGraph state] + 420
9         0x00007fff803cff9b -[QCPatch(Override) state] + 51
10         0x00007fff8037fe3f -[GFGraph(Private) _saveState:filterTarget:filterAction:flatten:] + 2829
11         0x00007fff8037fffd -[GFGraph state] + 420
12         0x00007fff803cff9b -[QCPatch(Override) state] + 51
13         0x00007fff8037fe3f -[GFGraph(Private) _saveState:filterTarget:filterAction:flatten:] + 2829
14         0x00007fff8037fffd -[GFGraph state] + 420
15         0x00007fff803cff9b -[QCPatch(Override) state] + 51
16         0x00007fff803d14e9 _PatchToComposition + 794
17         0x00007fff803cdc2d -[QCView saveComposition:] + 56
18         0x00007fff803cdccb -[QCView saveCompositionToFile:flatten:] + 57
19                 0x00007fff8608be36 -[NSDocument writeToURL:ofType:forSaveOperation:originalContentsURL:error:] + 210
20                 0x00007fff8608fdfa -[NSDocument _writeSafelyToURL:ofType:forSaveOperation:error:] + 281
21                 0x00007fff8608f1f8 -[NSDocument writeSafelyToURL:ofType:forSaveOperation:error:] + 359
22                 0x00007fff8608a57e -[NSDocument saveToURL:ofType:forSaveOperation:error:] + 168
23   0x000000010000e6c1 0x100000000 + 59073
24                 0x00007fff8608d62c -[NSDocument _saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo:] + 85
25                 0x00007fff8608a85f -[NSDocument saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo:] + 683
26                 0x00007fff8608ece0 -[NSDocument _saveDocumentWithDelegate:didSaveSelector:contextInfo:] + 852
27                 0x00007fff8608ab77 -[NSDocument saveDocumentWithDelegate:didSaveSelector:contextInfo:] + 292
28   0x000000010000e607 0x100000000 + 58887
29                 0x00007fff8608c807 -[NSDocument _closeAlertSheet:wasPresentedWithResult:inContext:] + 99
30                 0x00007fff85fb482c -[NSAlert didEndSheet:returnCode:contextInfo:] + 104
31                 0x00007fff85fa39f9 -[NSApplication endSheet:returnCode:] + 321
32                 0x00007fff85f9ce31 -[NSAlert buttonPressed:] + 264
33                 0x00007fff85eb623e -[NSApplication sendAction:to:from:] + 95
34                 0x00007fff85eb619d -[NSControl sendAction:to:] + 94
35                 0x00007fff85f4168b -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 1715
36                 0x00007fff85f721a3 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 555
37                 0x00007fff85f40135 -[NSControl mouseDown:] + 624
38                 0x00007fff85e5a967 -[NSWindow sendEvent:] + 5409
39                 0x00007fff85d90122 -[NSApplication sendEvent:] + 4717
40   0x000000010000a994 0x100000000 + 43412
41                 0x00007fff85d26acc -[NSApplication run] + 474
42   0x0000000100001d2b 0x100000000 + 7467
43                 0x00007fff85d1f798 NSApplicationMain + 364
44   0x0000000100001258 0x100000000 + 4696
Thread 1:  Dispatch queue:
0   libSystem.B.dylib                0x00007fff8423db16 kevent + 10
1   libSystem.B.dylib                0x00007fff8423fa19 _dispatch_mgr_invoke + 154
2   libSystem.B.dylib                0x00007fff8423f6d6 _dispatch_queue_invoke + 195
3   libSystem.B.dylib                0x00007fff8423f1f6 _dispatch_worker_thread2 + 244
4   libSystem.B.dylib                0x00007fff8423eb28 _pthread_wqthread + 353
5   libSystem.B.dylib                0x00007fff8423e9c5 start_wqthread + 13
Thread 2:
0   libSystem.B.dylib                0x00007fff8423e94a __workq_kernreturn + 10
1   libSystem.B.dylib                0x00007fff8423ed5c _pthread_wqthread + 917
2   libSystem.B.dylib                0x00007fff8423e9c5 start_wqthread + 13
Thread 3:
0   libSystem.B.dylib                0x00007fff8423e94a __workq_kernreturn + 10
1   libSystem.B.dylib                0x00007fff8423ed5c _pthread_wqthread + 917
2   libSystem.B.dylib                0x00007fff8423e9c5 start_wqthread + 13
Thread 4:
0   libSystem.B.dylib                0x00007fff8425f9c6 __semwait_signal + 10
1   libSystem.B.dylib                0x00007fff8425f855 nanosleep + 148
2   libSystem.B.dylib                0x00007fff8425f7bf usleep + 57
3                 0x00007fff85eac702 -[NSUIHeartBeat _heartBeatThread:] + 1540
4             0x00007fff80abcf65 __NSThread__main__ + 1429
5   libSystem.B.dylib                0x00007fff8425df66 _pthread_start + 331
6   libSystem.B.dylib                0x00007fff8425de19 thread_start + 13
Thread 5:
0   libSystem.B.dylib                0x00007fff8423e94a __workq_kernreturn + 10
1   libSystem.B.dylib                0x00007fff8423ed5c _pthread_wqthread + 917
2   libSystem.B.dylib                0x00007fff8423e9c5 start_wqthread + 13
Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x0000000000000000  rcx: 0x0000000119c08670  rdx: 0x0000000000000007
  rdi: 0x000000011a384550  rsi: 0x00007fff86450968  rbp: 0x00007fff5fbfe170  rsp: 0x00007fff5fbfe100
   r8: 0x000000011a384550   r9: 0x0000000000000000  r10: 0x00007fff80aaeda2  r11: 0x0000000100217570
  r12: 0x0000000119c08670  r13: 0x0000000000000000  r14: 0x0000000119e60c80  r15: 0x00007fff8207f568
  rip: 0x000000011a3619e3  rfl: 0x0000000000010206  cr2: 0x0000000000000000