Advice on creating graphical score external...
I have in mind to start development a Max based graphical score system.
Basically its purpose would be to provide an environment that would allow
me to take computational geometry, manipulate it, and map it on to musical
parameters, anyway I want. Ultimately, I would like it to be something
like Algoscore...
http://www.bitminds.net/kymatica/index.php/Software/AlgoScore
I could write the entire thing from scratch, but that would be a lot of
work. Now that M4L is here, I would like to leverage some of the wonderful
features that Live has as a sequencer. My external would keep track of the geometric data and mappings. It would display the score in a separate window, (maybe with jit.gl.sketch). Is there a way I can have my score
external and display sync up with what Live is playing? Is there a shared
clock source?
If anyone knows of a graphical score external please let me know.
Otherwise, any feedback or ideas would be greatly appreciated.
Anthony
dear anthony. +1, i actually cannot believe cycling / anyone has not done this yet. it is 2009 AD after all. your wish is my max-life-long dream/ambition. the idea of finale // pwgl/enp // algoscore right inside max/m4l is mouthwatering. unfortunately, my programming sucks, so the only help i can offer is moral support! sorry, i know that is useless...
i played with "MaxScore" for a while, a jmsl thing, which is worth a look, and could already be used in m4l with minor tweaking. i managed to build a sort of mini-sibelius / openmusic-y type thing with it. unfortunately i ran out of email addresses to keep getting the free 30 day trial thing (!), and other than that it costs a lot ($120 i think) for a jmsl licence. also, it is not very useful / expandable really, but in conjunction with "quintet.net" a nice project overall. "ftm" 'track' and 'scoob' also worth a look, but always frustrating when you hit an ircam-like wall. i think it seems like something from scratch in java (no?) or C (++) (yes?) looks best bet for best possible implementation. however, my knowledge is weak here, as you can probably tell.
i thought about the jitter angle, but might use a lot processing? as far as m4l goes, yes, syncing / timing for such a project would be rock solid between max device and live. in my experience so far. be wary of graphic-intensive floating windows update speed though - this sucks (at the moment) in m4l/live. good luck! keep us informed! sorry for almost useless post!
EDIT: oops, just saw this was a "DEV" forum post sorry...
You should look in the SDK for info about ITM. When Max is being run via Max-for-Live then Live serves the time source for the ITM 'clock'.
Cheers
I think this is a great idea - and one that has long been missing from Max (the ill-fated [timeline] notwithstanding). I'd be happy to help out with testing, feedback, bug finding, etc., though my non-MaxMSP programming skills (other than Csound) are a little rusty.
CNMAT has some jsui stuff for score display, jschord and jsmelody.
as far as I remember they're quite basic... but you might like to give them a look...
aa
Thanks everyone for the feedback. I think right now I leaning
towards a C++ external. There are some very interesting
computational geometry libraries out there, like CGAL, that
would be great to experiment with. I try to stay away from
Java, expecially when doing things that are processor intensive.
So the external would hold the logical representation of the
score: geometric sequences, computational objects, algorithmic
processes, patch objects, and all mapping information.
Tim, i will look in to the ITM interface. Is it safe to assume that
with ITM can choose to have an external clock source (like Ableton Live)
or use an internal clock source (Max)?
Also, if I were to render this graphical score, I imagine the most
efficient way would be to use API drawing commands instead of formatting
commands and sending it to jit.gl.sketch. Is there an API that
jit.gl.sketch uses that I can use as well?
For OpenGL, you will want to use Jitter. This could be writing your own object (see the OB3D examples in the SDK) or using jit.gl.sketch. If you don't need 3d and wish to render in 2d then you can use the jgraphics API as we do in all of the UI objects.
With ITM you can slave your object to any existing named transports or to the global transport using the itm_getnamed() function.
Tim is there a Jitter SDK available for windows? I do not see it in the
download section.
Thanks to the flu going around, the web page has not been updated yet. You can download the now-integrated Max/MSP/Jitter SDK via this thread: https://cycling74.com/forums/5-1-1-sdk-update