Topic: Feature request: RPC exposure of coupler and combo bank parameters

In my recent post here, I introduce a voice-control setup that allows changing Organteq registration in a hands-free manner. This is a new and exciting way of interacting with the organ, because changing stops no longer requires you to have hardware switches (or computer controls within reach) and a free hand to manipulate them; you can control them instead by voice, even while both hands are busy at the keyboard(s). This voice interface I created is possible thanks to the JSON-RPC interface that Modartt provides.

However, besides stops there are at least two additional things which would be extremely useful to be able to control by RPC: couplers and combination banks. But these seem to be missing from the set of currently available parameters from the RPC server.

To explain in more detail what's missing:

1) Couplers are indexable by number (1 through 6) in the RPC protocol and can be turned on or off, but there is very limited additional information about them that can be accessed there. In the coupler settings panel in the GUI, we have several options like assigning each coupler to a pair of manuals (e.g. swell to great), transposition, and forwarding, but these do not seem to be visible through the RPC protocol, either to access them or to modify them.

2) Combination banks do not seem to be visible in the RPC protocol at all.

By the way, for combination banks it also seems like this would be great thing to allow users to control by keyboard shortcuts, for example maybe numbers 0 through 9 to trigger a combination and the left and right arrows to the navigate banks.

I hope a future version may expose these things in the RPC protocol and/or provide some additional keyboard shortcuts that can be leveraged. Thanks for considering my request.

Last edited by kawai_user3535 (17-11-2025 14:27)

Re: Feature request: RPC exposure of coupler and combo bank parameters

A very interesting project!

May I ask where one can find information about the JSON RPC API for Organteq 2? I haven't found any official documentation from Modartt yet.

I'm currently creating a profile for the Elgato Streamdeck as a hardware controller, and so far, communication has been exclusively MIDI-based. Since Organteq doesn't yet have a MIDI output port, I'm not getting any feedback on the current status of the controls. It seems that this is possible with the RPC protocol.

Re: Feature request: RPC exposure of coupler and combo bank parameters

All the docs I'm aware of is that when you start up the Organteq with the --serve option, you can go to http://127.0.0.1:8081/jsonrpc in your browser and it will list the available commands.

To send a MIDI message of middle C note-on:

curl -X POST http://127.0.0.1:8081/jsonrpc \
    -H "Content-Type: application/json" \
    -d '{"method": "midiSend", "params": [[144, 64, 64]], "jsonrpc": "2.0", "id": 3}'
Last edited by kawai_user3535 (21-11-2025 11:21)

Re: Feature request: RPC exposure of coupler and combo bank parameters

By the way, it may not be clear how you're supposed to start Organteq in RPC serve mode. I'm not sure if this is documented anywhere, but I found how to do it somewhere on these forums. On Mac or Linux you can do it like this from the terminal (you may need to change the path to whatever is the actual location of the organteq exe):

/Applications/Organteq\ 2/Organteq\ 2.app/Contents/MacOS/Organteq\ 2 --serve

Re: Feature request: RPC exposure of coupler and combo bank parameters

Thanks a lot for the tips!
On my Windows PC, I created a shortcut on the desktop that includes the server start option.
I've already extensively tested the communication via JSON RPC using a simple online tool (https://inspector.open-rpc.org/).
If you know how, it works very easily

Now I'm looking for a suitable plugin to implement the communication with my Elgato Stream Deck XL.

Controlling the banks and combinations with SysEx commands works perfectly.

Re: Feature request: RPC exposure of coupler and combo bank parameters

Pat wrote:

Now I'm looking for a suitable plugin to implement the communication with my Elgato Stream Deck XL.

You might try Talon Voice. It's what I used to implement my voice commands. It's not just about voice though, you can also map peripherals like a game controller or I'm pretty sure a Stream Deck to arbitrary computer commands via python code. Their Slack should have some community discussion with people using things like that.

For example my voice commands are all built around calls to this Python function:

def organteq_call(payload):
    try:
        result = subprocess.run(
            f'curl -X POST {endpoint} -H "Content-Type: application/json" -d \'{json.dumps(payload)}\'',
            shell=True,
            check=True,
            capture_output=True,
            text=True
        )
        return result.stdout
    except subprocess.CalledProcessError as e:
        print(f"Command failed with error: {e}")
        return None

It's a free program but I believe the stream deck support may be restricted to the paid beta tier, though. I could be wrong.

EDIT: Oh, and my organteq_call function can also handle a MIDI send like this, although I don't currently have this function exposed with any voice mappings:

    def organteq_midi_send(byte1: int, byte2: int, byte3: int):
        """send raw MIDI bytes to Organteq"""
        payload = {
            "method": "midiSend",
            "params": [[byte1, byte2, byte3]],
            "jsonrpc": "2.0",
            "id": 1
        }
        organteq_call(payload)
Last edited by kawai_user3535 (21-11-2025 19:31)

Re: Feature request: RPC exposure of coupler and combo bank parameters

I'd have to try it out, but I'd be starting from scratch.

With the current state of development, I can already control Organteq very well (via SysEx commands); what's missing is the (MIDI-) feedback from Organteq.
It would be nice if a selected stop were also recognizable as such on the StreamDeck.

For the Banks and Combinations, I've already managed to achieve full visual synchronization between Organteq and the StreamDeck using purely logic-based methods.

B.t.w., I'm using the "Script module" from the very flexible and easy-to-use "MIDI plugin" by "trevliga spel" (https://marketplace.elgato.com/@trevliga-spel) almost exclusively for this.

Re: Feature request: RPC exposure of coupler and combo bank parameters

That sounds like a very nice setup already. I wasn't aware of how stream decks work but I could see how it would be helpful to have the stops states visually mirrored on the device. Yeah, the things I suggested certainly have a learning curve and require some time to get set up properly.