Home Forums Breakaway Audio Enhancer Keyboard Shortcuts?

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #696
    Anonymous
    Guest

    I use a product from Griffin Technology called Powermate. It is a USB media controller (volume control, etc.). I would like to be able to customize its settings to directly control the volume, mute, bypass and Core presets of Breakaway. It appears that, at this time, the only way to do that would be with keystrokes. Are there keyboard controls of these controls within Breakaway? This would probably work better if there was a way to swap the system volume controls for the Breakaway volume controls.

    Powermate is pretty cool. It would be a nice combination of products. http://www.griffintechnology.com/products/powermate

    Thank You,
    Randall
    Breakaway Pipeline v 1.20.12
    Windows 7 Professional (build 7600)
    2.20 gigahertz AMD Athlon 64 X2 Dual Core
    256 kilobyte primary memory cache
    1024 kilobyte secondary memory cache
    Board: ASUSTek Computer INC. NODUSM3 1.05
    Bus Clock: 200 megahertz
    BIOS: Phoenix Technologies, LTD 3.10 12/13/2006
    Conexant Falcon II NTSC Video Capture
    Realtek High Definition Audio v 6.0.1.5910

    #5147
    Anonymous
    Guest

    Really? Is there no way keyboard shortcuts will be in Breakaway?

    #5148
    Anonymous
    Guest

    I am using a Contour Shuttle Pro to control RR, and all other applications on my CarPC. It can easily be configured to send any key or key combination, and it automatically switches profiles between applications. The keystrokes, in turn, can be defined in keytbl.ini to control almost all RR functions. The only downside to the Shuttle Pro is the size. Google their website for more information — I think it is a very good solution.

    #5149
    Leif
    Keymaster

    I just ordered a Powermate. Once it arrives, I’ll make sure there’s a way to use it with Breakaway 🙂. This might mean hotkey support.

    ///Leif

    #5150
    Anonymous
    Guest

    As per my knowledge there are no shortcuts of keyboard will work with Breakaway.I dont know the aexact reason behind it.

    #5151
    Milky
    Keymaster

    I may be wrong here, but, typically, an application must have focus for the keystrokes (or mouse clicks) to affect the program. Usually your playout software has focus, with Breakaway doing its job behind the scene.

    #5152
    pekkaar
    Member

    [quote author=”Leif”]I just ordered a Powermate. Once it arrives, I’ll make sure there’s a way to use it with Breakaway 🙂. This might mean hotkey support.

    ///Leif[/quote]

    Hi Leif, any news on this maybe? Unfortunately Powermate does not seem to be able to alter BAE’s volume control, as it can only manage the ‘System Volume’ which is of course defunct while having BAE installed. Hotkey support seems to be the way to go on W7 x64…

    Cheers,
    Peter

    #5153
    Anonymous
    Guest

    I’ve been doing some research into this.

    There appears to be two ways to control volume level. The most common one, used by all sorts of remote control management software, automation software, and hotkey management software, uses user-level hooks for the volume that can only control the windows mixer (aka the Kmixer) master volume. When BAE is in KernelStreaming mode, the Kmixer is bypassed, and these volume controls do nothing except change the (inactive) master volume level for the OS.

    The other way is a kernel-level audio device control command, that actually does work with BAE when it is in KernelStreaming mode. When using these commands, the master output db level, displayed in the BAE window, actually changes and is reflected in the displayed output (from – infinity to 0db). These commands run as a low-level service, and are always active regardless of which application has focus.

    Many sources I have found claim that there is no way to control the master volume level when KernelStreaming is used. Yet, I have two devices that actually do work with BAE and can send the proper volume up, down, and mute commands. One is my logitech wireless keyboard (710) that has integrated buttons for volume control. The other device is a non-standard IR remote included with the new ASRock Z68 motherboard I got last week. The logitech keyboard uses a special form of HID driver to accomplish this (the commands can be captured using USB protocol software such as USBlyzer). The ASRock IR remote evidently accomplishes this with it’s own proprietary CIR driver.

    Unfortunately, I don’t want to use either of these devices as my primary remote. The wireless keyboard is not a proper HTPC remote control, and the ASRock remote is a piece of crap that uses IR, which I can’t stand. I have a Snapstream Firefly remote that uses RF instead of IR and I am very happy with it.

    What we would need for universal control, assuming that BAE itself doesn’t ever get around to implementing its own software controllable volume control scheme (which is a good bet, since several users have been asking for it for nearly FOUR YEARS), is a ‘volume control service’ that can send the proper low-level volume command directly to the audio hardware, and can be automated at a user level by automation or remote control management software, including the powermate software.

    I think that anyone (meaning not just the BAE programmer) could make this happen. Whether it’s an engineer here, or an engineer at Powermate, LMRemote, Intelliremote, AutoIt, AutoHotKey, NirCmd, or any other software control system developer.

    Unfortunately, I am not a developer and have no idea how to turn my research into an actual program.

    Anyone have any ideas? For HTPC or CarPC users of BAE, remote volume control is the ‘last mile’ feature that we have been yearning for.

    -Jerimiah

    #5154
    Leif
    Keymaster

    Howdy!

    Actually, there has been a volume control API for quite some time in Breakaway — my bad for not documenting it.

    First, get the window handle.

    For Breakaway Live:

    code :HWND hWndBa=::FindWindow(NULL,"BreakawayLiveUtilityWindow_0xBA31337");

    For Breakaway Audio Enhancer:

    code :HWND hWndBa=FindWindow(NULL,"BreakawayUtilityWindow_0xBA31337");

    Then, get the message code (same for both):

    code :int msgGetVolume=RegisterWindowMessage("BaGetVolume");
    int msgSetVolume=RegisterWindowMessage("BaSetVolume");

    Then, get or set the volume level, range is 0 to 100.

    code :SendMessage(hWndBa,msgBaSetVolume,0,volume);
    volume=SendMessage(hWndBa,msgBaGetVolume,0,0);

    That’s it. These are standard Windows APIs and can be used from many different languages and scripts. For example, I use it in a Python script for EventGhost to be able to change the volume on my HTPC.

    My PowerMate is unfortunately still in its original packaging. It has been with me to Holland, Thailand, Sweden and the USA, and still haven’t had time to play with it.

    Best regards,
    ///Leif

    #5155
    vitalyb
    Member

    Thanks for the answer, Leif!

    To help out others here is the code C# and for AutoHotKey (ahk):

    C#

    code :using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Runtime.InteropServices;
    using System.Text;

    namespace BreakawayChangeVolume
    {
    class Program
    {
    [DllImport("user32.dll", SetLastError = true)]
    static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

    [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
    static extern uint RegisterWindowMessage(string lpString);

    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);

    static void Main(string[] args)
    {
    var hWndBa = FindWindow(null, "BreakawayUtilityWindow_0xBA31337");
    uint msgGetVolume = RegisterWindowMessage("BaGetVolume");
    uint msgSetVolume = RegisterWindowMessage("BaSetVolume");
    var volume = SendMessage(hWndBa, msgGetVolume, (IntPtr) 0, (IntPtr) 0);
    SendMessage(hWndBa, msgSetVolume, (IntPtr)0, (IntPtr)50);
    }
    }
    }

    AutoHotKey

    code :; HWND hWndBa=FindWindow(NULL,"BreakawayUtilityWindow_0xBA31337");
    hWnd := DllCall("FindWindow", int, 0, str, "BreakawayUtilityWindow_0xBA31337")
    msgGetVolume := DllCall("RegisterWindowMessage", str, "BaGetVolume")
    msgSetVolume := DllCall("RegisterWindowMessage", str, "BaSetVolume")

    #=::

    VolumeUp()

    return

    #-::

    VolumeDown()

    return

    VolumeUp()
    {
    Global
    volume := DllCall("SendMessage", int, hWnd, int, msgGetVolume, int, 0, int, 0)
    volume := volume + vol_Step
    DllCall("SendMessage", int, hWnd, int, msgSetVolume, int, 0, int, volume)
    }

    VolumeDown()
    {
    Global
    volume := DllCall("SendMessage", int, hWnd, int, msgGetVolume, int, 0, int, 0)
    volume := volume - vol_Step
    DllCall("SendMessage", int, hWnd, int, msgSetVolume, int, 0, int, volume)
    }

    Enjoy

    #5156
    Caleb
    Member

    thats cool , thanks 😮 that was one of the last things stopping me from purchasing.
    Now if I could just find out how to map the mute/unmute function….

    #5157
    ca.brandon
    Member

    aww, doesn’t work for me =x time to try tweaking I guess.
    neither does volumouse, i’ll wait for the new version if/when that ever comes out, I guess.
    Edit: as a very crude workaround, I managed to get my volume buttons on my laptop as well as volumouse working for breakaway audio by installing the trial of breakaway live, and enabling volume control in the BaPipelineConfig settings.
    It doesn’t update the volumenumber in the breakaway toolbar like it did on my older laptop, but hey, it works!
    Hopefully this helps someone.

    All that can really be improved is to fix the non-unicode/ non english system locale issue, and this one, and we’re possibly looking at one of, if not the most, finished products ever made 😛
    Massive props 😉

    #5158
    PCjabber
    Member

    Here's a modified version of the AutoHotkey script that vitalyb posted above. There are some configurable options — see the top lines in the file.

    Default keys are set to F13, F14, and F15 for Vol+, Vol- and Mute (respectively)…I use uberOptions for Logitech SetPoint & set my volume keys to send those F-keys, because SetPoint won't allow AutoHotkey to listen for the Volume_Up, Volume_Down, and Volume_Mute keystrokes (at least on my PC).

    CTRL-MUTE (CTRL-F15 by default) will toggle the balloon notifications that you'll get upon changing the volume or muting the sound. You can change the default behaviour for notifications by changing the boolean value in the configuration section. Toggling with CTRL-MUTE will not change the boolean value in the file (so it will revert to the default behaviour on script reload).

    ALT-MUTE (ALT-F15 by default) will pop up a dialog so you can change the % of volume directly.

    Feel free to PM me if you have questions on configuration or usage, or if you find any bugs. I'd also appreciate hearing any feedback on the script in general! I don't plan to add additional features at this point, but I'm open to suggestions/requests…you can also modify the code yourself (see license below). I've been using the script in its current state for over a month & it works well for me (v0.4 improves the robustness of registration with BAE, and that code has only been in place for a few hours at the time of this writing, but it's been tested & works). I've been using this script since before I first published it in March 2013, and I've fixed all bugs that I've found. Let me know if you find any bugs or want any features added (can't promise I'll add it right away), let me know (…or tweak it yourself, it's open-source!)

    This code is licensed under the Apache License, version 2.0. A copy of this license is available at http://www.apache.org/licenses/LICENSE-2.0, and further details of the license are included in the source code.

    The AHK file can be downloaded at <http://bit.ly/BAEvolume> (current: v0.5.3).
    Readme available at <http://bit.ly/193gqOM>.
    Note that you'll need AutoHotkey installed in order to use this script (either the standard or L version will work).

    Changelog:
    Version 0.5.3 (28 Jun 2013):
    * public release
    * fixed minor bugs

    Version 0.5.2 (23 May 2013) [untested]:
    * cleaned up "get volume" code

    Version 0.5.1 (18-21 May 2013):
    * fixed bug with volume prompt
    * tweaked volume prompt GUI
    * changed systray tooltip text

    Version 0.5 (16 May 2013) [unreleased]:
    * added volume prompt (to directly enter new volume by percentage)

    Version 0.4 (6 Mar 2013):
    * more robust support for registering with BAE (so the AHK script can be set as a Startup item, and it will keep trying to connect with BAE every 10 seconds until it's able to do so, instead of simply not working).

    Version 0.3 (5 Mar 2013):
    * first publicly-available version
    * cleaned up code from v0.2, added more comments

    #5159
    blecher
    Member

    Since the Win10 Update, a simpler way works (autohotkey):

    #+::
    SoundSet +5
    return

    #-::
    SoundSet -5
    return

Viewing 14 posts - 1 through 14 (of 14 total)
  • You must be logged in to reply to this topic.