Title: Savant
1Savant
Automated music improvisation
- Tony Wu Jay Ni Deri Kusuma
Special Thanks to Prof. Plummer and Cristina
Pop and our testers Tim Lambert, Adriana Miu,
Jon Lau, and You Li
2Architecture
3Algorithms
4Music Representation
Note
Pitch
- Screenshot of Cakewalk Music Creator 3
Time
5Note Representation
Velocity struck volume
Volume (db)
Pitch
Time
Struck time
Release time
6Music Timing
Tempo (beats per minute)
120
1 tick 125 ms
_at_ 4 ticks per beat
1 beat 0.5 sec
_at_ 120 beats per minute
1 measure
7Architecture
MIDI controller
MIDI input file
Input manager
Input thread
Input buffer
Logic
Decision Engines
Libraries and intermediate data structures
Analyzers
Logic thread
Improvisers
Output buffer
Output manager
Output thread
GUI
GUI thread
Synthesizer
Audible sound
Visualization
MIDI output file
8Real-time Music Storage
Circular chunklist
A number of answers n avg. number of notes per
tick N total number of notes stored L avg.
length of notes in tick
9Chord analysis basic chord types
major
minor
dim
aug
dom
half dim
sus4
C
These are like basic colors in painting
Other chords are simply enrichment / inversion /
transposition of these basic feels
Enrichment
Inversion
Transposition
(of C major)
10Chord analysis note domains
These are all C major chords
C I
d VIIb
G IV
Affinity to A, B Distance from F, Ab
Affinity to F, Ab
Affinity to F
Important for generation!
11Chord Analysis Note Desirability
F and F only sound good with high octaves
Higher pitch has less chord determining capability
D,A,B sound good if not too low
C major
Only C,E,G will sound good down here
12Chord Analysis Capturing Richness
C, Db, D, E, F, A, Bb
Absent
Higher notes
Ab
Eb
Strong notes
B
F
G dominant 7 b9 b13
Bass
G
Storing the note distribution of input captures
richness beyond basic types (e.g. major, minor)
13Chord Analysis Capturing Ambiguity
We compute a score for each possible chord
interpretation, and then pick the highest score
to determine chord.
14Decoupling Motif and Chord
C major
G 7
Bb minor 7 9 / F
The same motif
15Offline Motif Fitting
C B Bb A Ab G F F E Eb D Db C B Bb A Ab G F F E
Eb D Db C
One-to-one pitch mapping algorithm with dynamic
programming
Maximize objective function REWARD chordal
fitness as a function of motif and destination
chord PENALTY absolute displacement , relative
displacement TIME BUDGET 60-120 ms per motif
16Real-time Motif Fitting
Maximize objective function per assignment, given
assistance level REWARD chordal fitness as a
function of destination chord, consistency to
assignment history PENALTY absolute
displacement, collision with assignment history
for neighboring notes TIME BUDGET lt 1 ms per note
Pitch
input
mapped
Time
The present
17Determining Key of Piece
HOW? The current key is determined by the
discrete convolution of the input notes with each
major / minor filter.
Performing Key Changes
- Abrupt Using dominant chord of new tonic
- Smooth Leverage current chord progression
C I V vi iii FI V vi -
(CIV I ii - )
18Pleasant Chord Transitions
Chord State Machine
Chord type heuristic
(From music theory)
19Chord Phrasing
Forcing a phrase to end in a chord (e.g. V7)
produces clearer phrase boundaries.
C I iii vi IV ii V7 I V7
If this isnt possible
C I iii vi IV ii I iii V7
Take 2 steps back!
C I iii vi IV ii V7
20Savant Modes