ajm objects

Sequencing, scripting, and more for Max/MSP


Download ajm objects 0.9.2 for Max 5


NOTE: See the included INSTALL.txt for install instructions. If you forget to install the external objects and try opening a help patch, Max may freeze/crash. Don't worry, it's easy to install!

Version 0.9.2 released November 26, 2010.
Read the changelog for what's new.

Highlights:
ajm.ruby Ruby interpreter for Max. Ruby is an easy, yet powerful, object oriented scripting language. This is an MXJ external that gives Ruby access to Max's Java API (so you can do things like script your Max patches), as well as access much of the standard Java and Ruby APIs.

NOTE: ajm.ruby is deprecated. It has been replaced with JRuby for Max. If you are interested in Ruby scripting in Max, use JRuby for Max instead!

ajm.metro A transport-synced metro that outputs time relative to a given starting time.

ajm.midi2coll Store MIDI events from a MIDI file in a coll, which can then be sequenced with ajm.metro. Supports type 0 (single track) and type 1 (multi-track) MIDI files.

ajm.seq Manipulation and traversal of sequences containing numbers, messages, and lists. Includes MIDI note name parsing, support for chords, and more.

ajm.rseq Rhytmic version of ajm.seq. Use together with ajm.seq for modular sequencing.

ajm.psui (ajm.psui) A simple pattrstorage GUI that let's you queue up preset recalls.

ajm.lfo~ An MSP low frequency oscillator with controls for min, max, and waveform shape.

ajm.env~ An MSP envelope generator with independent breakpoint
functions for attack and release that comes with its own GUI object: ajm.envui

ajm objects comes with an extensive set of help files.


Older releases:

The source code for ajm objects is on github: http://github.com/adamjmurray/ajm_objects

Comments

Re: ajm objects

Amazing good works!!!
Thank you.

from Japan.

Re: ajm objects

It is possible to have a version of your ajm objects for Pure Data ?
Thanks
Serolf

Re: ajm objects

A few people have asked me this before. It should be possible for some of the objects.

A few of my objects are written in Java, and luckily Pd has a Java plug-in: http://www.le-son666.com/software/pdj/
I never used that Java plug-in but assuming it works ok, I think some of my Java-based objects (ajm.seq and ajm.rseq) could be ported to Pd. ajm.ruby also seems possible, but a good chunk of it would need to be rewritten for Pd so it won't be a simple project.

Please note I am not going to attempt to do the port to Pd. I simply don't have the time or motivation to support Pd since I don't use Pd personally. All my source code is available on github, so someone who knows what they are doing could make it happen. I'd try to answer any questions if someone needs help attempting this.

Also, some of my objects are dependent on Max-specific features. There's probably ways to rebuild them with similar features in Pd. But ajm.metro, for example, is built on top of Max 5's new timing system and Pd has no counterpart for that as far as I know. So that one probably couldn't be ported.

Snow Leopard

Hi Adam,

I'm having issues using [ajm.ruby]. I'm not sure if it's on my side or on ajm.ruby's side, but the software I wrote worked on Leopard, and now that I'm trying to use it with Snow Leopard it stopped working. Do you know if it should work?

Thanks for your time,
Andrew

Re: Snow Leopard

Well it should work, but I haven't upgraded to Snow Leopard yet so I haven't been able to test it. Unfortunately I probably won't upgrade until early next year, so if there is a problem with Snow Leopard support it might be a couple months before I can sort it out.

In the meantime I'll try to help you debug it if I can. The main thing that comes to mind is the default version of Java on Snow Leopard is Java 6 (probably 64-bit unless you have old hardware), which is a lot different from the 32-bit version of Java 5 that Leopard was using by default. So the problem might be related to that.

Is ajm.ruby completely broken (does it crash Max?), or does it run but gives some unexpected error messages? Maybe try this line of code to see what Java version you are using with ajm.ruby:
puts java.lang.System.getProperty('java.version')

Also, feel free to email me directly via this link over here: http://compusition.com/web/about#contact-info
It will be easier to have a conversation that way.

Re: ajm objects

The most intuitive and useful objects I've yet seen for Max... amazing ! Thanks a bunch :)

Re: ajm objects

Thanks for sharing these great objects !!!!

Re: ajm objects

Hi Adam, thank you so much for these great objects! ajm.ruby came in very handy! Keep it up!