module.exports = (function(){

    var basic_types = {
        five: ['R','P5'],
        maj: ['R','M3','P5'],
        min: ['R','m3','P5'],
        aug: ['R','M3','A5'],
        dim: ['R','m3','d5'],
        sus2: ['R','M2','P5'],
        sus4: ['R','P4','P5']
    };

    var extensions = {
        nine: ['M9'],
        eleven: ['M9','P11'],
        thirteen: ['M9','P11','M13']
    };

    var species_regex = /^(maj|min|mmin|m|aug|dim|alt|sus|\-)?((?:\d+)|6\/9?)?$/;

    return function getSpeciesIntervals(species) {

        // easy stuff
        if (species in basic_types) {
            return basic_types[species];
        }
        if (species === '') { 
            return basic_types.maj;
        }
        if (species === '5') {
            return basic_types.five;
        }
        if (species === 'm' || species === '-') {
            return basic_types.min;
        }
        if (species === 'sus') {
            return basic_types.sus4;
        }

        var captures = species_regex.exec(species);

        var prefix = captures[1] ? captures[1] : '',
            degree = captures[2] ? captures[2] : '';




    };

})();
@@ -458,13 +458,16 @@
 d+)%7C
+(?:
 6%5C/9
-?
+)
 )?$/
@@ -964,16 +964,42 @@
      %7D%0A%0A
+        var output = %5B%5D;%0A%0A
         
@@ -1150,18 +1150,1448 @@
  : '';%0A%0A
-%0A%0A
+        switch (prefix) %7B%0A            case '':%0A                if (degree === '6/9') %7B%0A                    output = output.concat(basic_types.maj, %5B'M6','M9'%5D);%0A                %7D else %7B%0A                    output = output.concat(basic_types.maj, degree === '6' ? 'M6' : 'm7');%0A                %7D%0A                break;%0A            case 'maj':%0A                output = output.concat(basic_types.maj, degree === '6' ? 'M6' : 'M7');%0A                break;%0A            case 'min':%0A            case 'm':%0A            case '-':%0A                output = output.concat(basic_types.min, degree === '6' ? 'M6' : 'm7');%0A                break;%0A            case 'aug':%0A                output = output.concat(basic_types.aug, 'm7');%0A                break;%0A            case 'dim':%0A                output = output.concat(basic_types.dim, 'd7');%0A                break;%0A            case 'mmaj':%0A                output = output.concat(basic_types.min, 'M7');%0A                break;%0A            default:%0A                break;%0A        %7D%0A%0A        switch (degree) %7B%0A            case '9':%0A                output = output.concat(extensions.nine);%0A                break;%0A            case '11':%0A                output = output.concat(extensions.eleven);%0A                break;%0A            case '13':%0A                output = output.concat(extensions.thirteen);%0A                break;%0A            default:%0A                break;%0A        %7D%0A        return output;
 %0A    %7D;%0A

update chordname to intervals