Strange Loop 2019 - Enhancing Angklung Music Rehearsals with Modern Tech
Overview
Angklung is a traditional musical instrument from Indonesia. This instrument has a lot of variety in how it is performed; a common format is the orchestral format in which 15-30 players gather to form a team. Playing angklung in this way is fun but also presents some challenges that are hard to solve manually. In this talk, we will learn how technology is used to improve the quality of rehearsals of this age-old instrument.
Trapsilo comes from Bandung, Indonesia. Bandung is the 3rd largest city in Indonesia.
Trapsilo has played Angklung for over 10 years and has played in Italy, Greece, Malaysia and Singapore and has also conducted several concerts and performances.
He has been programming far longer than he has been playing Angklung. Naturally he thought of programming ways to solve the problems his groups had when doing performances.
What is an Angklung?
They are made of bamboo tubes. Larger Angklung produce lower frequency notes and smaller Angklung produce higher frequency notes.
To visualize Angklung pitches look at a keyboard. Each Angklung represents one key on a piano keyboard.
How is it played?
An Angklung performance is done by many performers. Each performer plays multiple Angklung.
Angklung Cipher Notation
Traditional western music notation cannot be used. Angklung players read a Cipher Notation. It is read it left to right, top to bottom.
Angklung Cipher notation encodes a lot of information like key signature, octave, absolute and relative notes.
What are the difficulties of an Angklung performance?
There are more Angklung than players, so how do we distribute the Angklung among the performers?
Can We Distribute Angklung randomly?
No. There are problems with this naive approach.
Multiple Angklung are assigned to each person in order to cover all of the pitches required for a performance.
Performers cannot play two Angklung of a different pitch at the same time.
Each player will want to participate evenly. They will not want to just play one note.
A player assigned a bunch of small Angklung will have a hard time playing them. Likewise a player assigned a bunch of large Angklung will also have difficulty. The players need a good range of Angklung assigned to them.
The Solution
Let's program it.
Since this is an optimization problem, there is no one right answer. There are multiple acceptable solutions.
The Angklung Cipher notation is a table like a spreadsheet. So we can put Cipher Notation into Excel.
What kind of algorithm could help us distribute the instruments better among the performers?
Algorithm Goals
What is the optimal distribtion of Angklung among players?
- Minimize collisions (2 players can't play the same note)
- Maximize amount of player's time (don't want to leave someone out :( )
- Good balance of size of Angklungs
The Algorithm
- Read in the spreadsheet in
- Compute note collisions in the piece (build a collision table)
- Compute player time
- Compute Angklung size distribution
Use the collision table to assign a weight to the Angklung.
Decrease the weight based on the play time.
If a player already has a big Angklung, don't give that player a big one.
Do we consider the strength of the Angklung player?
Player ability is hard to quantify. Initial implementation took this into account but was later abandoned.