Author Topic: DreamScene  (Read 5403 times)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1864
    • zapsolution
« on: December 02, 2016, 09:09:00 am »
This thread is to exposed a very special GDImage/WinLIFT companion, named ZWP (Zapsolution Window Plugin).

Its purpose is to provide an easy way to display OpenGL animations in the background, just like with the Vista Pro DreamScene (2007), but for a specific application. The animation itself could run in full sync mode with a playing audio file, creating a peak level FFT signal in real time.

Here is a DreamScene example, using the "Vortex" plugin:

The above screen shot, has been taken from a WinDev project, running in composited mode.
Compositing, means everything is rendered onto the Windows DirectDraw surface, using multiple transparent layers.
This is made possible by using the unique combination of GDImage and WinLIFT, because they are AERO compatible, since the introduction of DWM in Windows VISTA.

OpenGL animations
They are able to use any BassBox "Visual plugins", each one being a small OpenGL DLL producing a specific visual effect. They are working under control of ZWP, that is the link between the high level application and the low level plugins. It performs audio decoding, and sends messages to both the low level and the high level code.

The z-order of the DreamScene is always kept behind the main window, that must be skinned by WinLIFT to see it in variable opacity mode. The GDImage graphic control, is able to share the same image background than the skin theme, or to run in opaque or full transparent mode.

How to use the demo

The GDImage graphic control, comprise:
- A PNG animation, that could be zoomed and rotated, using the slider or the gauge button.
  (click with the right mouse button, on either the slider or the gauge, to restore default).
- A label text, matching the name of the active audio file.
- A progress spinner animation moving from the left to the right while playing audio.
Each of the above sprite objects, are reacting to the audio peak level, while playing.

The WinLIFT button controls:
- The "Vortex" radio button, to select the matching plugin.
- The "Laser beam" radio button, to select the matching plugin.
- The "PLAY" switch, to turn audio "On" or "Off".
- The "Transparent" switch, to turn the GDImage crystal mode "On" or "Off".
- The "Internet documentation" link, that would display this page.
- The "Clock" control.

About the supported audio format:
- Tracker: mod, umx, mtm, it, xm, s3m, mo3.
- Stream: mp3, ogg, wav, aif.
There are several audio files, provided into the "Audio" subfolder.
To select a specific one, use drag and drop from the Explorer onto the DreamScene window,
and of course feel free to use your own songs if you prefer.

More about the visual plugins.
They are written with OpenGL 2.00+, using specific set of textures (strored in the BBplugin\Texture subfolder).
Each of the visual effect is a mix of artwork and advanced programming, some of them have taken weeks of work to produce the final result. This technology has been created for the BassBox line of audio players. That means any BassBox plugin could be used with the DreamScene project.

What is it good for?
The DreamScene concept is great when you have to create presentation (or karaoke) on external display, with a mix of audio sensitive animations, overlayed text, and graphics.

What about the CPU being used?
While ZWP is very capable at decoding/playing audio files, it has a low memory impact, because the visual plugins are using the GPU rather than CPU. Most of the time (on an I7 computer) it uses between 2 and 3% of the whole CPU resource.

While Plugins are ideal for computer with low CPU resource, there is another {more demanding} companion named ZWM (Zapsolution Window Movie), that is able to play most video format using the CCCP codecs. The result will look exactly the same, except that you have a movie playing in the background rather than OpenGL animations.

« Last Edit: December 03, 2016, 07:00:33 pm by Patrice Terrier »
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1864
    • zapsolution
Let Her dance for you
« Reply #1 on: December 12, 2016, 09:30:27 pm »
Here is the C++ 64-bit version.

With more features, and more visual plugins.
- New ComboBox to select the Visual plugin.dll.
- Audio files, can be selected from the new ComboBox, or by drag and drop.
- The frame animation speed is now based on the music tempo.
- The main animation has been unlocked to drag it to another location.
- New ZWP version sending the NM_PULSE notification to the main application.

The attached project source code is ready to use with Visual Studio 2015 Community.

All binaries are inside the x64\Release folder.

« Last Edit: December 13, 2016, 09:00:57 pm by Patrice Terrier »
(Always working with the latest Windows version available...)

Patrice Terrier

  • Administrator
  • *****
  • Posts: 1864
    • zapsolution
Re: DreamScene
« Reply #2 on: December 13, 2016, 09:14:22 pm »
The 64-bit version has been updated to fix/extend a couple of minor features.

- NM_PAUSE, new notification.
- USE_FRAME, to start animation from a specific frame.
- Hide the seek tracker when audio is not playing.
- ZWP module, has been updated to prepare for video  playback.
- Code cleanup.

« Last Edit: December 13, 2016, 09:22:52 pm by Patrice Terrier »
(Always working with the latest Windows version available...)