Skip to content

Commit

Permalink
Merge pull request #264 from mediamicroservices/makepdf-and-makederiv…
Browse files Browse the repository at this point in the history
…-updates

Makepdf and makederiv updates
  • Loading branch information
dericed authored Aug 14, 2019
2 parents ce5ea29 + d51687e commit 4c0b94d
Show file tree
Hide file tree
Showing 3 changed files with 125 additions and 26 deletions.
18 changes: 13 additions & 5 deletions ingestfile
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ _makeaccesscopies(){
"${SCRIPTDIR}/makederiv" -T dvd "${OUTDIR_INGESTFILE}/${MEDIAID}"
else
"${SCRIPTDIR}/makederiv" -T showwaves "${MAKEDERIVOPTS[@]}" "${OUTDIR_INGESTFILE}/${MEDIAID}"
"${SCRIPTDIR}/makederiv" -T audiographs "${OUTDIR_INGESTFILE}/${MEDIAID}"
fi
}
Expand Down Expand Up @@ -515,11 +516,18 @@ fi
fi
_setup_package
if [[ "${MODE}" == "audio" ]] ; then
_ask_digitization_logs
_ask_photos "${MEDIAID}"
if [[ -f ${FILES} ]] ; then
_parse_spreadsheet
_get_xmp_info
_report -q "Is the file the result of digitization? Enter 1 for Yes or 2 for No."
select DIGITIZATION in "Yes" "No"
do
break
done
if [[ "${DIGITIZATION}" == "Yes" ]] ; then
_ask_digitization_logs
_ask_photos "${MEDIAID}"
if [[ -f ${FILES} ]] ; then
_parse_spreadsheet
_get_xmp_info
fi
fi
fi
if [[ -z "${AUDIODECISION}" ]] ; then
Expand Down
102 changes: 91 additions & 11 deletions makederiv
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@ _usage(){
echo " resourcespace (mp4) for uploading to resourcespace"
echo " dvd (iso)"
echo " mp3 (mp3)"
echo " podcast (mov)"
echo " podcast (mov or m4a)"
echo " waveform (png)"
echo " audiographs (png)"
echo " showwaves (mp4)"
echo " -m (only use the first track)"
echo " -l (only use the left channel of the first audio track)"
Expand Down Expand Up @@ -107,14 +108,18 @@ elif [[ "${OUTPUT_TYPE}" == "mp3" ]] ; then
EXTENSION="mp3"
RELATIVEPATH="objects/access/mp3"
elif [[ "${OUTPUT_TYPE}" == "podcast" ]] ; then
# extension is set later in the loop because it will be adjusted based on audio-only or audio-video
PREFERRED_SOURCE="service"
EXTENSION="mov"
RELATIVEPATH="objects/access/podcast"
SUFFIX="_podcast"
elif [[ "${OUTPUT_TYPE}" == "waveform" ]] ; then
EXTENSION="png"
RELATIVEPATH="metadata/depictions"
SUFFIX="_waveform"
elif [[ "${OUTPUT_TYPE}" == "audiographs" ]] ; then
EXTENSION="png"
RELATIVEPATH="metadata/depictions"
SUFFIX="_audiographs"
elif [[ "${OUTPUT_TYPE}" == "showwaves" ]] ; then
EXTENSION="mp4"
RELATIVEPATH="objects/access/showwaves"
Expand Down Expand Up @@ -155,12 +160,6 @@ while [[ "${@}" != "" ]] ; do
fi
_report_to_db

if [[ "${CHAPTERIZE}" != "Y" ]] ; then
_set_up_output
fi
INPUTOPTIONS+=(-y)
INPUTOPTIONS+=(-nostdin)

# get information on the input
_get_height "${SOURCEFILE}"
_get_width "${SOURCEFILE}"
Expand All @@ -187,7 +186,21 @@ while [[ "${@}" != "" ]] ; do
done
exit
fi


if [[ "${OUTPUT_TYPE}" == "podcast" ]] ; then
if [[ "${VIDEOSTREAMCOUNT}" -gt 0 ]] ; then
EXTENSION="mov"
else
EXTENSION="m4a"
fi
fi

if [[ "${CHAPTERIZE}" != "Y" ]] ; then
_set_up_output
fi
INPUTOPTIONS+=(-y)
INPUTOPTIONS+=(-nostdin)

# set in and out times if used; ignore out time if a slate is being created
if [[ -f "${INGESTLOG}" && "${ISOBJECT}" = "Y" ]] ; then
if [[ -z "${INTIME}" ]] ; then
Expand Down Expand Up @@ -504,7 +517,11 @@ while [[ "${@}" != "" ]] ; do
MIDDLEOPTIONS+=(-c:v libx264)
MIDDLEOPTIONS+=(-crf 26)
_add_video_filter "yadif"
elif [[ "${OUTPUT_TYPE}" == "mp3" ]] || [[ "${OUTPUT_TYPE}" == "waveform" ]] ; then
elif [[ "${OUTPUT_TYPE}" == "m4a" ]] || [[ "${OUTPUT_TYPE}" == "mp3" ]] || [[ "${OUTPUT_TYPE}" == "waveform" ]] ; then
_report -dt "No video stream needed for ${OUTPUT_TYPE}."
elif [[ "${OUTPUT_TYPE}" == "m4a" ]] || [[ "${OUTPUT_TYPE}" == "audiographs" ]] ; then
_report _dt "No video stream needed for ${OUTPUT_TYPE}."
elif [[ "${OUTPUT_TYPE}" == "mp3" ]] || [[ "${OUTPUT_TYPE}" == "audiographs" ]] ; then
_report -dt "No video stream needed for ${OUTPUT_TYPE}."
else
echo "Invalid video derivative type."
Expand Down Expand Up @@ -542,12 +559,75 @@ while [[ "${@}" != "" ]] ; do
_get_audio_mapping -v "${SOURCEFILE}"
elif [[ "${OUTPUT_TYPE}" == "podcast" ]] ; then
MIDDLEOPTIONS+=(-c:a aac)
MIDDLEOPTIONS+=(-b:a 96k)
MIDDLEOPTIONS+=(-ar 48000)
if [[ "${VIDEOSTREAMCOUNT}" -gt 0 ]] ; then
MIDDLEOPTIONS+=(-b:a 96k)
else
MIDDLEOPTIONS+=(-b:a 128k)
MIDDLEOPTIONS+=(-sample_fmt fltp)
fi
_get_audio_mapping -v "${SOURCEFILE}"
elif [[ "${OUTPUT_TYPE}" == "waveform" ]] ; then
MIDDLEOPTIONS+=(-vn)
MIDDLEOPTIONS+=(-frames:v 1)
_add_audio_filter "showwavespic=split_channels=1:scale=log:s=1920x240:colors=purple|blue|green|red"
elif [[ "${OUTPUT_TYPE}" == "audiographs" ]] ; then
MIDDLEOPTIONS+=(-vn)
MIDDLEOPTIONS+=(-frames:v 1)
MIDDLEOPTIONS+=(-map "[chart]")
_ss_to_hhmmss(){
# if milliseconds are used it will round down to nearest second for instance 60.9, will return 1:00
INT="${1%.*}"
[[ -z "$INT" ]] && INT="0"
DEC="$(echo "${1#*.}" | head -c 3)"
printf "%02d\:%02d\:%02d.${DEC}\n" $(($INT/3600)) $(($INT%3600/60)) $(($INT%60))
}

# image settings
AUDIO_SAMPLE_RATE=48000
HEADER_HEIGHT=24
HEADER_HEIGHT_BIG=$(echo "${HEADER_HEIGHT} * 2" | bc)
TIMELINE_FONTSIZE=16
FONT_FILE="/Library/Fonts/Menlo.ttc"
DRAWGRAPH_SETTINGS="bg=Black"
BORDER_COLOR="LightGrey"
HORIZONTAL_MARKINGS_240="drawgrid=thickness=1:color=${BORDER_COLOR}@0.2:height=ih/16,drawgrid=thickness=1:color=${BORDER_COLOR}@0.5:height=ih/4,drawgrid=thickness=1:color=${BORDER_COLOR}@0.8:height=ih/2"
HORIZONTAL_MARKINGS_120="drawgrid=thickness=1:color=${BORDER_COLOR}@0.2:height=ih/8,drawgrid=thickness=1:color=${BORDER_COLOR}@0.5:height=ih/4,drawgrid=thickness=1:color=${BORDER_COLOR}@0.8:height=ih/2"

BASENAME=$(basename "${INPUT}")

#file variables
SAMPLE_RATE=$(ffprobe "${INPUT}" -show_entries stream=sample_rate -of default=nw=1:nk=1)
DURATION=$(ffprobe "${INPUT}" -show_entries stream=duration -of default=nw=1:nk=1)

GRAPH_W=6000
AUDIO_FRAME_SIZE="$(echo "((${DURATION}*${AUDIO_SAMPLE_RATE})/${GRAPH_W})+1" | bc)"
# adding 0.5 in the above equation to ensure that the result is rounded to the nearest integer, rather than simply rounded down
echo "d ${DURATION} as ${AUDIO_SAMPLE_RATE} afr ${AUDIO_FRAME_SIZE}"
AUDIOFORMAT="aresample=${AUDIO_SAMPLE_RATE},aformat=sample_fmts=dbl,asetnsamples=n=${AUDIO_FRAME_SIZE}:p=0"
VERTICAL_MARKINGS=$(echo "${GRAPH_W} / 150" | bc)

TILE_FLOOR=$(echo "scale=6; ( ( ( ${AUDIO_SAMPLE_RATE} * ${DURATION} ) / ${AUDIO_FRAME_SIZE} ) / ${GRAPH_W} )" | bc | perl -nl -MPOSIX -e 'print floor($_);')
TILE_MOD=$(echo " ( ( ( ${AUDIO_SAMPLE_RATE} * ${DURATION} ) / ${AUDIO_FRAME_SIZE} ) % ${GRAPH_W} )" | bc)
TILE_CEILING=$(echo "scale=6; ( ( ( ${AUDIO_SAMPLE_RATE} * ${DURATION} ) / ${AUDIO_FRAME_SIZE} ) / ${GRAPH_W} ) " | bc | perl -nl -MPOSIX -e 'print ceil($_);')
X_AXIS_MAX=$(echo "scale=6; $DURATION / (( ${TILE_FLOOR} * ${GRAPH_W} + ${TILE_MOD} ) / ( ${TILE_CEILING} * ${GRAPH_W} ))" | bc)

PAD_W="240"
PAD=",pad=iw+${PAD_W}:ih:${PAD_W}:0"
IMAGE_W=$(echo "${GRAPH_W} + ${PAD_W}" | bc)

unset TIMELINE
COUNTER=0
while [ "${COUNTER}" -lt "${VERTICAL_MARKINGS}" ]; do
((COUNTER++))
MARK="$(echo "scale=6; $DURATION * ($COUNTER / $VERTICAL_MARKINGS)" | bc)"
MARK_X="$(echo "scale=6; $GRAPH_W * ($COUNTER / $VERTICAL_MARKINGS)" | bc)"
MARK_TIME="$(_ss_to_hhmmss "${MARK}")"
TIMELINE+=",drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=${TIMELINE_FONTSIZE}:text='${MARK_TIME}':x=${MARK_X}-text_w:y=(${HEADER_HEIGHT}-${TIMELINE_FONTSIZE})/2"
done

_add_audio_filter "asplit=10[e][f][g][h][i][j][k][l][m][n];`#timeline`color=c=${BORDER_COLOR}:s=${GRAPH_W}x${HEADER_HEIGHT}${TIMELINE},split=6[top1][top2][top3][top4][top5][top6];color=c=${BORDER_COLOR}:s=${GRAPH_W}x${HEADER_HEIGHT_BIG},drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=36:text='Audio_QC_Graph_Filename_${BASENAME}_Duration_$(_ss_to_hhmmss "${DURATION}")_Audio_Frame_Size_${AUDIO_FRAME_SIZE}'[Header];`#int_loudnorm`color=c=${BORDER_COLOR}:s=${GRAPH_W}x${HEADER_HEIGHT},drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=24:text='Interstitial_(with_loudnorm)_-1...1._Differences_in_readings_from_sample_to_sample._May_indicate_dropped_samples.'[intAH];[e]loudnorm=tp=0,${AUDIOFORMAT},astats=metadata=1:reset=1,adrawgraph=${DRAWGRAPH_SETTINGS}:m1=lavfi.astats.1.Max_difference:m2=adrawgraph=${DRAWGRAPH_SETTINGS}:m1=lavfi.astats.1.Max_difference:min=0:max=1:slide=picture:s=${GRAPH_W}x120,${HORIZONTAL_MARKINGS_120}[intA1];`#min/max`color=c=${BORDER_COLOR}:s=${GRAPH_W}x${HEADER_HEIGHT},drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=24:text='Min/Max_Level_-1...1._Blue=channel_1,_pink=channel_2.'[minmaxH];[k]${AUDIOFORMAT},astats=metadata=1:reset=1,adrawgraph=${DRAWGRAPH_SETTINGS}:m1=lavfi.astats.1.Max_level:m2=lavfi.astats.2.Max_level:m3=lavfi.astats.1.Min_level:m4=lavfi.astats.2.Min_level:fg1=0xFFFF00FF:fg2=0xFFFF0000:fg3=0xFFFF00FF:fg4=0xFFFF0000:min=-1:max=1:slide=picture:s=${GRAPH_W}x240,${HORIZONTAL_MARKINGS_240}[minmax1];`#int_unprocessed`color=c=${BORDER_COLOR}:s=${GRAPH_W}x${HEADER_HEIGHT},drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=24:text='Interstitial_(unprocessed)_-1...1._Differences_in_readings_from_sample_to_sample._May_indicate_dropped_samples.'[intBH];[f]${AUDIOFORMAT},astats=metadata=1:reset=1,adrawgraph=${DRAWGRAPH_SETTINGS}:m1=lavfi.astats.1.Max_difference:m2=adrawgraph=${DRAWGRAPH_SETTINGS}:m1=lavfi.astats.1.Max_difference:min=0:max=1:slide=picture:s=${GRAPH_W}x120,${HORIZONTAL_MARKINGS_120}[intB1];`#dc_offset`color=c=${BORDER_COLOR}:s=${GRAPH_W}x${HEADER_HEIGHT},drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=24:text='DC_Offset_-0.01...0.01._Offsetting_of_the_mean_amplitude_displacement_from_zero,_in_dB._Shows_cumulative_average_over_recording;_the_offset_should_equal_0_by_the_end_of_the_graph.'[dcoffH];[g]${AUDIOFORMAT},astats=metadata=1:reset=0,adrawgraph=${DRAWGRAPH_SETTINGS}:m1=lavfi.astats.1.DC_offset:m2=lavfi.astats.2.DC_offset:min=-0.01:max=0.01:slide=picture:s=${GRAPH_W}x240:fg1=if(gte(VAL\,0.005)\,0xFF0000FF\,if(lte(VAL\,-0.005)\,0xFF0000FF\,0xFF00FF00)),${HORIZONTAL_MARKINGS_240}[dcoff1];`#peak/rms_left`color=c=${BORDER_COLOR}:s=${GRAPH_W}x${HEADER_HEIGHT},drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=24:text='Peak_Level_/_RMS_Level_Left_-70...0dB._Yellow=peak_level,_purple=RMS_level'[peakLH];[h]${AUDIOFORMAT},astats=metadata=1:reset=1,adrawgraph=${DRAWGRAPH_SETTINGS}:m1=lavfi.astats.1.Peak_level:fg1=0xFF00FFFF:m2=lavfi.astats.1.RMS_level:fg2=0xFF800080:max=0:min=-70:slide=picture:mode=bar:s=${GRAPH_W}x240:slide=picture,${HORIZONTAL_MARKINGS_240}[peakL1];`#peak/rms_right`color=c=${BORDER_COLOR}:s=${GRAPH_W}x${HEADER_HEIGHT},drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=24:text='Peak_Level_/_RMS_Level_Right_-70...0dB._Yellow=peak_level,_purple=RMS_level'[peakRH];[i]${AUDIOFORMAT},astats=metadata=1:reset=1,adrawgraph=${DRAWGRAPH_SETTINGS}:m1=lavfi.astats.2.Peak_level:fg1=0xFF00FFFF:m2=lavfi.astats.2.RMS_level:fg2=0xFF800080:max=0:min=-70:slide=picture:mode=bar:s=${GRAPH_W}x240:slide=picture,${HORIZONTAL_MARKINGS_240}[peakR1];`#crest`color=c=${BORDER_COLOR}:s=${GRAPH_W}x${HEADER_HEIGHT},drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=24:text='Crest_Factor_0...10._Ratio_of_peak_to_RMS_level_(not_in_dB)._Blue=channel_1,_pink=channel_2.'`#High_levels_may_indicate_prior_compression`[crestH];[n]${AUDIOFORMAT},astats=metadata=1:reset=1,adrawgraph=${DRAWGRAPH_SETTINGS}:m1=lavfi.astats.1.Crest_factor:m2=lavfi.astats.2.Crest_factor:fg1=0xFFFF00FF:fg2=0xFFFF0000:max=10:min=0:slide=picture:mode=line:s=${GRAPH_W}x240:slide=picture,${HORIZONTAL_MARKINGS_240}[crest1];`#phase`color=c=${BORDER_COLOR}:s=${GRAPH_W}x${HEADER_HEIGHT},drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=24:text='Phase_-1_(out_of_phase)_to_1_(in_phase)._Green=+0.9_to_+1,_reasonable_for_mono/error_for_stereo._Yellow=0_to_+0.9,_error_for_mono/reasonable_for_stereo._Orange=0_to_-0.5,_error_for_mono/strong_possibility_of_error_for_stereo_if_occurring_more_than_briefly._Red=-0.5_to_-1,_error_for_mono/strong_possibility_of_error_for_stereo.'[phaseH];[j]${AUDIOFORMAT},aphasemeter=video=0,adrawgraph=${DRAWGRAPH_SETTINGS}:m1=lavfi.aphasemeter.phase:max=1:min=-1:slide=picture:s=${GRAPH_W}x240:slide=picture:fg1=if(gte(VAL\,0.9)\,0xFF00FF00\,if(gte(VAL\,0)\,0xFF00FFFF\,if(gte(VAL\,-0.5)\,0xFF0096FF\,0xFF0000FF))),${HORIZONTAL_MARKINGS_240}[phase1];`#null_test_dc`color=c=${BORDER_COLOR}:s=${GRAPH_W}x${HEADER_HEIGHT},drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=24:text='Null_Test_DC_Offset._Shows_DC_offset_after_one_track_is_inverted_and_overlaid_over_the_other._Should_be_flat_for_mono._Red=-1_to_0,_green=0_to_+1.'[diffH];[l]aeval=val(0)|-val(1),${AUDIOFORMAT},aformat=channel_layouts=mono,astats=metadata=1:reset=1,adrawgraph=${DRAWGRAPH_SETTINGS}:m1=lavfi.astats.1.DC_offset:min=-0.01:max=0.01:slide=picture:s=${GRAPH_W}x240:fg1=if(lt(VAL\,0)\,0xFF0000FF\,0xFF00FF00),${HORIZONTAL_MARKINGS_240}[diff1];`#null_test_min/max`color=c=${BORDER_COLOR}:s=${GRAPH_W}x${HEADER_HEIGHT},drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=24:text='Null_Test_Min/Max_Levels_-1...1._Shows_min/max_levels_after_one_track_is_inverted_and_overlaid_over_the_other._Blue=channel_1,_pink=channel_2.'[nullminmaxH];[m]aeval=val(0)|-val(1),${AUDIOFORMAT},aformat=channel_layouts=mono,astats=metadata=1:reset=1,adrawgraph=${DRAWGRAPH_SETTINGS}:m1=lavfi.astats.1.Max_level:m2=lavfi.astats.2.Max_level:m3=lavfi.astats.1.Min_level:m4=lavfi.astats.2.Min_level:fg1=0xFFFF00FF:fg2=0xFFFF00FF:fg3=0xFFFF0000:fg4=0xFFFF0000:min=-1:max=1:slide=picture:s=${GRAPH_W}x240,${HORIZONTAL_MARKINGS_240}[nullminmax1];[Header][top1][minmaxH][minmax1][peakLH][peakL1][top2][peakRH][peakR1][crestH][crest1][phaseH][phase1][top3][nullminmaxH][nullminmax1][diffH][diff1][top4][dcoffH][dcoff1][top5][intAH][intA1][intBH][intB1][top6]vstack=27,drawgrid=thickness=1:[email protected]:width=iw/${VERTICAL_MARKINGS},drawgrid=thickness=1:color=${BORDER_COLOR}@0.2:width=(iw/${VERTICAL_MARKINGS})/10[graph];color=c=${BORDER_COLOR}:s=${PAD_W}x${HEADER_HEIGHT_BIG}[HeaderG];color=c=${BORDER_COLOR}:s=${PAD_W}x${HEADER_HEIGHT},split=16[top1G][top2G][top3G][top4G][top5G][top6G][minmaxHG][peakLHG][peakRHG][crestHG][phaseHG][nullminmaxHG][diffHG][dcoffHG][intAHG][intBHG];`#1-1_240p_grat`color=c=${BORDER_COLOR}:s=${PAD_W}x240,drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=${TIMELINE_FONTSIZE}:y=h*0.52:x=w*0.7:text='0',drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=${TIMELINE_FONTSIZE}:y=h*0.77:x=w*0.7:text='-0.5',drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=${TIMELINE_FONTSIZE}:y=h*0.27:x=w*0.7:text='+0.5',drawgrid=thickness=1:[email protected]:height=ih/16,drawgrid=thickness=1:[email protected]:height=ih/4,drawgrid=thickness=1:[email protected]:height=ih/2,split=6[minmax1G][phase1G][crest1G][nullminmax1G][diff1G][dcoff1G];`#1-1_120p_grat`color=c=${BORDER_COLOR}:s=${PAD_W}x120,drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=${TIMELINE_FONTSIZE}:y=h*0.52:x=w*0.7:text='0',drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=${TIMELINE_FONTSIZE}:y=h*0.77:x=w*0.7:text='-0.5',drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=${TIMELINE_FONTSIZE}:y=h*0.27:x=w*0.7:text='+0.5',drawgrid=thickness=1:[email protected]:height=ih/8,drawgrid=thickness=1:[email protected]:height=ih/4,drawgrid=thickness=1:[email protected]:height=ih/2,split=2[intA1G][intB1G];`#0-70_240p_grat`color=c=${BORDER_COLOR}:s=${PAD_W}x240,drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=${TIMELINE_FONTSIZE}:y=h*0.52:x=w*0.7:text='-35',drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=${TIMELINE_FONTSIZE}:y=h*0.77:x=w*0.7:text='-52.5',drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=${TIMELINE_FONTSIZE}:y=h*0.27:x=w*0.7:text='-17.5',drawtext=fontfile=${FONT_FILE}:fontcolor=black:fontsize=${TIMELINE_FONTSIZE}:y=h*0.02:x=w*0.7:text='0',drawgrid=thickness=1:[email protected]:height=ih/16,drawgrid=thickness=1:[email protected]:height=ih/4,drawgrid=thickness=1:[email protected]:height=ih/2,split=2[peakL1G][peakR1G];[HeaderG][top1G][minmaxHG][minmax1G][peakLHG][peakL1G][top2G][peakRHG][peakR1G][crestHG][crest1G][phaseHG][phase1G][top3G][nullminmaxHG][nullminmax1G][diffHG][diff1G][top4G][dcoffHG][dcoff1G][top5G][intAHG][intA1G][intBHG][intB1G][top6G]vstack=27[grat];[grat][graph]hstack=2[chart]"

elif [[ "${OUTPUT_TYPE}" == "showwaves" ]] ; then
MIDDLEOPTIONS+=(-vn)
_add_audio_filter "asplit[out0],showwaves=s=1280x720:mode=line:scale=lin,format=gray,negate[out1]"
Expand Down
Loading

0 comments on commit 4c0b94d

Please sign in to comment.