cbdevnet / midimonster

Multi-protocol control & translation software (ArtNet, MIDI, OSC, sACN, ...)
https://midimonster.net/
BSD 2-Clause "Simplified" License
499 stars 48 forks source link

Support for sACN #9

Closed sammysmallman closed 6 years ago

sammysmallman commented 6 years ago

Would it be possible that this could support Streaming ACN - E1.31?

cbdevnet commented 6 years ago

Yes, definitely! An sACN backend would probably share a lot of architecture with the existing ArtNet backend, so it might not even be that hard!

If you'd like to try your hand at it:

To start a new backend, you'd have to

This would give you a basic backend entry point, from which you can register the backend with the core using the mm_backend_register function. This function takes a structure as argument which contains pointers to the other functionality provided by a backend.

I'm currently busy with exam preparation until Thursday, but after that I might be able to sneak in some hours of implementing this :)

Thanks for the suggestion!

dmeltzer commented 6 years ago

I'm also very interested in this. Might poke at it over the weekend.

cbdevnet commented 6 years ago

Do you know of any Open-Source sACN producers/consumers to test an implementation against?

The only platform supporting this in production which is available to me would be the GrandMA2 series (and that'll have to wait a few days), though I'd quite like to have my ArtNet Visualizer martrix support sACN, too, so that could be a self-fulfilling prophecy :D

dmeltzer commented 6 years ago

The only open source one I'm aware of is OLA. I've not played enough with it to ever make it work though. https://github.com/OpenLightingProject/ola/tree/master/libs/acn

cbdevnet commented 6 years ago

Just remembered that the MAdot2 series grant one Universe without having MA hardware connected, and the OnPC seems to support sACN, too (at least according to their docs) - might try with that.

Edit: Hm, according to their docs you need hardware, though I distinctly remember from somewhere that it does do one Universe without.

sammysmallman commented 6 years ago

Test with sACN Viewer: http://docsteer.github.io/sacnview/

Sent from my iPhone

On 24 Feb 2018, at 04:15, cbdev notifications@github.com wrote:

Just remembered that the MAdot2 series grant one Universe without having MA hardware connected, and the OnPC seems to support sACN, too (at least according to their docs) - might try with that

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

cbdevnet commented 6 years ago

I just pushed a partial sACN backend implementation, currently only supporting input via sACN. The mapping syntax is the same as the ArtNet backend, documentation will be updated when output is implemented.

Tests with sACNView seem to work :)

dmeltzer commented 6 years ago

I'll give this a try with eos tomorrow, my current project would be much better off with sACN instead of artnet.

cbdevnet commented 6 years ago

Output support is now implemented, still missing are

Limitations:

dmeltzer commented 6 years ago

Thanks for this. I gave sACN support a try today and it seemed to work fairly well out of the box. I noticed that it used universe where artnet used uni, which was not immediately clear in the configs (or maybe you've updated artnet as well).

I did notice more glitches/dropped messages today than I did when testing with artnet last week. I have not dug into the details enough to see if it's midimonster dropping messages or if its something else in my network thats changed, just an observation.

cbdevnet commented 6 years ago

Everything except keep-alive frames is now implemented, marking this backend as complete for now.

Keep-alive frames are on the TODO list.

cbdevnet commented 6 years ago

With be5df1c4e639ca6a7cd70a3122039a1de4588e28, keepalive frames are implemented