Music composing software did a huge step since processors are fast and there is a huge amount of RAM. Almost everything can be done with one single computer, composing and creating the music of a whole orchestra. Even though, the software is mainly based on ancient concepts like piano displays with white and black keys. This is great for old people sticking with old concepts - but to be honest - the piano keys were a nice invention in their times, but are somewhat outdated.
The current software has no clue of the composers intention. So it can not be very helpful supporting him composing new tracks or at live performances. Of course there are many small helpers to do this, but things as explained in the following sections should be a core part of every composing software.
Support of the Fundamentals of Composing
To compose a new music track, usually one starts by "randomly" choosing a key scale. It's about the overall mood and this is usually reduce the 12 tones to 7. Having a key scale simplifies everything so much! I'm really have no clue why this isn't the very basic of each music composing software.
Even it's very unlikely there is of couse the need to change the key scale over time in the track. But it's a matter of fact that for one location in time there should be only one key scale.
As a result, the current key scale should be shown along with speed and rhythm on top. And similar to speed and rhythm, the key scale can change over time — but as I said before — it's very unlikely, so this isn't really a feature which needs high priority.
There are many key scales known. A software should help the composer with his work, and there is no reason why the composer has to know all the details about sometimes even exotic key scales. There should be a list with know key scales. The composer selects the one he needs and has not to worry about it anymore.
To allow a change of the key scale over time in the arrangement view, simple add the key scale as new automation parameter to the master track. It is recorded etc. like the speed parameter.
Especially for Ableton Live the live view is important. To allow a key scale change there, it has to be linked with a "scene". This problem is almost solved in Ableton Live. It works like the scene speed or time signature change:
Backward Compatibility — How to not annoy old users
There should also be the possibility to work without a key scale. This should be the default. In the key view field on the top just a "-" is shown and all the nice key scale features are disabled.
Improvements in the Midi Clip View
The first improvement in the clip view is the "key scale" view of the notes. It takes the current key scale and displays only the matching notes for the selected key scale in the clip:
There is a button like the "fold" button to activate the key scale view. If there is a key scale for the scene or the time in which this clip is placed, then this view should be activated by default.
Now creating a new melody is quite simple. There are lots of things which can be done starting with the key scale:
- Connected controllers, like Ableton Push can automatically pick the current key scale and adjust the input methods.
- There can be an option to automatically filter any MIDI input to only use tones from the key scale. E.g. automatically shift "wrong" tones by 1 to keep them in the scale.
Of course there is the need to override the key scale for a clip or even a single note. This is not a big deal at all. Like the time signature of a clip, there can be a key scale field in which a custom key scale can be set for a single clip and overrides the global key scale. Of course, because of the major impact this should be visible in the arrangement/live view. A such clip should have a special flag.
It's very helpful if notes which don't fit into a scale are highlighted somehow. As shown in the mockup above. The note is displayed but in red, so it's clear this is no note of the selected key scale.
There are of course MIDI tracks which aren't melodic, and therefore shouldn't be affected by all the key scale stuff. It would be anyway nice to have a "drum track flag" for a given track. This would affect the clip editor which does not primarily show notes anymore (as it is already done if there is a drum kit assigned). And of course a such track does not follow chords and neither transportation in general.
Going Further — Chords
The best thing about having a software which knows the current key scale is, this software automatically knows which chords are suitable for the given key scale.
Please think about it, how do most people compose a song. Usually they pick a guitar, singing a melody and searching for chords to support this melody. Or even they have a nice set of chords and are creating a nice melody matching the selected chords.
As a matter of fact: at a single point in time, there is one chord which defines and dominates a part of the song.
At the end, the whole accompaniment of a song can and is usually based on a sequence of chords. So there is no reason why a great composing software should not pick up this simple fact and make it easy to compose using chords.
Because the current chord is something which is somehow global, but has to be flexible in the way how it is shifted around, I suggest the introduction of a chord track.
How a Chord Track Could Look Like
First at all, there can only be one chord track for one song.
The chord track acts like some kind of special input. Similar as MIDI tracks output note, velocity etc. to a synthesizer, a chord track outputs the chord information to any (interested) MIDI track.
First at all this is a great help for generic clips. A generic clip can be a predefined accompaniment clip. Instead of be defined with actual notes, it is defined by chord notes.
A generic clip has five "notes" per octave. The mockup above is not very accurate in this matter. This notes are defined by the actual chord input. This can be 3, 4 or even 5 notes. Depending on the current playing chord the correct notes are played if they are selected in the generic clip.
You could for example create a nice guitar accompaniment over four bars. Convert it into a generic clip and can reuse it for the whole song. Depending on the current chord in the chord track, different notes are played in the generic clip.
Using this principle it is much easier to build up libraries with clips. They do not depend on a certain key scale and chord anymore, they are generic and can be used everywhere.
Hints in the Clip View
The chord track could be used to display the chord tones in the clip view as hints:
This is actually helpful to:
- Compose a new melody avoiding wrong notes.
- Verify a given melody for wrong notes.
- Creating clips with bass lines etc. using the correct notes for the selected chord.
Even More - Transpose and other Wonders
The benefits from key scales and chords do not stop at this point. As soon the compose can make his intent clear the software is able to support him with complicated tasks.
A frequent task is transportation.
Imagine the composer created a nice song using D major as key scale. He created a very nice melody and text for the singer. But... the melody is too low for the singer. Now he has to change everything. Depending on the complexity of the work, this can take a huge amount of time.
But if the key scale is clear for each clip, track etc., it should be easily possible to change the whole key for a whole song or a given part. And this can automatically transpose everything into the right place (except drum tracks).
With chords defined it is also possible to automatically change a clip to match a new chord. One can assume that the notes which are defined for the current chord should be transported to match the notes for the new chord.
Probably I have to explain this topic in more detail: A melody which is written e.g. for a "D Major" chord, which is using "D, F# and A" for a key scale of "D Major". This melody will use only notes from the "D Major" scale and put the emphasis on the notes "D, F# and A".
If I like to change this part of the melody from "D Major" to "E Minor", basically the notes which are placed on "D, F# and A" have to be shifted like this: D => E, F# => G, A => B. All notes between the notes of the chord just have to be shifted to the next matching note of the key scale.
What about Audio Tracks?
Audio tracks currently just have a few parameters:
- Length (time)
- Speed (In great detail)
- Technical details (File, Quality)
So what is currently missing?
Each audio track needs a classification to make things clear for the composing software. Each audio track could for example be in one of these classes:
- Key Scale (for the whole audio sample)
The note is primarily the start note of the audio material. E.g. like "D4". Ableton Live currently have a very nice concept of wrap markers and even can convert melodies into MIDI etc. But the next step is just storing the note with the wrap marker. This will be always the lowest note if there are multiple tones at the same location.
The chord is the chord for either the whole audio sample, or for a given section in wrap markers.
To make things clear: "Note" and "Chord" should be handled similar to the "Segment BPM" value. But there should be also a value for the whole audio sample. The same would be true for the BPM value.
If you ever used loops from a bough library, there is a huge fuss about the BPM value of each loop. So I wonder: Why is this very important information not stored along with the clip. Ableton Live is already creating an analysis file along with each audio clip to store additional information. So why not storing the BPM, key scale, note and chord with each clip when suitable?
Or why not creating a proprietary audio format for Ableton Live?
Sure one where you can easily convert from/to standardized formats. But a format which is suitable for using internally and in Ableton Live libraries and packs.
Loops Could be Easily Organized by Key Note/Chord and BPM
It would be much easier to organize huge amounts of loops by BPM, Key Notes and the Chord. It also makes it much easier to transpose a given audio clip to the correct note or even chord.
There is also the possibility to store the melody information directly in the clip. Extracting the chords or melody into MIDI would be much easier. Also one could correct the melody information, e.g. of a vocal recording before it is exported to MIDI.
Or even a audio track could be used as MIDI source.
I hope I could give you a small overview of the usability of more advanced composing features for Ableton Live. If you like them feel free to join the discussion.