@Override
    public String toString() {
        String suffix = "";
        String prefix = "";
        int oct = octave;
        int acc = accidental;
        int v = value;
        
        while (oct < 0) {
            suffix += ",";
            oct++;
        }
        
        while (oct > 1) {
            suffix += "'";
            oct--;
        }

        while (acc < 0) {
            prefix += "_";
            acc++;
        }
        
        while (acc > 0) {
            prefix += "^";
            acc--;
        }

        String name = valToString[v];
        if (oct == 1) name = name.toLowerCase();

        return prefix + name + suffix;
    }