ArKaos MediaMaster – what about creating the best video swiss knife for the show business ?

ArKaos MediaMaster is the latest incarnation of now a long list of video software created by ArKaos. All evolutions have always be triggered by request of users, ideas we wanted to experiment, goals we wanted to reach in term of performances.

When we decide a few years ago to rewrite our core engine we wanted to get the best out of current and future computer architecture. So we designed an engine made to allow playing multiple layers of HD video loops and balancing the usage of CPU having multiple cores and GPU allowing very creative layer blending.

This is what we released with MediaMaster 1.0 and evolved to the 1.2 by adding a very cool frame blending and audio support.

While we were focussing on pushing fluidity and making sure the pixel flow was optimal we did not spend too much time working on the front interface. This does not mean we did not care about that but we were just too busy having our hands dirty with pixel processing.

However during the last year we spent a lot of time talking with users, looking how they were working, watching how they used ArKaos VJ DMX. In January this year we finalized a round of meetings and design sessions were we came with the idea of bringing back the simple mode of ArKaos VJ DMX but in a modernized way.

The basic idea is that a typical light designer needs a video swiss knife. Some days you need to just do a little bit of MIDI triggering, other days you may want to use a few DMX sliders to automate a small theater play and once is a while you are on a big tour with some heavy automation done by a big lighting console. You may even have from time to time a small corporate event where video loops can be triggered from your computer keyboard.

This is what we will release with MediaMaster 2.0. MediaMaster will come in 2 versions, the Express that will be something like a 8 blades swiss knife and the Pro that will be more like a 12 blades swiss knife.

The simple mode implementation we added to MediaMaster will be very efficient to use because it will be based on presets. If you are doing LED mapping over your video output you can by example create a preset for the position of your LED wall and have it recalled very easily for many cells. You can also edit this preset and see the modification be applied instantly to all cells using it.

So the advantage of this new simple mode over what we did on the past is that:
– it make use of the media management of MediaMaster
– it benefit from the performance of the new video engine (frame blending, audio…)
– the preset system make it very quick to use
– it allows to mix DMX, MIDI and computer keyboard triggering
– you can break your performance in up to 64 patches of 64 cells
– all information in concentrated into the Media folder (content, patch information, show setup) and so it’s very easy to move your files between computers

Here is a video showing the main interface of MediaMaster express that was demonstrated at Frankfurt Prolight and Show last month. We trigger video loops with a LSC DMX desk and with a small Korg MIDI controller. Since then we made some minor evolution to the interface but it will give you a good idea of what it will looks like:

We are now close to the final release and we expect to start some public beta testing before the end of this month. We will also make public soon the pricing and upgrade policy but we can already announce that all MediaMaster 1.x users will have a free upgrade to MediaMaster Pro 2.x

A new way of driving LED devices ?

At ArKaos we are writing software to drive LEDs since many years. We have our standard media server software MediaMaster and our VJ software that is used every day to drive LED walls and LED fixtures. We have also our LED mapper that is a cool way to drive LED fixtures based on DMX or ArtNet.

Still it’s too complicated and/or expensive to use. It’s too complicated because simple LED fixtures do rely on DMX or ArtNet to work, and there are too many magic numbers that can go wrong and prevent the magic pixels to blink. On the other side bigger LED walls have expensive hardware interfaces and make it unpractical financially for too many performers and clubs.

There must be a way to create LED device having an ethernet connection and there should be a way for a LED device to say hello automatically to a Media Server and to describe itself to it. It would be so cool if a LED device could contact MediaMaster and configure itself automatically, it would explain it’s capacities saying “I am an LED device having 48 by 12 pixels and I expect pixels in the formats of 5 bits or red green blue”… Of course to make this economically practical the LED devices should not have a too expensive processor, you don’t want to add a PC behind every light 🙂

That’s the prototype we built lately, it uses an inexpensive open-source electronics prototyping platform called Arduino, here is a video explaining this:

If you want to know more details, here is a start:

A technical introduction to Kling-Net

ArKaos MediaMaster used at Australian Idol

A popular usage of ArKaos MediaMaster is on TV stages, there it’s very convenient to use it’s large library of content, up to 60.000, and drive both videos on the walls and the lighting from the same DMX console.

In this case there are 2 MacPro servers but you could also run MediaMaster on a windows server.

Here are some extracts of the show:

This is a remix I made from videos found on sharing web sites. You need QuickTime installed on your machine to view this video.

Why software genlock at 60 FPS does matter!

Since MediaMaster 1.1 we have revamped our video engine and particularly the synchronization and multi threading.

We now perform what can be called software genlock to ensure the best possible fluidity if your machine has a multi core processor. Genock is the action of locking the frequency of a media on a reference signal or clock. There is a nice description on that on wikipedia.

When the software must present a frame you can cut the work that has to be done in 3 parts : getting the video frames from the disk, uploading them to the graphic card and doing the composition / blending of the pixels for the presentation.

Because of the way disks are working and because the time that is required by a codec to convert the data from the disk into a decompressed frame is not constant this can create fluidity problems.

So at each new frame the software wakes up and start working sequentially on the 3 phases. In a classical real-time video processing application this will work like this:

Traditional video application

Traditional video application

This graph show an application trying to play a video loop encoded at 30 fps on a monitor running at 60 fps. In a perfect world the application should present each frames of the movie exactly twice.

There are 2 problems with the traditional way of doing the video processing:

  • The time base is synchronized to the clock of the computer and so there is a drift between the monitor frequency and the internal clock of the computer. This means that even if your computer would be extremely powerful you will see small hiccups once in a while.
  • When the software start working to display a new frame it has only in this example 1/60th of second to read a video frame, upload it and present it to the user. The available time is dependent on the fps of the monitor and not on the fps of the video source. So the higher the fps of the monitor, the more stress you give to your systems.
  • The processing done by MediaMaster is much more elegant. Since 1.1 we have 3 modes, the original one, a buffered mode and a frame blending mode.

    In this article I focus on the buffered mode, I will write more about frame blending latter.

    So in buffered mode the graphic card has always one frame in advance ready to be composed. As soon as a frame has been processed and presented to the user the software read and upload the next video frame in advance.

    The other thing that is done in buffered mode is that the clock of the content is not taken anymore from the computer clock but rather from the monitor frequency. To my knowledge most other media players are not doing something as subtle as this.

    So if we keep the same timings as in the first example but simply shuffle them according to the way the buffered mode is working here is the result:

    Software genlocked video

    Software genlocked video

    Because the movie clock is genlocked to the monitor and because we have always one frame in advance we play the movie with a perfect regularity and timing : 1 1 2 2 3 3 4 4 … each frame is played exactly twice.

    If you are still not too sure why it’s nice to be genlocked at 60 fps here is a recording we did in real time from MediaMaster when running 2 layers. The lower one is at 30 fps and the top one is at 60 fps. The loop running at 60 fps is part of our test content, it’s a loop running a ramp that allows us to see visually if the system is perfectly genlocked. we capture the output with fraps.

    If you apply effects to the content you play, the effects will be rendered at 60 fps and this is why it’s so important to have a perfect synchronization, your eyes will have the feeling that everything is crisp and fluid.

    In order to see the videos in this article you need to have QuickTime installed and the first video should play smooth on a recent laptop or on a LCD monitor set at 60 fps.

    So here is the original screen grab that I just scalled down in order to show it in this article, the fps is still 60 fps:

    Now in order for you to be able to see the difference here is the same loop at 30 fps:

    I continue to lower down the fps and now we are at 20 fps:

    Here is the more degraded version at 15 fps:

    If you are curious to test this with any software video mixer that can play QuickTime movies here are our test files:

    Horizontal ramp, 2 seconds at 60 fps:

    Here is a vertical ramp at 60 fps:

    And a zooming rectangle at 60 fps:

    Those movies can be downloaded for you to test your systems, you just need a software that support QuickTime *.mov files. For best results you should loop those files and let them run for a while. In a VJ application you can simply add them as the latest layer of your composition with an addition blending and you will see if your system is powerful enough and well designed.

    Feel free to stress test our software and compare it with others, we think that we did very nice with MediaMaster and there is a demo version for you to test on the ArKaos web site.

    ArKaos MediaMaster driven by GrandMA through eDMX…

    We are hard working since 3 months on the next upgrade of MediaMaster.

    On thing that we want to show in this video tutorial is that we now can listen directly to GrandMA eDMX protocol. This allow a simpler networking between your console and a server running MediaMaster.

    Here is the tutorial I made to show how to make it happend:

    Music “I want to be a machine” by Pornophonique licensed from Jamendo PRO.