Tools
On this page you will find a small collection of useful tools, which you can use together with Spark or for the development of DRM receivers.
Spark Remote Client - DRM Broadcast Monitoring and DRM Text Message update
The Spark Remote Client application is part of the Spark DRM Modulator installation. The remote client can be used to monitor and update DRM text messages during the DRM transmission (or MDI transmission). The remote client uses a subset of Spark Remote Client Interface (RCI) commands to visualize the content manager configuration and update the DRM text messages of audio streams. The connection is established via TCP/IP via a user-defined port (default port is 8500). If you want to use the Spark Remote Client, you need to enable this option in the Spark DRM Modulator content manager window as shown in the picture below.
In the Spark DRM Modulator content manager window, open the Remote Server Settings dialog and enable the RC server. To update the text messages on the fly, you must add at least one audio service with at least one text message in the DRM content manager panel. After you have started the broadcast, you can access the text message queue in the DRM content manager configuration using the Spark Remote Client application as depicted below. After you have started the DRM broadcast with RC server enabled, you can connect to the Spark DRM Modulator by pressing the play button on the Spark Remote Client main window. Finally, you can modify the DRM text messages during transmission without interrupting the broadcast.
Upon successful connection, you should see the Spark Remote Client main window as shown below:
Ratemonkey - Realtime Signal Converter
Ratemonkey is a software tool used to acquire, resample and forward data from PCM sampled sources in realtime. It supports sample rate conversion for Microtelecom's Perseus sampling receiver in realtime.
Latest version: 0.6.1 download
Minimum requirements:
- Java Runtime Enviroment (JRE) 6.0 or higher
- Windows Vista/XP/2000 (32/64bit)
How does it work?
Ratemonkey acquires samples from an input device (e.g. a WAV file), resamples and processes the data and writes
the resampled data to an output sink, such as the Soundcard, a UDP client, a TCP client or a WAV file.
The resampling is performed by a rational-factor FIR polyphase filter. The filter
coefficients are calculated on the fly with respect to the command line arguments.
The user can specify stopband attenuation, transition bandwidth as well as the number
of coefficients to meet the image rejection requirements. If no arguments are given,
Ratemonkey chooses suitable values considering the sample rate constraints. Additionally, the output gain can be adjusted
during runtime. If the output signal starts clipping the clipping value in dB is
indicated above the VU meter. By appropriately changing the output gain the clipping
value can be counterbalanced. Note that the software doesn't have
a build in AGC so that manual gain correction is necessary when the signal starts clipping.
Which devices are supported?
The user can choose between one of the following input devices:
- Perseus sampling receiver (link)
- WAV file
The resampled data can either be written to one of the following output devices:
- Soundcard (line out)
- TCP client (over network)
- UDP client (over network)
- WAV file
How do I use Ratemonkey?
In order to explain the usage of Ratemonkey, here are a few use-case examples. A detailed list of options can be found here.
Input:
Perseus receiver at 500 kHz sample rateOutput:
Soundcard (or VAC) at 48 kHz sample rate and 12 kHz intermediate frequency (IF)
ratemonkey.exe -indev perseus -inrate 500000 -outdev line -outrate 48000 -outifhz 12000
WAV file at any sample rateOutput:
UDP at 56 kHz sample rate
ratemonkey.exe -indev wav -inwav "in.wav" -outdev udp -outrate 56000 -port 100 -host localhost -realtime
Perseus receiver at 500 kHz sample rate and 1 MHz LO frequencyOutput:
WAV 192 kHz sample rate
ratemonkey.exe -indev perseus -inrate 500000 -perslo 1000000 -outdev wav -outrate 192000 -outwav "output.wav"
Perseus receiver at 250 kHz sample rate and 20 MHz LO frequencyOutput:
Soundcard named "Primary Sound Device" at 48 kHz sample rate
ratemonkey.exe -indev perseus -inrate 250000 -perslo 20000000 -outdev line -outrate 48000 -outline "Primary Sound Device"
NOTE: The
-outline "Primary Sound Device"
parameter is optional. You can as well leave it away.
WAVE file at any sample rateOutput:
WAV file at 24 kHz sample rate
ratemonkey.exe -indev wav -inwav "in.wav" -outdev wav -outrate 24000 -outwav "output.wav" -inwavnorepeat
WAVE file at any sample rateOutput:
Soundcard at 48 kHz sample rate
ratemonkey.exe -indev wav -inwav "in.wav" -outdev line -outrate 48000 -realtime
Version history
- Version 0.6.1 (05.06.2009) download
- Added command line option: -outifhz
- Added support to shift output signal on any intermediate frequency - Version 0.5.0 (08.05.2009) download
- Added command line options: -complex, -outline, -outgaindb, -fftplotoff
- Added VU meter and clipping indicator.
- Added TCP support. - Version 0.4.5 (10.06.2008) download
- Added Perseus-specific command line options: -perslo, -persdith, -perspreamp, -persatt, -perspres - Version 0.4.1 (05.06.2008) download
- Added soundcard output
- Added 24bit WAV file input support - Version 0.3.3 download
- Initial release
Command line options
Ratemonkey v0.6.0 realtime sample rate converter. (c) 2009 Michael Feilen. Usage: RATEMONKEY -indev wav|perseus -outdev wav|udp|line -outrate hz [-flags] -indev device Specifies the input device. Devices: wav, perseus. a) Wav file input -indev wav -inwav "infile.wav" Optional: -inwavnorepeat (end process if wav file read) -realtime (see other options) b) Perseus receiver running at 500 kHz sample rate -indev perseus -inrate 500000 (valid sample rates are 125000, 250000, 500000 and 1000000.) Optional: -persdith (enable ADC dither) -perspreamp (enable preamplifier) -perslo 100000 (set LO frequency to 100 kHz) -persatt 0 (select attenuator 0) 0: Off 1: 10 dB 2: 20 dB 3: 30 dB -perspres 0 (select preselector 0) 0: 0 - 1.7 MHz 1: 1.6 - 2.1 MHz 2: 2.1 - 3.0 MHz 3: 3.0 - 4.2 MHz 4: 4.2 - 6.0 MHz 5: 6.0 - 8.4 MHz 6: 8.4 - 12.0 MHz 7: 12.0 - 17.0 MHz 8: 17.0 - 24.0 MHz 9: 24.0 - 32.0 MHz 10: No Filter (Wideband) -outdev device Specifies the output device. Devices: udp, tcp, wav, line a) Wav file output at 48 kHz sample rate -outdev wav -outwav "outfile.wav" -outrate 48000 b) UDP output at 96 kHz sample rate -outdev udp -host 192.168.1.1 -port 6000 -outrate 96000 c) TCP server output at 192kHz sample rate -outdev tcp -port 6000 -outrate 192000 d) Line output (Soundcard) at 48 kHz sample rate -outdev line -outrate 48000 (optional) -outline "Primary Sound Device" Optional: -firtabs 128 Number of filter tabs used for rate conversion. The higher the number of tabs, the better the approximation and image rejection becomes. The default value is: 64. -imgrej 90 The image rejection in dB. The rolloff of the filter depends on the number of fir-tabs. The default value is: 90. -cutoff 0.8 The right edge cutoff frequency of the image rejection filter. The default value is: 0.9. -outbps 1 The number of bytes per sample of the output device. The default value is: 2 (16 bit per sample). -outgaindb -6.0 Defines the gain of the output signal in dB. The default value is: -3.0 dB. -outifhz 12000 Shifts complex valued input signals to an inter- mediate frequency of 12 kHz. The default value is: 0.0 Hz. -realtime The realtime flag enables sample clock emulation when reading from unclocked sources like a wav-file If the realtime-flag is not set the rate conversion will be performed as fast as possible. -console Runs the ratemonkey without graphical output. Ratemonkey consumes less CPU power with this option. -complex Plots a complex spectrum. The left channel contains the real component and the right channel contains the imaginary component. -fftplotoff Turns the spectrum plotting off.
Analog Filter Designer
This application calculates the phase and frequency response of arbitrary complex analog filters
consisting of resistors, capacitors and inductors.
The user can append different blocks consisting of resistors and
replace these resistors by different components like inductors, capacitors, serial or parallel ciruits and so on.
To adjust the value of a component the user needs to double click on the icon until a
slider pops up in a different window. By right-clicking on a component the user can alter the settings or
replace the component with a different one.
To measure the circuit the user must append a measurement block. Measurement blocks can also be inserted between
filter circuits to obtain measurements from the signal source up to the point of interest. Due to lack of time the varistor
block functionality was not implemented.
The values in the frequency and phase response window are highlighted when the user clicks into the plot. Furthermore
the boundaries of the plot window are self-adjusting and store a couple of previous measurements until the clear-all button was pressed.
The program was written during the semester break in 2005 and comes with no guarantee.
Download:
Java executable: filter.jar
Source code: filter_src.zip
Requirements:
- Java Runtime Enviroment (JRE) 5.0 or higher
- Windows/Linux/Mac
Wave File Signal Generator
Command line wave file signal generator which writes a sine or a phase modulated sine signal to a wav file.
Wave generator options: -? show this option menu File: -file the name of the output file (default: output.wav) -kb output filesize in kB (default: 5000) -sr the sample rate in Hz (default: 48000) -ch the number of channels (default: 2) -res the number of bytes per sample (default: 2) Sine LFO: -frq LFO frequency in Hz (default: 0.00) -db attenuation in dB (default: -3.00) Phase LFO: -mfrq modulation frequency in Hz (default: 0.00) -mran modulation range in percent (100% = 2PI) (default: 100.00)
Requirements:
- Windows x86
Download:
Executable: wavsig.exe
Source code: wavsig_src.zip (VS.NET 2003 project)