Thanks for the suggestions. I went ahead and re-tooled everything using Forge 1.7.2 w/gradle. Other than the inherent limitations of working with the small set of events available, it's a great approach; thanks and kudos to all who made Forge possible.
A working version of the mod is available at https://github.com/robertkhamilton/osccraft - both as source and as a compiled/reobfuscated .jar
DaWicked1, neat project! This implementation of Open Sound Control streams control data out of Minecraft to be processed in an audio/music programming environment such as Pure Data (http://puredata.info/) ChucK (http://chuck.cs.princeton.edu/) or Supercollider (http://supercollider.sourceforge.net/). I've used similar techniques with the Quake III engine (https://ccrma.stanford.edu/wiki/Q3osc) and the Unreal Development Kit (https://ccrma.stanford.edu/wiki/UDKOSC) for live concerts. Think experimental electroacoustic music, rather than band-style jamming.
I'll check out your mod, looks awesome.
- Registered Member
Member for 6 years, 8 months, and 4 days
Last active Wed, Aug, 13 2014 19:29:01
- 0 Followers
- 4 Total Posts
- 0 Thanks
Jul 12, 2014Hi all,Posted in: Minecraft Mods
I've uploaded the source and mod .jar for OSCCraft, a forge-1.7.2 mod that output Open Sound Control messages for specific player and block-related events.
Files can be found at: https://github.com/robertkhamilton/osccraft
Here are a few specifics:
- Mod outputs player position data and block hit/destroyed events over OSC
- Built into the Minecraft Forge 1.7.2 framework and can be loaded as a standard mod
- Currently, output is simply hardcoded to "localhost:6666"
- Output namespaces for the initial release are just:
=> /osccraft/player <x> <y> <z> <pitch> <yaw> <player-id> <event-id>
=> /osccraft/block/hit <x> <y> <z> <block-side> <player-id> <event-id> <block-type>
=> /osccraft/block/destroyed <x> <y> <z> <player-id> <event-id> <block-type>
Player position (XYZ), rotation and player ID are output on each tick.
Block hit and destroyed messages include block location as well as player id and a limited block-type (just for a few major block types).
Block and player events are filtered to send to each Client (i.e. sent to localhost), though this can be easily tweaked in the source to show all client data to each client.
More updates to come. Any suggestions or comments would be appreciated.
center for computer research in music and acoustics
Jun 30, 2014Thanks for the suggestion. I went a similar direction and used the source from my OSC implementation, changed all my imports to reflect the src (and not the .jar) and recompile and the subsequent reobfuscate worked without error.Posted in: Modification Development
As a follow up question, now after combining my obfuscated classes with the 1.7.10.jar, would I use ModLoader or some other mod to load this? I didn't have any success after simply placing the new jar into a new folder under Versions (and editing the .json to reflect a name change).
Jun 30, 2014Hi all,Posted in: Modification Development
I have a question about recompiling a modded MCP project that includes external .jar files. To make a long story short (and hopefully to avoid some trolling) I've hacked some Open Sound Control classes (OSC) into MCP 9.0.8 to use in a concert later this week. OSC is a UDP-based messaging protocol that is used in computer music and other interactive technology-based art areas (its similar to MIDI but much more flexible).
My mod works just fine when run from Eclipse, but I'd like to network a few local LAN machines together. When I run the "recompile.sh" shell script (on a Mac OS X machine), I'm getting errors because the java -classpath specified in the recompile process doesn't include the external libraries I'm using. Eclipse sees them because I've added them to the Eclipse Build Path.
I'm under a pretty tight time constraint so my question (for now) is simply:
==> How can I get the MCP recompile process to include my external libraries?
** I fully understand that this isn't the most common or recommended way to create and package a mod. After this week I'll go back and learn how to include my changes in a Forge-friendly way so that they can be shared with the community. Just wondering if there's a quick way to get this recompile
I see the python script "runtime/recompile.py" is the entry point into python at this point, but don't see where the classpath is generated for the javac call that it creates, such as:
'"javac" -Xlint:-options -deprecation -g -source 1.6 -target 1.6 -classpath "jars/versions/1.7.10/1.7.10.jar:..."
Errors are caused by the libraries not being found, e.g.:
== ERRORS FOUND in JAVA CODE ==
src/minecraft/net/minecraft/client/Minecraft.java:178: error: package oscP5 does not exist
src/minecraft/net/minecraft/client/Minecraft.java:179: error: package netP5 does not exist
Any help would be most excellent.
- To post a comment, please login.