A circuit for midi control of panasonic video mixers

hi @cyberboy666 :slight_smile:
in a meanwhile i got mx50. roel sent me a patch he did for mx50 and apparently many commands are similar to ave55 commands i used in my patches. the rest of commands can be digged from the manual of mx70 that has serial protocol in it. i would be interested in the boards for testing too…

hii @klif ! that is good news - yes havnt yet tried with a mx50. i was just looking through the mx70 manual we have here on scanlines wiki page but cant see the commands - are they in another manual ?

i will send u a board ! (write me your address in a pm)

I’ve submitted a PR with the protocol reference for the AG-HMX100 – as best as I can tell this is a superset of the commands for several older mixers like the MX50. At least I was able to use these commands to send wipe positions and stuff from a Python script → USB/serial dongle → MX50 at one point. Here is the script, used for manually typing in commands to send to the mixer, on the off chance that’s useful.

Python test code for Panasonic mixers
# dependencies (Python >= 3.5):
# aioconsole==0.1.10
# pyserial==3.4
# pyserial-asyncio==0.4

import asyncio

import aioconsole
import serial
import serial_asyncio


class WJMx50(asyncio.Protocol):
    def connection_made(self, transport):
        print('connected')
        self.transport = transport
        asyncio.ensure_future(self.repl())

    async def repl(self):
        while True:
            cmd = await aioconsole.ainput('?? ')
            self.write(cmd.encode())
        
    def write(self, cmd):
        print('-> {}'.format(cmd))
        msg = b'\x02' + cmd + b'\x03'
        self.transport.write(msg)

    def data_received(self, data):
        reply = data.strip(b'\x23')
        if not reply:
            return
        for i, byte in enumerate(reply):
            if byte == 0x15: 
                print('\n<- NAK', flush=True)
                self.prompt()
            elif byte == 0x06:
                print('\n<- ACK', flush=True)
                self.prompt()
            elif byte == 0x02:
                self.start_message()
            elif byte == 0x03:
                self.end_message()
            else:
                self.feed_message(byte)
    
    def start_message(self):
        self.reply = bytearray()

    def feed_message(self, byte):
        self.reply.append(byte)

    def end_message(self):
        print('\n<- {}'.format(bytes(self.reply)), flush=True)
        self.prompt()

    def prompt(self):
        print('?? ', end='', flush=True) 

loop = asyncio.get_event_loop()
coro = serial_asyncio.create_serial_connection(
    loop,
    WJMx50,
    'COM3',  # or whatever yr comport is
    bytesize=serial.SEVENBITS,
    parity=serial.PARITY_ODD,
    stopbits=serial.STOPBITS_ONE
)
loop.run_until_complete(coro)
loop.run_forever()
loop.close()

I believe I originally found this PDF at this link.

1 Like

thanks @csboling thats super useful ! will use this to add to the transcribe project / support more mixers :smiley:

1 Like

i made a mistake, it was AG-HMX100 manual :smiley:

I’ve got a Sony FXE-100 at the center of my rig but I can’t for the life of me tell for sure whether or not it will respond to RS-232 control in real time. It has a bunch of RS232 and RS422 output capability, but it looks like the input might only be for uploading and downloading EDL data. But the manual’s really vague on the topic, and also mentions using it with an external edit controller with no details at all.

I don’t have any way to test it unfortunately, but if anyone has any insight and it DOES turn out to respond to real time control I’d love to build one and help in any way I could with adapting it to Sony hardware.

Seems like a bit of a long shot unfortuantely but maybe I’m missing something.

EDIT: every manual I’ve been able to find since I got it 4 years ago is a variation of this one:

1 Like

I couldn’t find any documentation for the Kramer VS-88V matrix switch that we were talking about in the cheap gear thread, but someone has already made a VVVV patch for controlling it so that should be a good starting point if you were interested in adding support. MIDI control of a matrix switcher would be excellent, especially if it was possible to map MIDI channel to device number so multiple daisy chained switches could be controlled on different MIDI channels from a single control board.

Being able to sequence complex routing changes (or change them generatively) is really powerful, and MIDI control would make it possible without using a computer, even if it was something as simple as mapping MIDI notes to the VS-88v’s user memory locations would do a lot.

If you’re interested in trying it I’d be happy to build a board and help test it.

1 Like

I’m really interested in trying this out! I have an MX50 so idk if it’s supported yet, but I’d be happy to purchase a pcb off you and give it a try.

1 Like

its been a while since i worked on this project (and many other ones for that matter) but lately i have been revisiting this and making some quite nice progress:

  • finally tested controlling a panasonic mx50 mixer with rs232 serial - this uses SERIAL_7O1 & a dsub9 connector sending the Arduino serial commands to it on pin3

  • obtained and tested controlling an extron switching matrix (MAV88 in my case but seems like they all use similar or same spec) with this - using SERIAL_8N1 (default) & also connecting via dsub9, sending commands over pin3

  • obtained and tested controlling a kramer switching matrix ( vs-402 ) - also using SERIAL_8N1 (default) & connecting via dsub9 - unfortunately this one needs you to send commands over pin2 (i think this is non-standard since the usb-to-rs232 serial dongle i got from china only sends over pin3 so can not be made to work with this switcher)

based on these discoveries i will revise the circuit board to add jumpers (or a dpdt switch?) to select which pins to send data over (i hope all other devices use one of these two pins and dont introduce a new standard altogether!!)

i also need to add a momentary button to trigger usb_host connection as this doesnt always find the device at boot

other than that i think the hardware part is finished and would be happy to start selling some pcbs / units in the near future - probably early next year. firmware part still needs a bit of work to switch / handle all these different command formats nicely but this can be an ongoing wip updated with firmware releases over time… also adding support for new devices should be possible / easier as the project matures…

4 Likes

woah I think this is all a bit over my head to fully understand on a technical level, but I hugely appreciate the effort demonstrated here @cyberboy666 and everyone else participating in this thread. My two favorite panasonics that I use most are the MX10 and AVE5 so unfortunately I can’t offer much input, but seeing this project bridge the gap between old and new eras is awesome! Hoping to see it lead toward further efforts to breathe more life into these devices.

I do have an MX20 that I neglect because the interface is a bit too cumbersome for my liking despite its potentially cool effects… Having MIDI support to circumvent the menus would be a godsend though. Adding this to my list of things to look further into, thanks!

1 Like

This is wonderful idea. I also own MX20 and I would say same thing as @zawa - running through menu is awful. I’m working on “Arduino based MIDI audio reactive controller”, so it would match pretty well with USB-host on circuit.

Do you have any pictures of how to connect circuit to the insides of mixer?

2 Likes

sorry im a total noob, would this work with an ag-mx70? it has this input?

1 Like

It has this input. Check pag.17 of the manual.

However, your mixer can already be controlled by an external computer by using that input + the old MX-Navi software (again, check the manual). As a total noob and unless you want to get into soldering, I think I’d rather recommend that approach (what do you think @cyberboy666 ?)

1 Like

I am pretty adept at soldering, just noob to video, and would love to sequence the mx70 with my euro, are there any of these kits available ?

1 Like

This is so cool! Would love to have this for my MX-30
It’s not in stock on your site, is there any info on when it will be available again?

Also, I couldn’t seem to find details on the github for what midi corresponds to what functions on a given mixer… is this written up somewhere?

2 Likes

sorry iv been a bit quite on this thread lol. i have been making lots of progress on this project and working hard towards opening a shop to distribute this and other circuits - it always takes much longer than you think tho eh. but almost ready.

unfortunately the mx20 doesnt have rs232 control :frowning: it only has rs422 which is a different protocol that requires a different circuit design to send from arduino. it would be nice to release a rs422 version of transcribe or an extension board or a larger formfactor version that can do both (not sure which of these options is best ??) since all the midi input part is the same circuit… but ya not possible with the current design. (let me know any other devices you would want to control with rs422 since this is the only one iv found so far)

yeah - this project is for a ‘stand alone / hardware’ control option that doesnt need a computer… all of these mixers can also be controlled from a computer - you just need to buy a usb-to-rs232 dongle and send serial commands from here. (theres prebuilt max patches , or you can find/write code apps to trigger them etc)

the shop hasnt launched yet. i was hoping to launch it in feb., and then pushed it to april. now prob wont be until august unfortunately due to other life things gettting in the way. :frowning:

you have to write the mapping you want yourself in the arduino code - i cant know what kind of controller you will use or what device you are controlling or how you want it mapped. but there are templates in the code and detailed descriptions on how to write the mappings in the docs + i will make a video tuturial showing this at some point also

1 Like

not to pry too much but just curious if this will be available (including the other items on the shop) sometime soon? This looks so sick and I have so many different ways I could use this live

1 Like

hey @cata ! thanks for the interest in this project - im curious what you would be most excited using a transcibe with ?

everything in the shop is (mostly) ready to sell but im on the road for a couple months stil so at this stage my plan is to launch offically around ~ late august

if u just want a pcb it might be possible to get one to you sooner. but not 100% sure at this stage

1 Like

that would be cool if possible but if not i totally understand.

Right now I’ve got an old panasonic wj-mx30 that i think would be fun to integrate with transcribe. I haven’t quite exactly figured out how or what I would use for the midi side of things but the open possibilities of it seem very exciting

1 Like

Let me know if you figure something out!
I’m currently looking for software that would allow me to handle the midi events in a non-music centric way so that I can create “scenes” for the mixer
some sort of block editor work be cool
Ableton or puredata/max might work…