gstlal_play =========== This program will play data in a variety of ways This program will play data in a variety of ways. Its input is anything supported by :any:`datasource`. You can additionally whiten the data or apply a band pass filtering. It can direct its output to either your sound card, various audio file formats, or stderr/stdout in tab delimited ASCII text. Graph of the gsreamer pipeline ------------------------------ - gray boxes are optional and depend on the command line given .. graphviz:: digraph G { // graph properties rankdir=LR; compound=true; node [shape=record fontsize=10 fontname="Verdana"]; edge [fontsize=8 fontname="Verdana"]; // nodes "mkbasicsrc()" [URL="\ref datasource.mkbasicsrc()"]; "whitened_multirate_src()" [label="whitened_multirate_src()", URL="\ref multirate_datasource.mkwhitened_multirate_src()", style=filled, color=lightgrey]; "mkresample()" [URL="\ref pipeparts.mkresample()", style=filled, color=lightgrey]; "mkcapsfilter()" [URL="\ref pipeparts.mkcapsfilter()", style=filled, color=lightgrey]; "mkaudiochebband()" [URL="\ref pipeparts.mkaudiochebband()", style=filled, color=lightgrey]; "mkaudiocheblimit()" [URL="\ref pipeparts.mkaudiocheblimit()", style=filled, color=lightgrey]; "mkaudioconvert()" [URL="\ref pipeparts.mkaudioconvert()"]; "mkaudioamplify()" [URL="\ref pipeparts.mkaudioamplify()"]; "mkautoaudiosink()" [URL="\ref pipeparts.mkautoaudiosink()", style=filled, color=lightgrey]; "mkwavenc()" [URL="\ref pipeparts.mkwavenc()", style=filled, color=lightgrey]; "mkflacenc()" [URL="\ref pipeparts.mkflacenc()", style=filled, color=lightgrey]; "mkvorbisenc()" [URL="\ref pipeparts.mkvorbisenc()", style=filled, color=lightgrey]; "mkfilesink()" [URL="\ref pipeparts.mkfilesink()", style=filled, color=lightgrey]; "mknxydumpsink()" [URL="\ref pipeparts.mknxydumpsink()", style=filled, color=lightgrey]; // connections "mkbasicsrc()" -> "mkresample()" [label=" --whiten not provided"]; "mkresample()" -> "mkcapsfilter()"; "mkcapsfilter()" -> "mkaudioconvert()" [label=" neither --low-pass-filter nor --high-pass-filter provided"]; "mkcapsfilter()" -> "mkaudiochebband()" [label=" --low-pass-filter and --high-pass-filter provided"]; "mkcapsfilter()" -> "mkaudiocheblimit()" [label=" --low-pass-filter or --high-pass-filter provided"]; "mkbasicsrc()" -> "whitened_multirate_src()" [label=" --whiten provided"]; "whitened_multirate_src()" -> "mkaudioconvert()" [label=" neither --low-pass-filter nor --high-pass-filter provided"]; "whitened_multirate_src()" -> "mkaudiochebband()" [label=" --low-pass-filter and --high-pass-filter provided"]; "whitened_multirate_src()" -> "mkaudiocheblimit()" [label=" --low-pass-filter or --high-pass-filter provided"]; "mkaudiochebband()" -> "mkaudioconvert()"; "mkaudiocheblimit()" -> "mkaudioconvert()"; "mkaudioconvert()" -> "mkaudioamplify()"; "mkaudioamplify()" -> "mkautoaudiosink()" [label=" --output not provided"]; "mkaudioamplify()" -> "mkwavenc()" [label=" --output ends with '.wav'"]; "mkaudioamplify()" -> "mkflacenc()" [label=" --output ends with '.flac'"]; "mkaudioamplify()" -> "mkvorbisenc()" [label=" --output ends with '.ogg'"]; "mkaudioamplify()" -> "mknxydumpsink()" [label=" --output ends with '.txt' or is /dev/stderr or /dev/stdout"]; "mkwavenc()" -> "mkfilesink()"; "mkvorbisenc()" -> "mkfilesink()"; "mkflacenc()" -> "mkfilesink()"; } Usage cases ----------- See :py:func:`datasource.append_options` for additional usage cases for datasource specific command line options 1. Viewing low latency data in stdout (e.g. on CIT cluster) Note ctrl+c kills this:: $ gstlal_play --data-source framexmit --channel-name=L1=FAKE-STRAIN \ --output /dev/stdout 2. Pipe low latency data to an ogg file narrowing in on the sweet spot and add amplification to make it audible. Note ctrl+c kills this:: $ gstlal_play --data-source framexmit --channel-name=L1=FAKE-STRAIN \ --high-pass-filter 40 --low-pass-filter 1000 --amplification 1e21 --output test.ogg 3. Write injection time series from an xml file into an ASCII delimited text file:: $ gstlal_play --data-source silence --gps-start-time 966383960 \ --gps-end-time 966384960 --channel-name=L1=FAKE-STRAIN \ --injections=BNS-MDC1-FIXEDMASS.xml --output test.txt 4. Other things are certainly possible. Please add some! Command line options -------------------- .. code-block:: none Usage: gstlal_play [options] Options: -h, --help show this help message and exit --output=filename Set the filename in which to save the output. If not given, output is sent to the default audio device. The filename's extension determines the format, the following are recognized: .wav, .flac, .ogg, .txt, /dev/stdout, /dev/stderr --sample-format=name Force a specific sample format for the output. If not specified, the format is chosen by auto-negotiation with the encoder. Allowed values are any GStreamer- recognized format that is compatible with the requested encoder. Examples include "F32LE", "F64LE". --rate=Hz Downsample input to this sample rate. Default = 4096 Hz. Must be <= input sample rate or else you will get a caps negotiation error. --whiten Whiten the time series (default = do not whiten). --veto-segments-file=filename Set the name of the LIGO light-weight XML file from which to load vetoes (optional). Must coincide with --whiten --veto-segments-name=name Set the name of the segments to extract from the segment tables and use as the veto list. Must coincide with --whiten --reference-psd=file When whitening, normalize the time series to the spectrum described in this XML file. If this option is not given, the spectrum is measured from the data. --low-pass-filter=Hz Low pass filter frequency (default = no low-pass filter). Low-pass filter is applied after whitening. --high-pass-filter=Hz High pass filter frequency (default = no high-pass filter). High-pass filter is applied after whitening. --amplification=num Amplify the timeseries this much (default = no amplification). Amplification is applied after low- and high-pass filtering. For unwhitened h(t) that is bandpassed to the most sensitive region you might need to set this to 1e20 to make it audible -v, --verbose Be verbose. Data source options: Use these options to set up the appropriate data source --data-source=source Set the data source from [frames|framexmit|lvshm|nds|silence|white]. Required. --block-size=bytes Data block size to read in bytes. Default 16384 * 8 * 512 (512 seconds of double precision data at 16384 Hz. This parameter is only used if --data-source is one of white, silence, AdvVirgo, LIGO, AdvLIGO, nds. --frame-cache=filename Set the name of the LAL cache listing the LIGO-Virgo .gwf frame files (optional). --frame-type=name Set the frame type for a given instrument. Can be given multiple times as --frame-type=IFO=FRAME-TYPE. Used with --data-source=frames --data-find-server=url Set the data find server for LIGO data discovery. Used with --data-source=frames --gps-start-time=seconds Set the start time of the segment to analyze in GPS seconds. Required unless --data-source=lvshm --gps-end-time=seconds Set the end time of the segment to analyze in GPS seconds. Required unless --data-source=lvshm --injection-file=filename Set the name of the LIGO light-weight XML file from which to load injections (optional). --channel-name=name Set the name of the channels to process. Can be given multiple times as --channel-name=IFO=CHANNEL-NAME --idq-channel-name=idqname iDQ channel names to process. Must also provide idq- state-channel-name. Can be given multiple times as --idq-channel-name=IFO=IDQ-CHANNEL-NAME --idq-state-channel-name=idqstatename iDQ state channel names to process. Can be given multiple times as --idq-state-channel-name=IFO=IDQ- STATE-CHANNEL-NAME --nds-host=hostname Set the remote host or IP address that serves nds data. This is required iff --data-source=nds --nds-port=portnumber Set the port of the remote host that serves nds data. This is required iff --data-source=nds --nds-channel-type=type Set the port of the remote host that serves nds data. This is required only if --data-source=nds. default==online --framexmit-addr=name Set the address of the framexmit service. Can be given multiple times as --framexmit- addr=IFO=xxx.xxx.xxx.xxx:port --framexmit-iface=name Set the multicast interface address of the framexmit service. --state-channel-name=name Set the name of the state vector channel. This channel will be used to control the flow of data via the on/off bits. Can be given multiple times as --channel-name=IFO=CHANNEL-NAME --dq-channel-name=name Set the name of the data quality channel. This channel will be used to control the flow of data via the on/off bits. Can be given multiple times as --channel-name=IFO=CHANNEL-NAME --shared-memory-partition=name Set the name of the shared memory partition for a given instrument. Can be given multiple times as --shared-memory-partition=IFO=PARTITION-NAME --shared-memory-dir=name Set the name of the shared memory directory for a given instrument. Can be given multiple times as --shared-memory-dir=IFO=DIR-NAME --shared-memory-assumed-duration=SHARED_MEMORY_ASSUMED_DURATION Set the assumed span of files in seconds. Default = 4. --shared-memory-block-size=SHARED_MEMORY_BLOCK_SIZE Set the byte size to read per buffer. Default = 4096. --frame-segments-file=filename Set the name of the LIGO light-weight XML file from which to load frame segments. Optional iff --data- source=frames --frame-segments-name=name Set the name of the segments to extract from the segment tables. Required iff --frame-segments-file is given --state-vector-on-bits=bits Set the state vector on bits to process (optional). The default is 0x7 for all detectors. Override with IFO=bits can be given multiple times. Only currently has meaning for online (lvshm) data. --state-vector-off-bits=bits Set the state vector off bits to process (optional). The default is 0x160 for all detectors. Override with IFO=bits can be given multiple times. Only currently has meaning for online (lvshm) data. --dq-vector-on-bits=bits Set the DQ vector on bits to process (optional). The default is 0x7 for all detectors. Override with IFO=bits can be given multiple times. Only currently has meaning for online (lvshm) data. --dq-vector-off-bits=bits Set the DQ vector off bits to process (optional). The default is 0x160 for all detectors. Override with IFO=bits can be given multiple times. Only currently has meaning for online (lvshm) data.