shithub: rc

ref: c64ff3177aba5d4d85656c3e5d30b1d51dc30ac0
dir: /bin/tune/

View raw version
#!/bin/rc
fn usage{
	echo usage: $0 '[-p ±NSEMITONE]' '[-t PERCENT]'
	exit usage
}
t=()
p=()
while(~ $1 -?){
	switch($1){
	case -p
		p=$2
		shift
	case -t
		t=$2
		shift
	case *
		usage
	}
	shift
}
if(~ $#p 0 && ~ $#t 0)
	usage
c=()
if(! ~ $#p 0){
	# handle x and -x; constant is 2^(1/12) but bc can only do integral
	# exponents
	r=`{echo '1 / (1.0594630943592953098431053149397484958171844482421875 ^ -(0+'^$p^'))' | bc -l}
	c=($c audio/stretch -s -r $r)
}
if(! ~ $#t 0){
	t=`{echo '1 + (1 - '^$t^' / 100)' | bc -l}
	if(! ~ $#c 0)
		c=($c '|')
	c=($c audio/stretch -r $t)
}
eval $c