-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
Hi guys
I wrote a fast and simple bash script that takes timemachine recordings and create a non-timeline (https://github.com/original-male/non) session out of it.
It depends on sox.
It is my first version, and has not used it in real life yet. However, it seems to be working well.
I needed this because recording with timemachine is extra fast and automatic, but I didn't how to open the recordings (that for me are usually 6-8 channels). I used to use audacity, but it is slow, and non-jack-aware.
The code:
#!/bin/bash
#Setting
SESSIONNAME=Session
NOW=`LANG=en_US date +'%c'`
SAMPLE="44100"
TEMPO=120
for INPUT in $@
do
echo "Working on $INPUT"
SESSION="$SESSIONNAME"_"$INPUT"
CHANNELS=`soxi "$INPUT" | grep Channels| grep -o '[0-9]*'`
mkdir $SESSION
mkdir $SESSION/sources
#INFO
echo "created by" > $SESSION/info
echo "Non-Timeline 1.2.0" >> $SESSION/info
echo "created on" >> $SESSION/info
echo "$NOW" >> $SESSION/info
echo "version" >> $SESSION/info
echo "2" >> $SESSION/info
echo "sample rate" >> $SESSION/info
echo "$SAMPLE" >> $SESSION/info
#OPTIONS
echo "Settings" > $SESSION/options
echo " Follow Playhead" >> $SESSION/options
echo " true" >> $SESSION/options
echo " Center Playhead" >> $SESSION/options
echo " true" >> $SESSION/options
echo " Snap to" >> $SESSION/options
echo " Bars" >> $SESSION/options
echo " Magnetic snap" >> $SESSION/options
echo " true" >> $SESSION/options
echo " Capture Format" >> $SESSION/options
echo " Wav 24" >> $SESSION/options
echo " Playback Latency Compensation" >> $SESSION/options
echo " true" >> $SESSION/options
#SNAPSHOT + HISTORY
echo "{" > $SESSION/history
echo " Tempo_Point 0x1 create :start 0 :tempo $TEMPO.000000" >> $SESSION/history
echo " Time_Point 0x2 create :start 0 :beats_per_bar 4 :beat_type 4" >> $SESSION/history
COUNT=2
ROW=0
for ((NUMBER=1;NUMBER<=$CHANNELS;NUMBER++)); do
COUNT=`expr $COUNT + 1`
HEX=`echo "obase=16; $COUNT" | bc`
NEXT=`expr $COUNT + 1`
HEXNEXT=`echo "obase=16; $NEXT" | bc`
echo "0x$HEX set :height 1 :inputs 1 :outputs 1 :show-all-takes 0 :overlay-controls 0 :armed 0 :mute 0 :solo 0 :row $ROW" >> $SESSION/unjournaled
ROW=`expr $ROW + 1`
echo " Track 0x$HEX create :name \"Channel.$NUMBER\" :sequence 0x$HEXNEXT :selected 0 :color `shuf -i 1000000000-9999999999 -n 1`" >> $SESSION/history
REF="$HEX"
COUNT=`expr $COUNT + 1`
HEX=`echo "obase=16; $COUNT" | bc`
SEQ=$HEX
echo " Audio_Sequence 0x$HEX create :track 0x$REF :name \"$NOW\"" >> $SESSION/history
OUT=$SESSION/sources/"Channel.$NUMBER.wav"
sox ./$INPUT ./$DIR/$OUT remix $NUMBER
LENGHT=`soxi $OUT | grep samples| cut -d \ -f 11`
COUNT=`expr $COUNT + 1`
HEX=`echo "obase=16; $COUNT" | bc`
echo " Audio_Region 0x$HEX create :source \"Channel.$NUMBER.wav\" :gain 1.000000 :fade-in-type 1 :fade-in-duration 256 :fade-out-type 1 :fade-out-duration 256 :color 152 :length $LENGHT :start 0 :sequence 0x$SEQ :selected 0 :offset 0 :loop 0" >> $SESSION/history
done
echo "}" >> $SESSION/history
cp $SESSION/history $SESSION/snapshot
# mv $SESSION ../$SESSION
# cd ..
# rm -r $DIR
done
Hope someone will find this useful as I do
Metadata
Metadata
Assignees
Labels
No labels