CerealOSC

A serialosc clone written in Java

This is a hard fork of the serialosc server. We like puns and wordgames here, so we'll call it a soft spoon of CerealOSC. CerealOSC is a Java implementation of the serialosc server. By itself, it doesn't do much. It is intended to be a starting point for you to build your own apps.

Navigate to https://github.com/SitStayCreate/midiosc and download the JAR file located there. CerealOSC is a Java application that requires Java 8 to run. Please download the JRE if you do not already have it installed on your machine. You can find this at Oracle.com

What is serialosc?

Serialosc is a daemon server written by the organization Monome. It allows their hardware controllers, like the Monome Grid, to communicate with open-source apps created by end users. When they first released the Grid in 2007, it represented a leap forward in terms of electronic music. It was in essence a hardware implementation of a Max/MSP object called a matrixctrl. Whether or not this was the source of their inspiration or a parallel development is something I do not know. Three attributes made the Grid a unique device. First, the instrument is a minimalist instrument. The buttons are not pressure sensitive, but instead simply register on/off. This might seem like a regression compared to other instruments focused on percussive performance, but it makes the controller more akin to a DJ manipulating vinyl. Second, the buttons and lights are decoupled from one another. This means pressing a button does not light a light and lighting a light does not trigger a button. This may not seem particularly impressive on its own, however with the third attribute of the Grid it is very powerful. Third, the grid does not do anything on its own out of the box other than send presses and receive LED data. It is up to the community of Monome Grid users to develop apps for the Grid. This makes it extensible. Hacking MIDI controllers to extend their functionality has existed for a long time, however, having a controller where the functionality is completely undefined makes developing apps much more straightforward in terms of creating a predictable result that is possible with many standard MIDI controllers.

Monome Grid apps

Monome Grid apps are available as standalone applications written in general purpose programming and scripting languages like Java and Python. They are also created in audio and video domain specific programming environments like Max/MSP and Puredata. Since the Monome Grid has been around for so long, there have been many apps released over the years that are available free to use. Some have been abandoned, however, the most popular are maintained by the open-source community. While Monome's focus seems to have shifted over the years to focus on hardware devices such as the norns or modular devices (I think they create Eurorack devices), the Grid remains a useful tool for traditional computer musicians.

How can I use CerealOSC?

I have created two apps using CerealOSC. The first is an app named Midi2OSC. Midi2OSC is an adapter for MIDI controllers to communicate with Monome Grid apps. Serialosc takes serial that communicates using UDP messages. UDP is a network protocol that allows you to send messages internally using a computer's ports or externally over a network, for instance ethernet or wi-fi. The second is a standalone Java Swing GUI app named VirtualGrid. This app is a Monome Grid you can control with your mouse.

Originally, CerealOSC was a GUI app that served both of these purposes. However, I have decided to release it as a Java module that can be used as a starting point for you to develop your own apps. The original version is still available in the repo as CerealOSC 1.1.1.