You currently have no items in your cart
Here’s a simple starter script for generating permutations in ColdFusion. I couldn’t easily find one online so I created this one based on a javascript version found over on Scriptar.
Scriptar JS Permutation Generator
ColdFusion CFSCRIPT version:
<cfscript>
permArr = [];
usedChars = [];
function permute(input) {
var i = 1;
var ch = '';
var chars = ListToArray(input);
for (i = 1; i < ArrayLen(chars) + 1; i++) {
/* get and remove character at index "i" from char array */
ch = chars[i];
ArrayDeleteAt(chars,i);
/* add removed character to the end of used characters */
ArrayAppend(usedChars,ch);
/* when there are no more characters left in char array to add, add used chars to list of permutations */
if (ArrayLen(chars) eq 0){
ArrayAppend(permArr,ArrayToList(usedChars));
}
/* send characters (minus the removed one from above) from char array to be permuted */
permute(ArrayToList(chars));
/* add removed character back into char array in original position */
if (ArrayLen(chars) lt i){
ArrayAppend(chars,ch);
}else{
ArrayInsertAt(chars,i,ch);
}
/* remove the last character used off the end of used characters array */
ArrayDeleteAt(usedChars,ArrayLen(usedChars));
}
}
mylist = 'A,B,C';
permute(mylist);
WriteDump(permArr);
</cfscript>
Example Output
| array | |
|---|---|
| 1 | A,B,C |
| 2 | A,C,B |
| 3 | B,A,C |
| 4 | B,C,A |
| 5 | C,A,B |
| 6 | C,B,A |
Turkey is in the oven, family is still sleeping, and I have some time to kill before my day becomes a balancing act… and that’s what this timely post is all about. The balance of time. Spend enough time as a practicing musician and you’ll eventually start asking yourself if anyone you know, including yourself, knows how to do anything besides count to the number 4. Ask a few more questions, do some digging, and you’ll drop down through the rabbit hole into the world of ‘odd’ time signatures, polyrhythms, paradiddles, compound meter, and other time-twisting pleasures.
4/4 time is the de-facto standard for popular music. Sure 3/4 was popular back in the day (the day being oh some 100+ years ago) but 4/4 remains strong because it allows our minds to effortless glide through a piece of music on our base instincts. Left foot – right foot – left foot – right foot, tick – tock – tick – tock, wax on – wax off, etc. For the most part our western world is guided by the on-off switch and it takes quite a bit of effort to break this vicious cycle so we can explore other musical worlds.
When first delving into odd signatures… a phrase which I despise because it immediately casts the subject matter as less than acceptable… most people struggle with the overall mechanics of the count. It’s important to understand the counts and basic mechanics, but far more important to move beyond that as quickly as possible and develop a sense of ‘feel’ to the meter. Just like with the practice of scales, one must make the practice musical in order to avoid rigidity (and being a bore.) Nobody wants to listen to you sing “One and Two and Three and Four and Five and” over and over.
So before we get into counts we should take five…
Play this piece for anyone you know, including non-musicians, and they will almost immediately recognize it from TV or film… and be able to follow it. Well it’s 5/4 time. If odd signatures are generally considered too complex then how is this possible? Simply put, it’s not projected as a musical theory project, it’s feel and that is what connects with the listener. Now let’s have Brubeck hurt us a little…
When I first listened to Unsquare Dance I got angry because I couldn’t keep up… even with the intro primer handclaps I just got lost. It’s 7/4. I can follow it on feel, but deconstructing it seemed to take a Herculean effort on my part. I needed a way to increase my knowledge of odd time signatures which led me to Bounce Metronome.
Check out this 5/4 visualization
Now how about a 5/4 over 4/4 polyrhythm?
The visual and sound approach provided by this app is by far the best I have found for quickly learning the feel of time signatures. Within a short timeframe I was able to get over Unsquare Dance and even start developing that sense of anticipation in the alignment of polyrhythms. Go on and check it out… make the time.
Recently I was considering purchasing a USB powered MIDI interface for my development/composition laptop. The idea here being that I would flop some 30+ foot long cables from the composition desk over to the recording desk and DAW. SoftSynths are ok but they often lack detail in harmonic overtones that will rear their nasty heads when you start pushing performances through a more realistic set of samples. I’ve been working on a few things and just got tired of exporting MusicXML to the DAW for previews. I was looking for real-time.
For whatever reason (probably my reluctance to part with cash) I decided to look and see if anybody had virtualized MIDI over LAN. I remember Steinberg made some early attempts with this type of thing long ago for net jams and MIDI has skirted around a CAT5 type connection so surely somebody just got smart and decided to ‘packetize’ the messages in a client/server app. Yes.. they did.
rtpMIDI is a really great little utility to have in your studio toolbox.
In all fairness, Mac has had this for awhile but I’m still in PC world. It’s rare I find a PC based MIDI utility that actually works… that’s why I’m posting this. In a matter of minutes I was able to setup my DAW as a server and connect to it from the laptop client. Running Finale on the client machine I was generating live MIDI over the network to my Midex8 hooked up to a Yamaha P-60. The best part? The laptop was on a wireless connection so I can freely pop into the next room to sit on the couch and still listen to performances or even edit without having to switch back to localized SoftSynth sounds or go back in the studio.
I was asked if there were any videos of the pedalboard in use. At the moment all I have is this older video of me noodling around with the system. The sound is from a room mic on the camera so it’s not the best quality but the video shows interaction between the board and DAW/VST.
Since I finished up the initial pedalboard design my world has flipped, flopped, and spun in too many directions to count. A few short weeks ago my wife and I discovered we have a little one on the way. So all immediate plans to start recording have been put on hold while I prepare the house for this exciting little addition. One nice side benefit to this is that I get to move the studio (again). I always meet this task with a certain level of excitement and dread. It’s great to have a new space, but that always brings weeks of tweaks and room arranging. Hopefully this will be the last move for awhile.
On the project front I’ve started plans for two new boards which will augment my guitar rig. I don’t want to get into the details of one because it is just a little too awesome and ear-popping to give away in words alone… so more to come there. The second of these new boards is pretty simple. I’ve been playing around with Mobius and live looping with Albeton Lite. It’s quite a different animal than studio recording but I’m having some fun so far. I’ll be building a special controller for Mobius based on what feels right once I get more familiar with the system.
Now on to Conjure… my other pet project. I’ve briefly talked about this with a few people on Facebook but the Conjure project is a music composition system I’ve been working on since about Feb of 2010 but is finally getting close to a useful beta. It’s a rather complicated long-term development project but essentially Conjure is a preference engine for producing MusicXML scores. The idea is that given enough information about music theory with a combination of personal music preferences the system can create root song structures. The intent here isn’t to create complete scores as much as serving as a virtual muse. Going through the system has given me a great opportunity to relearn alot of music theory knowledge that’s been lost over the years. At this point Conjure has awareness of about 85 scales and some 60 odd chord structures and how they relate to all the standard western music keys. There is a title generation system, ensemble assembly function, GM MIDI database, drumkit constructor… and hordes of other tables cobbled together for one reason or another. Development has primary settled in with ColdFusion as the web services provider and a mix of XSL/XML/DHTML and possibly Flex for an alternative interface. The past two weeks have been consumed with providing Conjure information about song structures while I’ve just recently started refining the music key/scale selection criteria to introduce harmony and chord progressions (which will then be coupled with the structures.)
Here is an early twiddling from Conjure months ago when it was locked down to a single key but allowed to roam freely among orchestra instruments from IK Multimedia’s Miroslav Philharmonik VST plug in.
More posts from my ongoing blog can be found on Wordpress...
"No Cause, No Condition" - 2010 Acrylic on Canvas - ~ 4x5 ft http://fb.me/MJ9l9MmR
Thu, 02 Dec 2010 04:22:49 GMT
Will he ever paint again??!?!?!? Inquiring minds want to know...
Sat, 25 Sep 2010 00:27:03 GMT
working through applied music theory applications... yeah... a real party
Sat, 17 Jul 2010 16:34:14 GMT
I have two fans. How exciting! :)
Sun, 11 Jul 2010 00:08:22 GMT
oops... database probbie. New works state they were painted in 2008. Will fix in a bit.
Sat, 10 Jul 2010 20:26:22 GMT
"One" http://www.charlesrthompson.com/index.cfm?id=423
Sat, 10 Jul 2010 20:24:18 GMT
"Solo" http://www.charlesrthompson.com/index.cfm?id=422
Sat, 10 Jul 2010 20:24:06 GMT
New works... "Duo" http://www.charlesrthompson.com/index.cfm?id=421
Sat, 10 Jul 2010 20:20:38 GMT
If it gets any hotter maybe the grass will just burst into flame and I won't have to go out there to cut it.
Sat, 10 Jul 2010 17:10:41 GMT
Website tweaked. Check it. http://www.charlesrthompson.com
Sat, 10 Jul 2010 17:08:18 GMT
More tweets to be found...