Hi all. First time poster here. I teach MS computer science and am looking for a platform my classes can use to combine visuals and music to make multimedia performances, preferably live code. Since it’s middle school, it has to be not too onerous in terms of syntax, etc. I am already using Sonic Pi for live music coding, and I know that I can output OSC messages from SP into Processing. Just not exactly sure what to do on the Processing end.
I’m hoping some awesome educator has played with this a bit and can help me out. Even links to other stuff is welcome.
Charleston, SC @birv2
I’ve played a little bit (had a spare period this morning). It’s really amazing!
Having said that, it may not work for my situation exactly. I’ll keep exploring. I want my students to be able to write code. I’m sure they can handle Sonic Pi and Processing. Not so sure about Java! And using the gui means you don’t have to do text-based coding. Which is not something I’m looking for.
Well, Processing is Java! PraxisLIVE is a code editor with nodes, built on top of Apache NetBeans, so you’ve got a much more powerful code editor than PDE and support for live coding. You can mostly ignore the node interface if you want. Connect a video:gl:p2d or video:gl:p3d node to the video output, right click and edit code, and you’ve effectively got a Processing sketch that updates every time you hit save.
There’s also built in OSC support that you can easily map to any field you expose.
AFAIK there’s a REPL mode for Processing, but it’s Java-only, so that can be sufficient for live coding. As for something not too OOP-heavy, processing by itself isn’t like that! All of Java’s OOP elements are handled by the internal parser, but if you really want something easier, check out Python mode.
It is up to you to use OOP concept or not. We have a saying in french: “Qui peut le plus, peut le moins” roughly meaning “He who can do the most can do the least”. And this way, student who feel comfy with progrmming will be able to play around with OOP concept and the other one won’t
It’s not a library, it’s a mode. You can download modes by clicking on the mode selector (dropdown bow in the upper right corner) and “Install modes”. Here you can install Python mode as well as many others.
The PraxisCORE runtime is in some ways simpler, but a lot more powerful, than hacks like the REPL mode or anything using HotSwap. It’s also a runtime bringing elements of Smalltalk and Erlang to Java. Nothing wrong with real OOP, as opposed to the typical C++ / Java version! It’s sometimes said that the most OOP language on the JVM is Clojure. Which does bring to mind Quil for an alternative approach to live coding Processing.
Processing.py is extremely cool – and one of the cool things about it is that, in addition to importing pure Python libraries, many of the Processing(Java) libraries can simply be imported and used. This is because it uses Jython and runs on JVM. So you could just import the OSC library and see how it works. Or, for audio, import minim – there are examples of working with sound in the Processing.py example set that installs into PDE when you install the mode.
One downside is that it is Python 2.7 – so your students wouldn’t be learning Python 3. Another is that, due to running on JVM in emulation, only pure Python libraries will work – anything relying on CPython won’t.
I’m using Sonic Pi and doing live coding with that. It can output OSC messages. So what I’m trying to do it capture those messages in Processing and generate visuals. I’m happy to start super simple and have ANYTHING appear in response to beat, volume, pitch, etc. Once I get that down, I can start to build on it.
So rather than grab an mp3, I’m trying to get live messages. Can anyone point me in the right direction for this? TIA!!
Thanks again for the response. I do want to use Processing (or something like it) because my purpose is teaching students to code. PraxisLive is amazing, but it doesn’t have the code aspect that I need for middle school students. Processing (yes, I know it’s Java) is still way more accessible than straight Java for the great majority of 13-year-olds.