Jump to content

All my products and services are free. All my costs are met by donations I receive from my users. If you enjoy using any of my products, please donate to support me. Thank you for your support. Tom Speirs

Patreon

XBMC and VLC as jukebox options in PinballX


Recommended Posts

Having a day free to play/mess with my cab I thought that I would see what jukebox options would work with pinballX.
I know about DwJuke and settingsons pinjukelaunch, but having tried it before find myself a bit underwhelmed.

First things first though this is definitely still a work in progress!.

As a user of XBMC this was the first thing that came to mind and works just fine with the settings below.

post-6857-0-46223400-1396971554_thumb.pn

My cab is no longer networked, but XBMC`s great collection of addons (Internet radio?) could be a real bonus.
One thing of note is that I want to control this with an MCE remote, so am not too bothered about cab-key keymapping.
The other function I wanted was visualisations on both screens and managed this by mirroring screen one onto screen two using actual window manager, but I am sure other tools can manage this too.
I have two profiles in actual WM one with everything standard and a hotkey set to start this and another with the mirroring and its own hotkey again.

If having screen one sideways is too janky for you then I guess you could use pinjukelaunch to send it to screen 2 then manually start mirroring with a hotkey mapped to a cab button.
I do plan to map the profile hotkeys to buttons on the remote as at the moment the last hotkey to turn off the mirroring is not working automatically so exiting back the PinballX is a bit hit and miss
unless you manually hit the hotkey first (any insights?)

#NoEnv#SingleInstance forceSetTitleMatchMode 2DetectHiddenWindows On;SendMode Input SetWorkingDir %A_ScriptDir% Sleep, 2000Send, {CTRLDOWN}{SHIFTDOWN}{ALTDOWN}{x}{SHIFTUP}{CTRLUP}{ALTUP} ;Starts screen mirroring #IfWinActive ahk_class XBMC ]::Up 8::Down LShift::Left RShift::Right f::Tab #IfWinActive  Process, WaitClose, XBMC.exe  Send, {CTRLDOWN}{SHIFTDOWN}{ALTDOWN}{Z}{SHIFTUP}{CTRLUP}{ALTUP} ;Stops screen mirroring ExitApp


In the past I started a thread about using ledblinky to have audio activated Leds so will not go into that again in detail.
I use the same AHK file to start this audio mode with both PinballFX2 and Pinball arcade aswell as now this.
Another AHK file starts an attract mode on exit, both are attached for reference if anyone wants to do similar.
Quicklaunch is of great use to start more than one Ahk and was essential here for me.


The second experiment of the day was to use Vlc directly from PinballX and again (ofcourse) PBX can do this easily with the settings below.

post-6857-0-04951600-1396971772_thumb.pn

the same "start audio mode" and "attract mode AHK`s were used along with another Ahk to start the mirroring again the second one being started through quicklauch.

#NoEnv#SingleInstance forceSetTitleMatchMode 2DetectHiddenWindows On;SendMode Input SetWorkingDir %A_ScriptDir% WinWait, ahk_class QWidgetWinWaitActive, ahk_class QWidgetSleep, 2000Send, {CTRLDOWN}{SHIFTDOWN}{ALTDOWN}{x}{SHIFTUP}{CTRLUP}{ALTUP} ;Starts screen mirroringProcess, WaitClose, Vlc.exeSend, {CTRLDOWN}{SHIFTDOWN}{ALTDOWN}{Z}{SHIFTUP}{CTRLUP}{ALTUP} ;Stops screen mirroring ExitApp

This method feels more streamlined to me than XBMC but you do need to create XML`s for each song.

Anyway if you are still reading this far its time for a video to demo this - and yep I know its long, but you do get three whole songs :) .


files.zip

  • Like 1
Link to comment
Share on other sites

Found some more time to play with this and have managed to sort the exit issues out.

One other feature I was looking for was to have all the game play and tutorial video`s` on their own wheels.
I know that you can browse to a table and play the video from its context menu , but I wanted to be able to browse them all as a category.
This was achieved again with Vlc but having vlc set to use animations as default for audio somehow made them play over the videos as well.
Having another portable install of vlc just for the vids with its own different settings solved this.
PinballX is clever enough to auto rotate vids for cab viewing but this feature turns them upside down in vlc no matter what orientation you set by the command line.
To counter this I ended up using iRotate to flip them back again as its already installed.

Enclosed are all the scripts and settings used to achieve this but please note its not by any means a turn key solution, so you will need to edit and compile to suit your own needs.
I offer them just as a starter for anyone doing similar and to be honest more work can certainly be done to clean everything up or even to combine them.

Quicklaunch is used to start "Start XBMC","Vlc Music" and "Vlc Papa" with their respective systems and also to start
"Close Vlc music", "Close Vlc Papa" and "Close xbmc" after each system exits.
Also enclosed are some company logos and papa wallpaper along with a set of XML`s for most of the video`s` on the FTP.

One thing I would love to see in PinballX is the ability to have a set of "no table" and "no backglass" images for each emulator as well as the one generic set?.
So I hope this is of some use to somebody and again sorry its not a bit simpler, but I am happy with the result and had fun doing this.

Edit, Added some more logo`s` to the FTP..

post-6857-0-85327100-1397823018_thumb.jp

vlc stuff.zip

Link to comment
Share on other sites

  • 2 weeks later...

After trying JARVIS in my gameEx cab it was inevitable it would go onto my pincab.

Really its just a novelty for me but was fun to set up and kept me out of trouble for a bit.

Think I will though get some use from asking it to play random tracks whilst playing other cabs, then ordering it to shutdown itself.

If anyone else as childish as myself wants the media images used you can find it all attached.

post-6857-0-72592900-1398339832_thumb.jp

J.A.R.V.I.S.zip

Link to comment
Share on other sites

  • 3 months later...

Thanks for documenting the XBMC setup. It's really cool.

Like some of the other systems I've added, to get around focus issues I've had to use a script to launch XBMC rather than have PinballX do it directly. I'm using Win 7 x64 by the way. Here's my script. I installed XBMC to the root folder. I had to do this on my test machine to get around UAC issues. No mirroring to the backglass or remapping keys just yet. I am rotating the screen to portrait mode and sending a couple of key presses to bring me straight to the music player. Display.exe can be found under the Scripts folder on the FTP.

#NoEnv  #SingleInstance forcerun Display.exe /rotate:90sleep 2000Run, "c:\XBMC\XBMC.exe",,UseErrorLevelProcess, wait, XBMC.exeSleep, 8000Send {Enter} 	; select "Music"Sleep, 1500Send {Enter} 	; enter "Music-Files"process, WaitClose, XBMC.exerun Display.exe /rotate:0ExitApp
[system_4]
Name=XBMC
Enabled=True
WorkingPath=C:\PinballX\Scripts
TablePath=
Executable=LaunchXBMC.exe
Parameters=
Like MAME, I don't want the XBMC system to show up on the main wheel. I create an empty XBMC.xml and then create a subgroup xml with a single entry for XBMC. In the menu, PinballX automatically appends "Tables" to whatever you name the subgroup. For XBMC, I use "A Jukebox, No", For MAME, I use "These Are Not" :rolleyes:
Link to comment
Share on other sites

  • 2 weeks later...

Here's some more info.

I did get mirroring to work with Actual Window Manager in my test bed, but sadly not in my cab. I haven't been able to verify in the documentation but it doesn't appear that XBMC works well with two GPUs. I have my playfield connected to a GTX 660 and the backglass to a GT 610. Whichever screen I use for the mirror works until I start up XBMC and it goes to black. One of these days, I will attempt to make the move and physically connect the backglass to the GTX 660, but right now everything else runs great. I don't want to go back through and reconfigure and test PinballX, DB2, etc.

The visualization looks great on one screen. I have to say, though, that it is really cool on two screens. These are the settings for Actual Window Manager. I'm using v7.4.3. I don't know for sure what might have changed in the current version.

By default Actual Window Manager will load at Windows startup and enable a tray icon. I'd just keep these options.

DISABLE multi-monitor Taskbar

taskbar.png

Define a mirror like this:

mirror.png

Enable the following Hotkey assignment for "Stop/start Actual Window Manager":

hotkeys1.png

This script works like the one I posted earlier, this time rotating both screens to portrait mode. This is assuming the backglass screen is Display 2 in the cab setup. Song selection would in essence happen on the playfield screen:

#NoEnv  #SingleInstance forcerun display.exe /rotate 90run display.exe /device 2 /rotate 90Run, "c:\XBMC\XBMC.exe",,UseErrorLevelSleep, 2000Send, {CTRLDOWN}{SHIFTDOWN}{ALTDOWN}{X}{SHIFTUP}{CTRLUP}{ALTUP} ;Starts screen mirroringProcess, wait, XBMC.exeSleep, 500Send {Enter} 	; select "Music"Sleep, 500Send {Enter} 	; enter "Music-Files"process, WaitClose, XBMC.exeSend, {CTRLDOWN}{SHIFTDOWN}{ALTDOWN}{Z}{CTRLUP}{SHIFTUP}{ALTUP} ;Stops screen mirroringSleep, 20Send, {CTRLDOWN}{SHIFTDOWN}{ALTDOWN}{Z}{CTRLUP}{SHIFTUP}{ALTUP} ;Stops screen mirroringrun display.exe /rotate 0run display.exe /device 2 /rotate 0ExitApp
Link to comment
Share on other sites

Sweet glad you are having fun with it.

Since first doing this I have fell out of love with actual WM as you can do all your rotating/mirroring with Display changer 2 - it`s free, portable and has way less bloat than AWM.

Check it out it will simplify stuff for you quite a bit.

Display changer and two portable instances of VLC with differing settings for music and gameplay vids also cleans up some of the other stuff above :) .

Link to comment
Share on other sites

  • 2 weeks later...

Sweet glad you are having fun with it.

Since first doing this I have fell out of love with actual WM as you can do all your rotating/mirroring with Display changer 2 - it`s free, portable and has way less bloat than AWM.

Check it out it will simplify stuff for you quite a bit.

Display changer and two portable instances of VLC with differing settings for music and gameplay vids also cleans up some of the other stuff above :) .

Thanks for the tip on dc2.exe. I swapped my backglass screen over to the GTX 660, so that I could mirror the playfield screen. Setting up configuration files for Display Changer 2 is not difficult. But the secret is that you HAVE to use Windows to set up the desired screen orientation, cloning, etc. I initially tried to set my screen orientation with iRotate but dc2.exe was creating invalid configuration files. Set up everything with Windows Control Panel/Display/Adjust Resolution prior to creating a configuration file, and it will work fine. You don't even have to look at the config file that is generated.

It's good to get rid of AWM and go with a solution that is free for personal use.

Link to comment
Share on other sites

  • 3 months later...

Still using XBMC as a music player -

I have a VirtuaPin Digital Plunger Kit v1. The controller emulates a gamepad/joystick rather than a keyboard like an iPac. By default, XBMC has support for gamepads and joysticks enabled. To bind to keys, it is easiest just to change the existing definition file. Here is my configuration and activity map. Modify to suit your configuration, save as joystick.xml, and overwrite the one in XBMC\system\keymaps\

<?xml version="1.0" encoding="UTF-8"?>
<!-- Button Mappings : -->
<!-- -->
<!-- ID Button -->
<!-- -->
<!-- 1 Digital Plunger -->
<!-- 2 Right Flipper -->
<!-- 3 Right MagnaSave -->
<!-- 4 Tilt -->
<!-- 5 Service Switch - or Down -->
<!-- 6 Service Switch + or Up -->
<!-- 7 Coin Door Interlock -->
<!-- 8 Exit Button -->
<!-- 9 Start Button -->
<!-- 10 Left Flipper -->
<!-- 11 Left MagnaSave -->
<!-- 12 Insert Coin -->
<!-- 13 Extra Ball -->
<!-- 14 Service Switch Select -->
<!-- 15 Service Switch Back -->
<!-- Axis Mappings: -->
<!-- -->
<!-- ID Button -->
<!-- -->
<!-- 1 Accelerometer X -->
<!-- 2 Accelerometer Y -->
<!-- 3 limit +1 Analog Plunger -->
<!-- 3 limit -1 Right Trigger -->
<!-- 4 Right Stick L/R -->
<!-- 5 Right Stick U/D -->
<keymap>
<global>
<joystick>
<!-- A selects. B goes back. X gets context menu. Y goes fullscreen and back. -->
<button id="9">Select</button>
<button id="13">Back</button>
<button id="1">FullScreen</button>
<!--Left Shoulder Queues videos. Right shoulder displays the current queue. -->
<button id="8">XBMC.ActivateWindow(ShutdownMenu)</button>
<button id="3">Up</button>
<button id="11">Down</button>
<button id="10">Left</button>
<button id="2">Right</button>
</joystick>
</global>
</keymap>

Link to comment
Share on other sites

  • 1 month later...

XBMC was renamed to Kodi and a new version was published. The upgrade path appears to copy over most settings and libraries, but I found that joystick.xml was cleared. Retain a backup prior to upgrading and just copy it back to Kodi\system\keymap. Aside from changing the executable in the launch script everything else works the same as the earlier XBMC. I uploaded a Kodi logo to the FTP - Media\Company Logos

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...