INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Linux FireMJEvent callback questions  (Read 809 times)

ths61

  • World Citizen
  • ***
  • Posts: 161
Linux FireMJEvent callback questions
« on: January 31, 2024, 01:44:31 pm »

Is the FireMJEvent() in-shared-object callback supported in Linux ?

If so, is there an example code snippet to register the FireMJEvent() callback function pointer in Linux ?
 
All examples appear to be Microsoft centric.
The SDK does not use FireMJEvent in any of its examples (Microsoft or other).

Code: [Select]
3.3 Handling the events from Visual Basic
3.4 Handling the events from Visual C++ with MFC
3.5 Handling the Events from Visual C++ with ATL

https://wiki.jriver.com/index.php/Media_Center_Automation

The docs above indicate the following:

Code: [Select]
The first parameter is the event type and currently there is just one event type, namely "MJEvent type: MCCommand" The second parameter identifies the MCC command.
 MCC: NOTIFY_PLAYERSTATE_CHANGE

    Fired when a the player state changes
        A new track starts to play
        Playback is stopped, paused, or started
    string3 is the zone

Is it possible to include specifically which of the 3 states has been changed in the NOTIFY_PLAYSTATE_CHANGE callback (stopped, pause, started) ? 

Signaling something has changed is not very useful (latencies, race conditions, extra query overhead) without identifying what has changed.

Should there be a separate Linux and MAC Plugin development threads ?

TIA
Logged
Main - JRMC31 -> custom ALSA_cdsp -> CamillaDSP(2x8 channel 64-bit FIR convolution) -> 8 channel DAC
Office - JRMC31 -> Asus Xonar Essence STX -> W4S STI-1000 -> Mini-Magnepans
Shop - JRMC31 -> W4S MicroDAC -> Adcom GFA-2535 -> B&W Rock Solid

Hendrik

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 10712
Re: Linux FireMJEvent callback questions
« Reply #1 on: February 04, 2024, 04:58:39 pm »

The Automation is only supported on Windows, as it uses Windows specific automation interfaces.
Logged
~ nevcairiel
~ Author of LAV Filters

ths61

  • World Citizen
  • ***
  • Posts: 161
Re: Linux FireMJEvent callback questions
« Reply #2 on: February 05, 2024, 01:54:55 am »

The Automation is only supported on Windows, as it uses Windows specific automation interfaces.

Thanks for the confirmation.

Can an efficient optional registered callback interface for Linux be added to notify the plugin of these playback state changes without incurring network overhead, network latencies and race conditions ?

It might encourage more plugin development.

Thanks much.
Logged
Main - JRMC31 -> custom ALSA_cdsp -> CamillaDSP(2x8 channel 64-bit FIR convolution) -> 8 channel DAC
Office - JRMC31 -> Asus Xonar Essence STX -> W4S STI-1000 -> Mini-Magnepans
Shop - JRMC31 -> W4S MicroDAC -> Adcom GFA-2535 -> B&W Rock Solid

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3961
Re: Linux FireMJEvent callback questions
« Reply #3 on: February 05, 2024, 02:43:57 am »

a websocket that broadcasts changes would be better imv and abandon the plugin approach entirely
Logged

ths61

  • World Citizen
  • ***
  • Posts: 161
Re: Linux FireMJEvent callback questions
« Reply #4 on: February 05, 2024, 04:18:46 am »

a websocket that broadcasts changes would be better imv and abandon the plugin approach entirely

Still need the Steinberg VST3 plugin interface (which uses registered callbacks, much less overhead, latency and no parsing).
Logged
Main - JRMC31 -> custom ALSA_cdsp -> CamillaDSP(2x8 channel 64-bit FIR convolution) -> 8 channel DAC
Office - JRMC31 -> Asus Xonar Essence STX -> W4S STI-1000 -> Mini-Magnepans
Shop - JRMC31 -> W4S MicroDAC -> Adcom GFA-2535 -> B&W Rock Solid

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3961
Re: Linux FireMJEvent callback questions
« Reply #5 on: February 05, 2024, 04:42:17 am »

Still need the Steinberg VST3 plugin interface (which uses registered callbacks).
VST is different thing to an MC plugin, I'm referring to the windows specific plugin interface once used for "automation" purposes. Everything these days is directed to MCWS but the broadcast state part is missing.
Logged

ths61

  • World Citizen
  • ***
  • Posts: 161
Re: Linux FireMJEvent callback questions
« Reply #6 on: February 05, 2024, 04:59:33 am »

VST is different thing to an MC plugin, I'm referring to the windows specific plugin interface once used for "automation" purposes. Everything these days is directed to MCWS but the broadcast state part is missing.

I think this is good reason for there to be a separate Linux Plugin thread/section since my OP is specifically for Linux (Linux FireMJEvent callback questions). 

I would like fast, lightweight, tighter tolerances for VST3 plugin processing, else the race conditions would render them useless.
Logged
Main - JRMC31 -> custom ALSA_cdsp -> CamillaDSP(2x8 channel 64-bit FIR convolution) -> 8 channel DAC
Office - JRMC31 -> Asus Xonar Essence STX -> W4S STI-1000 -> Mini-Magnepans
Shop - JRMC31 -> W4S MicroDAC -> Adcom GFA-2535 -> B&W Rock Solid

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3961
Re: Linux FireMJEvent callback questions
« Reply #7 on: February 05, 2024, 05:24:45 am »

what does VST have to do with this thread?
Logged

ths61

  • World Citizen
  • ***
  • Posts: 161
Re: Linux FireMJEvent callback questions
« Reply #8 on: February 05, 2024, 12:41:40 pm »

what does VST have to do with this thread?

(Plug-in Development) Really ?

https://yabb.jriver.com/interact/index.php/topic,126706.msg878408.html#msg878408

< Add / Remove VST3 Plugins Here >
 
Logged
Main - JRMC31 -> custom ALSA_cdsp -> CamillaDSP(2x8 channel 64-bit FIR convolution) -> 8 channel DAC
Office - JRMC31 -> Asus Xonar Essence STX -> W4S STI-1000 -> Mini-Magnepans
Shop - JRMC31 -> W4S MicroDAC -> Adcom GFA-2535 -> B&W Rock Solid

JimH

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 71368
  • Where did I put my teeth?
Re: Linux FireMJEvent callback questions
« Reply #9 on: February 05, 2024, 02:24:10 pm »

mattkahn,
Feel free to split.
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3961
Re: Linux FireMJEvent callback questions
« Reply #10 on: February 05, 2024, 02:45:31 pm »

(Plug-in Development) Really ?

https://yabb.jriver.com/interact/index.php/topic,126706.msg878408.html#msg878408

< Add / Remove VST3 Plugins Here >

It's a different thing entirely to https://wiki.jriver.com/index.php/Media_Center_Automation which is about interacting with MC itself using its own API. VST is a 3rd party API which is specifically used within the DSP engine and so it strictly concerned with signal processing only (which the MC API is not concerned with)

Logged

ths61

  • World Citizen
  • ***
  • Posts: 161
Re: Linux FireMJEvent callback questions
« Reply #11 on: February 05, 2024, 02:52:45 pm »

It's a different thing entirely to https://wiki.jriver.com/index.php/Media_Center_Automation which is about interacting with MC itself using its own API. VST is a 3rd party API which is specifically used within the DSP engine and so it strictly concerned with signal processing only (which the MC API is not concerned with)

Don't be so obtuse.  Both are plugins, both are written for MC with one being more ubiquitous and applicable to more than 1 host.

They are NOT mutually exclusive as you are implying.

Have you ever used a string library with a math library to create a single shared object ?

Are all of your programs limited to a single header file and single library linked ?

This appears to be the irrelevant off topic point you are trying to repetitiously make.
Logged
Main - JRMC31 -> custom ALSA_cdsp -> CamillaDSP(2x8 channel 64-bit FIR convolution) -> 8 channel DAC
Office - JRMC31 -> Asus Xonar Essence STX -> W4S STI-1000 -> Mini-Magnepans
Shop - JRMC31 -> W4S MicroDAC -> Adcom GFA-2535 -> B&W Rock Solid

ths61

  • World Citizen
  • ***
  • Posts: 161
Re: Linux FireMJEvent callback questions
« Reply #12 on: February 05, 2024, 05:21:01 pm »

In the attempt to keep this thread productive and on topic:

Would it be possible to define a set of states supported by MC (Play, Pause, Stop, Gain=value, Mute, etc.) and then pass the state transitions through the VST3 interface such as the following which implements sample-accurate parameter changes ?

Note: If this is implemented through the Steinberg VST3 interface, it would not be limited to a "Windows Only" feature (3 OSes, 1 implementation/interface).

TIA

Code: [Select]
    Advanced VST 3 techniques

On this page:

    Part 1: Sample-accurate parameter handling
    Part 2: Adding 32 and 64 bit audio processing
    Part 3: Thread safe state changes


https://steinbergmedia.github.io/vst3_dev_portal/pages/Tutorials/Advanced+VST+3+techniques.html#part-3-thread-safe-state-changes
Logged
Main - JRMC31 -> custom ALSA_cdsp -> CamillaDSP(2x8 channel 64-bit FIR convolution) -> 8 channel DAC
Office - JRMC31 -> Asus Xonar Essence STX -> W4S STI-1000 -> Mini-Magnepans
Shop - JRMC31 -> W4S MicroDAC -> Adcom GFA-2535 -> B&W Rock Solid
Pages: [1]   Go Up