Cellular Automata and Music Using Java
Justin Powell writes "Take computers, mathematics, and the Java Sound API, add in some Java code, and you've got a recipe for creating some uniquely fascinating music. IBM Staff Software Engineer Paul Reiners demonstrates how to implement some basic concepts of algorithmic music composition in the Java language. He presents code examples and resulting MIDI files generated by the Automatous Monk program, which uses the open source jMusic framework to compose music based on mathematical structures called cellular automata."
Lets hope it sounds better than DNA music. That was tried a while ago and was horrible.
Josh
I really love this stuff and I'm just finishing my master's in music technology (go figure..). This isn't the first time I've seen CA in music. I know for sure of a cell examples in Max/MSP, PD (Pure Data), and Common Music.
I don't see any real benefits for doing this kind of task in java. It's very nice having another option, but are there any reasons to use this software over the other very good options? I am much more excited about the possibilities with ChucK.
a teacher/performer/artist/programmer at my school did a performance at arstechnica called 'cell phone symphony' where he used the audiences cell phones to make music! Each person sat in one chair, mapped to a grid on his computer. They got special phone connections with the phone company to dial a lot at once. They got a big projector to projet over the audience, and had a spotlight (of sorts, from the projector) pop up on someone when their phone rang. The whole audience watched via a big mirror.
heres the wired article.
I've got old skool sound effects right here. The whole game fit in 4K, even won the 4K Java Game programming contest.
It requires that you have Java installed in order to play. It doesn't work on Linux, tho. Sorry. Complain at Sun to get full screen mode working on Linux.
Javascript + Nintendo DSi = DSiCade
The RIAA announced today that they will be using this technology to phase out recording artists altogether. CDs will still cost $16.99, though.
Unknown host pong.
Could it be?
... sentimental songs which were composed entirely by mechanical means on a special kind of kaleidoscope known as a versificator." --Orwell's '1984'
"Here were produced
Unknown host pong.
If you like that, try this: Fractmus 2000 (win32)
this sig limit is too small to put anything good h
Interesting, though I used Java to visualize symmetrical structures in the music of J.S.Bach. I used stereoscopic 3D (with OpenGL) and 4-channel 3D sound (with DirectSound3D) to 'virtually' present the 4-parts: Soprano, Alto, Tenor and Bass, flying around in 3D, not just visually, but aurally too. It was exhibited 2 years ago.
www.rexguo.com - Technologist + Designer
My personal preference for coding this kind of thing:
KeyKit, an awk-like language designed specifically for manipulating MIDI data.
http://nosuch.com/keykit/
Okay, this risks being called a bit off topic, but it's so cool (and reasonably relevant) that it has to be mentioned. Dot matrix printer music by this group The User has been around for awhile. It's not algorithmic music, but by printing strings of characters simultaneously to different dot matrix printers they make some pretty interesting sounding stuff.
...might be interesting. Play a note at random, choose a note based on the weighted probability of the next note in a corpus of music, then use the first two notes to figure out the weighted probability of the third, and so on.
Then if you go out four notes and only one note has any probability of being the fifth in that series, drop off notes from the beginning of the string until there is more than one possibility and continue. Something like:
1
12
123
1234
(note 5 always follows notes 1234, so drop the 1)
(1)2346
(1)23467
(note 8 always follows 23467, so drop 2, note 8 still follows 3467 so drop 3, then there is more than one possible note)
((1)23)4679 {etc}
Then the music would probably sound really familiar, but just about the time you catch on it segues into another pseudo-familiar tune.
damn, this man was insightful. he wrote about an internet-like structure describing the network of the h2g2 book, but he did also describe (at a very detailed level) how to create and use this kind of sound "tools" in his "dirk gently" novels.
i mean, just read what he wrote about computer interfaces in h2g2 (when ford is breaking into the hq). adams was damn smart and way more funny than clarke.
but did you know that adams did not invent this style of writing sf? read "the star diaries" by stanislaw lem. funny. uh... just read anything written by lem. you think clark or heinlein novels are great? just as an example, do you wanna know where the matrix authors stole the idea of these human-driven fighting robots? "The Invincible".
beer as in "free beer"
Who owns the copyright of the computer generated music? The programer? The user? The machine?
Wow - my best friend is one of the developers of jMusic! It is an open source music synthesis and composition package written in java. You can download the latest version from sourceforge.
:)
or you can get it from the jMusic web site:
http://jmusic.ci.qut.edu.au
jMusic has been used for many other very weird and wonderful things like elevator installations, and many electronic performances. It does heaps of stuff including Markov, gendyn, granular and particle synthesis, dance music and much more
Saying your OS is the best because more people use it is like saying MacDonalds make the best food
I'm puzzled why the poster referred to the title of the guy as "Staff Software Engineer" as if it's something special at IBM. Not to denigrate the work he's done, but 'staff engineer' is not worth mentioning. In context as seen from an IBM Engineers perspective (I'm also staff, fwiw) it's pretty funny that you would even include it. Here's the ranks for those that might care:
Band 1-5: The non-technical types.
Band 6: "nothing" Engineer (new hires)
Band 7: Staff Engineer (basically, you get staff in your first few years at IBM unless you're a total moron, and if you DON'T make staff at some point they basically have to promote or fire you)
Band 8: Advisory Engineer (most IBM engineers spend the bulk of their career as advisory)
Band 9: Senior Engineer (the fastest I've seen senior made was 10 years, and it's typically 15+ before you get to senior)
Band 10: Senior Technical Staff Member or STSM (most engineers at IBM never make it this far)
Band 11: Distinguished Engineer (you have to walk on water and have saved entire villages from destruction to get to this, you basically do whatever you want with a huge budget and work on only the coolest stuff)
Band 12: IBM Fellow (you are the uber shiznit, report to the execs, and the world is your oyster)
Look at this as an insight into the workings of the hive mind at IBM. We are the borg, yada yada yada.
In '97-'98 I wrote a bunch of music theory training programs for the Music department at my school (they eventually became this website), and I tried out MAX first before I went with Java. MAX was far better equipped to handle the music-related requirements (anyone remember Java 1.0.2?). But with Java I could put my applets online, run them on any OS, and (biggest bonus) get some serious experience in a language that would get me my first job when I got out of college. Learning a new language to a level where you can tackle an ambitious project is a big investment. There are a lot of musicians and composers with day jobs as developers (like me) who want to be able to leverage what they already have, if feasible. And nowadays, Java has pretty good support for audio, as general-purpose languages go, so many projects wouldn't be giving up much to use Java.
Here are a few snippets from the jMusic website that suggest why they chose Java for their project:There are more hints at this in the intro of the article, as well.
There are only 10 types of people: those who understand decimal, those who don't, and, uh, 8 other types I forget.
Another program (written in Java incidentally) which among other things generate music: Grammidity
It works on the "evolve" principle where you "mate" two objects, and then let either the user or some algorithm decide which of the children are most successful and can evolve further.
Being bitter is drinking poison and hoping someone else will die