serialosc for windows [may 3nd update: 1.0rc2 available]

  • good afternoon, friends!

    i am pleased to (quietly) announce 1.0rc2 for windows. the main change from the previous versions is that serialosc is now a background service instead of a console application that must be run manually. also, hot-plugging of devices works.

    here are the steps to get it running:

    1. download [[http://support.apple.com/downloads/DL999/en_US/BonjourPSSetup.exe|bonjour print services for windows]]. we'll bundle this in the serialosc installer when we have a finished build, but for now, beta testers will need to install this manually.
    2. download and install [[http://illest.net/~will/serialosc-1.0rc2.exe|serialosc-1.0rc2.exe]].

    we've tested so far on xp, vista, and 7. let me know how it works for you.

    ==================================
    CHANGELOG:
    ==================================

    1.0rc2:
    - fix zombie processes
    - fix service registration

    1.0rc1:
    + serialosc now runs as a service
    + tilt support
    + arduinome support

    beta3:
    - fix issue with COM ports numbered higher than 9

    beta2:
    - fixed message delay
    - fixed breaking when path to serialosc contains a space

  • Hmm. I've got a blinking cursor in my console window, and that's about it. On the plus side, no error messages.

    The example files:
    http://docs.monome.org/lib/exe/fetch.php?media=app:max5-serialosc-osx-examples.zip
    aren't connecting, though.
    (I've restarted serialOSC a few times with the monome plugged in)


    Reading this page:
    http://docs.monome.org/doku.php?id=app:serialosc

    I see a reference to some zeroconf externals for Max, whose link is coming soon. That's probably what I'm missing.

  • Hi,

    I'm on win7/Max 5 runtime with the new 128.

    I downloaded & installed bonjour, and ran the serialosc.exe file. That gives me the console window with "serialosc [m0000090]: connected, server running on port 18421"

    I downloaded and ran the new version of boingg, but my monome doesn't show up in the drop down to connect.

    Just for reference, I've been working with the 10010.maxpat OK since the new 128 showed up.

    I'm sure you know this, but the zeroconf browser linked to on the setup page doesn't work for win7, so I can't verify the monome pops up when plugged in.

    Let me know what other info is helpful.

  • hooray!! amazing work will.

    initial tests look great. 2 devices detected and i see them in my bonjour browser. this is on windows 7 32bit.

    i'm going to start porting pages over and i'll let you know if i run into anything.

    edit: the bonjour browser i'm using is one that comes with the bonjour sdk from apple. c:\program files\bonjour sdk\samples\java\browserapp.jar

  • @phortran what are you using to browse? Is there a bonjour browser I'm being blind to aside from the print browser?

  • sorry, just edited and added that info :)

  • Thanks. Unfortunately it doesn't work for me. I get a virtual machine error when I try to run it. That's what I get for not being a dev!

  • haha, try installing the latest java runtime (jre)

    http://www.oracle.com/technetwork/java/javase/downloads/index.html

  • Bah, I was trying to avoid being hassled to death by the jre updater! That thing never shuts up. Will try and have a look thanks.

  • yeah, that thing is annoying. you can search for msconfig, run that, go to startup and remove it.

  • No luck even after updating java & restarting. It says "Could not find the main class: BrowserApp" I'll stop with the java threadjack now and just wait to hear more from others while I see what I can figure out.

  • here's a screenshot verifying this works in a variety of ways. looks really promising so far!

    1920 x 1080 - 403K
  • @GreaterThanZero:

    hmm...you should definitely be seeing a "serialosc []: connected, server running" message. what monome do you have plugged in, does it show up in device manager? what COM port is it on?

  • I'm checking in from afar right now; won't be home for a few hours. It's a GS128 I was testing with, not sure about the COM port. I'll report back with actual info when I can.

  • first look at console shows doubled characters printed. snapshot attached.

    this with two gs128 attached through hub. existing oscbonjour.

    monome serial calls out the monomes as 516 and 303

    677 x 341 - 30K
  • @rawore:
    hah! that's the craziest bug i've ever seen. do the monomes function alright though?

  • second time starting serialosc, it didn't interleave.

    tried polygome 101

    got not found in the max window, see attached

    checking in task manager, I note three running copies of serialosc. I exited the
    first window by clicking x to close. will clear out tasks and try again.

  • trying parc 0.2

    zeroconf not recognized, see attached

    and a 666 error ;)

    maybe I'll revisit my oscbonjour installation. think it has
    been automatically updating. Installed a while ago for autoconfig
    adventures.

    648 x 230 - 42K
  • serialosc will run N+1 processes, where N is the number of monomes active. one process manages spawning the others, and the other processes each manage one monome. a "process-per-monome" design has many benefits over a "thread-per-monome" design. i know it's a little weird on windows.

  • parc is rewiring to ableton, despite the error messages. the chooser box top left is empty, with no selections.

    no monomes, that it sees?

  • My GS128 is showing up in the device manager as "USB Serial Converter", which isn't terribly descriptive. Driver details are from FTDI, and I remember you coordinated some serialOSC-inspired fixes with them on their drivers. My driver is version 2.6, from 2009. So... I'll go update that and report back!


    EDIT:
    I saw a VCP related thread somewhere around here a while back. I think, based on the ftdi download page and the discrepency between the behavior you're expecting vs behavior I just described, than I might have the D2XX Direct drivers installed. MonomeSerial's never had a problem seeing it, but maybe that's contributing. (I need to update regardless, but if that's the problem, I wanted to say something while I was thinking about it)

  • you should definitely have the VCP driver installed. monomeserial-win may not have had an issue because it's using the FTDI-provided library to access it, but that library unfortunately is not open source (so i can't glean its secrets), and leveraging it would mean ripping out huge portions of the serialosc core and making a cross-platform codebase all the more difficult to maintain. monomeserial could get away with it because OSX and windows were completely separate codebases.

  • Just to be thorough, I told Windows to find its own updated drivers over the internet. That brought my up to October 2010 or thereabouts.

    Next up, I went to the driver tab for that device and pointed it to the newly-downloaded VCP driver. Now my driver's from February 2011. But it's still "USB Serial Converter" with no com port. I do see a "Load VCP" checkbox, and it's selected, so...

    Oh, wait. I also have a "USB Serial Port" on COM11. I wonder if I just killed anything with that last move? Ah well. Let's replace this driver and see what comes of it!

    (back in a few minutes)

  • That didn't do it either.

    I guess I'll sleep on it, and try to find a more thorough (and/or automatic) way to uninstall / update the FTDI driver. But on the off chance that's not related, "COM11" at least answers your earlier question.

  • a double-digit COM port number! just as I suspected...

    i'll do a bit of research and get an updated build up by the end of the weekend.

  • cassiel just posted the windows zeroconf max5 externals.

    https://github.com/cassiel/zeroconf

  • Ok, progress. I just installed the max externals, and my 2011 128 is recognized by polygome in the drop down, and I'm able to connect.

    I am getting strange offset and button press issues though. Offset seems to be by 4 to the left of where I press. If I press the same button 4 times the button 4 columns to the left lights and triggers. On the 5th press the button that I press lights and triggers. This behavior is similar moving from row to row. Meanwhile, many, but not all button presses result in the "cell coordinates out of range" message in the Max window.

    Also repeated the same behavior in the test patches.

  • @isotopeofme - how did you install?

    I downloaded the externals using firefox and copied into max externals directory. permissions are read and read/execute.

    when max tries to load i get a bad format error? see attached

    c++ libs are installed, and system reboot, just in case

    max 5.1.7

  • @rawore Hmm. Lemme try the round trip (downloading the externals from GitHub into my Windows XP VM) and seen what happens.

  • maybe it's the filename with the dot in it? nope

  • I'm guessing it got screwed up by the browser. I've re-uploaded them in a ZIP file - can you try again?

    (This is going to be a bit of a slow process: my broadband connection has just failed so I'm using a wireless backup.)

  • ok got it by downloading the zipfile of the entire project.

    for some reason clicking on zip file was also getting marked as a "firefox document". have to go think about that. swear it worked just yesterday!

    successfully switched polygome connection between two gs128's using dropdown list.

    now to figure out offsets, et al

    and control functions glitching... ftdi problem?

  • Great - glad you're off the ground. It's also handy to know that you're up and running with Windows 7 - I only have an XP Service Pack 3 virtual machine to play with, so the more platforms tested the better.

    Anyone running Vista?

    [FX: crickets]

  • @isotope:
    what device do you have? what operating system? do you have rotation active?

  • @rawore I used the download button at the top of the page to pull down the "dist.zip" package. Prior to moving the externals into the /max externals folder I installed the c++ runtime from the link in the readme. Don't think I restarted, just ran max after that.

    @visinin I'm on win7/Max 5 runtime with the new 2011 128. I haven't done anything to activate rotation. USB coming out of the left side as usual.

  • @visinin,

    Yeah, that two digit port number is absolutely the problem. I went into the driver settings and managed to change it to a single digit one (COM 1 and COM 2 were available, which are the last two I would have ever expected to be), and now it connects.

    That'll let me test things before your next build is up, and I'll switch it back when your fix is ready (to confirm that others shouldn't have that problem).

  • yeah, it's this stupid windows-ism...for ports 1-9, you can just use "COM1" or whatever, but for ports bigger than that, you have to do "\\.\COM10". seriously, what the fuck?

  • no luck yet.

    on windows xp sp2.
    inatalled bonour, the c++ runtime and the zerconf max externals.
    windows firewall updated to include bonjour service.
    my netgear router's firewall has not been updated to include bonjour port - but tried unplugging this & it made no difference to what follows.
    plug in monome (com5).
    open serialosc console.
    fire up max runtime and open polygome101.
    nothing in console and no device selectable from polygome.

    any ideas?

  • Progress! Got the max internals in place, and SerialOSC test is able to connect.

    I've got a strange bug to report now, but it'll probably resolve itself by rebooting:

    Pressing a button reports "/example/grid/key 12 1 1" in the message box. Releasing it reports "/example/grid/key 12 1 0".

    Activity in the matrixctrl object is in line with this when only one button is pressed, but gets less predictable when more are. So, I'm probably sending more than one message with every press.

  • Well, rebooting didn't fix that, but I'll let it sit for a while.

  • @visinin After a reboot, the offset by -4 problem is gone. But I'm still getting the strange delay.

    Button press sequence 1, 2, 3, 4, 5, 5, 5, 5, 5
    Led & midi response: 1, 1, 1, 1, 1, 2, 3, 4, 5

    This is true for button presses anywhere on the device, in both the test patch, and the new polygome.

    The strage bit was that presses worked as expected for (probably 5) presses, after which the delay kicked in.

  • @knecht: is there a reason you don't have SP3?

  • tried adding in a 64, with serialosc running. nothing showed in command window...

    stop and started serialosc and got another garble (attached) but the gs64 showed up in the dropdown list.

  • serialosc will not detect devices plugged in while it is running right now. that feature is coming soon.

    the reason the garble is showing up is because windows is spawning processes at roughly the same time, so their outputs are interleaving. it's nothing to worry about.

  • @tehn

    i'll update to sp3 this evening (seem to remember now that bonjour recommended sp3).

  • Hi all,

    I'm probably just being an idiot, but I can now get serialosc running (win7), however button presses have massive lag now, and often when i press a second button, the value of the previous press is repeated.
    I've got the externals installed, but seem to be having similar problems to isotopeofme.

    [edit]
    Here's a better explanation.
    I press a button.
    This registers correctly.
    If I press the same button again, all is well, however.
    If I press a different button, the press acts as if I have pressed the first button.
    This only happens once, and if I press the second button again, it will fire the correct button.
    If I then press a third button, the problem is repeated and the second button will fire in place of the third.
    Basically it seems the value of the button is being delayed by one fire command.

    Any idea why?

  • On further tests, it appears that this is a time delay issue, as the value takes more than one press to change if i press the buttons very quickly.
    I've tried rebooting serialosc, which worked for a time, and then the button presses began laggin again, evern more drastically than they had before.
    Hmmmmm. Not sure what to make of this......

  • I guess I'll try to make a simple log generator patch after work. Two column layout: timestamp, and OSC message received. It sounds like that'd narrow things down a bit in a few of our cases.


    EDIT:
    Back from work now, but higher brain functions are at significantly reduced capacity. Might try after dinner, but more likely sleep.

    (this week's a little crazy, and I'm a little useless)

  • this thread is amazingly quiet...

    on tehn's advice i've now updated to SP3, which has made a difference - now 'message' is periodically added in the serialosc console. however, i'm still unable to connect to a device from polygome101. is this to do with the FTDI driver?

    help would be appreciated.

    @visinin, greaterthanzero - what's the VCP driver you're referring to - do i need this? checking the forum now...

    ok, vcp = virtual com port - i must have installed the vcp drivers as my monomes are showing up as com4 and com5. i can't see why i need to update, although my latest monome was purchased in jan 2010 - so that'll be the last time i installed a driver, previous one installed in 2008 - i think...

    only appear to be getting 'message' in the console when i change the focus of control to a different window, certainly no device number in the console and unable to connect....help please..

  • @knecht,

    For my part, it's just timing. I've got something of a doomsday clock hanging over me.

    (My old roommate is driving back from NY as we speak. He'll be staying with me for a while, but my apartment isn't really inhabitable by one human just now, let alone two. So I'm scrambling to fix that and watching the miles tick away on Google Latitude. Currently 1,280...)

  • @knecht: now that you have the VCP sorted, can you outline the steps you're attempting? have you installed the zeroconf externals? did you try running the bonjour browser? is bonjour installed?

    apologies if you've answered some of these questions already-- the forum is difficult for debugging several people at once in one thread.