shakedown.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A community for live music fans with roots in the jam scene. Shakedown Social is run by a team of volunteers (led by @clifff and @sethadam1) and funded by donations.

Administered by:

Server stats:

243
active users

#commandline

2 posts2 participants0 posts today

Well, I finally found something for which a normal person will need to use the command line.

I was trying to play the Amnesia: The Dark Descent, and it complained that it couldn't find /usr/lib/libtheora.so.0

The solution was to make a symlink:

sudo ln /usr/lib/libtheora.so /usr/lib/libtheora.so.0

It's a simple fix, but not at all easy to figure out if you're not comfortable with the command line.

"The Linux Command Line" (2nd Edition) offers a comprehensive journey from first keystrokes to advanced Bash scripting.

Linux, building on its rich Unix heritage, became the bedrock of internet infrastructure and the open-source movement.

From dedicated distros like Kali to forensic analysis, network defense, and system hardening, a granular understanding of the command line is key. This book reinforces that expertise.

#Linux #CommandLine #Bash #Cybersecurity

Written by @william_shotts

Replied in thread

What brought you to #Emacs?

@myTerminal I was using Tmux, Vim, Bash, AWK, and FZF, and I kept trying to write scripts for all of these programs that would allow me more coordination between them. For example, I once wanted to launch a process from Vim in a second terminal in a Tmux split-screen, capture it’s output into a temporary file, then when the process exited, use AWK to select symbols from the file that I could later feed into FZF. Or I would write a little wrapper Bash script that would run a build process and send a notification and trigger Tmux to automatically switch to the shell when the process completed.

I was always thinking to myself how I wished all of these separate tools, which were all doing one just thing and doing it well (the Unix philosophy), could be connected together without needing to use pipes or complicated message passing through temporary files or through DBus. And I also wished they were all written in the same programming language, instead of having a different language for Bash, AWK, VimScript, and the config languages for Tmux, or using long chains of CLI options stored into partial script files.

Then it hit me one day that this thing that I was wishing for, which coordinated between the terminal multiplexer, command shell, editor, and auto-completion framework and was all scripted with just one programming language, this thing already existed and it was called Emacs.

Then I finally understood what all the fuss was about, and switched to Emacs forever.

#tech#software#lisp

Update: Thanks to @furicle for this suggestion. I think it's about perfect:

tmp $ AV_LOG_FORCE_NOCOLOR=true ffmpeg -hide_banner -i example.opus -filter:a volumedetect -f null /dev/null
Input #0, ogg, from 'example.opus':
  Duration: 02:13:19.89, start: 0.007500, bitrate: 118 kb/s
  Stream #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp
      Metadata:
        encoder         : Lavf58.45.100
[Parsed_volumedetect_0 @ 0x563ea07eeb00] n_samples: 0
Stream mapping:
  Stream #0:0 -> #0:0 (opus (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to '/dev/null':
  Metadata:
    encoder         : Lavf61.7.100
  Stream #0:0(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
      Metadata:
        encoder         : Lavc61.19.101 pcm_s16le
[Parsed_volumedetect_0 @ 0x7f9920003c00] n_samples: 767987856
[Parsed_volumedetect_0 @ 0x7f9920003c00] mean_volume: -21.0 dB
[Parsed_volumedetect_0 @ 0x7f9920003c00] max_volume: -2.8 dB
[Parsed_volumedetect_0 @ 0x7f9920003c00] histogram_2db: 1
[Parsed_volumedetect_0 @ 0x7f9920003c00] histogram_3db: 70
[Parsed_volumedetect_0 @ 0x7f9920003c00] histogram_4db: 3872
[Parsed_volumedetect_0 @ 0x7f9920003c00] histogram_5db: 98331
[Parsed_volumedetect_0 @ 0x7f9920003c00] histogram_6db: 750534
[out#0/null @ 0x563ea084bf80] video:0KiB audio:1499976KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: unknown
size=N/A time=02:13:19.87 bitrate=N/A speed= 573x    

Dear sound/audio folks and engineers,

[Update: just for clarity: I'm looking for a command line utility that will help me decide which of 70 audio recordings need amplification/compression/normalization. Something that can print out media stats like average loudness, or something like that]

I have a directory with 3.5GiB of audio files (chiefly opus & m4a) which are spoken word recordings.

Some of them are quite low, and some of them are quite dynamic such that it's a whisper at times and nearly a shout at other times.

I've processed a lot of them with #audacity's compressor filter or #ffmpeg (ffmpeg -i audio.m4a -filter:a "speechnorm=e=50:r=0.0001:l=1" audio-normalized.m4a), but there are some unprocessed files in the collection, which are a pain to individually find and fix.

Is there a way from the #CommandLine to detect the loudness and/or dynamic range of audio files so that I can automatically flag them for processing with ffmpeg?

Thanks!!

Is there a linux command-line tool to copy files while specifying the source and *target path of each file*?

'rsync' can read an input list of files, but has no way of specifying individual target paths.

I am thinking of using the '--transform' option of `tar` and do a tar - untar pipe, but it would only work for short substitution scripts and when you can figure out the target given the source path only.