// Path: src/tools/containers/CircularArrayList.java
// public class CircularArrayList<E> extends ArrayList<E> {
// 
//     /**
//      * Overriding of the get method
//      * @param index Index for the access
//      * @return Corresponding value
//      */
//     public E get(int index) {
//         while (index < 0)
//             index += size();
//         index %= size();
//         return super.get(index);
//     }
// }
// 
// Path: src/main/options/ExecutionParameters.java
// public class ExecutionParameters {
//     /**
//      * Specify if the verbose mode is activated
//      */
//     public static boolean verbose = false;
// 
//     /**
//      * Specify if we train the program (if we fill and save the Markov chains)
//      */
//     public static boolean train = false;
// 
//     /**
//      * Specify the seed for generation
//      */
//     public static int seed = 3657263;
// 
//     /**
//      * Specify the path to the training set (for writing or reading)
//      */
//     public static Path LSTMTrainingSetPath = Paths.get("assets/abc");
// 
//     /**
//      * Specify the path to the trained data (created after training and used for generation)
//      */
//     public static Path trainedLSTMPath = Paths.get("assets/training/trained-lstm");
// }


import tools.containers.CircularArrayList;
import jm.constants.Pitches;
import main.options.ExecutionParameters;
import java.util.ArrayList;
package analysis.harmonic;



/**
 * Class that finds Chord Degree on a specific bar of bar part.
 */
public class ChordDegreeComputer {
    private Tonality tonality_;
// Path: src/tools/containers/CircularArrayList.java
// public class CircularArrayList<E> extends ArrayList<E> {
// 
//     /**
//      * Overriding of the get method
//      * @param index Index for the access
//      * @return Corresponding value
//      */
//     public E get(int index) {
//         while (index < 0)
//             index += size();
//         index %= size();
//         return super.get(index);
//     }
// }
// 
// Path: src/main/options/ExecutionParameters.java
// public class ExecutionParameters {
//     /**
//      * Specify if the verbose mode is activated
//      */
//     public static boolean verbose = false;
// 
//     /**
//      * Specify if we train the program (if we fill and save the Markov chains)
//      */
//     public static boolean train = false;
// 
//     /**
//      * Specify the seed for generation
//      */
//     public static int seed = 3657263;
// 
//     /**
//      * Specify the path to the training set (for writing or reading)
//      */
//     public static Path LSTMTrainingSetPath = Paths.get("assets/abc");
// 
//     /**
//      * Specify the path to the trained data (created after training and used for generation)
//      */
//     public static Path trainedLSTMPath = Paths.get("assets/training/trained-lstm");
// }


// Path: src/analysis/harmonic/ChordDegreeComputer.java
import tools.containers.CircularArrayList;
import jm.constants.Pitches;
import main.options.ExecutionParameters;
import java.util.ArrayList;

package analysis.harmonic;



/**
 * Class that finds Chord Degree on a specific bar of bar part.
 */
public class ChordDegreeComputer {
    private Tonality tonality_;
    private CircularArrayList<Integer> scale_;