|!Punctuation|!Location|!Function|\n|{{{@@...@@}}}|surrounding text|@@highlighted text@@|\n|{{{//...//}}}|surrounding text|//italicized text//|\n|{{{==...==}}}|surrounding text|==strikethrough text==|\n|{{{''...''}}}|surrounding text|''boldfaced text''|\n|{{{__...__}}}|surrounding text|__underlined text__|\n|{{{[[text|url]]}}}|around text/url pair|[[text|http://gri.gallaudet.edu/]] link to url|\n|{{{ {...} }}}|''__tripled__'' surrounding text|{{{in-line literal text}}}|\n|{{{ {...} }}}|''__tripled__'' surrounding ''__lines__''|literal block|\n|{{{<<<}}}|surrounding ''__lines__''|blockquotes|\n|{{{!}}}|at start of line|subheading|\n|{{{|...|...|}}}|line sectioned by vertical bars|table row|\n|{{{!}}}|in a table|!table heading|\n|{{{----}}}|alone on line|horizontal rule|\n|{{{*}}}|at start of line|bulleted list item|\n|{{{#}}}|at start of line|numbered list item|\nsource: Kevin Cole, January 2007
TTiddlyWiki uses Wiki style markup, a way of lightly "tagging" plain text so it can be transformed into HTML. Edit this Tiddler to see samples.\n\n! Header Samples\n!Header 1\n!!Header 2\n!!!Header 3\n!!!!Header 4\n!!!!!Header 5\n\n! Unordered Lists:\n* Lists are where it's at\n* Just use an asterisk and you're set\n** To nest lists just add more asterisks...\n***...like this\n* The circle makes a great bullet because once you've printed a list you can mark off completed items\n* You can also nest mixed list types\n## Like this\n\n! Ordered Lists\n# Ordered lists are pretty neat too\n# If you're handy with HTML and CSS you could customize the [[numbering scheme|http://www.w3schools.com/css/pr_list-style-type.asp]]\n## To nest, just add more octothorpes (pound signs)...\n### Like this\n* You can also\n** Mix list types\n*** like this\n# Pretty neat don't you think?\n\n! Tiddler links\nTo create a Tiddler link, just use mixed-case WikiWord, or use [[brackets]] for NonWikiWordLinks. This is how the GTD style [[@Action]] lists are created. \n\nNote that existing Tiddlers are in bold and empty Tiddlers are in italics. See CreatingTiddlers for details.\n\n! External Links\nYou can link to [[external sites|http://google.com]] with brackets. You can also LinkToFolders on your machine or network shares.\n\n! Images\nEdit this tiddler to see how it's done.\n[img[http://img110.echo.cx/img110/139/gorilla8nw.jpg]]\n\n!Tables\n|!th1111111111|!th2222222222|\n|>| colspan |\n| rowspan |left|\n|~| right|\n|colored| center |\n|caption|c\n\nFor a complex table example, see PeriodicTable.\n\n! Horizontal Rules\nYou can divide a tiddler into\n----\nsections by typing four dashes on a line by themselves.\n\n! Blockquotes\n<<<\nThis is how you do an extended, wrapped blockquote so you don't have to put angle quotes on every line.\n<<<\n>level 1\n>level 1\n>>level 2\n>>level 2\n>>>level 3\n>>>level 3\n>>level 2\n>level 1\n\n! Other Formatting\n''Bold''\n==Strike==\n__Underline__\n//Italic//\nSuperscript: 2^^3^^=8\nSubscript: a~~ij~~ = -a~~ji~~\n@@highlight@@\n@@color(green):green colored@@\n@@bgcolor(#ff0000):color(#ffffff):red colored@@\n
LinuxEchoplex
A Visual Bash implementation of a musical accompaniment system
Type the text for 'New Tiddler'
Type the text for 'New Tiddler'
Type the text for '18 January 2021'\n\n[[Echoplex - Working Definition|https://en.wikipedia.org/wiki/Echoplex]]\n\n[[Visual Bash Code|echoplex.sh]]
[[OverView]]
{{{\n#!/bin/bash\n#\n#\nversion="0.05"\nmchnl="28:0"\n#\n# Sun 31 Jan 2021 04:06:54 PM EST\n# Tue 02 Feb 2021 12:32:23 PM EST\n#\n#* function help - Help function for template basic help goes here\nfunction help(){\nclear;\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version; uroot #debug\ncat $0 | grep '^## ' | sed -e 's/##//'\n# echo "This is the help function"\n## *****DOCUMENTATION*****\n## You get this when you put in the wrong number or type of arguments...\n## The name of this program is echoplex.sh, an over-extention of unix bash.\n## This is released under GPL I\n## This program lets you play with yourself... Please be careful.\n## The syntax is:#\n## echoplex.sh <verb>\n## - record\n## - play\n## - loop\n## - erase\n## - add\n## - midit\n## - remote\n## - timesave\n##\n## For structure information type "grep '^\s#\s*' echoplex.sh"\n## :^)\n## (C) P Flint, Barre Open Systems Institute Liscensed under GPLI\n##\n# *****Documentation Loop ends here the rest is function******\n#\n} # Test: echoplex.sh\n#\nfunction dummy(){\n#* function dummy - Rename and fill stuff in between braces\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nuroot\n} # Test:\n#\nfunction remote(){\n#* function remote - operate via midi control surface...zz/0\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# uroot\necho "1. LEAVE"\necho "2. StampStore"\necho "3. rewind"\necho "4. fastf"\necho "5. loop"\necho "6. STOP"\necho "7. Play"\necho "8. Record"\naseqdump -p $mchnl | while read line;\ndo echo $line;\n# Mon 01 Feb 2021 12:16:49 PM EST\n# make the echoplex remote choice\nif [[ $line == *"note 0"* ]]; then\n help\n break\nelif [[ $line == *"note 1"* ]]; then\n echo "hit note 2"\n # killall arecord\n break\nelif [[ $line == *"note 2"* ]]; then\n echo "hit note 3"\n killall arecord\n break\nelif [[ $line == *"note 3"* ]]; then\n echo "hit note 4"\n killall arecord\n break\nelif [[ $line == *"note 4"* ]]; then\n echo "hit note 5"\n killall aplay\n break\nelif [[ $line == *"note 5"* ]]; then\n echo "hit note 6"\n killall aplay\n break\nelif [[ $line == *"note 6"* ]]; then\n echo "hit note 7"\n aplay test.wav\n break\nelif [[ $line == *"note 7"* ]]; then\n echo "Hit note 8"\n echo "start recording (safety)"\n help\n break\n\nfi\ndone\n# End main loop. To TEST:\n} # Test:\n#\n#\nfunction record(){\n#* function record - Rename and fill stuff in between braces\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# uroot\narecord test.wav\n} # Test:\n#\n#\nfunction loop(){\n#* function record - Rename and fill stuff in between braces\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# uroot\nmpv --loop test.wav\n} # Test:\n#\n#\nfunction play(){\n#* function record - Rename and fill stuff in between braces\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# uroot\naplay test.wav\n} # Test:\n#\nfunction midid(){\n#* function midid - dumps midi device\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nmidiok=$(aseqdump -l | grep "X-TOUCH MINI")\n#\n[[ ! -z "$midiok" ]] && echo "MIDI AOK" || echo "MIDI BROKE"\n#\nmidino=$(echo $midiok |cut -c -4)\n#\naseqdump -p $midino\n# uroot\n} # Test:\n#\nfunction midit(){\n#* function midi - tests midi device\n# echo "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\nmidiok=""\n# uroot\nmidiok=$(aseqdump -l | grep "X-TOUCH MINI")\n#\n[[ ! -z "$midiok" ]] && echo "MIDI AOK" || echo "MIDI BROKE"\n#\nmchnl=$(echo $midiok |cut -c -4) ; echo "MIDI Channes is: "$mchnl\n#\n} # Test: echoplex.sh midit (plug/unplug lrr)\n\n\n#\n# Sun 17 Jan 2021 12:21:47 PM EST\n# Usage: audacity [-b <num>] [-d <str>] [-h] [-t] [-v] [audio or project file name...]\n# -b, --blocksize=<num> set max disk block size in bytes\n# -d, --decode=<str> decode an autosave file\n# -h, --help this help message\n# -t, --test run self diagnostics\n# -v, --version display Audacity version\n#\n#\nfunction timesave(){\n#* function timesave - stores the current phrase with a filename\necho "This is the \s""$FUNCNAME"\s" function in "$0" version "$version #debug\n# uroot\necho "cp test.wav "$var2 ; spause\ncp test.wav $var2\n} # Test:\n#\n#\n#\n#\n######################################STANDARD AND MAYBE USEFUL FUNCTIONS BELOW\n#\n#\n#* function uroot - Checks to see if you are root\nfunction uroot(){\n# echo "Make sure only root can run script"\nif [ "$(id -u)" != "0" ]; then\n echo "This script does not need to run as root but that's OK as you are not root" 1>&2\nfi\n} # Test:~flint/bin/mtoc.sh uroot\n#\n#* function spause - A simple tarry...\nfunction spause(){\n # -t sets time\n # read -t $pt -p "$*" ans\n read -p "Hit enter to continue..." ans\n echo $ans\n}\n#\n#*###################################### MAIN ENTRY POINT AND COMPOUND CASE\n#\n#D echo "echoplex.sh"$version" starts"\n#* Evaluator Routine\n# Note the evaluator allows for many cases and error checking...\n#d ARGS=$# # carries the number of args into the functions...\n#D echo $#" "$1" "$2" "$3" "$ARGS ;spause\n# Note these are special compound cases...\nif [ "$#" -eq "1" ] && [ "$1" = "record" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "play" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "midi" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "loop" ]; then ARGS="1"; fi\nif [ "$#" -eq "2" ] && [ "$1" = "timesave" ]; then ARGS="2"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "midit" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "midid" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "dummy" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "remote" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "spause" ]; then ARGS="1"; fi\nif [ "$#" -eq "1" ] && [ "$1" = "help" ]; then ARGS="9"; fi\n# this tests the evaluator...\n#D echo $#" "$1" "$2" "$3" "$ARGS ;spause\n# typical cases, be careful to make your own...\ncase "$ARGS" in\n "0") clear; $1="help"; exit 1;; # got nothing, display help and go\n "1") $1 ;; # run the command\n "2") var2=$2; $1 ;; # run the command with an argument\n "3") var3=$3; var2=$2; $1 ;; # run the command with two arguments\n "4") var4=$4; var3=$3; var2=$2; $1 ;; # run the command with three arguments\n "5") prompt=$2; $1 ;; # run the command with a different argument\n "6") time=$3; prompt=$2; $1 ;; # run the command with two different arguments\n "7") flint_short_vita_2017-07-01.odtdefvbl; $1 ;; # run the command and default variables\n "8") var2=$2; $1 ;; # run the command and settle variables\n "9") var3=$3; var2=$2; $1 ;; # run the command and settle variables\n *) clear; cat $0 | grep '^## '| sed -e 's/##//'; exit 1;; # Anything else run help and exit...\nesac # End main loop. To TEST:\n#\n# echo " "; echo "On "$(date +%F\s %r) $0" version "$version" stops"\n#debug echo "That's all folks!!"\n#\n#* restore environment cd "$S"\n}}}
Type the text for '31 January 2021'\n\nThe code elements are in here somewhere...\n{{{\n 499 gbot rest\n 510 mv test.wab test.wav\n 511 file test.wav \n 512 mpv --loop test.wav \n 513 sudo bash\n 514 mpv --loop test.wav \n 515 arecord test.wav\n 516 aplay test.wav\n 517 mpv --loop test.wav \n 518 gbot rest\n 519 arecord test.wav\n 520 mpv --loop test.wav \n 521 history\n 499 gbot rest\n}}}
Type the text for '3 February 2021'\n\n[[use sox|https://stackoverflow.com/questions/10721089/combine-two-audio-files-with-a-command-line-tool]]