-Glib::RefPtr<Gtk::ListStore>
-P2GUI::build_mode_columns ()
-{
- Glib::RefPtr<Gtk::ListStore> store = ListStore::create (mode_columns);
- TreeModel::Row row;
-
- row = *store->append();
- row[mode_columns.name] = _("Dorian");
- row[mode_columns.mode] = MusicalMode::Dorian;
-
- row = *store->append();
- row[mode_columns.name] = _("Ionian (\"Major\")");
- row[mode_columns.mode] = MusicalMode::IonianMajor;
-
- row = *store->append();
- row[mode_columns.name] = _("Minor");
- row[mode_columns.mode] = MusicalMode::Minor;
-
- row = *store->append();
- row[mode_columns.name] = _("Harmonic Minor");
- row[mode_columns.mode] = MusicalMode::HarmonicMinor;
-
- row = *store->append();
- row[mode_columns.name] = _("Melodic Minor Ascending");
- row[mode_columns.mode] = MusicalMode::MelodicMinorAscending;
-
- row = *store->append();
- row[mode_columns.name] = _("Melodic Minor Descending");
- row[mode_columns.mode] = MusicalMode::MelodicMinorDescending;
-
- row = *store->append();
- row[mode_columns.name] = _("Phrygian");
- row[mode_columns.mode] = MusicalMode::Phrygian;
-
- row = *store->append();
- row[mode_columns.name] = _("Lydian");
- row[mode_columns.mode] = MusicalMode::Lydian;
-
- row = *store->append();
- row[mode_columns.name] = _("Mixolydian");
- row[mode_columns.mode] = MusicalMode::Mixolydian;
-
- row = *store->append();
- row[mode_columns.name] = _("Aeolian (\"Major\")");
- row[mode_columns.mode] = MusicalMode::Aeolian;
-
- row = *store->append();
- row[mode_columns.name] = _("Locrian");
- row[mode_columns.mode] = MusicalMode::Locrian;
-
- row = *store->append();
- row[mode_columns.name] = _("Pentatonic Major");
- row[mode_columns.mode] = MusicalMode::PentatonicMajor;
-
- row = *store->append();
- row[mode_columns.name] = _("Pentatonic Minor");
- row[mode_columns.mode] = MusicalMode::PentatonicMinor;
-
- row = *store->append();
- row[mode_columns.name] = _("Chromatic");
- row[mode_columns.mode] = MusicalMode::Chromatic;
-
- row = *store->append();
- row[mode_columns.name] = _("Blues Scale");
- row[mode_columns.mode] = MusicalMode::BluesScale;
-
- row = *store->append();
- row[mode_columns.name] = _("Neapolitan Minor");
- row[mode_columns.mode] = MusicalMode::NeapolitanMinor;
-
- row = *store->append();
- row[mode_columns.name] = _("Neapolitan Major");
- row[mode_columns.mode] = MusicalMode::NeapolitanMajor;
-
- row = *store->append();
- row[mode_columns.name] = _("Oriental");
- row[mode_columns.mode] = MusicalMode::Oriental;
-
- row = *store->append();
- row[mode_columns.name] = _("Double Harmonic");
- row[mode_columns.mode] = MusicalMode::DoubleHarmonic;
-
- row = *store->append();
- row[mode_columns.name] = _("Enigmatic");
- row[mode_columns.mode] = MusicalMode::Enigmatic;
-
- row = *store->append();
- row[mode_columns.name] = _("Hirajoshi");
- row[mode_columns.mode] = MusicalMode::Hirajoshi;
-
- row = *store->append();
- row[mode_columns.name] = _("Hungarian Minor");
- row[mode_columns.mode] = MusicalMode::HungarianMinor;
-
- row = *store->append();
- row[mode_columns.name] = _("Hungarian Major");
- row[mode_columns.mode] = MusicalMode::HungarianMajor;
-
- row = *store->append();
- row[mode_columns.name] = _("Kumoi");
- row[mode_columns.mode] = MusicalMode::Kumoi;
-
- row = *store->append();
- row[mode_columns.name] = _("Iwato");
- row[mode_columns.mode] = MusicalMode::Iwato;
-
- row = *store->append();
- row[mode_columns.name] = _("Hindu");
- row[mode_columns.mode] = MusicalMode::Hindu;
-
- row = *store->append();
- row[mode_columns.name] = _("Spanish 8 Tone");
- row[mode_columns.mode] = MusicalMode::Spanish8Tone;
-
- row = *store->append();
- row[mode_columns.name] = _("Pelog");
- row[mode_columns.mode] = MusicalMode::Pelog;
-
- row = *store->append();
- row[mode_columns.name] = _("Hungarian Gypsy");
- row[mode_columns.mode] = MusicalMode::HungarianGypsy;
-
- row = *store->append();
- row[mode_columns.name] = _("Overtone");
- row[mode_columns.mode] = MusicalMode::Overtone;
-
- row = *store->append();
- row[mode_columns.name] = _("Leading Whole Tone");
- row[mode_columns.mode] = MusicalMode::LeadingWholeTone;
-
- row = *store->append();
- row[mode_columns.name] = _("Arabian");
- row[mode_columns.mode] = MusicalMode::Arabian;
-
- row = *store->append();
- row[mode_columns.name] = _("Balinese");
- row[mode_columns.mode] = MusicalMode::Balinese;
-
- row = *store->append();
- row[mode_columns.name] = _("Gypsy");
- row[mode_columns.mode] = MusicalMode::Gypsy;
-
- row = *store->append();
- row[mode_columns.name] = _("Mohammedan");
- row[mode_columns.mode] = MusicalMode::Mohammedan;
-
- row = *store->append();
- row[mode_columns.name] = _("Javanese");
- row[mode_columns.mode] = MusicalMode::Javanese;
-
- row = *store->append();
- row[mode_columns.name] = _("Persian");
- row[mode_columns.mode] = MusicalMode::Persian;
-
- row = *store->append();
- row[mode_columns.name] = _("Algerian");
- row[mode_columns.mode] = MusicalMode::Algerian;
-
- return store;
-}
-
-Glib::RefPtr<Gtk::ListStore>
-P2GUI::build_note_columns ()
-{
- Glib::RefPtr<Gtk::ListStore> store = ListStore::create (note_columns);
- TreeModel::Row row;
-
- row = *store->append ();
- row[note_columns.number] = 0;
- row[note_columns.name] = "C";
-
- row = *store->append ();
- row[note_columns.number] = 1;
- row[note_columns.name] = "C#";
-
- row = *store->append ();
- row[note_columns.number] = 2;
- row[note_columns.name] = "D";
-
- row = *store->append ();
- row[note_columns.number] = 3;
- row[note_columns.name] = "D#";
-
- row = *store->append ();
- row[note_columns.number] = 4;
- row[note_columns.name] = "E";
-
- row = *store->append ();
- row[note_columns.number] = 5;
- row[note_columns.name] = "F";
-
- row = *store->append ();
- row[note_columns.number] = 6;
- row[note_columns.name] = "F#";
-
- row = *store->append ();
- row[note_columns.number] = 7;
- row[note_columns.name] = "G";
-
- row = *store->append ();
- row[note_columns.number] = 8;
- row[note_columns.name] = "G#";
-
- row = *store->append ();
- row[note_columns.number] = 9;
- row[note_columns.name] = "A";
-
- row = *store->append ();
- row[note_columns.number] = 10;
- row[note_columns.name] = "A#";
-
- row = *store->append ();
- row[note_columns.number] = 11;
- row[note_columns.name] = "B";
-
- return store;
-}
-
-void
-P2GUI::reprogram_pad_scale ()
-{
- int root;
- int octave;
- MusicalMode::Type mode;
- bool inkey;
-
- Gtk::TreeModel::iterator iter = root_note_selector.get_active();
- if (iter) {
- Gtk::TreeModel::Row row = *iter;
- if (row) {
- root = row[note_columns.number];
- } else {
- root = 5;
- }
- } else {
- root = 5;
- }
-
- octave = (int) floor (root_note_octave_adjustment.get_value ());
-
- iter = mode_selector.get_active();
- if (iter) {
- Gtk::TreeModel::Row row = *iter;
- if (row) {
- mode = row[mode_columns.mode];
- } else {
- mode = MusicalMode::IonianMajor;
- }
- } else {
- mode = MusicalMode::IonianMajor;
- }
-
- inkey = inkey_button.get_active ();
-
- p2.set_pad_scale (root, octave, mode, inkey);
-}
-