a/v live coding performance
software: bash, sox, unix shell
(2018)
performed at:
Algosix (Algorave Sixth Birthday ) - 17th March 2018 [online worldwide];
Pharmacia (Limerick - Ireland) - 13 March 2018;
Superbudda in collaborazione con SMET (School of Electronic Music - Conservatory of Turin) (Turin, Italy) - 21 February 2019;
Limerick Sound Festival 4th August 2018 - Irish World Academy of Music and Dance, University of Limerick, Limerick (Ireland);
# ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac # don't put duplicate lines or lines starting with space in the history. # See bash(1) for more options HISTCONTROL=ignoreboth # append to the history file, don't overwrite it shopt -s histappend # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTSIZE=1000 HISTFILESIZE=2000 # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. shopt -s checkwinsize # If set, the pattern "**" used in a pathname expansion context will # match all files and zero or more directories and subdirectories. #shopt -s globstar # make less more friendly for non-text input files, see lesspipe(1) [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" # set variable identifying the chroot you work in (used in the prompt below) if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color|*-256color) color_prompt=yes;; esac # uncomment for a colored prompt, if the terminal has the capability; turned # off by default to not distract the user: the focus in a terminal window # should be on the output of commands, not on the prompt #force_color_prompt=yes if [ -n "$force_color_prompt" ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then # We have color support; assume it's compliant with Ecma-48 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such # a case would tend to support setf rather than setaf.) color_prompt=yes else color_prompt= fi fi if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' fi unset color_prompt force_color_prompt # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" ;; *) ;; esac # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' #alias dir='dir --color=auto' #alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi # colored GCC warnings and errors #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' # some more ls aliases alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' # Add an "alert" alias for long running commands. Use like so: # sleep 10; alert alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' # Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi # enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi ######################## ######## MY FUNCTIONS GT ######################## # PERFORMANCE 1 # atom note/s duration gain function noema(){ terminology -b b11.jpg -g 20x2+$[ ( $RANDOM % 1900 ) + 1 ]+$[ ( $RANDOM % 1000 ) + 1 ] -e "bash -c \" if [ $# == 3 ]; then play -n synth $2 sine $1 fade .2 $2 gain $3 && exit; elif [ $# == 4 ]; then play -n synth $3 sine $1 sine $2 fade .2 $3 gain $4 && exit; elif [ $# == 5 ]; then play -n synth $4 sine $1 sine $2 sine $3 fade .2 $4 gain $5 && exit; elif [ $# == 6 ]; then play -n synth $5 sine $1 sine $2 sine $3 sine $4 fade .2 $5 gain $6 && exit; elif [ $# == 7 ]; then play -n synth $6 sine $1 sine $2 sine $3 sine $4 sine $5 fade .2 $6 gain $7 && ex$ elif [ $# == 8 ]; then play -n synth $7 sine $1 sine $2 sine $3 sine $4 sine $5 sine $6 fade .2 $7 gain $ fi exec bash\""& } # tremolo note/s duration tremolo_speed tremolo_depth gain function tremolo() { terminology -g 2x15+$[ ( $RANDOM % 1900 ) + 1 ]+$[ ( $RANDOM % 1000 ) + 1 ] -e "bash -c \" if [ $# == 5 ]; then play -n synth $2 sine $1 fade .2 $2 tremolo $3 $4 gain $5 && exit; elif [ $# == 6 ]; then play -n synth $3 sine $1 sine $2 fade .2 $3 tremolo $4 $5 gain $6 && exit; elif [ $# == 7 ]; then play -n synth $4 sine $1 sine $2 sine $3 fade .2 $4 tremolo $5 $6 gain $7 && exit; elif [ $# == 8 ]; then play -n synth $5 sine $1 sine $2 sine $3 sine $4 fade .2 $5 tremolo $6 $7 gain $8 && exit; elif [ $# == 9 ]; then play -n synth $6 sine $1 sine $2 sine $3 sine $4 sine $5 fade .2 $6 tremolo $7 $8 gain $9 && exit; elif [ $# == 10 ]; then play -n synth $7 sine $1 sine $2 sine $3 sine $4 sine $5 sine $6 fade .2 $7 tremoolo $8 $9 gain $10 && exit; fi exec bash\""& } function this(){ terminology -g $[ ( $RANDOM % 20 ) + 1 ]x$[ ( $RANDOM % 20 ) + 1 ]+ $[ ( $RANDOM % 1900 ) + 1 ]+$[ ( $RANDOM % 1000 ) + 1 ] -e "bash -c \" play -n synth 7 sine $[ ( $RANDOM % 200 ) + 150 ] fade 0 5 2 gain -10 && exit exec bash\""& } function followed(){ sleep 3.5 && terminology -g $[ ( $RANDOM % 20 ) + 1 ]x$[ ( $RANDOM % 20 ) + 1 ]+ $[ ( $RANDOM % 1900 ) + 1 ]+$[ ( $RANDOM % 1000 ) + 1 ] -e "bash -c \" play -n synth 7 sine $[ ( $RANDOM % 200 ) + 150 ] fade 0 5 2 gain -10 && sleep 2 && play -q wow.wav && exit exec bash\""& } function thanks(){ play -q crowd-laugh.wav && exit } function language(){ terminology -g $[ ( $RANDOM % 20 ) + 1 ]x$[ ( $RANDOM % 20 ) + 1 ]+ $[ ( $RANDOM % 1900 ) + 1 ]+$[ ( $RANDOM % 1000 ) + 1 ] -e "bash -c \" play abc.wav fade 0 0 .2 gain -3 && exit exec bash\""& } function debate(){ terminology -g 2x20 -e "bash -c \" play noam.ogg trim $1 $2 fade 1 $2 gain 0 && exit exec bash\""& } function so(){ play confusion.wav gain -10 fade t 0 10 3 } function u(){ terminology -g 2x10+$[ ( $RANDOM % 1900 ) + 1 ]+$[ ( $RANDOM % 1000 ) + 1 ] -e "bash -c \" for i in {1..5}; do play confusion.wav trim $[ ( $RANDOM % 100 ) + 1 ] $1 pad 0 5 gain -5 reverb && sleep 1; done && exit exec bash\""& } function beauty(){ terminology -g 30x20+$[ ( $RANDOM % 1900 ) + 1 ]+$[ ( $RANDOM % 1000 ) + 1 ] -e "bash -c \" tybg minchia.ogv exec bash\""& } function meaning(){ terminology -g 40x15+$[ ( $RANDOM % 1900 ) + 1 ]+$[ ( $RANDOM % 1000 ) + 1 ] -e "bash -c \" tybg fagioli.ogv exec bash\""& } function limit(){ tybg beethoven.ogv } function world(){ tybg asilvio.ogv } function viz(){ shuf -r -e -z ' ' $(echo -e "\e[3$1m$2\e[0m") ' ' } function bye(){ terminology -F -e "bash -c \" shuf -r -e -z ' ' $(echo -e "\e[33m$1\e[0m") ' ' & play wow.wav exec bash \""& } function glit(){ terminology -g $[ ( $RANDOM % 20 ) + 1 ]x$[ ( $RANDOM % 20 ) + 1 ]+ $[ ( $RANDOM % 1900 ) + 1 ]+$[ ( $RANDOM % 1000 ) + 1 ] -b b$[ ($RANDOM % 10 ) + 1 ].jpg -e "bash -c \" play 0-glitch$[ ($RANDOM % 12 ) + 1 ].wav gain $1 && exit exec bash\""& } ########################### function frand(){ ########################### v=$[t100 + (RANDOM % 100)]$[1000 + (RANDOM % 1000)] v=0.${v:1:2}${v:4:3} echo $v } ########################### ########################### ########################### ########################## ########################## ########################## function loop(){ ########################### re='^[0-9]+$' if ! [[ $2 =~ $re ]] ; then if [ "$1" -gt 0 ]; then for ((i=1;i<=$1; i++)); do ${@:3} && sleep $($2); done elif [ "$1" -eq 0 ]; then while true; do ${@:3} && sleep $($2); done fi else if [ "$1" -gt 0 ]; then for ((i=1;i<=$1; i++)); do ${@:3} && sleep $2; done elif [ "$1" -eq 0 ]; then while true; do ${@:3} && sleep $2; done fi fi } ########################## ########################## ##########################