Skip to content

Linux audio spectrum analyzer with VLF SDR

License

Notifications You must be signed in to change notification settings

myriacat/myriacat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

myriacat application screenshot

myriacat

  • Linux spectrum analyzer with VLF SDR
  • up to 4K fullscreen, fluid realtime Display
  • fast, intuitive, portable & lightweight
  • get newest myriacat here

block diagram

💡 use myriacat as spectrum analyzer for your music/youtube etc:
linux does not route the speaker-output back to programs, the easiest way is
to install pavucontrol, and set "monitor of built-in Audio" at the recording tab.


FAQ: click to expand
  • minimum requirements:
    Linux 64bit on AMD64 compatibles with Alsa audio, X11 and OpenGL (Mint, Ubuntu, Debian, Manjaro, ..)
    for extended analysis outside the HiFi range, a 24bit/192kHz Soundcard is recommended.

  • configuration:
    on exit, .myriaconf.txt with editable input devices is created.
    available devices can be listed with arecord -l
    only 24bit HW can be addressed directly, others will be only available under "default"

  • antenna for DX?
    the common Realtek ALC887 (24bit/192Sps) audio Codec allows
    source impedances up to 40KOhm on the ADC (mic input).
    a cable to a metal Doorframe or Radiator is sufficient to see
    50KW Time signal stations 500 miles away.
    preamplifiers and tuned Antennas are recommended for weak Signals.

    16bit USB Audio Dongles often need much lower impendance sources,
    its not possible to receive weak Signals without LF preamplifiers.

  • change color of the spectrum
    via colorcode in myriaconf.txt, or direct with 1,2,3 and q,w,e

  • playback of a 192ksps audiofile is cutoff at 22kHz
    some distributions are capped at 22kHz audio for playback.
    for audiophiles, specific HiFi/ HiEnd tests or other interests, those settings can be changed.
    this is for Mint/Ubuntu with Pulseaudio. other distros might work different.
    do this on your own risk! - audio hardware is usually only designed for 20Hz - 20kHz.
    it is not advised to use this configuration permanently.

    cat /proc/asound/card0/pcm0p/sub0/hw_params usually shows "rate 44100"
    nano /etc/pulse/daemon.conf remove the ";" in front of "; default-sample-rate = 192000"
    pulseaudio -k && sudo alsa force-reload to restart the driver and sound subsystem
    cat /proc/asound/card0/pcm0p/sub0/hw_params will show "rate 192000" now

    play software generated 96kHz_sine.wav (192kSps, 0 - 96kHz sweep, 16bit, 10 seconds, low volume)
    set myriacat to linear mode (music button off), 192k, L+R, and realtime.
    best viewed with initial window-size (1024 pixel) and 2*zoom factor (2048 FFT size).

    its generally not useful to use this settings.
    myriacat talks directly to the low level alsa hardware interface and can use
    192kSps from the HW input anytime, regardless of pulseaudio-configurations.

applications: click to expand
  • logarithmic audio view:
    essential precision tool for recording, mixing and mastering
    real time monitoring for video streaming, live events and recording Studios
    audio FX visualizer for DJ's and Professional Audio Engineering
    visual feedback for vocalists and content creators
    evaluate harmonics, frequency response curves, acoustic characteristics measurements
    instrument tuning, note training, vocal aid
    lossy compression quality analysis
    hydroacoustics, whalesounds, aquatic studies and marine sound visualization

  • linear view:
    pixelexact linear visualization of analog signals for scientific research
    ham radio, panadapter, ripple control, DCF77, smartmeter
    naval/submarine communications, alpha navigation, aviation beacons
    wideband and narrowband sonogram, passive sonar, signal hunting
    radio astronomy, SID monitor, lightning detector, whistlers, spherics
    seismic logging, schumann resonances
    forensic analysis, pattern detection
    bioresonance feedback

  • upper sideband demodulator:
    downconvert and listen to selected bandwidths from 270 millihertz to full 96kHz
    LF continuous wave and communications receiver
    VLF SDR, Grimeton Radio SAQ receiver
    ultrasonic, infrasound, sonar and sonography converter
    bat detector

  • oscilloscope
    check for signal integrity and continuity
    catch clipping, offset and distortions

  • vectorscope, goniometer
    polar view of stereo image width and position

  • phase correlation meter
    mono compatibility of the stereo signal

  • cepstrum:
    inspection of motors and gearboxes,
    acoustic signature vessel identification,
    DEMON (Detection of Envelope Modulation on Noise),
    speaker detection

features: click to expand
  • designed and written in C, with low level ALSA and OpenGL access
  • multithreaded in-house DSP kernel, without external libraries
  • complex Fourier Transformation, DIT, inplace, radix2, based on Cooley Tukey
  • FFT window size from 1024 to 262144 samples
  • samplerate from 275sps to 192kSps, 24bit
  • powerspectrum resolution up to 1 millihertz
  • demodulator bandwidth from sub 1Hz to full bandwidth
  • window size from 256*160 pixels to 4K fullscreen
  • waterfall logging up to >100 years with scroll time display
  • measuring ruler & harmonic series markers
  • overlap-add FFT convolution filter for sideband demodulator
  • vertical flank steepness (brickwall) filter without phaseshift
  • A-weighting filter according to international standard IEC 61672:2003
  • hidden bin processing in log-view, no missing data
  • smart buttons replace options and setting-screens, no invalid parameters possible
  • single volume control for the whole signaltrain
  • every configuration is seamlessly changeable on-the-fly
  • savestate memorizes all settings for next use

changelog: click to expand
  • v1.2
    extended long time measurements up to >100 Years
    reversed average selector
    updated colors
    minimal visual changes
    enforce max screensize of 4096*2048

  • v1.1
    adapt main spectrum shading to new mesa driver specification
    change goniometer presentation to fix software rendering bug
    convert ruler seconds to timestamp
    update font spacing
    adjusted colors
    tested on:
    Mint cinnamon 18.3 - 20.1,
    Ubuntu Gnome 20.10,
    Debian KDE Plasma 10.7.0 and
    Manjaro xfce 20.2.1

  • v1.0
    first public release


license
See the LICENSE file for details

feed the cat
Litecoin LTC: LaCh6jieaHP14D2VD36voiq4urkzaHZjGr