JamSketch: Improvisation Support System with GA-based Melody Creation from User’s Drawing

>100 Views

October 11, 24

スライド概要

This document describes JamSketch, a system that allows non-musicians to enjoy musical improvisation. It works by having users draw a melodic outline, then generates a melody in real-time to match the outline using a genetic algorithm. An experiment found that while JamSketch was inferior to experienced musicians, it performed as well or better than inexperienced musicians. Future work includes improving rhythm variation and considering relationships between pitch and rhythm.

profile-image

日本大学 文理学部 情報科学科 北原研究室。 「Technology Makes Music More Fun」を合言葉に、音楽をはじめとするエンターテインメントの高度化に資する技術の研究開発を行っています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Feel free to take & distribute photos! JamSketch: Improvisation Support System with GA-based Melody Creation from User’s Drawing Tetsuro Kitahara*, Sergio Giraldo**, and Rafael Ramirez** *Nihon University, Japan **Universitat Pompeu Fabra, Spain Twitter: @tetsurokitahara

2.

Our goal Enable non-musicians to enjoy improvisation Why it’s difficult Players have to create melodies and play an instrument at the same time Technical issues Human Interface Non-musician-friendly, easy-to-input, intuitive & quickly inputable Melody generation Automatic melody generation based on the user’s abstract, incomplete input in real time

3.

Our idea: JamSketch Human Interface User draws a melodic outline on the pianoroll Music generation Once the melodic outline is drawn, a melody is immediately generated with a genetic algorithm

4.

System overview During the playback of the accompaniment 0th bar 1st bar 2nd bar time User Draws a melodic outline at least one bar in advance If the mouse cursor moves to the next bar or the mouse button is released, Determine the rhythm of the melody Determine the pitch of each note Determine expression parameters Play the melody

5.

Determine the rhythm Basic idea High gradient → short notes ● Low gradient → long notes ● 3 Details of algorithm 0 Candidates 1 Tentative rhythm 3 3 3 3 3 3 3 Threshold the gradient 2 Best-fit rhythm Search the closest one from 0 3

6.

Determine the pitches Basic idea Search a sequence of notes satisfying both closeness to and musical the outline likeliness C using a genetic algorithm (GA) 3 A F Details of formulation Chromosome N = (n0, n1, …, nL-1) (ni: note number) Fitness function Similarity to outline Bigram P(ni | ni-1) Delta bigram P(ni-ni-1 | ni-1-ni-2) F(N) = w0 sim(N) + w1 seq1(N) + w2 seq2(N) + w3 harm(N) + w4 ent(N) P(notes | chord) Entropy

7.

Determine expression parameters Use a model presented at [Giraldo & Ramirez 2016] C Feature extraction for each note (Duration, onset, prev. duration, next duration, prev. interval, next interval, namour, chord, etc.) k-NN, multilayer perceptron, ... onset deviation duration ratio energy ratio

8.

Implementation Main program JamSketch CrestMuse Toolkit of Weka Estimation expression parameters Apache Commons Math GA Feature extraction Groovy Java MIDI Toolbox Java Octave Octave Training data 53 melodies with the Tonality-type of Blues from Weimar Jazz Database

9.

Experiment Purpose Confirm the quality of generated melodies Method 1. Participants play improvisation with our system and a normal MIDI keyboard 2. The performances with our system and the keyboard are listed without distinction 3. Other participants evaluate them If there are no clear differences between evaluations for our system and the keyboard, our system can be considered to have human-like composition capability

10.

Participants & performances Participants Performances Experience Play Impr. Use KB Syst. P1 Yes Yes Yes No P2 Yes No Yes P3 Yes No P4 No No P5 P6 Yes Yes No Yes ? System s2 ? System s1 ? KB (P2) u2 Yes ? KB (P1) u1 No Yes ? System s4 No Yes ? KB (P5) u3 ? System s3 ? KB (P6) u4 Yes Yes Yes No STOP

11.

Listening test ● ● We asked 12 researchers / students in musical fields to evaluate them on a scale of 0 to 10 Criteria – Overall quality – Blues-likeness – Pitch appropriateness – Skillfulness – Rhythmic appropriateness – Human-likeness – Melodic variation ● http://www.kthrlab.jp/proj/jamsketch/listen/

12.

Result: Overall quality {u4} > {u1, u2} > {s1, s2, s3, s4} ≈ {u3}

13.

Result: Pitch appropriateness {u1, u2, u4} > {s1, s2, s3, s4} > {u3}

14.

Result: Rhythmic appropriateness {u2, u4} > {u1, u3} > {s1, s2, s3, s4}

15.

Result: Melodic variation {u4} >> {s1, s2, s4} ≈ {u1, u2, u3} > {s3} ≈ {u3}

16.

Result: Blues-likeness {u4} > {u2} > {s1, s2, s3, s4} ≈ {u1} >> {u3}

17.

Result: Skillfulness {u4} >> {u2} > {s1, s2, s3, s4} ≈ {u1, u3}

18.

Result: Human-likeness {u4} > {u1, u2} > {u3} >> {s1, s2, s3, s4}

19.

Discussions ● Our system is inferior to experienced players ● But it is superior (or close) to inexperienced players ● Possible reasons: – Out-of-scale pitches appear at the ends of phrases ● The system does not consider bounradies of phrases – Out-of-scale pitches appear at long notes ● Rhythm and pitches are independently determined – Rhythm is too monotonous ● ● Rhythm needs more variations We obtained positive opinions from participants

20.

Conclusion ● JamSketch: – enables users to improvise by drawing melodic outlines – generates melodies from the outlines using a GA – is inferior to experienced players – but is superior (or close) to inexperienced players ● Future issue: – Improve rhythm determination – Consider dependencies between pitch and rhythm Let’s try it! (on Windows or other Java-compatible platforms) https://github.com/kthrlab/JamSketch/tree/jamsketch-0.1.0-lite