if(($ACT == 'edit' || $ACT == 'preview') && $INFO['editable']){ ?> } else { ?> } ?>
txt2snd
is a small tool that allows to convert ngspice (wikipedia: SPICE) output into audio files - it's yet rather simple but has a built-in help. it's the predecessor and branch of the code now included in spicesound. As an external tool it's more flexible but much slower.
get the source: txt2snd-0.1.1.tar.gz
txt2snd
reads 4 tabulator separated values per line in the format:
<idx/int> <time|ms/float> <ignored/float> <value/float>
example:
11 8.916652e-05 1.846313e-02 -7.477363e-01
this format can easily be generated by SPICE. in the following example 20 seconds of net 5
are printed at 48kSPS:
.print tran v(4) v(5) .tran 2.08333e-05 20.0 0 2.08333e-05 .op
Note: Rounding (spice-milliseconds to audio-sample) is buggy and txt2snd includes an only sometimes working workaround (use –verbose
to investigate skipped/missing frames).
the following script might come in handy..
#!/bin/sh INFILE=example.netlist OUTFILE=/tmp/spice.txt WAVFILE=/tmp/spice.wav echo "# writing data to $OUTFILE" ngspice -b $INFILE | awk 'BEGIN{go=0;} /^-------------------------------------/{go=1;} /^[0-9]/{if (go==1) print $0;}' > $OUTFILE echo "# txt to snd" cat $OUTFILE | txt2snd $WAVFILE echo "# done."