package Ġint ellij . music . core ĊĊĊ Ċ class ĠCircle Of F ifth s Se qu encer Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġprevious Note Ġ= ĠPair (" C ", Ġ 3 ) ĊĠĠĠ Ġprivate Ġval Ġmodes : ĠList < Scale Se qu encer > Ġ= ĠlistOf ( Major Scale Se qu encer (), ĠMinor Scale Se qu encer ()) ĊĠĠĠ Ġprivate Ġvar Ġcurrent Mode Index Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġnext Note (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġprevious Note Ġ= Ġmodes [ current Mode Index ]. next Note ( previous Note ) ĊĠĠĠĠĠĠĠ Ġreturn ĠM idi Notes . note To Midi ( previous Note ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Ch ord (): ĠList < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġch ord Ġ= Ġmodes [ current Mode Index ]. get Ch ord () ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmutable ListOf < Int >() ĊĠĠĠĠĠĠĠ Ġfor ( note Ġin Ġch ord ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( Midi Notes . note To Midi ( note )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetCurrent Scale ( major : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( major ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Mode Index Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Mode Index Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġchange Mode () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Trying Ġto Ġchange Ġmode ") ĊĠĠĠĠĠĠĠ Ġcurrent Mode Index Ġ= Ġmodes . size Ġ- Ġ 1 Ġ- Ġselect Random ( listOf ( 0 , Ġ 1 ), ĠlistOf ( 0 . 5 , Ġ 0 . 5 )) ĊĠĠĠ Ġ} Ċ } Ċ