/* | Durations | ********* | Name | Note | Normal | Dotted | DoubleDotted | Triple | |-------------------|-----------|--------|--------|--------------|--------| | semibreve | whole (o) | 1920 | | | | | minim | ½ | 960 | 1440 | 1680 | 640 | | crotchet | ¼ | 480 | 720 | 840 | 320 | | quaver | 1/8 | 240 | 360 | 420 | 160 | | semiquaver | 1/16 | 120 | 180 | 210 | 80 | | demisemiquaver | 1/32 | 60 | 90 | 105 | 40 | */ ////////////// // Globals // ////////////// var _score; // C C# D D# E F F# G G# A A# B C var c_chromatic = [60,61,62,63,64,65,66,67,68,69,70,71,72]; // C D E F G A B C var c_major = [60,62,64,65,67,69,71,72]; // C D D# F G G# B C var c_minor = [60,62,63,65,67,68,71,72]; var mscorePlugin = { menu: 'Plugins.Scales', init: init, run: run }; mscorePlugin; // Instantiate this Object Literal (mscorePlugin) function init() {}; function run() { ///////////////////// // Initializations // ///////////////////// var l_timesig = new TimeSig(4,4) var l_score = new Score(); var l_cursor; _score = l_score; l_score.title = "ScaleList"; l_score.name = "ScaleList"; l_score.copyright = "Avron Polakow"; l_score.timesig = l_timesig; var li, lj; // general indexes var ls_msg, ls_Errors; var systems = 1; var measures = 24; l_score.appendPart("Piano"); l_score.appendMeasures(measures); l_cursor = new Cursor(l_score); l_cursor.rewind(); // Split lines @ 2nd bar var li = 1; while (!l_cursor.eos()) { var l_measure = l_cursor.measure(); l_measure.lineBreak = (li % 2 == 0) ? true : false; l_cursor.nextMeasure(); li++; } pluginName = "ScaleList"; // Note: "pluginName" is reserved word - cannot be global!!! ///////////////////////// // End Initializations // ///////////////////////// // Piano Treble Clef l_cursor.staff = 0; l_cursor.voice = 0; l_cursor.rewind(); // Major scales for (li=0;li<8;li++) { // Transpose scale by one tone var lr = c_major.join(',').split(','); // force creation of new array for (lj=0;lj 0) { for (lj=0;lj -1) { if (!lb_start) {a_cursor.next();} insertNote(ai_head, a_cursor, ai_duration, ai_note); lb_start = false; ai_repeat--; } } function insertRepeatPattern(ai_head, a_cursor, ai_duration, arr_pattern, ai_repeat) { var lb_start = true; var li_begin = 0; var li_end = arr_pattern.length; var li_curr; while (ai_repeat > 0) { li_curr = 0; while (li_curr < li_end) { if (!lb_start) {a_cursor.next();} insertNote(ai_head, a_cursor, ai_duration, arr_pattern[li_curr]); li_curr++; lb_start = false; } ai_repeat--; } } function insertRepeatSeries(ai_head, a_cursor, ai_duration, ai_start, ai_finish, ai_repeat) { var lb_start = true; while (ai_repeat > 0) { var li_curr = ai_start; while (li_curr < ai_finish + 1) { if (!lb_start) {a_cursor.next();} insertNote(ai_head, a_cursor, ai_duration, li_curr); li_curr++; lb_start = false; } ai_repeat--; } } //--------------------------------------------------------- // Display a message box with error message. //--------------------------------------------------------- function alert(as_msg) { mb = new QMessageBox(); mb.text = as_msg; mb.setWindowTitle(""); mb.exec(); }