Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- on init
- {Getting Essential Values Out of the Way}
- set_script_title("Sard's Easy AnyTune")
- set_ui_height(4)
- message("")
- declare $count
- declare !note_class[12]
- !note_class[0] := "C"
- !note_class[1] := "Db"
- !note_class[2] := "D"
- !note_class[3] := "Eb"
- !note_class[4] := "E"
- !note_class[5] := "F"
- !note_class[6] := "Gb"
- !note_class[7] := "G"
- !note_class[8] := "Ab"
- !note_class[9] := "A"
- !note_class[10] := "Bb"
- !note_class[11] := "B"
- declare !note_names [128]
- $count := 0
- while ($count < 128)
- !note_names[$count] := !note_class[$count mod 12] & (($count/12)-2)
- inc ($count)
- end while
- declare %preset_semi[13*12] := (...
- 1, 0, 1, 2, 0, 1, 0, 1, 2, 0, 1, 0, {highland bagpipes} ...
- 0, -1, 0, 0, -1, -1, -1, 0, 0, -1, 0, -1, {Pure } ...
- 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, -1, -1, {Overtone 16-32}...
- 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, {Pythagorean }...
- 0, -1, 0, -1, 0, -1, 0, 0, -1, 0, -1, 0, {Pythagorean Middle}...
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {Pythagorean Up}...
- 0, -1, -1, 0, 0, 0, -1, -1, -1, -1, 0, -1, {Mean Tone 1/4}...
- 0, 0, 0, 0, -1, 0, -1, -1, 0, -1, 0, -1, {Silbermann }...
- 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, {Werckmeister III}...
- 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, {Kirnberger III}...
- 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, {Neidhardt I}...
- 0, -1, -1, -1, -1, 0, -1, -1, -1, -1, 0, -1, {Valotti } ...
- 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1) {Young 1/6 pC }
- make_persistent (%preset_semi)
- declare %preset_cent[13*12]:= (...
- 33, 0, 35, 20, 0, 30, 0, 36, 18, 0, 3, 0, {highland bagpipes} ...
- 0, 71, 4, 16, 86, 98, 69, 2, 14, 84, 18, 88, {Pure } ...
- 0, 5, 4, 98, 86, 71, 51, 2, 41, 6, 69, 88, {Overtone 16-32}...
- 0, 14, 4, 95, 8, 98, 12, 2, 16, 6, 4, 10, {Pythagorean }...
- 0, 90, 4, 94, 8, 98, 0, 2, 92, 6, 96, 10, {Pythagorean Middle}...
- 0, 14, 4, 18, 8, 22, 12, 2, 16, 6, 20, 10, {Pythagorean Up}...
- 0, 76, 93, 10, 14, 3, 79, 97, 73, 90, 7, 83, {Mean Tone 1/4}...
- 0, 8, 3, 5, 93, 2, 90, 98, 7, 95, 3, 92, {Silbermann }...
- 0, 90, 92, 94, 90, 98, 88, 96, 92, 88, 96, 92, {Werckmeister III}...
- 0, 90, 93, 94, 86, 98, 88, 97, 92, 90, 96, 88, {Kirnberger III}...
- 0, 94, 96, 96, 92, 98, 92, 98, 96, 94, 96, 92, {Neidhardt I}...
- 0, 94, 96, 98, 92, 2, 92, 98, 96, 94, 0, 90, {Valotti } ...
- 0, 90, 96, 94, 92, 98, 88, 98, 92, 94, 96, 92) {Young 1/6 pC }
- make_persistent (%preset_cent)
- declare %preset_key[13] := (...
- 9, {highland bagpipes} ...
- 1, {Pure } ...
- 1, {Overtone 16-32} ...
- 1, {Pythagorean } ...
- 1, {Pythagorean Middle} ...
- 1, {Pythagorean Up} ...
- 1, {Mean Tone 1/4} ...
- 1, {Silbermann } ...
- 1, {Werckmeister III} ...
- 1, {Kirnberger III} ...
- 1, {Neidhardt I} ...
- 1, {Valotti } ...
- 1) {Young 1/6 pC }
- make_persistent (%preset_key)
- declare $retune
- {UI Setup}
- {Key Display}
- declare ui_knob $key(0,11,1)
- make_persistent($key)
- set_control_help($key,"Note: Does not change any tuning, simply used to rotate the display to show the first note in the key.")
- set_text($key,"Key")
- declare ui_label $start_note1 (2,1)
- declare ui_label $start_note2 (2,1)
- declare !notes[12]
- !notes[0] := " C "
- !notes[1] := " Db "
- !notes[2] := " D "
- !notes[3] := " Eb "
- !notes[4] := " E "
- !notes[5] := " F "
- !notes[6] := " Gb "
- !notes[7] := " G "
- !notes[8] := " Ab "
- !notes[9] := " A "
- !notes[10] := " Bb "
- !notes[11] := " B "
- _read_persistent_var($key)
- set_text ($start_note1,!notes[(0+$key) mod 12]&""&...
- !notes[(1+$key) mod 12]&""&...
- !notes[(2+$key) mod 12]&""&...
- !notes[(3+$key) mod 12]&""&...
- !notes[(4+$key) mod 12]&""&...
- !notes[(5+$key) mod 12]&""&...
- !notes[(6+$key) mod 12]&""&...
- !notes[(7+$key) mod 12]&""&...
- !notes[(8+$key) mod 12]&""&...
- !notes[(9+$key) mod 12]&""&...
- !notes[(10+$key) mod 12]&""&...
- !notes[(11+$key) mod 12])
- set_text ($start_note2,!notes[(0+$key) mod 12]&""&...
- !notes[(1+$key) mod 12]&""&...
- !notes[(2+$key) mod 12]&""&...
- !notes[(3+$key) mod 12]&""&...
- !notes[(4+$key) mod 12]&""&...
- !notes[(5+$key) mod 12]&""&...
- !notes[(6+$key) mod 12]&""&...
- !notes[(7+$key) mod 12]&""&...
- !notes[(8+$key) mod 12]&""&...
- !notes[(9+$key) mod 12]&""&...
- !notes[(10+$key) mod 12]&""&...
- !notes[(11+$key) mod 12])
- set_knob_label($key,!notes[(0+$key) mod 12])
- {Tuning Tables}
- declare ui_table %tuning_semi[12](2,6,-4)
- make_persistent (%tuning_semi)
- declare ui_table %tuning_cent[12](2,6,100)
- make_persistent (%tuning_cent)
- declare ui_label $table_guide (4,1)
- set_text ($table_guide,"The left table is for semitones (up or down 4), the right for cents (0-100).")
- {Presets Menu}
- declare $a
- declare ui_menu $presets
- add_menu_item($presets,"Select Preset",100)
- add_menu_item($presets,"",99)
- add_menu_item($presets,"Instruments",98)
- add_menu_item($presets," Highland Bagpipes",1)
- add_menu_item($presets,"",99)
- add_menu_item($presets,"Temperaments",98)
- add_menu_item($presets," Pure",2)
- add_menu_item($presets," Overtone 13-32",3)
- add_menu_item($presets," Pythagorean",4)
- add_menu_item($presets," Pythagorean Middle",5)
- add_menu_item($presets," Pythagorean Up",6)
- add_menu_item($presets," Mean Tone 1/4",7)
- add_menu_item($presets," Silbermann",8)
- add_menu_item($presets," Werckmeister III",9)
- add_menu_item($presets," Kirnberger III",10)
- add_menu_item($presets," Neidhardt I",11)
- add_menu_item($presets," Valotti",12)
- add_menu_item($presets," Young 1/6 pC",13)
- set_control_help ($presets,"Preset tuning adjustmens for uneven tempered instruments and other ways of tuning")
- {Layout}
- move_control ($key, 1,3)
- move_control ($presets, 1,6)
- move_control ($start_note1, 2,1)
- move_control ($start_note2, 4,1)
- move_control (%tuning_semi, 2,1)
- move_control (%tuning_cent, 4,1)
- move_control ($table_guide, 2,8)
- set_control_par (get_ui_id($table_guide),$CONTROL_PAR_TEXT_ALIGNMENT,1)
- end on
- {Functionality and Controling the Interface}
- function Key
- set_text ($start_note1,!notes[(0+$key) mod 12]&""&...
- !notes[(1+$key) mod 12]&""&...
- !notes[(2+$key) mod 12]&""&...
- !notes[(3+$key) mod 12]&""&...
- !notes[(4+$key) mod 12]&""&...
- !notes[(5+$key) mod 12]&""&...
- !notes[(6+$key) mod 12]&""&...
- !notes[(7+$key) mod 12]&""&...
- !notes[(8+$key) mod 12]&""&...
- !notes[(9+$key) mod 12]&""&...
- !notes[(10+$key) mod 12]&""&...
- !notes[(11+$key) mod 12])
- set_text ($start_note2,!notes[(0+$key) mod 12]&""&...
- !notes[(1+$key) mod 12]&""&...
- !notes[(2+$key) mod 12]&""&...
- !notes[(3+$key) mod 12]&""&...
- !notes[(4+$key) mod 12]&""&...
- !notes[(5+$key) mod 12]&""&...
- !notes[(6+$key) mod 12]&""&...
- !notes[(7+$key) mod 12]&""&...
- !notes[(8+$key) mod 12]&""&...
- !notes[(9+$key) mod 12]&""&...
- !notes[(10+$key) mod 12]&""&...
- !notes[(11+$key) mod 12])
- set_knob_label($key,!notes[(0+$key) mod 12])
- end function
- on ui_control ($key)
- call Key
- end on
- on note
- $retune := (%tuning_semi[($EVENT_NOTE + 12 - $key) mod 12]*100000) ...
- + (%tuning_cent[($EVENT_NOTE + 12 - $key) mod 12]*1000)
- change_tune($EVENT_ID,$retune, 0)
- end on
- on ui_control ($presets)
- if ($presets < 98)
- select($presets)
- case 1
- $a := 0
- while ($a < 12)
- $key := (%preset_key[($presets-1)+$a])
- %tuning_semi[$a] := %preset_semi[($presets-1)*12+$a]
- %tuning_cent[$a] := %preset_cent[($presets-1)*12+$a]
- inc($a)
- end while
- case 2 to 13
- $a := 0
- while ($a < 12)
- %tuning_semi[$a] := %preset_semi[($presets-1)*12+$a]
- %tuning_cent[$a] := %preset_cent[($presets-1)*12+$a]
- inc($a)
- end while
- end select
- end if
- $presets := 100
- call Key
- end on
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement