LibArtNet is a Java implementation of the Art-Net 4 protocol as maintained by Artistic License Ltd.
Please have in mind that LibArtNet is still in beta.
However, see the feature list, the roadmap and how to contribute for further information. If you feel there is something missing that is not listed there, feel free to open an issue.
- Basic Art-Net receiver
- Basic Art-Net sender
- ArtDmx
- Sequence number
- 15bit universe addressing
- ArtPoll
- unicast
- sending
ArtPollReply
on state changes - priorities for diagnostic data
- ArtPollReply
- macros
- remotes
- OEM codes (all OEM codes built in)
- short/long names
- equipment styles
- much more
- ArtTimeCode
- 24/25/29.97/30 fps
Planned features are
- Art-Net controller, an abstraction layer using the existing receiver and sender to act as a console
- Art-Net node, an abstraction layer using the existing receiver and sender to act as a node
- RDM support
All classes are documented using Javadoc. However, if there is something missing or unclear, feel free to open an issue.
- Java 1.8 or higher
- Gradle if you want to compile from source
LibArtNet is available on Maven Central and on the release page.
Add this dependency to pom.xml
:
<dependency>
<groupId>de.deltaeight</groupId>
<artifactId>LibArtNet</artifactId>
<version>1.1.2-beta</version>
</dependency>
Add this to build.gradle
:
dependencies {
implementation 'de.deltaeight:LibArtNet:1.1.2-beta'
}
To build a .jar
file to use in your IDE, run
./gradlew :lib:jar
The receiver needs receive handlers which are called when the appropriate packet is received:
ArtNetReceiver receiver = new ArtNetReceiver()
.withArtDmxReceiveHandler(packet -> System.out.println("Channel 63 value: " + packet.getData()[62]));
receiver.start();
// Do other stuff
receiver.stop();
The sender needs Art-Net packets to send, therefore we need a builder instance for the desired packets first:
ArtPollReplyBuilder builder = new ArtPollReplyBuilder()
// report as Robert Juliat Dalis Reference : 860
.withProduct(OemCode.getProductByOemCode("OemRobertJulDalis1"))
.withBindIp(new byte[]{127, 0, 0, 1});
ArtNetSender sender = new ArtNetSender();
sender.start();
sender.send(InetAddress.getByName("127.0.0.1"), builder.build());
// Do other stuff
sender.stop();
Your contribution is more than welcome!
If you'd like to contribute, every help is much appreciated. Feel free to fork, create pull requests and open issues for bugs or feature requests.
For bug reports, feature requests and pull requests there are templates that you can just fill out to provide us with the required information.
Please have a look at the contribution guide and the code of conduct before you contribute.
LibArtNet is licensed under the MIT License. See LICENSE.md for details.