Is there a way to deduct the underlying chords from a piece of music that is based on arpeggios? I mean, when the (say) piano plays an arpeggio, by intention of the composer and the desired harmony, there is a set of notes (chord) implied which is performed with an arpeggiated (up/down/updown, or ostinato?) expression of the underlying notes. I am not familiar with classic music sheet notation, whether there is ever a chord given and an “arpeggio instruction” that the performer plays out. But when I have a MIDI note set with arpeggios, I am trying to get the underlying chord(s) to feed into a backing pad. We’ve had this discussion whether Scaler can do it (and why not), apparently it’s not that straight forward. But an experienced musician (or a composer/arranger?) probably has a way to derive chords from given arpeggiated melodies, no?
Here’s a concrete example… I am currently manually editing the arpeggiated notes, based on the chord I assume they were driven by…
I have used a simplified method to do this, based on the assumption that an arpeggio is a ‘melted chord’, and there is one arpeggio run per bar. It’s not a perfect answer by any means, but it can be a good first try for many arpeggios.
If you have the arpeggio in Live, in the midi editor pull each arpeggio note forward to the beginning of the bar, deleting those note which are repeats… You end up with a series of ‘chords’ at the start of each bar.
These can now be exported and dropped into Scaler’s midi detect.
If there are only 3 stacked notes, it can obviously only detect major and minor; having more notes allow 7ths and so on. It seems to work on most ‘normal’ heptatonic scales.
I’ve found this works well with ‘simple’ arpeggios and non-complex scales. With a bit of prior deleting of notes to drop notes played ‘outside’ the scale , the detected chord sequence can then be adjusted by ear.
Thanks for sharing this, unfortunately I don’t have Studio One. But I remembered that I got DeCoda a while back for a similar reason, to recognize MIDI notes from Music Audio. And it seems that it also extracts chords from melody harmonies. I’m getting there…
I would just select each group of notes (within a beat) and Logic would tell me what chords they are and then feed that into scaler, or play them into scaler, whilst also playing the whole arp. Then I match chords with scale. Not sure if that helps.
You know it’s a bad sign when you buy some software and literally the first thing you want it to do (and would want it to do often) turns out to be beyond its reach and would require a bunch of manual manipulation to accomplish.
How about giving the user the option to choose a duration for each chord in a progression and have Scaler use all the notes played within that timeframe (one bar, for example) as the source data for detection?
This is easily accomplished on the EDT Page (see Setting playback timings/durations), which shows you how to set the duration of individual chords in a pattern.
Another way of doing this is if you bind midi then you can use a midi clip to set the duration of individual chords. You can also change the order in which chords are played in a pattern and have an individual chord play for different durations within the pattern, 4 beats, then 2 beats then 3 beats (see Using Midi Clips to Control Scaler).