Jump to content

Directoutput Framework Announcement

Recommended Posts

  • Content Provider



After months of development, I more than happy to announce the DirectOutput framework for virtual pinball cabinets.


Since I did not like the limitations (not enough outputs) and problems (stuttering) with the current ledontrol.vbs solution to control the outputs of my cabinet, I have started to implement a completely new system to control output hardware connected to virtual pinball cabinets.


During the past months the project has grown quite a bit larger than expected and more and more options have been added. A lot of testing has been done by a group of alpha testers and myself as well.


The result is what I call the DirectOutput framework (DOF).


Since DOF has proved to be pretty stable during the alpha testing period, beta testing starts today. For this phase of the project, it would be great to have a few more people joining for beta testing.


Please read the paragraphs below for more information.


Keep (virtual) pinball alive and all the best!


Swisslizard / Tom



What you get


Key features of the DirectOutput framework:

  • Support of up to 16 LedWiz and 4 Pacled64 units (including a mix of them).
  • Support of Art-net/DMX.
  • Multithreaded to ensure optimal performance and avoid stuttering issues.
  • Integration with B2S.Server.
  • Support for EM tables.
  • Loads of new config options.
  • Extendable through scripting.
  • Extendable object oriented architecture.
  • Coded in C#.
  • Fully documented code.


More new developements:

  • Since DOF can support more than one output controller, Degoor has extended his great LedWiz config tool with new functionality to allow the configuration of more than one output controller.
  • Arngrim has reviewed most of the configs in the config tool.
  • The config tool will also support a 10 contactor setup in addition already existing 8 contactor setup.





DOF supports two different configuration schemes:

  • Natively the framework uses XML files to store its configurations. The XML based configs allow you to configure every aspect and option of the framework.
    The config files allow for all config option, maximum flexibility, but they do also add some addition complexity.
  • Ledcontrol.ini files like the ones used for the legacy ledcontrol.vbs solution can be used for the configuration as well. Together with the auto config features for some of the supported hardware, they will allow for a configuration with very little effort.
    If more than one LedWiz and/or PacLed64 is in use, several Ledcontrol.ini files can be used for the configuration.
    Due to the limitations of ledcontrol files, not all options and aspects of the framework can be configured.



Supported hardware


Currently DOF is supporting the following hardware:

  • LEDWiz from GroovyGameGear
    The use of up to 16 LedWiz units is supported by the framework. DOF can even detect and configure LedWiz units automatically.
  • PacLed64 from Ultimarc
    Up to 4 PacLed64 units can be used. PacLed64 units can be detected and configured automatically.
  • Art-Net / DMX
    Art-Net and DMX are standards used to control light effects. On the market you can find tons of DMX controlled light effects ranging from small and cheap to very big and expensive.


Planed hardware support:

  • PacDrive from Ultimarc
  • Driver for addressable RGB led stripes (WS2811/WS2812 based stripes).

Support for other hardware (e.g. some home grown Arduino or Raspberry Pi based controller) is easy to implement. Therefore the number of supported controllers will likely grow over time.





The preliminary documentation of the framework is already available on GitHub. It contains a lot of information on the installation, architecture and the configuration of the framework, as well as the fully documented object model. The pages about the installation and supported hardware might be a interesting starting point.






How it is working


The DirectOutput framework is working as a plugin for Herwehs great B2S.Server. This means that every table using the B2S.Server can use the DirectOutput framework as well, usually without any changes to the table script.


For more information on the B2S.Server plugin interface have a look at http://directoutput.github.io/B2SServerPluginInterface/

and for some sample plugin code you can go to http://directoutput.github.io/B2SServerSamplePlugin/


Since the outside interface of DOF is quite simple (currently only 3 methods), the implementation of interfaces to other pinball simulations should be easy. Sample code for a plugin host supporting DOF has already been developed and can be provided on request.





Sorry, public downloads are not yet available. At this time the software is only accessible for the testers, but it will become available for everyone once beta testing has been completed.


Support & Forum


If you have questions about the framework (please read the docu first) or want to discuss something, please visit the support forum.




Source Code


As soon as the project is released for everyone, the source code for the framework will be published on GitHub and everybody is invited to download, change and extend the code.



Testers wanted


A good amount of testing has already been done by a group of very helpful enthusiasts and myself. Now, we would like to invite a few more people for the beta testing phase.


If you want to participate in the testing you should at least have some basic idea how VP, Pinmame and B2S.Server interact, know a little bit about table scripting and you should be willing to read some documentation and follow the relevant discussions.


If you are interested to help testing, please send my a PM. Please include your email address in the PM, so I can enable access to the Google drive containing the files for the testers.


Since I can only work with a limited number of people at the same time (still need to manage the whole thing somehow), only a limited number of testers will be able to join initially.




When developing software, coding is only a part of the work. Testing, doing configurations and encouraging the coder take a lot of time as well. Therefore I want to thank the following enthusiasts:

  • Herweh for adding a plugin interface to his B2S.Server and enduringing my everlasting requests for changes and features.
  • Arngrim for being the first to board the train and start testing, constantly finding bugs and most of all redoing and enhancing the configs in the LedControl config tool.
  • Bent98 for testing and tryinging to help to mange the project somehow.
  • Degoor for extending his Ledwiz config tool.
  • Bill55, SirCheddar and Slydog for testing.
  • Everyone else who was at some stage involved in the project for their support and interest in my work.


Link to comment
Share on other sites

  • Replies 117
  • Created
  • Last Reply

Just want to say this is another great day in VP history, as DOF make no ball stutter on my system at even during many outputs.  Thanks for such an awesome project.  TPA/Unity 3d/Timeshock need to incorporate this in their simulators.   Swisslizard take a bow, incredible amount of work done along with great docs.  Still learning how to incorportate with EM games as I want to add LedWiz to older games also.

Link to comment
Share on other sites

  • Content Provider

Thanks Swisslizard for your amazing plugin and thank you Stephan for your help updating B2S everytime we found a bug!


I love playing my tables with all the toys, 10 contactors, beacons etc..., with no stutter.


Look for some other cool things in the future!!! ;)

Link to comment
Share on other sites

  • Content Provider

This project is a huge step forward for cab owners.

Part of the issue with needing such a powerhouse PC with these cabinets was due to the inefficiencies with the legacy framework we were all using. I'm wondering what the new specs will be now that all of the ledwiz functions are no longer tied to VP. It would be nice to be able to go with one of the cheaper video cards rather than having to purchase the high end GTX cards.

Link to comment
Share on other sites

  • Content Provider

There are so many advantages to use this framework, it will be easily considered as the replacement of ledcontrol.vbs, just like DB2S replaced UVP :)


Here is one small video of my mod of Scarface, with DOF integration, with 10 contactors setup, to control the Ledwiz


Link to comment
Share on other sites

  • Content Provider

It's a replacement for the legacy ledwiz framework created by manowar.  ie: The software that listens for rom events and fires off ledwiz outputs according to your configuration.  The old framework wasn't efficient enough to keep up with some of the more "busy" tables, and would cause stutter on occasion.  The Direct Output Framework (DOF) runs independently from VP, and is MUCH faster.

Link to comment
Share on other sites

Nice work. This will be used in my to be cabinet. I have planed more toys than 32 outputs can handle and was glad to see I didn't need to prioritize any away :)


But I do wonder if this will decrease the need for high end GTX cards. Hopefully the gifted programers will move the code up the direct x ladder a few steps :)

Link to comment
Share on other sites

  • Content Provider

It is quite unlikely that DOF will decrease the need for highend hardware. That problem is tied to Visual Pinball which uses the hardware very inefficiently.


On the other hand, DOF takes away a bit of the work, which would normaly occur within the thread of VP, which can make a little difference.

Link to comment
Share on other sites

I just signed up as a beta tester. I have a cab with one ledwiz installed using all 32 outputs (8 contactors, 5 RGB lights, beacon, shaker and wiper motor). Installation and deinstallation of old Ledwiz framework was quite easy following the excellent documentation provided on Toms website. It worked directly at the first shot. I have not used the XML-method and copied the latest ledwiz.ini from Ledwiz config tool in.


It is like having a faster processor installed. With old ledwiz software I experienced something I would call microstutter, which has completely disappeared. It seems that all my toys and contractors are reacting faster (less latency). I played >20 tables, all without any problem!

Thank you Tom for this fabulous framework. I am sorry that I cannot contribute more at the moment because everything works!! I will test it with the other tables as well! Great job!

Link to comment
Share on other sites

It's a replacement for the legacy ledwiz framework created by manowar.  ie: The software that listens for rom events and fires off ledwiz outputs according to your configuration.  The old framework wasn't efficient enough to keep up with some of the more "busy" tables, and would cause stutter on occasion.  The Direct Output Framework (DOF) runs independently from VP, and is MUCH faster.


So next dumb question... Do I "need" this when I don`t have any shackers, LED´s or whatever "features" in my cab? Only the PC, an I-Pac and the screens?

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...