November 24, 2024, 07:01:19 AM

News:

Be sure to checkout our Vixen interfaces in the Library forum -- if you want PC automation at near zero cost, EFX-TEK and Vixen is a great combination of tools.


Vixen Show Player

Started by JonnyMac, June 25, 2012, 10:51:38 PM

Previous topic - Next topic

JonnyMac

Those of you lurking this forum may have noticed I wrote a program for Tom that allows him to create shows in VSA, export them to a file, then play them on an HC-8+ using DMX output.

VSA is a bit of a headache to setup and is not flexible in its protocols (serial output to other devices), and costs $50. It dawned on me that I could use Vixen to do the same thing, and I could control my HC-8+ board(s) through the same serial port used to program the HC-8+.

The attached program is for the 'master' HC-8+; this is the one connected to Vixen.  If you need more channels then you can connect up to seven more HC-8+s using the RS-485 port (T+/T- on the master connects to R+/R- on the other boards).  In Vixen the show is built to support the number of channels required (up to 64) and transmitted to the master board using the generic Vixen protocol at 57.6KBaud. 

Note: You may need to reconfigure your Prop-Plug to match the com ports available in Vixen. In Windows you need to open the port in the device manager, then re-assign the port. 

The image (sorry, not great) shows my test setup with two HC-8+s.  Note that the second board is running the standard program set to DMX mode (SM switch is on); this board is set to DMX address #9.

I've put in a request with KC Oaks (Vixen developer) to create an add-on that will export the show data as a raw formatted file.  When we get this we can load it onto a microSD card and play it directly from the HC-8+ -- like I did for Tom.  The cool thing about all of this is that the HC-8+ can play out any number of shows and using DMX can even control standard lighting fixtures and DJ accessories.  And by adding a little extra code the master HC-8+ could send a play command to an AP-16+ to play sound (you would have used that file to create the show); now you get outputs syncrhonized to audio and you don't have to be tethered to a computer.  Pretty cool, huh?  ;D
Jon McPhalen
EFX-TEK Hollywood Office

JonnyMac

July 02, 2012, 05:42:54 PM #1 Last Edit: July 02, 2012, 07:15:29 PM by JonnyMac
Great news! KC came through in a big way we now have the ability to create Vixen shows (up to 64) channels and play them from a microSD card on the HC-8+.  This really rocks.  And we're not talking simple on-off with limited program space as we have on the Prop-1 or Prop-2.  Just pop the show (actually, up to eight) onto your microSD card and plug it into the HC-8+.  The export data carries the channel count and event timing so you can create a variety of shows to suit your needs.

I'm really excited about this as it opens up a whole host of cool opportunities for our customers.  Think about it: you can now create shows with on/off, fading, even servos with no programming (everything done in Vixen). 
Jon McPhalen
EFX-TEK Hollywood Office

livinlowe

Wow, that is pretty cool!
Shawn
Scaring someone with a prop you built -- priceless!

davisgraveyard

I was so inspired by this I bought a HC-8+ and the Micro SD adaptor.  I want to swap out my old Prop-2 in my 3 axis skull that uses a AP-16+ and a Scary Terry Jaw talker.

My issue with my old setup has always been that I didn't have enough program data area for all the data of my show so my skull always looked jerky.  When I first created the movements they were very natural but I couldn't use all the data. I have been waiting for this for a long time.

KC had built in support in to Viixen for a USB joystick.  I wonder if it still works.  That would be the best way to program the movements. 

I can't wait to try this out.


JonnyMac

August 24, 2012, 11:31:19 AM #4 Last Edit: August 24, 2012, 11:32:53 AM by JonnyMac
It will take a little work, but you can program the jaw movement, too. 

Here's a trick that my friend, Peter, taught me on jaw programming: Move to the beginning of a syllable and do a ramp that goes from fully open to closed in about a second.  Then move to the start of the next syllable and do the same thing -- note that subsequent syllables may start before the mouth is fully closed, giving very natural look to the movement.

Vixen hints:
* Make sure you've downloaded version 2.1.x.x and the new drivers and add-ons for it
   -- http://www.efx-tek.com/php/smf/index.php?topic=1517.0
   -- http://www.efx-tek.com/php/smf/index.php?topic=1917.0

* Programming the jaw: create an open-to-closed ramp (described above) then drag-select those cells. Now right-click for the context menu and select Copy. Now left-click on the cell that is at the start of the next syllable. Right-click again and select Opaque Paste.  This makes pretty quick work of jaw programming that you have control over.

In Vixen I use 20ms frame timing which matches the standard servo update rate; this gives you the best opportunity for smooth movement.

I'll post a 4x4 streamer (play life from Vixen timeline) and 4x4 player (play Vixen file from uSD) in a separate thread.
Jon McPhalen
EFX-TEK Hollywood Office

davisgraveyard

I agree that a manual jaw program would be smoother but I like the audio servo driver so you can swap out audio tracks fairly easy and not worry about the tedious task of lip syncing to it each time.  You just have to program the casual head turn, tilt and nods during the show.  If I had eye movement (left/right up/down) then I'd add that too.

Can't wait to try this out!




davisgraveyard

I've been talking with K.C. at Vixen and he was telling me that in 2.1 he does not support what he calls "live recording" and input plugins in 2.1.   He had created a USB dual joystick input plugin for 2.5 back in 2009 for me that I never ended up using because I couldn't store all the show data in a Prop-2.   But it did allow you to map servos to the input plugin and move them realtime with the audio playing and record your show live.  Worked great for puppeteering the animated skull and some of the resulting shows looked very smooth and realistic.

Any ideas?

Jeff

JonnyMac

If your goal is real-time recording, then, no.  If you animate the way Jack did to get sync with your audio, it's pretty straightforward.  Takes a bit of time, but you get what  you want the first time.
Jon McPhalen
EFX-TEK Hollywood Office

davisgraveyard

I'm not sure I understand the difference between realtime recording and the alternative??  You had written a little servo control program for the Prop-SX a long time ago that used the VEX joystick and little cable to the Prop-SX.  The Prop-SX would push the servo values out the serial port.  Using a PC I was able to capture the values and save them to a file.

Trying to manually set when a talking skull turns,nods, or tilts its head and plug values into a show and then play it will always look mechanical unless you have the patience of a saint.  Besides I have no idea what the values for a slight turn to the left and nod would be??  Puppeteering the movement of a 3-axis skull I believe is the only way to get a realistic looking movement.  How that is done and ultimately how the values are stored is the question.

Any ideas?

JonnyMac

Okay, if you want to do that instead of Vixen I can make that happen -- and I can test it, too.  Remember that adapter cable we make for the VEX transmitter? You can plug that into the HC-8+ serial header; I wrote a VEX interpreter for the Propeller a long time ago.  What I'll have to do is marry it with a servo driver and the ability to write to a file.

The file created will not be compatible with the Vixen stuff, but its and easy mod.  The reason is that we have the servo values right out of the VEX and I will want to write them to the file without converting to bytes (as Vixen) uses, and then back.

JB asked me to write him some code so it may be later today before I can get to it.  The program will support six channels as that's what the VEX device supports.  How would you like the switch channels (5 and 6) to be handled -- or should I ignore them and just record four channels?
Jon McPhalen
EFX-TEK Hollywood Office

davisgraveyard

4 servos is fine for my needs.   I am fine with doing things in multiple steps so long as I can move the head with the audio playing and record the values of the servos as I move them.  I'd even be willing to convert the resulting data into a Vixen file if that makes it easier.   Or maybe I could somehow import the values into a Vixen show from a file?



JonnyMac

I would have to ask K.C. for an importer.  This would also mean having to write the file with an appropriate header. The current Vixen export format includes a 3-word (3 16-bit values) that holds the number of channels, the event timing, and then number of events exported.  When recording live we would not know the number of events recorded.  I'll have to experiment with resetting the file pointer and overwriting the header after the recording has stopped. 

If this works and KC can write a module that imports the raw data, you're in business!
Jon McPhalen
EFX-TEK Hollywood Office