[SOFT?] AmbiBox automatic profile switching (1 Viewer)

kenwonders

MP Donator
  • Premium Supporter
  • January 19, 2007
    791
    741
    Home Country
    England England
    Problem:
    Software for ambient light systems do not synchronise well with TV picture at all refresh rates. A delay set for 50hz video will be too early for 24hz. Not sure why but never mind :)

    Solutions:
    AtmoLight understands this and calculates a different delay per refresh rate. This mostly works but can be affected by TV settings (namely smooth motion and other TV processing)
    AmbiBox does not have any consideration of this, but can use profiles, allowing it to be manually set to a profile with the correct delay.

    So, I have written a small piece of software for myself that:

    - Runs at startup as a hidden process (only in task manager)
    - Checks current display refresh rate every 1 second
    - If rate changes, load a different profile in AmbiBox


    I have a different 'profile' in Ambibox for each refresh rate so that the delay can be configured specifically for that refresh. This means you can get really accurate ambibox delay timings :)

    Currently, it's all hard coded as I wrote it for me, but if others are interested I could make it a configurable tool. In the longer term. TBH I'd like to add this stuff into AtmoLight instead so that we could have granular access there, so sorry to AtmoLight devs for doing this development here for now :notworthy:

    So, does anyone want it? I won't be offended if not :)



    Boring technical info:
    I started trying to do this with a batch file, using the dynamic refresh rate hooks in MP, but although it worked I didn't like the visible popup. Instead I created a windows app without any visible artefacts. It creates a timer that runs a small function to grab the windows refresh rate from WMI. If that rate is different, then a telnet session is created that updates Ambibox to a profile (currently hardcoded) linked to the refresh rate. I cheekily used Application.Run to keep the application idle but still running. It uses about 9mb of ram and little CPU. If I get rid of the hardcoding, this should be what you'd need to get it working:
    - servername
    - server port (usually 3636)
    - delay between checks in seconds
    - 23fps video AmbiBox profile name
    - 24fps video profile name etc
     

    Users who are viewing this thread

    Top Bottom