Android Open Source - GuitarScalesBoxes Scale






From Project

Back to project page GuitarScalesBoxes.

License

The source code is released under:

Apache License

If you think the Android project GuitarScalesBoxes listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.darkmentat.GuitarScalesBoxes.Model;
/*w  w  w. j  a  va 2  s .c o m*/
import java.util.Arrays;
import java.util.List;

import static org.darkmentat.GuitarScalesBoxes.Model.NoteModel.NoteValue;

public class Scale
{
    public final NoteModel Tonic;
    public final String StepSequence;
    public final String ScaleName;
    public final List<NoteValue> NotesInScale;

    public Scale(String scaleName, NoteValue tonic, String stepSequence) {
        this(scaleName, new NoteModel(tonic, 0), stepSequence);
    }
    public Scale(String scaleName, NoteModel tonic, String stepSequence) {
        Tonic = tonic;
        StepSequence = stepSequence;
        ScaleName = scaleName;
        NotesInScale = Arrays.asList(parseStepSequence(stepSequence));
    }

    private NoteValue[] parseStepSequence(String stepSequence){
        char[] steps = stepSequence.toCharArray();
        NoteValue[] notes = new NoteValue[steps.length+1];

        int k = 0;
        NoteModel curr = Tonic;
        notes[k++] = curr.Value;
        for(char step : steps)
        {
            for(int i = 0; i < Character.getNumericValue(step); i++)
                curr = curr.getNext();
            notes[k++] = curr.Value;
        }

        return notes;
    }

    public boolean isNoteOnScale(NoteModel note){
        return NotesInScale.contains(note.Value);
    }
    public boolean isNoteScaleTonic(NoteModel note){
        return Tonic.Value == note.Value;
    }
}




Java Source Code List

org.darkmentat.GuitarScalesBoxes.Activities.Main.java
org.darkmentat.GuitarScalesBoxes.Activities.Scales.java
org.darkmentat.GuitarScalesBoxes.Activities.Settings.java
org.darkmentat.GuitarScalesBoxes.Controls.GuitarView.DisplayerFretBoard.java
org.darkmentat.GuitarScalesBoxes.Controls.GuitarView.FretBoard.java
org.darkmentat.GuitarScalesBoxes.Controls.GuitarView.GuitarView.java
org.darkmentat.GuitarScalesBoxes.Controls.GuitarView.OnFretIntervalSelectedListener.java
org.darkmentat.GuitarScalesBoxes.Controls.GuitarView.StandartDisplayer.java
org.darkmentat.GuitarScalesBoxes.Fragments.CustomSetting.java
org.darkmentat.GuitarScalesBoxes.Fragments.ScaleDescription.java
org.darkmentat.GuitarScalesBoxes.Fragments.ScalesOverview.java
org.darkmentat.GuitarScalesBoxes.Fragments.SelectNote.java
org.darkmentat.GuitarScalesBoxes.Fragments.SettingsOverview.java
org.darkmentat.GuitarScalesBoxes.Model.Box.java
org.darkmentat.GuitarScalesBoxes.Model.GuitarModel.java
org.darkmentat.GuitarScalesBoxes.Model.GuitarSetting.java
org.darkmentat.GuitarScalesBoxes.Model.Metronome.java
org.darkmentat.GuitarScalesBoxes.Model.NoteModel.java
org.darkmentat.GuitarScalesBoxes.Model.PreRecordedSoundPlayer.java
org.darkmentat.GuitarScalesBoxes.Model.ScaleDefinition.java
org.darkmentat.GuitarScalesBoxes.Model.Scale.java
org.darkmentat.GuitarScalesBoxes.Model.SoundPlayer.java