MorsMortium/Losci
2
0
Fork
You've already forked Losci
0
Digital oscilloscope for visualizing sound.
  • Shell 100%
2025年09月30日 07:44:24 +02:00
1.bmp New images with source in readme, render to files feature 2025年08月28日 18:09:42 +02:00
2.bmp New images with source in readme, render to files feature 2025年08月28日 18:09:42 +02:00
3.bmp New images with source in readme, render to files feature 2025年08月28日 18:09:42 +02:00
4.bmp New images with source in readme, render to files feature 2025年08月28日 18:09:42 +02:00
5.bmp Multiple changes 2025年08月29日 16:50:04 +02:00
Helper.sh Add start_number to ffmpeg command 2025年09月06日 14:03:22 +02:00
konichiwa.wav Fix alpha burn in, add helper script, konichiwa.wav, update readme 2025年09月03日 07:24:03 +02:00
LICENSE Initial commit 2025年08月28日 16:23:38 +02:00
losci Feature: Do not sleep on WAV playback 2025年09月30日 07:44:24 +02:00
losci.desktop Initial upload 2025年08月28日 16:36:52 +02:00
losci.svg Initial upload 2025年08月28日 16:36:52 +02:00
README.md Feature: Do not sleep on WAV playback 2025年09月30日 07:44:24 +02:00


Losci

Digital oscilloscope for visualizing sound.

Dependencies

If LuaJIT-SDL3 or LuaJIT-SDL2 is not packaged, then the sdl3_ffi.lua or sdl2_ffi.lua from the linked repo can be put next to the losci executable.
Bear in mind, the program prefers SDL3, when it is available, it will try to use that, unless -ov --oldversion is passed.
The SDL, LuaJIT-SDL and SDL_image (if used) versions have to match.
One option/feature is not available with SDL2, -ba --backgroundalpha, since SDL2 windows cannot have transparent backgrounds.

Packaging

The program is currently available from the AUR: https://aur.archlinux.org/packages/losci-git
There is also a windows package available: https://codeberg.org/MorsMortium/Losci/releases
You are free to package it yourself or ask distribution packagers to do it.

Usage

Usage: losci [OPTIONS]
Digital oscilloscope for visualizing sound.
Options cannot be merged.
Options with a value need to have a space character between them [-f 60].
From line/circle and jump/gamer/ultragamer only one can be enabled at a time.
Interactive usage:
	Press space to freeze the image (useful for screenshots)
	Press escape to exit the program
Amount of options: 69
Options:
	-h --help Display this help message and exit Default: false
	-s --settings Create default settings and exit Default: false
	-ov --oldversion Force SDL2 when SDL3 is available Default: false
	-xw --xwayland Force X on Wayland Default: false
	-wx --waylandx Force Wayland on X Default: false
	-fc --framecounter Write number of frames in each second Default: false
	-ni --noinput Interactivity (space/escape) is disabled Default: false
	-sf --settingsfile Use provided file instead of from config location Default: 
	-br --backgroundred Red element from background RGB Default: 0 Range: 0 - 255
	-bg --backgroundgreen Green element from background RGB Default: 0 Range: 0 - 255
	-bb --backgroundblue Blue element from background RGB Default: 0 Range: 0 - 255
	-ba --backgroundalpha Alpha element from background RGB Default: 255 Range: 0 - 255
	-fr --foregroundred Red element from foreground RGB Default: 255 Range: 0 - 255
	-fg --foregroundgreen Green element from foreground RGB Default: 255 Range: 0 - 255
	-fb --foregroundblue Blue element from foreground RGB Default: 255 Range: 0 - 255
	-fa --foregroundalpha Alpha element from foreground RGB Default: 255 Range: 0 - 255
	-jr --jumpred Red element from jump RGB Default: 64 Range: 0 - 255
	-jg --jumpgreen Green element from jump RGB Default: 64 Range: 0 - 255
	-jb --jumpblue Blue element from jump RGB Default: 64 Range: 0 - 255
	-ja --jumpalpha Alpha element from jump RGB Default: 255 Range: 0 - 255
	-vr --vanishred Red element from frame color removal RGB Default: 0 Range: 0 - 255
	-vg --vanishgreen Green element from frame color removal RGB Default: 0 Range: 0 - 255
	-vb --vanishblue Blue element from frame color removal RGB Default: 0 Range: 0 - 255
	-va --vanishalpha Alpha element from frame color removal RGB Default: 255 Range: 0 - 255
	-vv --vanishvanish Add vanish colors (not alpha) instead of remove Default: false
	-mr --meshred Red element from guide line RGB Default: 128 Range: 0 - 255
	-mg --meshgreen Green element from guide line RGB Default: 128 Range: 0 - 255
	-mb --meshblue Blue element from guide line RGB Default: 128 Range: 0 - 255
	-ma --meshalpha Alpha element from guide line RGB Default: 255 Range: 0 - 255
	-m --mesh Amount of vertical and horizontal guide lines Default: 0 Range: 0 - 1000
	-ms --meshsize Guide line vertical width, horizontal height Default: 1 Range: 1 - 100
	-mp --meshpercent Window percent --meshsize, not constant Default: false
	-g --gamer Frame foreground is the next color of the rainbow Default: false
	-ug --ultragamer Point foreground is the next color of the rainbow Default: false
	-gu --gamerultra Frame background is the next color of the rainbow Default: false
	-cf --changeforeground Foreground color change rate (gamer) Default: 10 Range: 1 - 255
	-cb --changebackground Background color change rate (gamer) Default: 10 Range: 1 - 255
	-rg --reversegamer Backwards going for --gamer and --ultragamer Default: false
	-gr --gamerreverse Backwards going for --gamerultra Default: false
	-j --jump Point distances blend them between foreground and Jump Default: false
	-jd --jumpdivide More means larger distances get colored Default: 2 Range: 0.001 - 100
	-jp --jumppercent Window percent --jumpdivide, not constant Default: false
	-zx --zoomx Multiply X axis, x<0 flips, -1<x<1 shrinks Default: 1 Range: -100 - 100
	-zy --zoomy Multiply Y axis, y<0 flips, -1<y<1 shrinks Default: 1 Range: -100 - 100
	-sa --switchaxis Switch X and Y coordinates Default: false
	-l --line Close points in a row are connected with lines Default: false
	-c --circle Points are drawn as shapes, distance will be made odd Default: false
	-cs --circleshape 1: circle, 2: line, 3 and up: regular shapes Default: 1 Range: 1 - 50
	-cu --circleup Not circle shapes in circle mode should point up Default: false
	-cl --circleline Circles, except line have lines instead of fill Default: false
	-cd --circledivide Less is circle, more is star, < 1: regular Default: 0 Range: 0 - 1000
	-d --distance Closeness for --line, --circle radius Default: 5 Range: 0.001 - 1000
	-p --percent Window percent --distance, not constant Default: false
	-ww --windowwidth Initial width of window Default: 600 Range: 1 - 10000
	-wh --windowheight Initial height of window Default: 600 Range: 1 - 10000
	-r --resize Window is resizable Default: false
	-b --borderless The window does not have decorations Default: false
	-t --top The window stays always on top of other windows Default: false
	-f --fullscreen The window will start fullscreen Default: false
	-e --equal The view has equal sides, centered Default: false
	-a --accurate Subpixel accuracy, points are not rounded Default: false
	-rf --rateframe FPS, more FPS, less sample per frame Default: 30 Range: 1 - 1000
	-rs --ratesample Should match audio sample rate Default: 48000 Range: 1 - 1000000
	-bs --buffersize Size of buffer in seconds Default: 1 Range: 1 - 10000
	-i --input Used audio device. Lists devices without argument Default: Monitor of Built-in Audio Analog Stereo
	-il --inputlayout Layout of input device (Left, Right, Mono, Stereo). Stereo is 2D Default: s Possible values: l r m s
	-o --output Write rendered images to given path Default: 
	-w --wav Play WAV file instead of listening Default: 
	-q --quick Do not sleep when playing WAV file Default: false

Screenshots

These were created with some different options the program provides.
C. Allen music files taken from download link under videos for higher quality.


Oscillofun: https://archive.org/details/oscillofun

Jerobeam Fenderson - Core https://www.youtube.com/watch?v=0hEEp07c7ew

Jerobeam Fenderson - Shrooms: https://www.youtube.com/watch?v=19jv0HM92kw

C. Allen - Globetrotter: https://www.youtube.com/watch?v=J2YQD8Go_Hc

C. Allen - Downforce: https://www.youtube.com/watch?v=Y04LBDTsGIk

Contributions

Contributions are welcome!

Rules of contribution are using the naming conventions (CamelCase everywhere and no shortening of words).

Support

The program won't have a dedicated chat, but feel free to join our Matrix community https://matrix.to/#/%23TheWorldMachineOffTopic%3Amatrix.org?via=matrix.org&via=midov.pl&via=monero.social

Acknowledgment

Original idea and konichiwa.wav taken from https://github.com/kritzikratzi/Oscilloscope

Donation

If you like my work, feel free to donate: https://morsmortium.neocities.org/Donate