This file is indexed.

/usr/bin/faust2asmjs is in faust 0.9.95~repack1-2.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/bin/bash

#-------------------------------------------------------------------
# Wrapping resources

CPP_WRAPPER=webaudio-asm.cpp
JS_WRAPPER=webaudio-asm-emcc.js
COMB="false"
COMB_SRC=
COMB_EXPORTED=
COMB_WRAPPED=
COMB_WRAPPED_FILES=
COMB_SEP=

EXPORTED_MONO="['_"$name"_constructor','_"$name"_destructor','_"$name"_getSampleRate','_"$name"_init','_"$name"_instanceInit','_"$name"_instanceConstants','_"$name"_instanceResetUserInterface','_"$name"_instanceClear','_"$name"_compute','_"$name"_getNumInputs','_"$name"_getNumOutputs','_"$name"_setParamValue','_"$name"_getParamValue','_"$name"_getJSON']"

EXPORTED_POLY="['_"$name"_poly_constructor','_"$name"_poly_destructor','_"$name"_poly_getSampleRate','_"$name"_poly_init','_"$name"_poly_instanceInit','_"$name"_poly_instanceConstants','_"$name"_poly_instanceResetUserInterface','_"$name"_poly_instanceClear','_"$name"_poly_compute','_"$name"_poly_getNumInputs','_"$name"_poly_getNumOutputs','_"$name"_poly_setParamValue','_"$name"_poly_getParamValue','_"$name"_poly_getJSON','_"$name"_poly_keyOn','_"$name"_poly_keyOff','_"$name"_poly_allNotesOff','_"$name"_poly_ctrlChange','_"$name"_poly_pitchWheel']"

#-------------------------------------------------------------------
# Set Faust include path

if [ -f $FAUST_LIB_PATH/music.lib ]
then
  FAUSTLIB=$FAUST_LIB_PATH
elif [ -f /usr/local/share/faust/music.lib ]
then
  FAUSTLIB=/usr/local/share/faust/
elif [ -f /usr/share/faust/music.lib ]
then
  FAUSTLIB=/usr/share/faust/
else
  echo "$0: Cannot find Faust library dir (usually /usr/local/share/faust)"
fi


#-------------------------------------------------------------------
# Analyze command arguments :
# faust options                 -> OPTIONS
# existing *.dsp files          -> FILES
#

for p in $@; do
    if [ $p = "-help" ] || [ $p = "-h" ]; then
        echo "faust2asmjs [-poly] [-comb] <file.dsp>"
        echo "Use '-poly' to produce a polyphonic DSP, ready to be used with MIDI events"
        echo "Use '-comb' to combine several DSP in a unique resulting 'comb.js' file, sharing the same Emcripten runtime"
    elif [ $p = "-comb" ]; then
        COMB="true"
    elif [ $p = "-poly" ]; then
        CPP_WRAPPER=webaudio-asm-poly.cpp
        JS_WRAPPER=webaudio-asm-poly-emcc.js
    elif [ ${p:0:1} = "-" ]; then
	    OPTIONS="$OPTIONS $p"
	elif [[ -e "$p" ]]; then
	    FILES="$FILES $p"
	else
	    OPTIONS="$OPTIONS $p"        
	fi
done

#-------------------------------------------------------------------
# compile the *.dsp files
#
BINARIES=""

if [ $COMB = "false" ]; then

for f in $FILES; do
    name=$(basename "$f" .dsp)
    
    # compile the C++ code
    faust -a $FAUSTLIB/webaudio/$CPP_WRAPPER -i -uim -cn $name $OPTIONS $f -o $name.cpp || exit
    
    if [ $CPP_WRAPPER = webaudio-asm.cpp ]; then
        EXPORTED=$EXPORTED_MONO
    else
        EXPORTED=$EXPORTED_POLY
	fi
    
    # compile the C++ code to asm.js
    emcc -O2 --memory-init-file 0 $name.cpp -s TOTAL_MEMORY=100663296 --post-js $FAUSTLIB/webaudio/$JS_WRAPPER -o $name-temp.js -s EXPORTED_FUNCTIONS=$EXPORTED || exit
   
    # compose the asm.js code
    sed -e "s/DSP/"$name"/g" $name-temp.js > $name.js
    
    rm $name-temp.js
    rm $name.cpp

	# collect binary file name for FaustWorks
	BINARIES="$BINARIES$name.js;"

done

else

for f in $FILES; do
    name=${f%.dsp}
    
    # compile the C++ code
    faust -a $FAUSTLIB/webaudio/$CPP_WRAPPER -i -uim -cn $name $OPTIONS $f -o $name.cpp || exit
    
    if [ $CPP_WRAPPER = webaudio-asm.cpp ]; then
        EXPORTED=$EXPORTED_MONO
    else
        EXPORTED=$EXPORTED_POLY
	fi
    
    # compose the asm.js code
    sed -e "s/DSP/"$name"/g" $FAUSTLIB/webaudio/$JS_WRAPPER > $name-wrapper.js
    
    COMB_SRC+=$name.cpp
    COMB_SRC+=" "
    
    COMB_EXPORTED+=$COMB_SEP$EXPORTED
    COMB_SEP=","
    
    COMB_WRAPPED_FILES+=$name-wrapper.js
    COMB_WRAPPED_FILES+=" "
    
    COMB_WRAPPED+=" --post-js "
    COMB_WRAPPED+=$name-wrapper.js
  	
done

# compile final file
emcc -O2 --memory-init-file 0 $COMB_SRC -s TOTAL_STACK=20971520 -s TOTAL_MEMORY=41943040 $COMB_WRAPPED -o comb.js \
    -s EXPORTED_FUNCTIONS="["$COMB_EXPORTED"]" || exit

# collect binary file name for FaustWorks
BINARIES="comb.js;"

rm $COMB_SRC
rm $COMB_WRAPPED_FILES

fi

echo $BINARIES