Thursday, June 27, 2013
I have a need to tell you about Tonematrixes
I need you to know that visitors to the SongTrellis site are able to create original music using a Tonematrix web page, many times a few moments after they have seen how it works.
Two tiny testimonials
My own experience using the SongTrellis tonematrix page is that I always find a new idea that I want to keep every time I have a chance to use it for a few minutes. This, for example, was a three minute effort created this afternoon as I completed this page.
And once I find a new idea, I know that I can vary it in more ways than I can keep track of.
Visit this page, go to the bottom, and start the last MIDI controller on the page. This page shows submissions from last to earliest. You'll see and hear my original tonematrix idea.
Now work your way back toward the top, listening to each track. These are all variations I created using controls on the Tonematrix page. There's one matrix image that changes the tonematrix tempo and then two that vary the instrumentation for the animation. The next three tracks higher on the page were made by changing the pitch assignments of the tonematrix rows, which produces entirely different melodies which maintain the shape of the originals. The last two were created by shifting the original tonematrix pattern down and then up in their grid,
All of these variations were created by changing a control setting on a tonematrix page, and then pressing a button to generate a changed performance. Usually that's a 10 or 15 second process.
Pretty much everyone who's browser is setup to play MIDI files, will be able to play this Tonematrix generated music. If you click on any of the grid images on that page, the tonematrix loop corresponding to that gird image will play, provided you have a QuickTime Version 7 player plugin installed on your system. This link will explain why this software is currently necessary to run a tonematrix animation.
In the last week, I've seen a 4 year old write their first piece of music after being shown the interface. Even after I had studied music for years as an adult, I never had an expectation that I'd be able to easily write a pleasing small piece as quickly as he did. Now that I use tonematrixes, that's always my expectation.
When I saw him the next day, he asked "Can I play that game with red and green squares again"? I was confused at first because I wasn't used to thinking of a tonematrix in that way.
What is thees thing, what you call it, a tonematrix?
A Tonematrix is a rectangular grid, a kind of music production tool displayed on a webpage, that performs a piece of music in a loop, as soon as one of the tonematrix grid squares is turned on via a mouse click.
A person who touches a Tonematrix interface for the first time, is likely to experience an interesting musical result as soon as they make their first mouse clicks in an empty, newly created Tonematrix.
Once they've been primed with a small number of hints, it's in their power to complete a musical sounding composition a few moments later.
The URL that launches a new Tonematrix is: http://www.songtrellis.com/tonematrixAnimate
There's a "Tonematrix" link that appears in the link bar at the top of most pages on SongTrellis that will launch that.
Here are the hints:
1) Choose a grid square in the Tonematrix and click on it. The background of that selected square will change to be colored red in order to show that it now contributes a sound to the Tonematrix loop, and the loop will begin to play. When it's time for your chosen grid square to play its part in the loop, it's color will change to green for as long as it sounds.
If you click on a colored cell, you silence it and its color changes back to white to show that it no longer contributes to the loop.
Here's the lay of the land in a tonematrix, before we continue with hints 2, 3 and 4:
Squares that are in upper rows of the grid produce a high sounding pitch. Those that are in lower rows of the grid will produce lower sounding pitches. As you move lower in the grid, lower pitches sound. Grid squares on the same row will play the same preassigned pitch. There's an exception to this rule that will let you reach up or down to pitches that lay between the row pitch assignments, if you feel the need.
Squares in columns on the left will sound before squares that are farther to the right in the grid. All cells in the same column start and stop at the same instants and play for the duration that's been preset for that column. The instant that column's time slice is exhausted and its cells stop playing, its neighbor to the right starts any turned on any turned on cells it has. As soon as the last column stops, the matrix first column plays to restart the loop
Back to the hints
2) Now choose a square to the left or right of your first choice in a different row, and click there. You'll have created a two pitch melody that continually loops.
If you've placed your two pitches in non-adjacent columns, click on some square in one of the empty columns that were left between your originally selected squares, in a different row than your first two choices. If the squares you clicked on first are in adjacent columns, click on another square before or after those.
3) Listen to the three pitch melody you've recorded in your tonematrix, if you don't like how that new pitch feels in combination with with your original two pitch choices, turn that square off by toggling it off with a mouse click and click on a square in a different row of the column.
It may be that you enjoy the sensation added to your piece by your last mouse click, but the pitch that this turns on, seems like it is sounding either too early or too late in your loop for your taste. In that case, toggle off your last choice, and click on an earlier or later square in the same row. Remember: all squares in the same row of a tonematrix sound the same pitch.
4) Turn on as many pitches in the Tonematrix grid as you need to, until you've created a loop that you enjoy listening to.
If you have questions, ask them here
Software that must be installed on your web browser to play a Tonematrix loop animation. Why it's necessary.
Tonematrix loop animation depends on a QuickTime 7 player plug-in being installed on a visitor's web browser. QuickTime provides the timing progress reports down to millisecond resolution that are necessary to keep a Tonematrix animation loop in synchronization with its music performance.
QuickTime Version 7 is the last QuickTime version that Apple released that provides MIDI support for web sites.
MIDI was the only feasible music production method that would've given the fast music generation speed necessary to provide instant edit feedback needed to handle Tonematrix changes. Producing the Tonematrix music track in mp3 or ogg would take several, sometimes many seconds, to generate and more seconds to transmit to the viewer's web browser. This music generation and transmission lag would totally destroy a Tonematrix's responsiveness to speed of thought music changes.
Perhaps someone has a software MIDI sequencer that can be bound to a web page. I only know about ones that take a substancial part of a minute to make a new sound ready to play. Instrument changes can take place nearly instantly, barely glitching the tonematrix performance, when QT 7 plays the music.
Tuesday, April 2, 2013
I'll play it and tell you what it is later
As you listen to the beginning of the 'If I Were A Bell' performance on the "Relaxin" album, you hear Miles Davis tell his engineer Bob Weinstock "I'll play it and tell you what it is later".
I've got lots of new SongTrellis technology to introduce, so I'm going to adopt Miles' attitude for a day, and quickly demo a lot of new things via links that point to the new good stuff. Later I'll loop back, as I'm able, and explain what I've done in greater detail.
That loop-back-to-explain may take a while to complete. If you want to ask questions about any of this before the more complete explanations hit, follow the Comments link that appears at the bottom edge of each home page posting . If you follow one of those links, that will launch the message in the Discussion group that is the source of that text and autoscroll to the Disqus comment box for the posting, where you can post questions or comments.
There's also a type-in box below that starts up a reply thread in the SongTrellis Song Discussions. That's best to use if you want to include a score or MIDI performance as part of your post. Disqus doesn't provide facilities for those kinds of inclusions yet.
OK, check it out:
Instant chord symbol animations for chord progressions
SongTrellis can perform an animation that shows the chord symbol for each chord change at precisely the instant it sounds in the MIDI performance of that chord progression. Here's an animation that I setup for the "If I Were A Bell" changes.
Creating this was a 15 second process for me:
- Open the page for If I Were A Bell in The Changes
- Follow the SongTrellis Excerpt Service link and press the Play button that appears on that page
- Follow the "Launch Tunetext page for this except" link that appears below the Play button at the instant the excerpt starts to play.
- On the Tunetext page, press the Perform a Chord Change Animation button that appears to the right of the score that is displayed.
SongTrellis plays Interval Animations
Any Tunetext score, which specifies a melody with chordal accompaniment, can be animated in an instant using a newly invented animation technique, which reports the melodic interval and harmonic intervals formed by every note in a piece at the instant they sound in the performance.
Here's an interval animation for one of my compositions "The Shell Cracks Now".
To see how this was created:
As an interval animation begins, a 2 x 2 display grid is displayed on the animation page.
As the animation plays, the content of the grid cells changes to identify the melodic and harmonic meaning of each melody note the instant that it begins to play.
The top row of the grid identifies the melodic interval by which the melody moved to reach the currently sounding note. The left top grid square displays an upward pointing arrow as the melody moves up, a downward pointing arrow as the melody moves down, and a horizontal arrow when the melody rides on the same pitch. The right grid square displays the name of the melodic interval that was traversed to reach the currently playing melody pitch, and colors the grid square background to show the color code for that size of interval jump.
The bottom row describes the harmonic meaning of that note. The bottom left grid square displays the name of the chord that currently sounds in the performance. The bottom right square displays the name of the harmonic interval formed between the current melody pitch and the root of the accompanying chord and colors the grid square background to show the color code for that harmonic interval.
- Follow this link to a Tunetext page for "The Shell Cracks Now".
- Press the "Perform an Interval Animation" button, which appears in the middle button group that is positioned to the right of the music score on a Tunetext page, whenever a score is eligible to launch an Interval Animation (ie. it includes a melody track and a chord accompaniment track).
An optional presentation, the Interval Flow, can be generated while an Interval Animation plays
Interval animation pages contain a Show Interval Flow switch that can turn on a spectacular visualization of the interval content of a melody and direction of travel of a melody. That Flow display is punctuated to show the boundaries and relative sizes of the phrases of the melody.
Here's that an Interval Animation that generates an Interval Flow report for my composition "Aerobatic"
An Interval Flow display draws a reduced size rendition of the direction arrow and interval color stack that is generated for each note as it plays in the stock interval animation, and flows that stream of colored squares corresponding to newly heard notes to the right in one row of the display. That display row is accumulated in a display area to the right of the interval color grid.
Whenever there's a pause in the melody, which marks the beginning of the new phrase, the display is advanced to the next line of the display where the interval flow for the notes of the next phrase will accumulate.
When the animation completes, the Interval Flow has left behind a bar chart that shows the size of each phrase in the piece's melody.
Each colored column corresponds to a note of the melody, and identifies the melodic and harmonic intervals that were sounded when that note played.
The Harmonic Interval Palette
The Harmonic Interval Palette has been listed on the SongTrellis site's link bar for a long time, but not many visitors have tried it. It's a way to quickly discover for yourself the different kind of harmonic sensations that can be created by holding a melodic pitch above a chord of a particular type.
It's accessible via the Harmonic Interval Palette link on the link bar. For me, that's on the bottom line of the link bar.
When you select that link, a panel launches which allows you to name the root and type of a chord. There are 12 pitches that you can choose for the chord root. There are 45 chord types that the SongTrellis music editing system can produce. Each of those types produce a different kind of harmonic sensation. Choosing a different root controls whether the sound that you select will be pitched higher or lower as it is built on the chosen chord root.
As soon as you press the "Display Palette" button on this selection panel, a page will launch that will let you audition all of the 12 harmonic intervals that can be produced above that chord choice.
If you review the harmonic interval choices for an unfamiliar chord type (if you are just starting to learn music, they're probably all unfamiliar), you can find those intervals that produce a pleasant sensation for your ear, and those that you must treat with caution, because hearing too much of that sound might be a bad experience. Experiments with the Harmonic Interval Palette can prime your ear when you are preparing to compose new music.
The Leap to Harmonic Interval page
The new Leap To Harmonic Interval link on the SongTrellis link bar will launch a page that allows you to audition different ways to move melodically within a particular chord and between different chords.
Where to find the link:
Leap to Harmonic Interval currently appears immediately after the Harmonic Interval Palette link on the bottom line of the SongTrellis link bar.
Using the Harmonic Interval Palette, you might have found several intervals that sound really good above a particular chord. Those intervals might be goal sounds that you'll choose to visit when you write a melody that uses those sounds or to invoke during an improvisation. When you use a harmonic interval in a melody, you move from other pitches to reach that goal. This new Leap page lets you audition almost all of the different motions that you have available to move to your chosen goal sound.
When you follow the Leap to Harmonic Interval link, a target chord, a goal harmonic interval that will be played above that chord, a melodic interval leap size and a direction of leap (up or down) will be randomly chosen, and a music example and score will be generated that starts with a pitch that is the specified melodic interval size and direction away from the chosen harmonic interval forming pitch of the goal chord, and that places the next note on a pitch that creates the specified harmonic interval.
If you like what you hear, you've found an idea that you can use to begin your own music composition. If you find the randomly generated idea distasteful, you can change the controls and choose a different melodic interval size, different melodic interval direction, different harmonic interval goal, or different goal chord. As soon as you change these settings, your new idea will be performed and displayed for you.
New Chord Grid behavior - Chord cycle animations
The default Chord Grid on the SongTrellis page shows 45 rows that are labelled on the left with a chord type name. The columns to the right of the chord type name show the 12 possible distinct pitches that you can build a chord of that type upon. Those chord roots can be organized by 11 different chord root motion choices and any of the 12 possible pitches can be chosen as the pitch to be shown in the leftmost column of the grid.
With 12 x 11 different setting root motion and leftmost pitch settings, 132 different root arrangements are possible to display in the chord grid.
Each of the 11 chord root motions produce a characteristic sensation as you move from root to root within a row of the grid. You'll also find that for a particular chord root choice, there is a similarity of sensation in traveling through a root cycle in different chord type rows, even though the different chord types produce sensations that vary from extreme consonance to extreme dissonance.
The new behavior: if you mouse click on a chord type name in the Chord Grid, one complete cycle of chords whose roots move by the selected chord root motion size will be performed. At the instant that each chord in the cycle is played, you'll see that its root name is highlighted in red. You'll see that the some of the root motion choices will form a root cycle that will visit all 12 of the possible root pitches on a chord grid row. Others choices will form cycles of 6, 4, 3, and 2 chord roots. You'll know that a root motion choice forms smaller root cycles when you see that end of cycle mark ('|') appear in the grid rows.
As soon as the cycle begins to play, to the right of the chord grid, you'll see that you have the choice to add a number of chords that you choose from the cycle to add to the Chord List that is accumulated on the right side of the grid.
Music tool lore pages
There are a large number of different music tools available to be used on the SongTrellis site: the Tunetext page, the Tunetext and Workscore graphical Score Editors, Tonematrix, Play Rhythm, the Rhythm Web, Chord Grid, Interval Animations, full score animations, the Excerpt Service, the Harmonic Interval Palette, and the new Leap To Harmonic Interval page.
We now have a dedicated page that will serve as an index to pages that collect the lore that details how to best use these tools. The new Music Tool Lore link that appears on the SongTrellis site link bar will take you there.
I've completed lore pages for the Tunetext page, the Chord Grid page, and the Play Rhythm page. You can see there's a lot of work to do here.
The Chord Grid, Play Rhythm, and Tunetext pages all display a discreet "Lore for Best Use of" link towards the top of the page that will launch the proper lore page for that music tool.
I'm trying to capture everything that is known about how these pages can be used most completely and productively. Each lore page towards the bottom presents a comment box where you can type a comment to ask questions or suggest lore that should be added to the page.
Lore pages are all rendered in the form of outlines that allow me to hide the finer details of these facilities in collapsed outline headings within these documents in order to reduce the likelihood that I'll snow you with a blizzard of details. And you can collapse and expand headings of these documents, to focus on the subtopics that you wish to read about
Sunday, January 20, 2013
George Coleman should be recognized as a Jazz Master
Every year since 1982, the National Endowment for the Arts honors a small number of jazz musicians as NEA Jazz Masters. The great tenor saxophonist George Coleman has reached his 76th year, and has still not been accorded this honor.
Remember that George was the tenor who blew sublimely on Herbie Hancock's Maiden Voyage album with Freddie Hubbard at his elbow and with Herbie, Ron Carter and Tony Williams stretching time underneath his lines in wondrous ways.
And remember how he played during the celebrated NAACP benefit concert of February 1964, when the Miles Davis Quintet (Coleman, Hancock, Carter and Williams with Miles) recorded the music for the My Funny Valentine and "Four And More" albums, an incandescent evening in the history of jazz performance.
His mastery has been undeniable since those early career recordings nearly a half century ago, and has not diminished. As a mid career checkpoint, listen to what happened when he joined the Eastern Rebellion collective in the mid-80's.
On Change.org there's been a petition effort organized over the past few days to collect signatures to support the idea that George Coleman be named one of this year's NEA Jazz Masters.
I signed early this morning, and hope that you'll consider adding your name to the list.
Thursday, January 12, 2012
Dave, what have you been doing recently?
Since my last home page posting, a good part of that time I spent developing a cool music composing tool for SongTrellis visitors to use called a Tonematrix.
What's a tonematrix?
A Tonematrix is a kind of music creation web interface that plays a small looped musical composition. It displays a square grid on a web page, with clickable grid squares, whose columns represent ticks of a metronome or the succession of durations of a rhythm pattern, and whose rows represent one pitch out of a harmonious collection of pitches.
Clicking on a blank tonematrix grid square causes that row's pitch to play starting at that column's metronome tick within the tonematrix loop's tick sequence.
How do you play with a tonematrix?
This URL will display a newly created, pristine but silent tonematrix, waiting for your first composing action:
You'll launch this URL whenever you follow the "Tonematrix" link that appears now in the middle of the top row of the link bar at the top of pages on the SongTrellis site.
You'll hear it play musical sound and perhaps see it animate that music (provided a capable animation-ready web browser is running) a second or two after you click inside any grid square within the matrix with your mouse. The time to respond to a click action at any instant reflects the current computing workload of the SongTrellis web servers.
By default, each matrix column corresponds to one tick of a metronome that clicks at a fixed tempo, and the pitches that play for a column are assigned from top row to bottom row using pitches of a specified chord or scale that are replicated over several descending octaves. Permalink
How does a tonematrix work?
As soon as a user clicks on a blank grid square in a matrix, they are taking an action that adds a sound to the music loop that the Tonematrix software plays. The instant a user clicks on a square in an empty Tonematrix, it's color changes to red, the pitch corresponding to that square's row at the instant specified by its column is added to the matrix loop, and the Tonematrix player begins to loop through the matrix performing it. Permalink
A tonematrix can animate a musical idea in an instant
On web browsers that run HTML5's Canvas animation package (Firefox, Safari and Chrome), a tonematrix will animate to show the pitches that are playing at any instant in the matrix loop. If animation is permitted, as soon as the next metronome tick occurs, all of the the red colored squares in the corresponding matrix column turn to green to show that they are sounding their pitches.
As soon as the next click takes place, all of the green colored grid squares in the last column are changed back to red, to allow the next column begins to play and show green. As an animation takes place you will see a vertical band of green squares that will loop repeatedly across the matrix from left to right.
If a person doesn't like how a particular square makes their piece sound, they can click on that square again to toggle it off, thereby silencing the pitch that this square added to the tonematrix performance.
What makes a tonematrix loveable?
I love this most about a Tonematrix: using one it's possible to show a person, who does not possess even one word of prior music vocabulary, how to compose, depending only upon the tiniest initial instruction and their own innate sense of musical rightness.
I love how quickly I can find new musical ideas when I use a tonematrix.
When a person clicks within a grid square, the SongTrellis server prepares a new, changed version of their loop. When that new version of the piece is delivered to their web browser a second or so after their click action, the new music plays and the animation restarts, to let them hear how their music sounds and see how it looks. If they discover that they've made an unpleasant change to their piece, they turn that square off with a mouse click and and click on another square that may please their ears more, and again they'll hear the audio reflection of their editing action, almost instantly.Permalink
Shape shift an idea into something better
Because the tonematrix is looping away playing the current version of the music, waiting for another user mouse click to change the music that's playing, it's easy for a tonematrix user to quickly decide if the new version of the loop satisfies.
Frequently, they'll feel that they had gotten the pitch of the next sound right, but that it might sound better if it happened at a later or earlier tick than their first try. They can make that pitch sound earlier by clicking a square to the left of their original choice in the same row. They can make it sound later, by clicking a square to the right of the original.
It will also happen that they might like the contour of their idea, the way that it rises an falls, but feel that their exact pitch choice is not precisely the right one for their ear. It's easy to toggle off the less effective grid square and listen to the grid square neighbors that reside in the rows above or below that first experiment.
If you compose at a piano or with a guitar, you must precisely remember the pitches and timings of the idea that you've just stumbled across, so that you can write them down. That skill develops while exercise it. A tonematrix though is a musical ratchet tool that precisely remembers your current best idea as you grow your piece, allowing you to compose even when your musical memory is still under development.Permalink
Intuition gained from tonematrix can motivate learning the musical lingo and concepts that will allow one to compose easier and with better control (my belief)
Once folks have acquired some intuition about how musical shapes work in a tonematrix, I believe it will be much easier for them to learn vocabulary that will allow them to develop their musical ideas ever faster, at whatever time they decide that such learning has value for them.
Remember this is a site dedicated to providing and tools and musical know-how for folks. Now that I've introduced the tool, I intend to help you develop your know how.
Perhaps parallel kinds of music animations can help
There's a "Launch Tunetext" button in the interface, which will launch a viewer to show the music notation translation of the current matrix in a new window. From the Tunetext window that launches, you can ask the SongTrellis server to prepare an animation that draws each note and chord on an initially empty music staff at the instant each of those objects sound in the score.
This kind of animation cannot be instantly produced like a tonematrix animation, but the server instantly returns the URL where the new animation will be delivered one or two or a few minutes later, and continuously posts a status report at that URL until the moment the animation replaces the status report and starts to play.
A tonematrix composer, who doesn't read music notation yet, can look at a notation animation and quickly appreciate that the rising and falling note series on a music staff shows the contour of a musical idea in the same way that the up and down transition of sounding squares in a tonematrix animation charts a melody's contour.
When a tonematrix is used, there's enough musical safety built in that it's hard to roll into an instant train wreck, which nearly always happens when a beginner touches a new instrument or music production tool.
Because the matrix pitches are assigned using a particular named chord or scale whose pitches harmonize with one another, it's relatively hard to find pitch successions in the matrix that are musically senseless, so long as only one chord is dialed in for the matrix, which is the default setup for a newly created tonematrix.
This is the opposite experience that beginning musicians have when they try press a succession of keys on a piano or strum strings on a guitar while fretting for the first time. Unless they are quite lucky, they nearly instantly run into a musical train wreck. Permalink
Your webmaster Dave Luebbert's Tonematrix testimony
Testimonial hat on:
As soon as I started to use this interface, I began to easily invent musical ideas that I don't believe I could have crafted previously. Finding chord accompaniments that satisfied me for the melodies I invented, became especially easy to do. Before I began to compose with a tonematrix, I had found that this was extremely hard work, given my level of skill.
I started to find new ideas with varied shapes in a few seconds time that would have been a laborious slog to discover using almost any of the other music invention methods I know how to invoke.
I'm thrilled whenever I can create software that turns nearly impossible to accomplish tasks into something that's easy to do and easy to teach, so working to better the capabilities of the tonematrix interface has been a thrill.
Testimonial hat off.Permalink
An amazing thing I discovered once I had a Tonematrix available to play with
Nearly always, once you've found an idea in a matrix that sounds good for a chosen pitch set, when you change the matrix controls to use a different chord or scale for its pitch assignments, you'll likely find that the matrix still plays a pleasing idea, albeit with a different emotional complexion. With this capability available, you can vary an idea in hundreds of ways and quickly find a variation that you can use to extend your composition in an interesting new way.
Once I've found an idea that I like, there's likely hundred's of different sensations and emotions that can be expressed by applying different pitch sets to that base idea which has been recorded in a tonematrix.
Just to show what's possible, here are some example Tonematrix compositions
1) a loop that plays an idea composed in less than a minute that plays through a D6 chord. This loop has a cheerful, consonant sound.
2) this example performs the last tonematrix through a different chord, a Bb7Alt, which has a darker, more dissonant feeling to it. To create this, all I did was to change the Chord Root and Chord Type menus in the controls to the right of the tonematrix, and press the "Change Performance Now" button. After 15 seconds of effort I was able to audition this new music.
3) this two measure tonematrix is used to perform a 4 measure chord progression. This generates music that performs the tonematrix pattern using the first two chords of the progression and then plays a different but similar melody by interpreting the tonematrix using the pitch sets of the last two chords of the progression. This music took about 5 minutes to find.
4) this shows a 4 measure tonematrix that is played through a 12 measure chord progression. The tonematrix pitchset is stretched to fit each new chord at the instant it begins to sound resulting in a melody that accommodates each chord change. Composing this was a ten minute effort, with most of the time devoted to choosing the chords to include in the progression. Permalink
Here's a three sentence beginner's instruction to get someone rolling with a Tonematrix:
Click on a grid square. If you dislike what you hear, toggle it off with a click and click a different square in a different column, until you hear something that you like.
Click on squares to add new pitches to your loop until you feel like you have composed a complete idea.
Thursday, March 24, 2011
A new Play Rhythm service and its rhythm descriptions
I'm going to describe here a simple language for describing rhythms that hand drummers play. I think this language can be extended to describe any metered rhythm that is used in music.
There is a new service on SongTrellis, the Play Rhythm service that performs and notates rhythms that are described using this rhythm description language.
If you enter the Play Rhythm URL, without any additional parameter specifications, like this:
the service will invent a new single voice rhythm expressed in this description language, show it's notation and perform it, with a click track marking the beat.
The rhythm examples that are shown below all have links attached that will play the example with accompanying click track using the Play Rhythm service.
SongTrellis Rhythm Descriptions - the simplest building blocks
A lot of rhythmic information can be captured by writing down strings of symbols consisting of the numerals 1 and 0. In this description scheme, a 1 is an instruction to make a sound and a 0 is an instruction to remain silent.
If we can assign separate one syllable word translations for 1 and 0 and then speak those translations in order, we can speak a verbal representation of a rhythm. Since we are trying to describe hand drum patterns, lets agree to say the word "hit' whenever we encounter a 1 in a rhythm symbol string and say "don't" whenever we encounter a 0 in a rhythm string,
So if we saw the rhythm description 10010101, we could verbally translate that as
Similarly when we saw 011101 we could verbally translate that as
Now if you think of each word as a instruction to perform a particular action with a rhythm instrument, "hit" instructs a musician to strike a drum with your hand or a stick. "Don't' means that during the period of time that word is spoken, no action should be taken to produce sound with the instrument, leaving a gap, which musicians call a rest, in the sequence of rhythm sounds produced.
We can make these lists of rhythm symbols arbitrarily large.
would have the verbal translation
Thursday, January 6, 2011
SongTrellis Rhythm Notation and the playRhythm service on SongTrellis
The SongTrellis Rhythm Player, a service available on the SongTrellis website, responds to a basic URL of this form:
Following the rhythm= in the URL, the Rhythm Player service expects to find a rhythm pattern specification. The playRhythm service expects that rhythms will be described using a small, newly coined language which we'll call SongTrellis Rhythm Notation
The simplest rhythm specification
The simplest rhythm pattern specification is a string of an arbitrary number of 1 and 0 characters like this
Such symbol strings are interpreted a symbol at a time from left to right.
Characters of a specification are mapped in one to one correspondence to a series of evenly measured ticks of a clock, of a metronomic click track, or a mentally imagined series of ticks. A 1 is an instruction to the reader to make a sound in synchrony with the next tick of the tick stream. A 0 is an instruction to be silent for the following tick. Musically, a 0 is a specification of a rest.
Any number of 1 and 0 characters can be included in a simple pattern. The pattern is by default considered to be the specification of a loop, a pattern of hits and rests that repeats indefinitely. By default, the SongTrellis website's rhythm player service, which responds to playRhythm URLs, will repeat a pattern 4 times when it is performed.
Adding a reps= parameter to a playRhythm URL controls the number of repetitions that will be performed of a pattern. The parameter value that is placed following the equal sign is always an integer number which specifies the number of times the pattern should be repeated.
For example, the URL
will repeat the four tick pattern 1001 eight times.
By default a rhythm is accompanied by a click track when it plays.
Setting fClickTrack=0 in the URL will turn off the click track accompaniment
performs pattern 1001 6 times without a click track
Punctuated rhythm specifications
By punctuating the simplest rhythm specification in a small number of ways, more complex rhythms can be notated.
In all but the simplest rhythmic situations in music, the hits in a rhythm (the instants that a sound is made) do not coincide with the ticks of a metronomic clock. Instead the stream of measured background ticks that provides the rhythmic framework of a piece of music are used to mark the beat within a piece of music. The time within a beat is subdivided by varying counts, and musical events within a piece all begin to sound at an instant marked by a particular subdivision of one of the beats of a piece.
Dash characters (the '-' character) can be inserted between any 1 and 0 character within a simple specification to mark the boundaries of beats within a rhythm cycle.
Adding three dashes in the middle of a simple spec, for example, breaks the 1 and 0 sequences of the simple spec into four groups. Those groups specify a sequence of 4 sub-patterns that will sound within the duration of a 4 beat cycle.
Consider the rhythm
a sixteen beat cycle.
If we punctuate that spec with a dash character every four ticks, we will have the four beat pattern
which plays the idea four times faster, with the beat sounding at the beginning of the pattern and every four subticks after that, on the first tick of each subgroup.
If the count of 1 and 0s in the simple pattern up to the next dash character or the end of the entire pattern is n, that beat wii be subdivided into n equal parts, and sounds will be performed at the beginning instant of those subdivisions within the beat.
An example of a beat delimited pattern:
were the original pattern which subdivides the second beat 4 times
would play the subpattern 0101 within the duration of the third subdivision of the second beat, effectively playing that pattern using a clock speed of 1/16 of a beat duration (a duration of a quarter beat divided again by 4).
Bracketed sub-patterns of a beat
When a simplest specification, a string of 1 and 0 characters, specifies a beat ( is delimited by dash characters), that simple specification can be bracketed without changing the specifications meaning.
01--001" specifies the same pattern as 01-0101-001
More interestingly, an integer number can be written immediately after a dash character and before the left square brace, like this:
This stretches the subpattern 0101 to play over the three beat duration of beats 2, 3 and 4 of the total five beat duration specified, with 01 played during beat 1 and 001 played during beat 5.
An integer prefix written in front of a bracketed beat spec instructs the Play Rhythm interpreter to stretch the bracketed pattern over a duration of that count of beats. This has the effect of slowing the clock down by that integer factor until the bracketed pattern is completely performed, at which the original clock setting is reestablished.
The characters 1 and 0 are reserved in rhythm specifications to denote subticks of rhythm pattern. If you need to use an integer scaling factor that begins with the digit 1, place a hat character, '^', in front of the integer count
specifies a 12 beat pattern that stretches the subpattern 0101 over the ten beat duration of beats two through eleven of the pattern.
If the integer used begins with an integer between 2 and 9 inclusive, the hat character may be used as a prefix but is not required syntactically.
Scaled bracketed patterns inside of a beat specification
If a bracketed sub-pattern is written within the interior of a beat (ie. the brackets have 1 or 0 characters listed before or after), that sub-pattern will be time scaled so that it is performed over the duration of more that a single beat, by placing an integer number preceded by an underscore character in front of the left bracket.
Here the first beat of a two beat pattern is subdivided four times, with the 5 subtick pattern 11011 played over the first three quarter of the beat, and a subtick marking the beginning of the last quarter of the beat.
The second beat is subdivided 5 times, with hits occurring at the beginning of the beat and when two-fifths of the beat have elapsed.
Any valid rhythm pattern can be bracketed and time scaled so that it can be performed with the duration of any number of beats or any number of subticks.
Bracketed patterns can be nested to arbitrary depth.
Multi-voice rhythm ensembles are easy to notate so that playRhythm can perform them. Each voice specification is listed in sequence, delimited with a comma.
When a comma is recognized within a rhythm pattern specification, the playRhythm interpreter adds a new voice to the rhythm score, and considers the specification following up to next comma, if any, or to the end of the entire rhythm specification to be the notation of a new rhythm pattern that will be played in synchrony with any previous voices that have been added to the rhythm score that is being built.
If the number of beats and subdivisions of each beat described for each voice of the ensemble is the same, the box notation produced by the playRhythm for each voice will be highly regular, making it much easier to correlate the patterns played in one voice with those in other voices.
If there is a mismatch between the count of beats used in different voices, when the ensemble pattern is repeated, the mismatching patterns will float with respect to one another, so that different parts of the rhythms will be performed against each other on each repetition until the ensemble has been repeated enough times to finally establish a larger repeated rhythmic cycle.
Once a rhythm is found that sounds good, it's easy to substitute the box notation symbol for a particular percussion sound for 1 symbols in the rhythm. The star symbol '*' is a synonym that can replace 0 symbols in the rhythm specification.
The symbols 'B', 'O', 'S', 'H', 'T', 'Ss', 'So' and 'r' which encode types of percussion sounds
in Box Notation can substitute for 1 symbols in a specification. If they appear in the rhythm description, they are displayed in the corresponding box of the box notation that is produced.
Default instruments, pitches, and volumes volumes are assigned to these symbols and determine how the rhythm is orchestrated for performance.
For each voice specified in the rhythm notation, a corresponding inst1=, inst2=, inst3= etc name/value parameter can be added to the URL to override the default bindings for the different percussion instrument sounds.
If the symbols 'B', O' and 'S' are used as substitutes for a 1 symbol in the first specified voice of the rhythm,
would cause the B symbol to be performed using instrument 16385 (the standard MIDI default drum kit), volume setting of 80 (can vary from 0 to 127), playing a D pitch from the drum kit in the 4th octave range, 'O' using an E pitch from the fourth octave range at volume 90 using the default drum kit, 'S' using a D pitch from octave range 4, at volume 80 on the default drum kit.
The name/value parameters that can modify a playRhythm URL:
The only required parameter of a playRhythm URL is
rhythm= whose parameter value follows the syntax of SongTrellis Rhythm Notation
bpm= takes an integer value that may vary from 1 to 999 and sets the tempo of the rhythm performance measured in beats-per-minute units. The interpreter's default tempo is 120 bpm.
fClickTrack= takes 0 or 1 as parameter values. A 1 setting, the default, means the beat will be marked using a click track. A 0 setting means that the click track will be suppressed during performance.
reps= takes an integer value, 1 or greater, which determines the number of times the specified rhythm will be performed. The default reps value is 4.
pulse= takes a fractional parameter with integer numerator and denominator as a specification of the beat pulse value (eg. 1/2, 1/4, 1/8, 1/2 would be valid and typical pulse settings) that will be used when a music notation score translation is produced. The default pulse setting value is 1/4.
instN= where N is equal to the count of the number of rhythm voices specified by the rhythm parameter notation.
The values expected are documented in the previous section of this document and define the instrumental orchestration that will be used to interpret specific percussion sound symbols that may substitute for 1 and 0 symbols within a rhythm specification.
Advantages of using the SongTrellis playRhythm specification language to notate rhythms
Extremely quick feedback to hear what a rhythm idea sounds like
The rhythm submitted is translated into a downloadable MIDI sequence within a fraction of a second by the SongTrellis playRhythm service. Such MIDI sequences will be performed automatically by properly configured web browsers as the playRhythm reply page loads.
Music score and box notation is produced and viewable in the web page that performs the rhythm.
In the same instant that the MIDI performance is generated, a music score for the rhythm is rendered as a downloadable and printable JPG format image.
Also, if the rhythm notation is in a simple enough format (without bracketed patterns that subdivide or scale a tick), the rhythm box notation that hand drummers in America and Europe use to notate a rhythm is produced. The procedure to interpret box notation is so easily taught, experience shows that musical neophytes can quickly be taught to read and perform rhythms notated in this manner.
Rhythms from printed musical scores and those expressed in box notation can be quickly transcribed into playRhythm notation
Extremely easy to vary an idea and quickly audition the variation
A rest tick within a rhythm can be changed to cause a sound to be produced, by changing a 0 symbol in its description to a 1. A hit in a given rhythm can be silenced by changing a 1 symbol in its description to a 0.
Adding or removing a 1 or 0 symbol from a rhythm description, changes the way that a beat or sub-tick subdivides implicitly and immediately varies the meaning of the rhythm to the listener.
Inserting a bracketed description at some point in a rhythm, causes a burst of rhythmic activity to take place at that instant in the rhythm. Removing a bracketed subexpression simplifies a rhythm and reduces the perception of intensified activity at that point in the rhythm. Moving a bracket to new beats or new tick positions, varies the sensation produced by the rhythm.
Applying a scaling factor to a bracketed sub-pattern stretches that sub-pattern over a specified number of beats or sub-ticks, which makes it very easy to produce polyrhythmic effects, where differently subdivided rhythm cycles play against one another.
Easy to produce, vary and experience polyrhythmic ideas
Many find that learning to hear and perform music that uses such ideas is difficult. Since a playRhythm interpreter can perform such ideas immediately, listeners and performers can improve their understanding of and intuition for these kinds of rhythm ideas.
Varying the scaling factor in front of a bracketed sub-pattern in the notation, produces and varies these kinds of effects.
Easy to produce hand drummer's box notation, when a rhythm is expressed using the simpler forms of the notation. Easy to resolve nested, bracketed notation into simple form via software.
The more complex, bracketed notation (possibly nested) can be resolved by software into simpler notation that is box notation expressible, at the cost of increasing the number of subdivisions that must be used to accurately express a complicated rhythm.
The bookkeeping necessary to vary a rhythm on paper using music notation or using a music editor is expensive in time and mental calculation and is prone to error.
If a performer or composer wishes to experiment with rhythms that use varied subdivisions of beats or sub-beats or different levels of subdivision within the same pattern, they have to mentally do a large amount of fractional arithmetic for each note in the pattern to properly represent it notationally. It's extremely easy to count incorrectly, so that the rhythm that they have in mind is misstated. This can easily take several minutes to write down, even with software assistance.
Producing more instances of a complicated rhythm, can require a prodigious feat of memory to reproduce the proper sequence of durations, or more frequently requires using the first notation of the idea as a model, which can be difficult to follow visually.
Scaling a rhythm to stretch or shrink an idea's total duration using normal music notation also requires lots of mental calculation, that can be accomplished in the playRhythm notation by changing an integer scaling factor to a new value.
Many characteristics of a rhythm or rhythm ensemble are immediately apparent and easily extractable by examination of the notation.
It becomes easy to notice the similarity and differences between rhythm patterns. Noticing the location and density of 1 or 0's immediately gives a reader some idea of the activity and complexity of a rhythm. Once one becomes aware of common motifs that occur in specifications, these ideas become memorable, a kind of rhythm alphabet, which suggests related or contrasting ideas that could be added to a rhythm.
When such notation is available, it's much easier to mentally picture how a rhythm goes
The playRhythm notation expresses an idea in a much smaller visual space, than when it is spread across an inch or two of music notation. It becomes possible to recognize common motifs that can be recognized as blocks within playRhythm notation, that are easier to memorize.
A rhythm's notation can itself be used to name and index a rhythm automatically.
Many more rhythms can be invented, than can easily be named. It's true that some patterns become known as parts of well-known ensemble rhythms or as the basis of particular performance styles and acquire independent names, but its laborious work to coin an adequate name for a rhythm that is newly discovered.
Listing a rhythm as a sequence of durations is lengthy, redundant, tedious to read, hard to mentally interpret, and hard to memorize. Also, such an expression can be scaled to fit different duration schemes in any number of ways, which makes it difficult to canonically identify when a particular rhythm idea has been invoked.
The playRhythm notation is compact, suitable for display within a web form or the user interface of music editing software. Characteristics of the rhythm can be noticed by easy inspection of the notation, and it is much easier to recognize motifs within such notation, which aids memorization and mental or computer assisted recall.
A particular orchestration of a rhythm can easily be translated into canonical format using 1 and 0 symbols, so that different ways of orchestrating a rhythm don't obscure its underlying identity.
Since the expression of a rhythm is expressed textually, it becomes easy to search via search engines and using text search within application programs
When music is only represented is music notation or as a musical performance it's difficult, quite expensive, and frequently impossible for software to reach inside those representations to detect features within a piece. It's extremely valuable to have a parallel expression of a piece in the text domain and manipulable using the extensive text search and transformation software facilities that are available via the web and on personal computers.
Such rhythm specifications can easily be zipped together with sequences of rules that specify pitch sequences or pre-listed pitch sequences via software to produce new melodies
This kind of capability to zip pitch sequences with a collection of rhythmic ideas increases the number of ideas a composer or performer can audition per unit time as they invent new musical compositions, increasing the flow of ideas that they consider for inclusion in their piece.
Thursday, March 25, 2010
Score Animations Rendered in a few seconds by a new SongTrellis Animation Service
I'm working on an Animation Service that any visitor to SongTrellis can use to generate an animation that shows precisely how a musical score they specify should be interpreted at any tempo. If you don't know how to read music, these animations will precisely demonstrate for you how a score is performed, show how music notation is translated into audible musical sound.
The process of rendering the animation as a QuickTime movie for small scores usually completes in less than 20 seconds. Frequently it completes before 5 seconds have elapsed. Rendering large scores can take a minute or two.
Since the animation rendering process does not complete instantaneously, animation requests can stack up during busy periods, so requests are queued and a progress report is returned so that users can anticipate when their animation will be ready to watch.
I believe that early users of the service will find that animations render quite quickly.
Initially, you'll be able to use this facility even if you are not signed in a member of the SongTrellis site, in the interest of getting folks to kick the tires on this new feature of the site.
What does a score animation look like?
When a score animation begins to play, a blank music staff is displayed onscreen in the animation video's display area as its soundtrack starts to sound. At the instant each new note or chord sounds in the score or when a rest initiates a period of silence in a score voice, those score elements are added to the staff, showing a visual equivalent of each musical sensation that you hear in the performance.
As a piece plays, you see a traveling wave of notation that grows to the right. When staff real estate is exhausted on the bottom right of the score image , the page is turned, and a blank staff is drawn for the next measures of the composition to play onto. The animation continues in this manner until the performance of the music ends.
Here are several animations I created while I tested and debugged the Animation Server:
Click on the links to play them. You'll see a download progress indication shade the animation's scroll bar from left to right as the animation downloads to your computer. On most web browsers, the performance of the animation will stutter until the download completes. If you decide to press the play button on the movie controller early to experience the stutter, you can restart the animation after download completion by pressing play a second time or slide the scroll bar thumb to the left to experience it properly without playback hesitations.
Luebbert, why are you working on this?
I originally implemented this animation facility in my music editor thinking that viewing scores properly animated would help me in my musical studies and would give me better feedback and help develop better intuition as I composed new music.
Animated scores have proved to extremely useful to me in my own musical development, so I want to see if they make a difference for visitors to the SongTrellis site when I deliver them via a commonly used video format.
Besides that, I have some pride that perhaps I've created something before anyone else in the world has thought to do it. So far as I can tell, no one has tried to provide such a service on the Internet before now.
Can I claim the prize? Eventually I'll find out. If I'm not the first, I'll be one of the first.
You can make score animations for yourself using the SongTrellis site right now
Here's a newly composed score presented by Tunetext service that's available on SongTrellis:
Click on music to play
If you mouse click once on top of this music, this music will play and a Tunetext page will launch.
A Tunetext Service response page is a kind of factory for building music examples that you can publish on your own websites. In a second or two's time, the service builds a MIDI sequence and score image for a piece of music encoded within a music description that's recorded inside a URL, whenever such a URL is submitted to the SongTrellis site. The server decodes Tunetext URL score descriptions and builds the score that was specified in the URL.
To respond to a Tunetext request, the service builds a page that performs the music as a background sound and displays the score image for the music, both of which you can download to your own computer.
Below the score image on that page, several sets of links are listed that generate HTML code so that you can present this newly created music on your own websites in a number of different formats. There's a link included with each set to email the HTML to your email mailbox.
It's also easy to submit your music to SongTrellis so that you show up in our SongTrellis Composer listing, if you care to present your work here.
Watch for the "Create an animation" link on Tunetext pages
Immediately below the Tunetext score image I've included a new link titled "Create an animation for this tunetext". If you click on that link an animation corresponding to that score will be built by the site's Animation Server. As soon as the animation is added to the service's rendering queue, a web page is shown that shows you the link that you'll use to access your animation when it's ready to play.
While the animation is being rendered, if you click on that link you'll see a progress message that reports its position in the queue if it needs to wait for rendering or the number of seconds since rendering started if the rendering process has started. You refresh the progress page to get a new progress report.
When the animation is ready to ship to your web browser, the progress report is replaced by the actual animation which will start to render in your browser, if the browser is set up to play QuickTIme movies. If you like what you saw and heard, you can press that Back button on your browser and use your browser's download process to save your own copy of the animation on your machine.
You can customize a score a great deal by tweaking Tunetext parameters before you send it to be animated.
If you press the "Edit Tunetext Parameters' button on a Tunetext page, a page will launch that will contain many different parameter settings that you can change. You can change instrumentation or the score tempo. You can choose how many staff systems should be visible in the animation and the width of the animation. You can choose to play the score with a click track that metronomically marks the beat in your piece. You can color pitches in the score differently to help you identify the melodic or harmonic meaning of a particular note in the score.
Any other easy ways to get hold of a Tunetext page so we can start an animation?
A high percentage of the tune pages in "The Changes" department of SongTrellis, include a link towards the bottom to the SongTrellis Excerpt Service. This provides a form that lets you take a slice out of score that has been posted on SongTrellis and play it, loop it or customize it for yourself.
Once you set the bounds of your excerpt and press the Play button in the Excerpt Service form, a link will be displayed on the line immediately below the Play button ithat's titled "Launch tunetext page for this excerpt". Clicking that link will launch a Tunetext page, which will include the "Create an animation for this tunetext" link that you can use to request generation of a new animation.
Can I animate an existing musical composition that I have music for?
If you have sheet music for it, it can be a pretty fast operation to transcribe that into a tunetext stream that describes your music. You can type the tunetext description directly into Tunetext Entry form that you can access via the URL http://www.songtrellis.com/tunetext.
Once you press the "Submit" button on the entry form, the music specified by the tunetext will be synthesized and displayed as a score image. The "Create an animation for this tunetext" link will be provided below the score image.
Can I animate a score that I've composed using SongTrellis Workscore Composer page?
Sure. Right above the image of your score in your composer window, there's a link titled "Create Tunetext URL for Workscore". Follow that, and you'll see the "Create an animation for this tunetext" link on the tunetext page that launches.
Monday, August 24, 2009
I've been making lots of jazz, Brazilian and New Orleans music recos (recommendations in Lala-speak) over on the Lala site today.
Here's what I've pointed folks towards (ordered first to last) in response to things I noticed they were listening to:
Here are the recos to new music I've received that I listened to today that I thought were keepers:
There were three others that weren't to my taste but I would have to buy access to those tracks to link to them.
Here's music I discovered today by watching the listening activity of the 50-some people I follow on Lala:
Saturday, August 22, 2009
New Public Ideas Department
SongTrellis now has a Public Ideas department. If you follow the link, you'll see a list of the days on which new ideas have been submitted.
If you click on the link for a particular day, like this one for August 8th, you'll see a list of tunetext buttons.
When you click on one of the score images, the music specified by that chord image will be launched into a tunetext window and will begin to play. If you press he "Edit This Tunetext" button, the tunetext specification will be loaded into an editing form, along with a set of controls that can be used to customize the score specification.
There are controls to change the score tempo, instrumentation, display format, color code the notes in the score in different ways, among others.
If you change the settings of these controls. the score will play with the changes you've requested once you press the "Submit" button.
Thursday, April 23, 2009
New hardware and software for the SongTrellis site
I'm upgrading the MacMini that handles music editing requests on SongTrellis.
If you use the Excerpt Service, the Chord Grid, Tunetext, or any of the Workscore editing pages (Workscore Composer, Workscore Chord Entry, or Chord Entry By Grid), all of those functions now execute on that Mac Mini. As a result, you should notice that just about any operation you execute on those pages will respond a quarter second to a half second faster.
If I've done my job right, that's really all you should notice about this change. If you find any feature of the site that's not working the way you expect, let me know, and I'll see if it's happening because of the changes I've made to the server setup. I should be able to fix such problems pronto.
I'm also right on the verge (tomorrow, if all goes well) of making a big change to the way SongTrellis is hosted. Ever since I opened the site, the site's server software has run on Dell Power Edge servers that run a Microsoft Small Business operating system.
That new MacMini is powerful enough to do everything the Dell servers did, and will be much less of a hassle to maintain and less costly to run.
Unless I hear of terrible problems, tomorrow I'll make the change that will cause SongTrellis to be entirely hosted on the new MacMini. This means that I'll change the site's configuration so that when a user asks to see a page on songtrellis.com, that request will be directed to IP address 126.96.36.199, the address of the Mac Mini, rather than 188.8.131.52, the IP address of the Dell server.
This configuration change will be noticed by all of the name server computers in the world over a 24 hour period. When the name server that provides your web browser with the IP address for songtrelis.com finally notices this change, your web requests will begin to be handled by the new MacMini server.
Earlier this afternoon, I copied every member Workscore from the Dell server to the Mac Mini. Around 4pm PST, I changed all of the music editing links on the SongTrellis linkbar to use URL's that run on the MacMini server.
If for example, you followed the "Workscore Composer" link, you would find that it now loads a URL that reads as http://184.108.40.206/workscoreComposer2 rather than http://www.songtrellis.com/workscoreComposer2. That way when I change the name service record for the site, there will be no possibility that you'll make edits to your workscore that will be forgotten when all processing shifts over to the MacMini.
24 hours after I make the name service change, I'll change the music editing URLs on the site again so that they all point to www.songtrellis.com.
This whole website migration process should be complete sometime late on Saturday.
If you run across any problems, let me know via email at davidlu at songtrellis.com. You can also call me via Skype. My Skype ID is daveluebbert.