1. Whirligig
  2. News

Whirligig News

Core input code updated to improve performance and continued VLC integration.

Hi Everyone

This is another major update and is now available to try as a beta Version 4.996. If you've not tried the betas before here is a link to a tutorial, it's dead easy:
https://youtu.be/z9pv-cgn4IE

Hopefully though you won't notice anything but a performance boost to the UI and hopefully to the video playback and loading. As a lot of the backend code has changed there are high chances of bugs. These hopefully will be small and I'm also hoping that I've managed to kill more bugs than added. The good news is if you let me know I'll be able to tackle them very quickly so please send them over :)

Input system

Well I embarked on this update expecting it to be relatively easy and it has turned out to be impressively difficult. The core input system implementation in Whirligig was overly complicated and slowed down a lot of the functionality. As I will continue to include new input options this was only going to get worse. So I’ve redesigned it massively and hopefully you’ll notice the performance improvements in the UI and playback.

VLC VideoLan integration

VLC is an incredibly powerful video playback system that offers some great features many of which I intend to build in to Whirligig. However the first thing was to integrate it with all the options already available. This process is on going but if you choose VLC you’ll find that it runs much faster than the previous integration. Also VLC is great if you need to access muxed subtitles or if you are having difficulty getting videos to play back with Media Foundation.

Let me know of any bugs

With this being a core code update I might well of caused issues, especially with the inputs. I've worked hard to fix as many bugs as I can but this is a major change to the core code so if you come across any bugs please let me know. I am now much better equipped to deal with it. You can either message here or email me [email protected]

Hope everyone is doing, happy Watching

Phil

VLC plugin integration, Audio reactive backgrounds, optimisations, bug fixes.

Hi all

So I've been working through as many issues as I can, many reported by you guys, keep them coming the more that I can squash the better and I've started improving and adding new features.

I'd like this version to be the next default release so you come across any issues please let me know [email protected]

Improved
  • Error detections for images and video.
  • Controller presence improved.
  • Shortcut menu look improved and close button fixed.


Fixed
  • Media Foundation/Directshow subtitles fixed for curved screens. This could still be improved.
  • Playlist buttons not working.
  • Dark video on Directshow fixed.
  • Option for playing video from last play position fixed.


New Feature
  • Disable gaze added.
  • Audio files mp3/ogg/acc etc now play correctly.
  • Audio reactive menu so you can have 3D spectrogram for your music now added.


Disable gaze added
So I've been working on making Whirligig a viable none VR video player for a few reasons. My development is actually mostly using the NoneVR version as it's easier to work on than in VR, I enjoy watching movies and series using VLC but would like to be able to do things that it can't in that player and of cause it's just nice to keep improving Whirligig.

A request for a way to turn off the gaze option was sent to me as the user was using the desktop features and didn't want the mouse to be snatched away every so often. It seemed like a good idea to add so I have.

The way it works is under settings/input there are now three options to disable different control systems, disable VR controllers, disable gaze control and disable mouse control. you can't disable all options (to prevent being locked out) and if you try the mouse control will come back on. Let me know if you have any issues but hopefully this implementation should fix a couple of things.

Audio background

So this is something I wanted to do for a while and because it wasn't too hard to implement and also didn't effect any other part of the player I've added it now.

Currently it only works with Media Foundation and WinRT video paths.

The implementation uses this plugin https://youtu.be/7A7ae-gYLUI so have a look and give it a try.

Other than all that I've continued to fixes bugs and optimise. If you come across any bugs please let me know [email protected]

Thanks for everyone's support.

All the best

Phil

VLC replacement, first proper beta, a load more image support.

Hi Everyone

Following the significant previous update. I've replaced Whirligig's VLC component with the official plugin (another big update). Although the plugin is in its early stages and may have some issues, the overall advantages outweigh the disadvantages and will benefit future features. I've also optimized the code extensively, resulting in a smoother experience overall.

VLC brings the following benefits:
  • GPU decoding, which significantly improves playback performance.
  • Image support for various formats such as xcf, gif, tiff, tif, ilbm, pcx, tga, bmp, pnm, webp, bpg, jpeg, jpg, jps, png, and pns.
  • Enhanced subtitle support.


Other updates include:
  • Comprehensive optimization and bug fixing of the code, resulting in Whirligig now running much smoother.


Currently in testing
So this update has a lot of code changes which makes it a lot faster than previous version. I would really like feedback if there any issues, I know about a couple including VLC Lan not showing progress on the bar until it's paused. These are being worked on, anything else please let me know.

I hope that I've not introduced a lot more bugs and actually through the code optimisation removed some but it is a big code change so there will be some I'm sure. I'll continue to work on it and release new updates.

One last thing. If you have been using Whirligig and like it please give a good review. The new updates have garnered some bad responses and although I should ignore them it does cut a little deep when someone uses Whirligig for over 100 hours and then give it a thumbs down. If you are having problems I would prefer to fixes the issues you have for the good of everyone. I understand if people wish to review Whirligig badly, it's not for everyone but I would say that it's also easy to believe that there is a large company out there taking advantage of you. It's just on person I'm afraid. A lot of games and apps on Steam are created by individuals or small teams and a kind word can help them to continue development.

I wish everyone the best, happy watching.

Phil

Default update to OpenXR with many new features

Hello to all Whirligig users

So I've been working on an OpenXR release for a long time. Trying to get all the controllers working, testing with multiple setups, WMR, Oculus and Vive headsets and multiple controllers, Quest, Quest2, Rift, Index, WMR and Vive original. After a few weeks of testing, community feedback and bug fixes this is that OpenXR default build release.

[h3]Overview of release[/h3]

This is a major update to the core of Whirligig with a switch over to the OpenXR sdk. I really don't want to break anyone's enjoyment of Whirligig but for me to continue support and add new features this is something that needs to be done. To reduce the chance of disruption I'm not removing the old builds from the beta list. If you have issues you can change back to the default build. I've also included a new version that uses SteamVR instead of OpenXR incase some headsets have issues with the OpenXR SDK. Here is a summary of those builds with a guide to changing to other beta versions.

[h3]How to change to other beta versions[/h3]

Steam's beta program is very easy to use and you can switch between versions in seconds. Here are a couple of guides.


I've also created a tutorial on Youtube:

https://youtu.be/z9pv-cgn4IE

[h4]Beta version - None[/h4]
None means that you'll use the default build. The default build is the version that'll you'll automatically download when purchasing Whirligig. Updates will happen to this build but will go through a much more rigorous testing process before release.

[h4]Beta version - whirligig_early_access_v.4.881[/h4]
This version was the previous default build released 2021. If this major update causes problems and you wish to return to the previous version choose this one. This version will not be removed and once you've chosen it any updates to the main build will not automatically update your version.

[h4]Beta version - whirligig_openxr_early_access_v.4.9841_steamvr[/h4]
The latest build uses OpenXR as it's core SDK. This version has been created with the SteamVR SDK. This version has been provided to support headsets that aren't fully operational with OpenXR. If you have performance issues that could be related to OpenXR try this version. Although this version is based on the latest build it won't be updated unless requested.

[h4]OpenXR Update[/h4]

[h3]Core SDK is now OpenXR[/h3]
So if you follow any VR news you'll know that OpenXR is a big deal and will help to ease development for porting, new headsets being compatible out of the box and overall improving the VR experience. Whirligig up until now has had two SDK implementations, Oculus and SteamVR. I've removed these and replaced them with the OpenXR system.

Advantages of OpenXR
OpenXR is in constant development with improvements that will carry down to all headsets.

You will be able to use your headset with the VR front you desire. OpenXR is fully compatible with SteamVR, Oculus Store and Windows Mixed Reality Portal. This means when using Whirligig from Steam you are not forced to use SteamVR. With direct support from each platform any performance improvements those platforms use will be filtered down into Whirligig.

OpenXR implementation has meant I've removed the input options for both Oculus and Steam replacing it with a universal controller and some core controllers to use. You could select different controller skins when using Oculus. Now this feature is available on all setups.

Quicker updates to other platforms. As all builds have been brought under one sdk I can now release the same version on different platforms with little change to the code. This will help to reduce bugs being introduced into other versions when updating and help my confidence that when I update I won't be breaking everyone's experience.

I can develop for both PC and Mobile headsets at the same time.

Disagvantages
OpenXR is new and in constant flux. For development this is both advantages and crippling as currently every update to the SDK can cause issues in multiple ways. This will improve greatly over time but currently it's making supporting some headsets (mostly mobile headsets) quite difficult.

Some features aren't working. Basically the UserPresent (what happens when the headset is put on or removed) feature isn't working properly. I will be implementing this back in once it's back up and running.

[h4]Feature Updates[/h4]

Thumbnail view in explorer



There is now a thumbnail option within the explorer. This option allows you to view all your video or images with a thumbnail view. Loading thumbnails can take up some resources so some caching of thumbnails occurs to speed up reload times. This addition is quite complex so there might be bugs that still need looking into. If you have issues switch back to the standard explorer which is much more stable.

If you have issues let me know so I can address them for the next update.


Presets include some standard options for easy selection



These include Cinema in void (has a reasonable curve on it), 180 fisheye (good for fulldome content) Equirectangular (what most 360 films are in) and cinema environment (where you're actually in the cinema.

Surround sound support.



If you are playing videos, which include 5.1 audio tracks they can now be viewed with positional audio. This option also includes levels for each channel which is good if you wish to boost the voices in a film (voices are mostly in the front centre channel).

For this feature to work you are required to be in either Media Foundation or RT video path. Whether you can play back the 5.1 audio depends on the compatibility the video has with Media Foundation.

Update to main UI



The main UI has been updated to include the presets menu and a mute button for the volume. There have also been some repositioning of the playback options to be similar to other media players.

Update to the controller UI



In previous versions the functions on the controller have been a bit rudimentary. This has been updated entirely with all your easy access functions, play, pause, media timeline, volume, next/previous media, time (what time it is so you don't have to take your headset off to find out), audio menu and subtitle menu. This menu can be activated by simply point the laser at the other controller. It will disappear after a few seconds so not to get in the way.

Something to note. With the update to the controller system bindings may need resetting. If you find that your control bindings are acting weird, go into the input settings and either reset your controller bindings to default or set up your own.

Input control skins now available in all version with additional controller options



As mentioned before a lot of work has been done on the controllers. Here are a few screenshots that illustrate some of those options.

NDI Support

If you work in production you might of come across NDI. NDI is a way to send video over a network and be picked up by other devices. This is useful for previewing video streams from programs such as After Effects and VJ software.

[h4]Trouble Shooting[/h4]

Q - I get a loading but it never loads.
A - I don't know why this is currently happening but it appears to be something to do with what option is loaded when loading Whirligig. The solution that seems to work for people is to run Whirligig from the install directory. In my case the install directory is C:\Program Files (x86)\Steam\steamapps\common\Whirligig but yours may differ.

Things to note when running directly from the install directory. The amount of time Whirligig is used won't be registered and you don't need Steam open to use it.

Everything Else All At Once

There have been numerous other updates including a host of bug fixes and optimisation. I can't list them all here but rest assured they have happen :)

[h4]How can you help[/h4]

Bug reporting
This is a major update and although I've worked hard to avoid any issues with the update I am aware that there still might be some that got through the net. If you have issues please let me know by either posting a message on this announcement or emailing me directly [email protected]

Feature requests
I'm also interested to hear about where you wish Whirligig to go in the future. I've got a few ideas I'll be working on, but if there are things that you want Whirligig to support I'll be very interested to hear your ideas. Many of the current features are from community requests so I'm always happy to hear your ideas in how I can make Whirligig better.

Positive reviews
What can I say, I'm a sucker for praise :) But seriously positive reviews can help greatly in getting Whirligig to more users, pushing it's presence on the store and informing people of what they will be getting. And if I was to be honest it also helps me to know that people apricate what I'm doing and helps to encourage me to continue my development of Whirligig.

Try Whirligig for Applabs
One of the big drives for changing to OpenXR for Whirligig is to ease development on other platforms. Whirligig is available on Applabs for the Quest 1 and 2 and the more people using it on that platform the better. However what I'm not asking you to do is buy it again. If you already own Whirligig and want an Applab code email me with your Steam details and I'll send one over. My email address is [email protected]

In fact if you want Whirligig on any other platform email me and I'll send you a code. At the moment the most recent version of Whirligig is here on Steam but I'll will soon be updating the Oculus Store, Viveport and Pimax store versions.

Do you have a Pimax Portal or a Pico3/4?
I'm developing versions for both the Pimax portal and Pico headsets. If you want to give them a go fire over an email and I'll send you a version to install. I hope to get Whirligig on these respective stores but until then I'm happy to send out free test versions to whoever wants them.

[h2]And Finally[/h2]

So this will be a very big update to the main build and as such it worries me greatly. I have been working on this for a long time and with any luck it will improve my overall development and support for other platforms and speed up the addition of new features.

I really apricate the support I've had from the community over the years and really want to continue to update and improve Whirligig for everyone. Whirligig is a passion project and not my main income and it's the tightknit community with their desire to fiddle with every setting that has helped to keep Whirligig relevant for some and keep me interested in developing it. All the changes I've made are to help me continue to support Whirligig and continue to make it relevant for future media watchers.

I thank you all and I hope to continue to improve on a product that works the best for you.

Keep watching :)

All the best

Phil


Whirligig OpenXR beta release - final drive before main build update.

Hello to all Whirligig users

So I've been working on an OpenXR release for a long time. Trying to get all the controllers working, testing with multiple setups, WMR, Oculus and Vive headsets and multiple controllers, Quest, Quest2, Rift, Index, WMR and Vive original. After a few weeks of testing, community feedback and bug fixes this is that OpenXR default build release.

[h3]Overview of release[/h3]
This is a major update to the core of Whirligig with a switch over to the OpenXR sdk. I really don't want to break anyones enjoyment of Whirligig but for me to continue support and add new features this is something that needs to be done. To reduce the chance of disruption I'm not removing the old builds from the beta list. If you have issues you can change back to the default build. I've also included a new version that uses SteamVR instead of OpenXR incase some headsets have issues with the OpenXR SDK. Here is a summary of those builds with a guide to changing to other beta versions.

[h3]How to change to other beta versions[/h3]
Steam's beta program is very easy to use and you can switch between versions in seconds. Here are a couple of guides.


I've also created a tutorial on Youtube:
https://youtu.be/z9pv-cgn4IE

[h4]Beta version - None[/h4]
None means that you'll use the default build. The default build is the version that'll you'll automatically download when purchasing Whirligig. Updates will happen to this build but will go through a much more rigorous testing process before release.

[h4]Beta version - whirligig_early_access_v.4.881[/h4]
This version was the previous default build released 2021. If this major update causes problems and you wish to return to the previous version choose this one. This version will not be removed and once you've chosen it any updates to the main build will not automatically update your version.

[h4]Beta version - whirligig_openxr_early_access_v.4.9841_steamvr[/h4]
The latest build uses OpenXR as it's core SDK. This version has been created with the SteamVR SDK. This version has been provided to support headsets that aren't fully operational with OpenXR. If you have performance issues that could be related to OpenXR try this version. Although this version is based on the latest build it won't be updated unless requested.

[h4]OpenXR Update[/h4]

[h3]Core SDK is now OpenXR[/h3]
So if you follow any VR news you'll know that OpenXR is a big deal and will help to ease development for porting, new headsets being compatible out of the box and overall improving the VR experience. Whirligig up until now has had two SDK implementations, Oculus and SteamVR. I've removed these and replaced them with the OpenXR system.

Advantages of OpenXR
OpenXR is in constant development with improvements that will carry down to all headsets.

You will be able to use your headset with the VR front you desire. OpenXR is fully compatible with SteamVR, Oculus Store and Windows Mixed Reality Portal. This means when using Whirligig from Steam you are not forced to use SteamVR. With direct support from each platform any performance improvements those platforms use will be filtered down into Whirligig.

OpenXR implementation has meant I've removed the input options for both Oculus and Steam replacing it with a universal controller and some core controllers to use. You could select different controller skins when using Oculus. Now this feature is available on all setups.

Quicker updates to other platforms. As all builds have been brought under one sdk I can now release the same version on different platforms with little change to the code. This will help to reduce bugs being introduced into other versions when updating and help my confidence that when I update I won't be breaking everyone's experience.

I can develop for both PC and Mobile headsets at the same time.

Disagvantages
OpenXR is new and in constant flux. For development this is both advantages and crippling as currently every update to the SDK can cause issues in multiple ways. This will improve greatly over time but currently it's making supporting some headsets (mostly mobile headsets) quite difficult.

Some features aren't working. Basically the UserPresent (what happens when the headset is put on or removed) feature isn't working properly. I will be implementing this back in once it's back up and running.

[h4]Feature Updates[/h4]

Thumbnail view in explorer



There is now a thumbnail option within the explorer. This option allows you to view all your video or images with a thumbnail view. Loading thumbnails can take up some resources so some caching of thumbnails occurs to speed up reload times. This addition is quite complex so there might be bugs that still need looking into. If you have issues switch back to the standard explorer which is much more stable.

If you have issues let me know so I can address them for the next update.


Presets include some standard options for easy selection



These include Cinema in void (has a reasonable curve on it), 180 fisheye (good for fulldome content) Equirectangular (what most 360 films are in) and cinema environment (where you're actually in the cinema.

Surround sound support.



If you are playing videos, which include 5.1 audio tracks they can now be viewed with positional audio. This option also includes levels for each channel which is good if you wish to boost the voices in a film (voices are mostly in the front centre channel).

For this feature to work you are required to be in either Media Foundation or RT video path. Whether you can play back the 5.1 audio depends on the compatibility the video has with Media Foundation.

Update to main UI



The main UI has been updated to include the presets menu and a mute button for the volume. There have also been some repositioning of the playback options to be similar to other media players.

Update to the controller UI

In previous versions the functions on the controller have been a bit rudimentary. This has been updated entirely with all your easy access functions, play, pause, media timeline, volume, next/previous media, time (what time it is so you don't have to take your headset off to find out), audio menu and subtitle menu. This menu can be activated by simply point the laser at the other controller. It will disappear after a few seconds so not to get in the way.

Input control skins now available in all version with additional controller options



As mentioned before a lot of work has been done on the controllers. Here are a few screenshots that illustrate some of those options.

NDI Support

If you work in production you might of come across NDI. NDI is a way to send video over a network and be picked up by other devices. This is useful for previewing video streams from programs such as After Effects and VJ software.

Everything Else All At Once

There have been numerous other updates including a host of bug fixes and optimisation. I can't list them all here but rest assured they have happen :)

And Finally

So this will be a very big update to the main build and as such it worries me greatly. I have been working on this for a long time and with any luck it will improve my overall development and support for other platforms and speed up the addition of new features.

For me to be confident enough to update that main build I want feedback from anyone who's giving this build a go. Bugs are the most important thing to bring to my attention and if you can explain them in a way I can recreate, I will do my best to fix them.

I really apricate the support I've had from the community over the years and really want to continue to update and improve Whirligig for everyone. It's not possible to make a living on the income I get from Whirligig and it's the tightknit community with their desire to fiddle with every setting that has helped to keep Whirligig relevant for some. All the changes I've made are to help me continue to support Whirligig and continue to make it relevant for future media watchers.

I thank you all and I hope to continue to improve on a product that works the best for you.

Keep watching :)

All the best

Phil