Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # FUNCTION J$UNCTION
- # HEADERS
- readandcenterlinebyline () {
- while IFS='' read -r line || [[ -n "$line" ]]; do
- COLUMNS=$(tput cols)
- onsonlogo="$line"
- printf "%*s\n" $(((${#onsonlogo}+$COLUMNS)/2)) "$onsonlogo"
- done < "$1"
- }
- onson_header () {
- clear
- echo
- readandcenterlinebyline /usr/local/bin/onson/logo
- echo
- echo
- }
- preset_header () {
- mapfile -t currentsong </usr/local/bin/onson/satelites/currentsong
- mapfile -t currentpreset </usr/local/bin/onson/satelites/currentpreset
- mapfile -t bank </usr/local/bin/onson/satelites/currentbank
- COLUMNS=$(tput cols)
- presetprompt="SONG:$currentsong PRESET:$currentpreset BANK:$bank"
- printf "%*s\n\n" $(((${#presetprompt}+$COLUMNS)/2)) "$presetprompt"
- }
- bank_header () {
- mapfile -t currentpreset </usr/local/bin/onson/satelites/currentpreset
- mapfile -t bank </usr/local/bin/onson/satelites/currentbank
- onson_header
- echo
- preset_header
- }
- steps_header () {
- COLUMNS=$(tput cols)
- stepprompt="STEPS:"
- printf "%*s\n\n" $(((${#stepprompt}+$COLUMNS)/2)) "$stepprompt"
- }
- direction_header () {
- mapfile -t direction < /usr/local/bin/onson/satelites/direction
- currentdirnum=" 1 2 3"
- currentdirname=(FORWARD REVERSE BOUNCE BACKWARD)
- for i in $currentdirnum
- do
- if [ "$direction" = "$i" ]
- then
- ((arrayplace=$i-1))
- directionprompt="CURRENT DIRECTION IS: ${currentdirname[$arrayplace]}"
- COLUMNS=$(tput cols)
- printf "%*s\n\n" $(((${#directionprompt}+$COLUMNS)/2)) "$directionprompt"
- fi
- done
- }
- glide_header () {
- echo
- echo
- echo
- echo
- mapfile -t aglide < /usr/local/bin/onson/satelites/glide
- COLUMNS=$(tput cols)
- currentglidenum="//// CURRENT GLIDE IS: $glide ////"
- printf "%*s\n\n" $(((${#currentglidenum}+$COLUMNS)/2)) "$currentglidenum"
- }
- #BODIES
- steps_body () {
- while :
- do
- clear
- echo
- echo
- clear
- bank_header
- print_steps
- menu_footer 8
- center_read 1 stepnumber
- case $stepnumber in
- #
- 1)
- while :
- do
- clear
- bank_header
- #DISPLAY CURRENT STEP VALUE
- mapfile -t step1 </usr/local/bin/onson/satelites/step1
- mapfile -t allsteps </usr/local/bin/onson/satelites/allsteps
- COLUMNS=$(tput cols)
- stepprompt="CURRENT STEP 1: $step1"
- printf "%*s\n\n" $(((${#stepprompt}+$COLUMNS)/2)) "$stepprompt"
- COLUMNS=$(tput cols)
- allstepsprompt="ALL STEPS: $allsteps"
- printf "%*s\n\n" $(((${#allstepsprompt}+$COLUMNS)/2)) "$allstepsprompt"
- notes_menu_root
- center_read 4 note
- notes_validation_vars
- for i in $stepmenu
- do
- if [ "$note" = "$i" ]
- then
- rootarrayplace=$arrayplace
- step1="${scale[$rootarrayplace]}"
- midistep1="${scalevalues[$rootarrayplace]}"
- echo "$step1" > /usr/local/bin/onson/satelites/step1
- echo "$midistep1" > /usr/local/bin/onson/midi/satelites/midistep1
- echo "$rootarrayplace" > /usr/local/bin/onson/satelites/rootarrayplace
- currentscaleroot=$rootarrayplace
- fi
- ((arrayplace++))
- done
- clear
- break
- done
- ;;
- 2)
- while :
- do
- clear
- bank_header
- mapfile -t step2 </usr/local/bin/onson/satelites/step2
- mapfile -t allsteps </usr/local/bin/onson/satelites/allsteps
- mapfile -t rootarrayplace </usr/local/bin/onson/satelites/rootarrayplace
- #DISPLAY CURRENT STEP VALUE
- COLUMNS=$(tput cols)
- stepprompt="CURRENT STEP 2: $step2"
- printf "%*s\n\n" $(((${#stepprompt}+$COLUMNS)/2)) "$stepprompt"
- COLUMNS=$(tput cols)
- allstepsprompt="ALL STEPS: $allsteps"
- printf "%*s\n\n" $(((${#allstepsprompt}+$COLUMNS)/2)) "$allstepsprompt"
- notes_menu_nonroot
- center_read 4 note
- notes_validation_vars
- for i in $stepmenu
- do
- if [ "${note^^}" = "${i^^}" ]
- then
- step2="${scale[$arrayplace]}"
- midistep2="${scalevalues[$arrayplace]}"
- echo "$step2" > /usr/local/bin/onson/satelites/step2
- echo "$midistep2" > /usr/local/bin/onson/midi/satelites/midistep2
- save_preset
- fi
- ((arrayplace++))
- done
- clear
- break
- done
- ;;
- 3)
- while :
- do
- clear
- bank_header
- #DISPLAY CURRENT STEP VALUE
- mapfile -t step3 </usr/local/bin/onson/satelites/step3
- mapfile -t allsteps </usr/local/bin/onson/satelites/allsteps
- COLUMNS=$(tput cols)
- stepprompt="STEP 3: $step3"
- printf "%*s\n\n" $(((${#stepprompt}+$COLUMNS)/2)) "$stepprompt"
- COLUMNS=$(tput cols)
- allstepsprompt="ALL STEPS: $allsteps"
- printf "%*s\n\n" $(((${#allstepsprompt}+$COLUMNS)/2)) "$allstepsprompt"
- notes_menu_nonroot
- center_read 4 note
- notes_validation_vars
- for i in $stepmenu
- do
- if [ "${note^^}" = "${i^^}" ]
- then
- step3="${scale[$arrayplace]}"
- midistep3="${scalevalues[$arrayplace]}"
- echo "$step3" > /usr/local/bin/onson/satelites/step3
- echo "$midistep3" > /usr/local/bin/onson/midi/satelites/midistep3
- save_preset
- fi
- ((arrayplace++))
- done
- clear
- break
- done
- ;;
- 4)
- while :
- do
- clear
- bank_header
- #DISPLAY CURRENT STEP VALUE
- mapfile -t step4 </usr/local/bin/onson/satelites/step4
- mapfile -t allsteps </usr/local/bin/onson/satelites/allsteps
- COLUMNS=$(tput cols)
- stepprompt="STEP 4: $step4"
- printf "%*s\n\n" $(((${#stepprompt}+$COLUMNS)/2)) "$stepprompt"
- COLUMNS=$(tput cols)
- allstepsprompt="ALL STEPS: $allsteps"
- printf "%*s\n\n" $(((${#allstepsprompt}+$COLUMNS)/2)) "$allstepsprompt"
- notes_menu_nonroot
- center_read 4 note
- notes_validation_vars
- for i in $stepmenu
- do
- if [ "${note^^}" = "${i^^}" ]
- then
- step4="${scale[$arrayplace]}"
- midistep4="${scalevalues[$arrayplace]}"
- echo "$step4" > /usr/local/bin/onson/satelites/step4
- echo "$midistep4" > /usr/local/bin/onson/midi/satelites/midistep4
- save_preset
- fi
- ((arrayplace++))
- done
- clear
- break
- done
- ;;
- 5)
- while :
- do
- clear
- bank_header
- #DISPLAY CURRENT STEP VALUE
- mapfile -t step5 </usr/local/bin/onson/satelites/step5
- mapfile -t allsteps </usr/local/bin/onson/satelites/allsteps
- COLUMNS=$(tput cols)
- stepprompt="STEP 5: $step5"
- printf "%*s\n\n" $(((${#stepprompt}+$COLUMNS)/2)) "$stepprompt"
- COLUMNS=$(tput cols)
- allstepsprompt="ALL STEPS: $allsteps"
- printf "%*s\n\n" $(((${#allstepsprompt}+$COLUMNS)/2)) "$allstepsprompt"
- notes_menu_nonroot
- center_read 4 note
- notes_validation_vars
- for i in $stepmenu
- do
- if [ "${note^^}" = "${i^^}" ]
- then
- step5="${scale[$arrayplace]}"
- midistep5="${scalevalues[$arrayplace]}"
- echo "$step5" > /usr/local/bin/onson/satelites/step5
- echo "$midistep5" > /usr/local/bin/onson/midi/satelites/midistep5
- save_preset
- fi
- ((arrayplace++))
- done
- clear
- break
- done
- ;;
- 6)
- while :
- do
- clear
- bank_header
- #DISPLAY CURRENT STEP VALUE
- mapfile -t step6 </usr/local/bin/onson/satelites/step6
- mapfile -t allsteps </usr/local/bin/onson/satelites/allsteps
- COLUMNS=$(tput cols)
- stepprompt="STEP 6: $step6"
- printf "%*s\n\n" $(((${#stepprompt}+$COLUMNS)/2)) "$stepprompt"
- COLUMNS=$(tput cols)
- allstepsprompt="ALL STEPS: $allsteps"
- printf "%*s\n\n" $(((${#allstepsprompt}+$COLUMNS)/2)) "$allstepsprompt"
- notes_menu_nonroot
- center_read 4 note
- notes_validation_vars
- for i in $stepmenu
- do
- if [ "${note^^}" = "${i^^}" ]
- then
- step6="${scale[$arrayplace]}"
- midistep6="${scalevalues[$arrayplace]}"
- echo "$step6" > /usr/local/bin/onson/satelites/step6
- echo "$midistep6" > /usr/local/bin/onson/midi/satelites/midistep6
- save_preset
- fi
- ((arrayplace++))
- done
- clear
- break
- done
- ;;
- 7)
- while :
- do
- clear
- bank_header
- #DISPLAY CURRENT STEP VALUE
- mapfile -t step7 </usr/local/bin/onson/satelites/step7
- mapfile -t allsteps </usr/local/bin/onson/satelites/allsteps
- COLUMNS=$(tput cols)
- stepprompt="STEP 7: $step7"
- printf "%*s\n\n" $(((${#stepprompt}+$COLUMNS)/2)) "$stepprompt"
- COLUMNS=$(tput cols)
- allstepsprompt="ALL STEPS: $allsteps"
- printf "%*s\n\n" $(((${#allstepsprompt}+$COLUMNS)/2)) "$allstepsprompt"
- notes_menu_nonroot
- center_read 4 note
- notes_validation_vars
- for i in $stepmenu
- do
- if [ "${note^^}" = "${i^^}" ]
- then
- step7="${scale[$arrayplace]}"
- midistep7="${scalevalues[$arrayplace]}"
- echo "$step7" > /usr/local/bin/onson/satelites/step7
- echo "$midistep7" > /usr/local/bin/onson/midi/satelites/midistep7
- save_preset
- save_preset
- fi
- ((arrayplace++))
- done
- clear
- break
- done
- ;;
- 8)
- while :
- do
- clear
- bank_header
- #DISPLAY CURRENT STEP VALUE
- mapfile -t step8 </usr/local/bin/onson/satelites/step8
- mapfile -t allsteps </usr/local/bin/onson/satelites/allsteps
- COLUMNS=$(tput cols)
- stepprompt="STEP 8: $step8"
- printf "%*s\n\n" $(((${#stepprompt}+$COLUMNS)/2)) "$stepprompt"
- COLUMNS=$(tput cols)
- allstepsprompt="ALL STEPS: $allsteps"
- printf "%*s\n\n" $(((${#allstepsprompt}+$COLUMNS)/2)) "$allstepsprompt"
- notes_menu_nonroot
- center_read 4 note
- notes_validation_vars
- for i in $stepmenu
- do
- if [ "${note^^}" = "${i^^}" ]
- then
- step8="${scale[$arrayplace]}"
- midistep8="${scalevalues[$arrayplace]}"
- echo "$step8" > /usr/local/bin/onson/satelites/step8
- echo "$midistep8" > /usr/local/bin/onson/midi/satelites/midistep8
- save_preset
- fi
- ((arrayplace++))
- done
- clear
- break
- done
- ;;
- *)
- clear
- break
- ;;
- esac
- done
- }
- direction_body () {
- clear
- bank_header
- direction_header
- print_direction
- menu_footer 4
- center_read 1 input
- if [ "$input" -gt 0 ] && [ "$input" -lt 5 ]
- then
- ((direction = "$input"-1))
- echo "$direction" > /usr/local/bin/onson/satelites/direction
- save_preset
- fi
- }
- glide_body () {
- clear
- bank_header
- glide_header
- echo
- echo
- echo
- echo
- menu_footer 127
- center_read 3 input
- if [ "$input" -gt -1 ] && [ "$input" -lt 128 ]
- then
- glide="$input"
- echo "$glide" > /usr/local/bin/onson/satelites/glide
- save_preset
- fi
- }
- length_body () {
- clear
- bank_header
- echo
- echo
- echo
- echo
- mapfile -t length < /usr/local/bin/onson/satelites/length
- COLUMNS=$(tput cols)
- currentlengthnum="//// CURRENT LENGTH IS: $length ////"
- printf "%*s\n\n" $(((${#currentlengthnum}+$COLUMNS)/2)) "$currentlengthnum"
- echo
- echo
- echo
- menu_footer 8
- center_read 1 input
- if [ "$input" -gt 0 ] && [ "$input" -lt 9 ]
- then
- length="$input"
- echo "$length" > /usr/local/bin/onson/satelites/length
- save_preset
- fi
- }
- #FOOTERS
- exit_footer () {
- exitsign="|| OR ANY KEY TO EXIT ||"
- printf "%*s\n\n" $(((${#exitsign}+$COLUMNS)/2)) "$exitsign"
- }
- preset_footer () {
- tput sc
- tput ll
- echo
- echo
- echo
- echo
- COLUMNS=$(tput cols)
- prompt="|| ENTER PRESET # ||"
- printf "%*s\n\n" $(((${#prompt}+$COLUMNS)/2)) "$prompt"
- presetfooterprompt="© 2019 SPIL KITT"
- printf "%*s\n\n" $(((${#presetfooterprompt}+$COLUMNS)/2)) "$presetfooterprompt"
- tput rc
- }
- song_footer () {
- tput sc
- tput ll
- echo
- echo
- echo
- echo
- COLUMNS=$(tput cols)
- prompt="|| ENTER SONG # ||"
- printf "%*s\n\n" $(((${#prompt}+$COLUMNS)/2)) "$prompt"
- songfooterprompt="© 2019 SPIL KITT"
- printf "%*s\n\n" $(((${#songfooterprompt}+$COLUMNS)/2)) "$songfooterprompt"
- tput rc
- }
- menu_footer () {
- tput sc
- tput ll
- echo
- echo
- echo
- echo
- COLUMNS=$(tput cols)
- range="|| 1-$1 ||"
- printf "%*s\n\n" $(((${#range}+$COLUMNS)/2)) "$range"
- exit_footer
- tput rc
- }
- #UTILITY FUNCTIONS
- append_step_values () {
- # THIS ISN'T USED ANYMORE BUT I KEPT IT FOR REFERENCE.
- # IT'S A HOLDOVER FROM BEFORE I HAD THE IDEA TO QUANTIZE THE STEPS.
- # INSTEAD, I WAS TAKING INPUT THAT WOULD ADD OR SUBTRACT TO THE
- # CURRENT STEP VALUE WITHIN THE ALLOWABLE RANGE.
- #END OF FIRT PASS STEP LOOP / BEGINNING TRAILING STEP LOOP
- unset "y"
- unset "z"
- #SYNC THE ARRAY INDICES WITH ASSOCIATED SEQUENCER STEPS
- ((x="$step"-1))
- #INPUT CHANGE TO PREVIOUS SLIDER VALUES
- y=${array[$x]}
- ((z="$y" + "$delta"))
- array["$x"]="$z"
- echo > /usr/local/bin/onson/satelites/stepsfile
- echo "${array[@]}" > /usr/local/bin/onson/satelites/stepsfile
- }
- center_read () {
- echo
- COLUMNS=$(tput cols)
- currentlengthnum="$1"
- ((N=(+$COLUMNS/2)-${currentlengthnum}))
- tput cuf $N
- read -n $1 $2
- }
- notes_validation_vars () {
- set -f
- GLOBIGNORE="*"
- scale=(\#\#E \#\#F \#\#F\# \#\#G \#\#G\# \#\#A \#\#Bb \#\#B \#\#C \#\#C\# \#\#D \#\#D\# \#E \#F \#F\# \#G \#G\# \#A \#Bb \#B \#C \#C\# \#D \#D\# E F F\# G G\# A Bb B C C\# D D\# \*E \*F \*F\# \*G \*G\# \*A \*Bb \*B \*C \*C\# \*D \*D\# \*\*E \*\*F \*\*F\# \*\*G \*\*G\# \*\*A \*\*Bb \*\*B \*\*C \*\*C\# \*\*D \*\*D\# \*\*\*E \*\*\*F \*\*\*F\# \*\*\*G \*\*\*G\# \*\*\*A \*\*\*Bb)
- # ##E - ##D# - ##01 - ##12 - 1-12 midi- 00 - 21
- # #E - #D# - #001 - #012 - 13-24 midi- 23 - 46
- # E - D# - 0001 - 0012 - 25-36 midi- 48 - 70
- # *E - *D# - *001 - *012 - 37-48 midi- 72 - 92
- # **E - **D# - **01 - **12 - 49-60 midi- 25 - 114
- # ***E - ***Bb - ***1 - ***7 - 61-67 midi- 115 - 126
- stepmenu="##01 ##02 ##03 ##04 ##05 ##06 ##07 ##08 ##09 ##10 ##11 ##12 #001 #002 #003 #004 #005 #006 #007 #008 #009 #010 #011 #012 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 *001 *002 *003 *004 *005 *006 *007 *008 *009 *010 *011 *012 **01 **02 **03 **04 **05 **06 **07 **08 **09 **10 **11 **12 ***1 ***2 ***3 ***4 ***5 ***6 ***7"
- scalevalues=(00 02 03 05 07 09 11 13 15 18 20 21 23 26 28 30 32 34 35 37 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 73 75 77 79 82 83 85 87 88 91 92 95 97 98 100 102 103 105 107 109 110 113 114 115 118 120 121 123 124 126)
- arrayplace=0
- set +f
- }
- banks_validation_vars () {
- banknames=(A B AB)
- banksmenu="1 2 3"
- arrayplace=0
- }
- notes_menu_root () {
- paddednote_e=$(menu_pad "##01/#001/0001/*001/**01/***1" E)
- COLUMNS=$(tput cols)
- paddednotee="$paddednote_e"
- printf "%*s\n\n" $(((${#paddednotee}+$COLUMNS)/2)) "$paddednotee"
- paddednote_f=$(menu_pad "##02/#002/0002/*002/**02/***2" F)
- COLUMNS=$(tput cols)
- paddednotefprompt="$paddednote_f"
- printf "%*s\n\n" $(((${#paddednotefprompt}+$COLUMNS)/2)) "$paddednotefprompt"
- paddednote_fsharp=$(menu_pad "##03/#003/0003/*003/**03/***3" F#)
- COLUMNS=$(tput cols)
- paddednotefsharpprompt="$paddednote_fsharp"
- printf "%*s\n\n" $(((${#paddednotefsharpprompt}+$COLUMNS)/2)) "$paddednotefsharpprompt"
- paddednote_g=$(menu_pad "##04/#004/0004/*004/**04/***4" G)
- COLUMNS=$(tput cols)
- paddednotegprompt="$paddednote_g"
- printf "%*s\n\n" $(((${#paddednotegprompt}+$COLUMNS)/2)) "$paddednotegprompt"
- paddednote_gsharp=$(menu_pad "##05/#005/0005/*005/**05/***5" G#)
- COLUMNS=$(tput cols)
- paddednotegsharpprompt="$paddednote_gsharp"
- printf "%*s\n\n" $(((${#paddednotegsharpprompt}+$COLUMNS)/2)) "$paddednotegsharpprompt"
- paddednote_a=$(menu_pad "##06/#006/0006/*006/**06/***6" A)
- COLUMNS=$(tput cols)
- paddednoteaprompt="$paddednote_a"
- printf "%*s\n\n" $(((${#paddednoteaprompt}+$COLUMNS)/2)) "$paddednoteaprompt"
- paddednote_bflat=$(menu_pad "##07/#007/0007/*007/**07/***7" Bb)
- COLUMNS=$(tput cols)
- paddednotebflatprompt="$paddednote_bflat"
- printf "%*s\n\n" $(((${#paddednotebflatprompt}+$COLUMNS)/2)) "$paddednotebflatprompt"
- paddednote_b=$(menu_pad "##08/#008/0008/*008/**08" B)
- COLUMNS=$(tput cols)
- paddednotebprompt="$paddednote_b"
- printf "%*s\n\n" $(((${#paddednotebprompt}+$COLUMNS)/2)) "$paddednotebprompt"
- paddednote_c=$(menu_pad "##09/#009/0009/*009/**09" C)
- COLUMNS=$(tput cols)
- paddednotecprompt="$paddednote_c"
- printf "%*s\n\n" $(((${#paddednotecprompt}+$COLUMNS)/2)) "$paddednotecprompt"
- paddednote_csharp=$(menu_pad "##10/#010/0010/*010/**10" C#)
- COLUMNS=$(tput cols)
- paddednotecsharpprompt="$paddednote_csharp"
- printf "%*s\n\n" $(((${#paddednotecsharpprompt}+$COLUMNS)/2)) "$paddednotecsharpprompt"
- paddednote_d=$(menu_pad "##11/#011/0011/*011/**11" D)
- COLUMNS=$(tput cols)
- paddednotedprompt="$paddednote_d"
- printf "%*s\n\n" $(((${#paddednotedprompt}+$COLUMNS)/2)) "$paddednotedprompt"
- paddednote_dsharp=$(menu_pad "##12/#012/0012/*012/**12" D#)
- COLUMNS=$(tput cols)
- paddednotedsharpprompt="$paddednote_dsharp"
- printf "%*s\n\n" $(((${#paddednotedsharpprompt}+$COLUMNS)/2)) "$paddednotedsharpprompt"
- menu_footer 12
- }
- notes_menu_nonroot () {
- notes_validation_vars
- mapfile -t arrayplace < /usr/local/bin/onson/satelites/arrayplace
- mapfile -t rootarrayplace < /usr/local/bin/onson/satelites/rootarrayplace
- ##FIND "MIDDLE" ROOT VALUES TO DISPLAY
- stepmenuarray=(\#\#01 \#\#02 \#\#03 \#\#04 \#\#05 \#\#06 \#\#07 \#\#08 \#\#09 \#\#10 \#\#11 \#\#12 \#\01 \#002 \#003 \#004 \#005 \#006 \#007 \#008 \#009 \#010 \#011 \#012 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 \*001 \*002 \*003 \*004 \*005 \*006 \*007 \*008 \*009 \*010 \*011 \*012 \*\*01 \*\*02 \*\*03 \*\*04 \*\*05 \*\*06 \*\*07 \*\*08 \*\*09 \*\*10 \*\*11 \*\*12 \*\*\*1 \*\*\*2 \*\*\*3 \*\*\*4 \*\*\*5 \*\*\*6 \*\*\*7)
- echo
- displayarrayplace1=$rootarrayplace
- ((displayarrayplace2 = "$displayarrayplace1"+2))
- ((displayarrayplace3 = "$displayarrayplace2"+2))
- ((displayarrayplace4 = "$displayarrayplace3"+1))
- ((displayarrayplace5 = "$displayarrayplace4"+2))
- ((displayarrayplace6 = "$displayarrayplace5"+2))
- ((displayarrayplace7 = "$displayarrayplace6"+2))
- menurootnote="${scale[$displayarrayplace1]}"
- menu2ndnote="${scale[$displayarrayplace2]}"
- menu3rdnote="${scale[$displayarrayplace3]}"
- menu4thnote="${scale[$displayarrayplace4]}"
- menu5thnote="${scale[$displayarrayplace5]}"
- menu6thnote="${scale[$displayarrayplace6]}"
- menu7thnote="${scale[$displayarrayplace7]}"
- rootnoteindex="${stepmenuarray[$displayarrayplace1]}"
- notetwoindex="${stepmenuarray[$isplayarrayplace2]}"
- notethreeindex="${stepmenuarray[$displayarrayplace3]}"
- notefourindex="${stepmenuarray[$displayarrayplace4]}"
- notefiveindex="${stepmenuarray[$displayarrayplace5]}"
- notesixindex="${stepmenuarray[$displayarrayplace6]}"
- notesevenindex="${stepmenuarray[$displayarrayplace7]}"
- menurootnote=${menurootnote/#'*\#'/}
- menu2ndnote=${menu2ndnote/#'*\#'/}
- menu3rdnote=${menu3rdnote/#'*\#'/}
- menu4thnote=${menu4thnote/#'*\#'/}
- menu5thnote=${menu5thnote/#'*\#'/}
- menu6thnote=${menu6thnote/#'*\#'/}
- menu7thnote=${menu7thnote/#'*\#'/}
- menurootnote=${menurootnote//\*/}
- menu2ndnote=${menu2ndnote//\*/}
- menu3rdnote=${menu3rdnote//\*/}
- menu4thnote=${menu4thnote//\*/}
- menu5thnote=${menu5thnote//\*/}
- menu6thnote=${menu6thnote//\*/}
- menu7thnote=${menu7thnote//\*/}
- rootnoteindex=${rootnoteindex:2}
- notetwoindex=${notetwoindex:2}
- notethreeindex=${notethreeindex:2}
- notefourindex=${notefourindex:2}
- notefiveindex=${notefiveindex:2}
- notesixindex=${notesixindex:2}
- notesevenindex=${notesevenindex:2}
- paddedrootnote=$(menu_pad "$rootnoteindex" "$menurootnote")
- COLUMNS=$(tput cols)
- paddedrootnoteprompt="$paddedrootnote"
- printf "%*s\n\n" $(((${#paddedrootnoteprompt}+$COLUMNS)/2)) "$paddedrootnoteprompt"
- padded2ndnote=$(menu_pad $notetwoindex "$menu2ndnote")
- COLUMNS=$(tput cols)
- padded2ndnoteprompt="$padded2ndnote"
- printf "%*s\n\n" $(((${#padded2ndnoteprompt}+$COLUMNS)/2)) "$padded2ndnoteprompt"
- padded3rdnote=$(menu_pad "$notethreeindex" "$menu3rdnote")
- COLUMNS=$(tput cols)
- padded3rdnoteprompt="$padded3rdnote"
- printf "%*s\n\n" $(((${#padded3rdnoteprompt}+$COLUMNS)/2)) "$padded3rdnoteprompt"
- padded4thnote=$(menu_pad "$notefourindex" "$menu4thnote")
- COLUMNS=$(tput cols)
- padded4thnoteprompt="$padded4thnote"
- printf "%*s\n\n" $(((${#padded4thnoteprompt}+$COLUMNS)/2)) "$padded4thnoteprompt"
- padded5thnote=$(menu_pad "$notefiveindex" "$menu5thnote")
- COLUMNS=$(tput cols)
- padded5thnoteprompt="$padded5thnote"
- printf "%*s\n\n" $(((${#padded5thnoteprompt}+$COLUMNS)/2)) "$padded5thnoteprompt"
- padded6thnote=$(menu_pad "$notesixindex" "$menu6thnote")
- COLUMNS=$(tput cols)
- padded6thnoteaprompt="$padded6thnote"
- printf "%*s\n\n" $(((${#padded6thnoteaprompt}+$COLUMNS)/2)) "$padded6thnoteaprompt"
- padded7thnote=$(menu_pad "$notesevenindex" "$menu7thnote")
- COLUMNS=$(tput cols)
- padded7thnoteaprompt="$padded7thnote"
- printf "%*s\n\n" $(((${#padded7thnoteaprompt}+$COLUMNS)/2)) "$padded7thnoteaprompt"
- tput sc
- tput ll
- echo
- echo
- echo
- echo
- COLUMNS=$(tput cols)
- range="|| ##0X || #00X || 000X || *00X || **0X || ***X ||"
- printf "%*s\n\n" $(((${#range}+$COLUMNS)/2)) "$range"
- echo
- exit_footer
- tput rc
- }
- menu_pad () {
- # TOOL I STOLE / ADAPTED
- #line='----------------------------------------'
- #MENURIGHT="$2"
- #printf "$1 %s %s \n" "${line:${#MENURIGHT}}" $MENURIGHT
- # TOOL I STOLE / ADAPTED
- line='---------------------------------------------------'
- MENURIGHT="$2"
- MENULEFT="$1"
- printf "$1 %s %s %s \n" "${line:${#MENULEFT}}""${line:${#MENURIGHT}}" "$MENURIGHT"
- }
- preset_pad () {
- # TOOL I STOLE / ADAPTED
- #line='----------------------------------------'
- #MENURIGHT="$2"
- #printf "$1 %s %s \n" "${line:${#MENURIGHT}}" $MENURIGHT
- # TOOL I STOLE / ADAPTED
- line='----------'
- MENURIGHT="$2"
- MENULEFT="$1"
- printf "$1 %s %s %s \n" "${line:${#MENULEFT}}""${line:${#MENURIGHT}}" "$MENURIGHT"
- }
- save_preset () {
- #IMPORT CURRENT VARIABLES
- mapfile -t step1 < /usr/local/bin/onson/satelites/step1
- mapfile -t step2 < /usr/local/bin/onson/satelites/step2
- mapfile -t step3 < /usr/local/bin/onson/satelites/step3
- mapfile -t step4 < /usr/local/bin/onson/satelites/step4
- mapfile -t step5 < /usr/local/bin/onson/satelites/step5
- mapfile -t step6 < /usr/local/bin/onson/satelites/step6
- mapfile -t step7 < /usr/local/bin/onson/satelites/step7
- mapfile -t step8 < /usr/local/bin/onson/satelites/step8
- mapfile -t divide < /usr/local/bin/onson/satelites/divide
- mapfile -t direction < /usr/local/bin/onson/satelites/direction
- mapfile -t glide < /usr/local/bin/onson/satelites/glide
- mapfile -t length < /usr/local/bin/onson/satelites/length
- mapfile -t currentpreset < /usr/local/bin/onson/satelites/currentpreset
- mapfile -t currentbank < /usr/local/bin/onson/satelites/currentbank
- #MIDI CONVERSION
- if [ "$currentbank" = "A" ]
- then
- currentbankmidi="2"
- fi
- if [ "$currentbank" = "B" ]
- then
- currentbankmidi="3"
- fi
- echo "$currentbankmidi" > /usr/local/bin/onson/midi/satelites/currentbankmidi
- scalestring="##01 ##02 ##03 ##04 ##05 ##06 ##07 ##08 ##09 ##10 ##11 ##12 #001 #002 #003 #004 #005 #006 #007 #008 #009 #010 #011 #012 0001 0002 0003 0004 0005 0006 0007 0008 0009 0010 0011 0012 *001 *002 *003 *004 *005 *006 *007 *008 *009 *010 *011 *012 \*\*01 \*\*02 \*\*03 \*\*04 \*\*05 \*\*06 \*\*07 \*\*08 \*\*09 \*\*10 \*\*11 \*\*12 \*\*\*1 \*\*\*2 \*\*\*3 \*\*\*4 \*\*\*5 \*\*\*6 \*\*\*7"
- preconversionnames="step1 step2 step3 step4 step5 step6 step7 step8 divide direction glide length"
- conversionvalues=($midistep1 $midistep2 $midistep3 $midistep4 $midistep5 $midistep6 $midistep7 $midistep8 $mididivide $mididirection $midiglide $midilength)
- postconversionnames=(16 17 18 19 20 21 22 23 29 26 25 27)
- scalevalues=(00 02 03 05 07 09 11 13 15 18 20 21 23 26 28 30 32 34 35 37 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 73 75 77 79 82 83 85 87 88 91 92 95 97 98 100 102 103 105 107 109 110 113 114 115 118 120 121 123 124 126)
- w=0
- for i in $scalestring
- do
- if [ "$step1" = "$i" ]
- then
- echo ${scalevalues[$w]} > /usr/local/bin/onson/midi/satelites/midistep1
- fi
- if [ "$step2" = "$i" ]
- then
- echo ${scalevalues[$w]} > /usr/local/bin/onson/midi/satelites/midistep2
- fi
- if [ "$step3" = "$i" ]
- then
- echo ${scalevalues[$w]} > /usr/local/bin/onson/midi/satelites/midistep3
- fi
- if [ "$step4" = "$i" ]
- then
- echo ${scalevalues[$w]} > /usr/local/bin/onson/midi/satelites/midistep4
- fi
- if [ "$step5" = "$i" ]
- then
- echo ${scalevalues[$w]} > /usr/local/bin/onson/midi/satelites/midistep5
- fi
- if [ "$step6" = "$i" ]
- then
- echo ${scalevalues[$w]} > /usr/local/bin/onson/midi/satelites/midistep6
- fi
- if [ "$step7" = "$i" ]
- then
- echo ${scalevalues[$w]} > /usr/local/bin/onson/midi/satelites/midistep7
- fi
- if [ "$step8" = "$i" ]
- then
- echo ${scalevalues[$w]} > /usr/local/bin/onson/midi/satelites/midistep8
- fi
- ((w++))
- done
- echo $divide > /usr/local/bin/onson/midi/satelites/mididivide
- echo $direction > /usr/local/bin/onson/midi/satelites/mididirection
- echo $glide > /usr/local/bin/onson/midi/satelites/midiglide
- echo $length > /usr/local/bin/onson/midi/satelites/midilength
- #PRESET CONVERSION
- mapfile -t midistep1 < /usr/local/bin/onson/midi/satelites/midistep1
- mapfile -t midistep2 < /usr/local/bin/onson/midi/satelites/midistep2
- mapfile -t midistep3 < /usr/local/bin/onson/midi/satelites/midistep3
- mapfile -t midistep4 < /usr/local/bin/onson/midi/satelites/midistep4
- mapfile -t midistep5 < /usr/local/bin/onson/midi/satelites/midistep5
- mapfile -t midistep6 < /usr/local/bin/onson/midi/satelites/midistep6
- mapfile -t midistep7 < /usr/local/bin/onson/midi/satelites/midistep7
- mapfile -t midistep8 < /usr/local/bin/onson/midi/satelites/midistep8
- mapfile -t mididirection < /usr/local/bin/onson/midi/satelites/mididirection
- mapfile -t mididivide < /usr/local/bin/onson/midi/satelites/mididivide
- mapfile -t midiglide < /usr/local/bin/onson/midi/satelites/midiglide
- mapfile -t midilength < /usr/local/bin/onson/midi/satelites/midilength
- mapfile -t currentbankmidi < /usr/local/bin/onson/midi/satelites/currentbankmidi
- mapfile -t currentbank < /usr/local/bin/onson/satelites/currentbank
- mapfile -t currentpreset < /usr/local/bin/onson/satelites/currentpreset
- mapfile -t currentsong < /usr/local/bin/onson/satelites/currentsong
- echo -e "#!/bin/bash
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE pc 111&>/dev/null &
- disown
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 16 $midistep1&>/dev/null &
- disown
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 17 $midistep2&>/dev/null &
- disown
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 18 $midistep3&>/dev/null &
- disown
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 19 $midistep4&>/dev/null &
- disown
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 20 $midistep5&>/dev/null &
- disown
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 21 $midistep6&>/dev/null &
- disown
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 22 $midistep7&>/dev/null &
- disown
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 23 $midistep8&>/dev/null &
- disown
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 23 $midistep8&>/dev/null &
- disown
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 29 $mididivide&>/dev/null &
- disown
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 26 $mididirection&>/dev/null &
- disown
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 25 $midiglide&>/dev/null &
- disown
- sleep 0.3
- nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 27 $midilength&>/dev/null &
- disown
- sleep 0.3" > /usr/local/bin/onson/midi/presets/"$currentsong$currentpreset$currentbank"
- #SAVE VARIABLES TO CURRENT PRESET
- echo 'echo "'$currentsong'" > /usr/local/bin/onson/satelites/currentsong' > /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$currentpreset'" > /usr/local/bin/onson/satelites/currentpreset' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$currentbank'" > /usr/local/bin/onson/satelites/currentbank' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$step1'" > /usr/local/bin/onson/satelites/step1' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$step2'" > /usr/local/bin/onson/satelites/step2' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$step3'" > /usr/local/bin/onson/satelites/step3' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$step4'" > /usr/local/bin/onson/satelites/step4' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$step5'" > /usr/local/bin/onson/satelites/step5' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$step6'" > /usr/local/bin/onson/satelites/step6' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$step7'" > /usr/local/bin/onson/satelites/step7' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$step8'" > /usr/local/bin/onson/satelites/step8' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$divide'" > /usr/local/bin/onson/satelites/divide' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$direction'" > /usr/local/bin/onson/satelites/direction' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$glide'" > /usr/local/bin/onson/satelites/glide' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- echo 'echo "'$length'" > /usr/local/bin/onson/satelites/length' >> /usr/local/bin/onson/presets/"$currentsong$currentpreset$currentbank"
- nohup sudo chmod +x /usr/local/bin/onson/midi/presets/"$currentsong$currentpreset$currentbank"&> /dev/null &
- disown
- #nohup sudo sendmidi ch $currentbankmidi dev pisound MIDI PS-3NQ28DE cc 118 0 &>/dev/null & ## sets internal preset to bank 0 - which is all low D
- #disown
- nohup sudo sh /usr/local/bin/onson/midi/presets/"$currentsong$currentpreset$currentbank"&> /dev/null &
- disown
- }
- load_song () {
- mapfile -t currentsong < /usr/local/bin/onson/satelites/currentsong
- mapfile -t currentpreset < /usr/local/bin/onson/satelites/currentpreset
- mapfile -t currentbank < /usr/local/bin/onson/satelites/currentbank
- songfile="$currentsong$currentpreset$currentbank"
- source /usr/local/bin/onson/presets/"$songfile"
- }
- #PRINT OUTS
- print_bank () {
- echo
- COLUMNS=$(tput cols)
- bankprompt="PICK A SEQUENCER."
- printf "%*s\n" $(((${#bankprompt}+$COLUMNS)/2)) "$bankprompt"
- echo
- echo
- echo
- paddedbanka=$(menu_pad 1. A)
- COLUMNS=$(tput cols)
- paddedaprompt="$paddedbanka"
- printf "%*s\n\n" $(((${#paddedaprompt}+$COLUMNS)/2)) "$paddedaprompt"
- paddedbankb=$(menu_pad 2. B)
- COLUMNS=$(tput cols)
- paddedbprompt="$paddedbankb"
- printf "%*s\n\n" $(((${#paddedbprompt}+$COLUMNS)/2)) "$paddedbprompt"
- paddedbankab=$(menu_pad 3. AB)
- COLUMNS=$(tput cols)
- paddedabprompt="$paddedbankab"
- printf "%*s\n\n" $(((${#paddedabprompt}+$COLUMNS)/2)) "$paddedabprompt"
- }
- print_song () {
- preset_header
- echo
- }
- print_main_menu () {
- mapfile -t step1 < /usr/local/bin/onson/satelites/step1
- mapfile -t step2 < /usr/local/bin/onson/satelites/step2
- mapfile -t step3 < /usr/local/bin/onson/satelites/step3
- mapfile -t step4 < /usr/local/bin/onson/satelites/step4
- mapfile -t step5 < /usr/local/bin/onson/satelites/step5
- mapfile -t step6 < /usr/local/bin/onson/satelites/step6
- mapfile -t step7 < /usr/local/bin/onson/satelites/step7
- mapfile -t step8 < /usr/local/bin/onson/satelites/step8
- mapfile -t divide < /usr/local/bin/onson/satelites/divide
- mapfile -t direction < /usr/local/bin/onson/satelites/direction
- mapfile -t glide < /usr/local/bin/onson/satelites/glide
- mapfile -t length < /usr/local/bin/onson/satelites/length
- allsteps="$step1 $step2 $step3 $step4 $step5 $step6 $step7 $step8"
- echo $allsteps > /usr/local/bin/onson/satelites/allsteps
- echo
- paddedallsteps=$(menu_pad 1.STEPS "$allsteps")
- COLUMNS=$(tput cols)
- paddedallstepsprompt="$paddedallsteps"
- printf "%*s\n\n" $(((${#paddedallstepsprompt}+$COLUMNS)/2)) "$paddedallstepsprompt"
- #DIVIDE
- divname="TAP"
- paddeddivide=$(menu_pad 2.DIVIDE "$divname")
- COLUMNS=$(tput cols)
- paddeddivideprompt="$paddeddivide"
- printf "%*s\n\n" $(((${#paddeddivideprompt}+$COLUMNS)/2)) "$paddeddivideprompt"
- #DIRECTION
- currentdirnum="0 1 2 3 "
- currentdirname=(FORWARD REVERSE BOUNCE RANDOM)
- for i in $currentdirnum
- do
- if [ "$direction" = "$i" ]
- then
- ((arrayplace="$i"))
- dirname="${currentdirname[$arrayplace]}"
- paddeddirection=$(menu_pad 3.DIRECTION "$dirname")
- COLUMNS=$(tput cols)
- paddeddirectionprompt="$paddeddirection"
- printf "%*s\n\n" $(((${#paddeddirectionprompt}+$COLUMNS)/2)) "$paddeddirectionprompt"
- fi
- done
- paddedglide=$(menu_pad 4.GLIDE "$glide")
- COLUMNS=$(tput cols)
- paddedglideprompt="$paddedglide"
- printf "%*s\n\n" $(((${#paddedglideprompt}+$COLUMNS)/2)) "$paddedglideprompt"
- paddedlength=$(menu_pad 5.LENGTH $length)
- COLUMNS=$(tput cols)
- paddedlengthprompt="$paddedlength"
- printf "%*s\n\n" $(((${#paddedlengthprompt}+$COLUMNS)/2)) "$paddedlengthprompt"
- }
- print_steps () {
- paddedstep1=$(menu_pad 1. "$step1")
- COLUMNS=$(tput cols)
- paddedstep1prompt="$paddedstep1"
- printf "%*s\n\n" $(((${#paddedstep1prompt}+$COLUMNS)/2)) "$paddedstep1prompt"
- paddedstep2=$(menu_pad 2. "$step2")
- COLUMNS=$(tput cols)
- paddedstep2prompt="$paddedstep2"
- printf "%*s\n\n" $(((${#paddedstep2prompt}+$COLUMNS)/2)) "$paddedstep2prompt"
- paddedstep3=$(menu_pad 3. "$step3")
- COLUMNS=$(tput cols)
- paddedstep3prompt="$paddedstep3"
- printf "%*s\n\n" $(((${#paddedstep3prompt}+$COLUMNS)/2)) "$paddedstep3prompt"
- paddedstep4=$(menu_pad 4. "$step4")
- COLUMNS=$(tput cols)
- paddedstep4prompt="$paddedstep4"
- printf "%*s\n\n" $(((${#paddedstep4prompt}+$COLUMNS)/2)) "$paddedstep4prompt"
- paddedstep5=$(menu_pad 5. "$step5")
- COLUMNS=$(tput cols)
- paddedstep5prompt="$paddedstep5"
- printf "%*s\n\n" $(((${#paddedstep5prompt}+$COLUMNS)/2)) "$paddedstep5prompt"
- paddedstep6=$(menu_pad 6. "$step6")
- COLUMNS=$(tput cols)
- paddedstep6prompt="$paddedstep6"
- printf "%*s\n\n" $(((${#paddedstep6prompt}+$COLUMNS)/2)) "$paddedstep6prompt"
- paddedstep7=$(menu_pad 7. "$step7")
- COLUMNS=$(tput cols)
- paddedstep7prompt="$paddedstep7"
- printf "%*s\n\n" $(((${#paddedstep7prompt}+$COLUMNS)/2)) "$paddedstep7prompt"
- paddedstep8=$(menu_pad 8. "$step8")
- COLUMNS=$(tput cols)
- paddedstep8prompt="$paddedstep8"
- printf "%*s\n\n" $(((${#paddedstep8prompt}+$COLUMNS)/2)) "$paddedstep8prompt"
- }
- print_divide () {
- echo
- div0="OFF-1/4"
- div1="DOTTED-8TH"
- div2="1/4-TRIPLET"
- div3="8TH"
- div4="8TH-TRIPLET"
- div5="16TH"
- div6="32ND"
- paddeddiv0=$(menu_pad 1. "$div0")
- COLUMNS=$(tput cols)
- paddeddiv0prompt="$paddeddiv0"
- printf "%*s\n\n" $(((${#paddeddiv0}+$COLUMNS)/2)) "$paddeddiv0"
- paddeddiv1=$(menu_pad 2. "$div1")
- COLUMNS=$(tput cols)
- paddeddiv1prompt="$paddeddiv1"
- printf "%*s\n\n" $(((${#paddeddiv1}+$COLUMNS)/2)) "$paddeddiv1"
- paddeddiv2=$(menu_pad 3. "$div2")
- COLUMNS=$(tput cols)
- paddeddiv2prompt="$paddeddiv2"
- printf "%*s\n\n" $(((${#paddeddiv2}+$COLUMNS)/2)) "$paddeddiv2"
- paddeddiv3=$(menu_pad 4. "$div3")
- COLUMNS=$(tput cols)
- paddeddiv3prompt="$paddeddiv3"
- printf "%*s\n\n" $(((${#paddeddiv3}+$COLUMNS)/2)) "$paddeddiv3"
- paddeddiv4=$(menu_pad 5. "$div4")
- COLUMNS=$(tput cols)
- paddeddiv4prompt="$paddeddiv4"
- printf "%*s\n\n" $(((${#paddeddiv4}+$COLUMNS)/2)) "$paddeddiv4"
- paddeddiv5=$(menu_pad 6. "$div5")
- COLUMNS=$(tput cols)
- paddeddiv5prompt="$paddeddiv5"
- printf "%*s\n\n" $(((${#paddeddiv5}+$COLUMNS)/2)) "$paddeddiv5"
- paddeddiv6=$(menu_pad 7. "$div6")
- COLUMNS=$(tput cols)
- paddeddiv6prompt="$paddeddiv6"
- printf "%*s\n\n" $(((${#paddeddiv6}+$COLUMNS)/2)) "$paddeddiv6"
- }
- print_direction () {
- dir0="FORWARD"
- dir1="REVERSE"
- dir2="BOUNCE"
- dir3="RANDOM"
- paddeddir0=$(menu_pad 1. "$dir0")
- COLUMNS=$(tput cols)
- paddeddir0prompt="$paddeddir0"
- printf "%*s\n\n" $(((${#paddeddir0}+$COLUMNS)/2)) "$paddeddir0"
- paddeddir1=$(menu_pad 2. "$dir1")
- COLUMNS=$(tput cols)
- paddeddir1prompt="$paddeddir1"
- printf "%*s\n\n" $(((${#paddeddir1}+$COLUMNS)/2)) "$paddeddir1"
- paddeddir2=$(menu_pad 3. "$dir2")
- COLUMNS=$(tput cols)
- paddeddir2prompt="$paddeddir2"
- printf "%*s\n\n" $(((${#paddeddir2}+$COLUMNS)/2)) "$paddeddir2"
- paddeddir3=$(menu_pad 4. "$dir3")
- COLUMNS=$(tput cols)
- paddeddir3prompt="$paddeddir3"
- printf "%*s\n\n" $(((${#paddeddir3}+$COLUMNS)/2)) "$paddeddir3"
- }
- #FOR A CARRIAGE RETURN
- cr=`echo $'\n.'`
- cr=${cr%.}
- clear
- #IF MISSING CREATE SATALITE FILES BEFORE THE BIG LOOP
- mkdir -p /usr/local/bin/onson/presets
- mkdir -p /usr/local/bin/onson/satelites
- mkdir -p /usr/local/bin/onson/midi/satelites
- mkdir -p /usr/local/bin/onson/midi/presets
- touch /usr/local/bin/onson/satelites/rootarrayplace
- touch /usr/local/bin/onson/satelites/arrayplace
- touch </usr/local/bin/onson/satelites/allsteps
- touch /usr/local/bin/onson/satelites/step1
- touch /usr/local/bin/onson/satelites/step2
- touch /usr/local/bin/onson/satelites/step3
- touch /usr/local/bin/onson/satelites/step4
- touch /usr/local/bin/onson/satelites/step5
- touch /usr/local/bin/onson/satelites/step6
- touch /usr/local/bin/onson/satelites/step7
- touch /usr/local/bin/onson/satelites/step8
- touch /usr/local/bin/onson/satelites/divide
- touch /usr/local/bin/onson/satelites/direction
- touch /usr/local/bin/onson/satelites/glide
- touch /usr/local/bin/onson/satelites/length
- touch /usr/local/bin/onson/satelites/currentsong
- touch /usr/local/bin/onson/satelites/currentpreset
- touch /usr/local/bin/onson/satelites/currentbank
- touch /usr/local/bin/onson/midi/satelites/midistep1
- touch /usr/local/bin/onson/midi/satelites/midistep2
- touch /usr/local/bin/onson/midi/satelites/midistep3
- touch /usr/local/bin/onson/midi/satelites/midistep4
- touch /usr/local/bin/onson/midi/satelites/midistep5
- touch /usr/local/bin/onson/midi/satelites/midistep6
- touch /usr/local/bin/onson/midi/satelites/midistep7
- touch /usr/local/bin/onson/midi/satelites/midistep8
- touch /usr/local/bin/onson/midi/satelites/mididivide
- touch /usr/local/bin/onson/midi/satelites/mididirection
- touch /usr/local/bin/onson/midi/satelites/midiglide
- touch /usr/local/bin/onson/midi/satelites/midilength
- touch /usr/local/bin/onson/midi/satelites/currentpreset
- touch /usr/local/bin/onson/midi/satelites/currentbank
- mapfile -t currentsong < /usr/local/bin/onson/satelites/currentsong
- mapfile -t currentpreset < /usr/local/bin/onson/satelites/currentpreset
- mapfile -t currentbank < /usr/local/bin/onson/satelites/currentbank
- # THERE ARE LAYERS OF LOOPS HERE TO ROUTE BREAKS TO/FROM VARIOUIS
- # POINTS IN NAVIGATION
- # BIG LOOP 3
- while :
- do
- #BIG LOOP 2 -
- while :
- do
- #BIG LOOP 1 -
- while :
- do
- clear
- onson_header
- echo
- echo
- print_song
- song_footer
- center_read 4 songinput
- if [ "$songinput" -ge 0 ] && [ "$songinput" -eq "$songinput" ]
- then
- validsong="$songinput"
- echo "$validsong" > /usr/local/bin/onson/satelites/currentsong
- break
- fi
- done
- #SMALL PRESET LOOP
- while :
- do
- clear
- onson_header
- echo
- echo
- print_song
- preset_footer
- center_read 2 presetinput
- if [ "$presetinput" -ge 0 ] && [ "$presetinput" -eq "$presetinput" ]
- then
- validpreset="$presetinput"
- echo "$validpreset" > /usr/local/bin/onson/satelites/currentpreset
- break
- fi
- done
- #BANK SELECTION
- clear
- onson_header
- print_bank
- menu_footer 3
- center_read 1 bankinput
- case $bankinput in
- 1)
- bank="A"
- echo "$bank" > /usr/local/bin/onson/satelites/currentbank
- load_song
- break # OUT OF SMALL PRESET LOOP
- ;;
- 2)
- bank="B"
- echo "$bank" > /usr/local/bin/onson/satelites/currentbank
- load_song
- break # OUT OF SMALL PRESET LOOP
- ;;
- 3)
- bank="AB"
- echo "$bank" > /usr/local/bin/onson/satelites/currentbank
- load_song
- break # OUT OF SMALL PRESET LOOP
- ;;
- *)
- ;;
- esac
- done #CLOSE SMALL PRESET LOOP
- #SMALL MAIN MENU LOOP
- while :
- do
- clear
- bank_header
- print_main_menu
- menu_footer 5
- center_read 1 menuselection
- case $menuselection in
- #STEPS
- 1)
- clear
- mapfile -t step1 </usr/local/bin/onson/satelites/step1
- mapfile -t step2 </usr/local/bin/onson/satelites/step2
- mapfile -t step3 </usr/local/bin/onson/satelites/step3
- mapfile -t step4 </usr/local/bin/onson/satelites/step4
- mapfile -t step5 </usr/local/bin/onson/satelites/step5
- mapfile -t step6 </usr/local/bin/onson/satelites/step6
- mapfile -t step7 </usr/local/bin/onson/satelites/step7
- mapfile -t step8 </usr/local/bin/onson/satelites/step8
- mapfile -t midistep1 < /usr/local/bin/onson/midi/satelites/midistep1
- mapfile -t midistep2 < /usr/local/bin/onson/midi/satelites/midistep2
- mapfile -t midistep3 < /usr/local/bin/onson/midi/satelites/midistep3
- mapfile -t midistep4 < /usr/local/bin/onson/midi/satelites/midistep4
- mapfile -t midistep5 < /usr/local/bin/onson/midi/satelites/midistep5
- mapfile -t midistep6 < /usr/local/bin/onson/midi/satelites/midistep6
- mapfile -t midistep7 < /usr/local/bin/onson/midi/satelites/midistep7
- mapfile -t midistep8 < /usr/local/bin/onson/midi/satelites/midistep8
- steps_body
- ;;
- #MENU ITEM # 2 - DIVISION
- 2)
- mapfile -t currentbankmidi < /usr/local/bin/onson/midi/satelites/currentbankmidi
- ((x++))
- if [ "$x" -gt 6 ]
- then
- x=0
- fi
- divide="$x"
- nohup sudo sendmidi ch "$currentbankmidi" dev pisound MIDI PS-3NQ28DE cc 29 "$divide"&>/dev/null &
- disown
- echo "$divide" > /usr/local/bin/onson/satelites/divide
- ;;
- 3)
- clear
- mapfile -t direction </usr/local/bin/onson/satelites/direction
- direction_body
- # OUT OF BIG LOOP ONE
- ;;
- #MENU ITEM #4 - GLIDE
- 4)
- clear
- mapfile -t glide </usr/local/bin/onson/satelites/glide
- glide_body
- # OUT OF BIG LOOP ONE
- ;;
- #MENU ITEM #5 - LENGTH
- 5)
- clear
- mapfile -t length </usr/local/bin/onson/satelites/length
- length_body
- # OUT OF BIG LOOP ONE
- ;;
- *)
- clear
- break
- ;;
- #CLOSING MENU CASE
- esac
- done
- #CLOSE SMALL MAIN MENU LOOP
- done
- #CLOSE BIG LOOP 1
- done
- #CLOSE BIG LOOP 2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement