Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Apr 2020 17:51:26 +0200
From:      Polytropon <>
To:        FreeBSD Questions <>
Subject:   Audio recording on demand (level + duration)
Message-ID:  <>

Next in thread | Raw E-Mail | Index | Archive | Help
For an amateur radio project, I need a way to have a system
that does "record on demand". This will be the setting:

I have a receiver on a specific frequency. It uses a built-in
squelch in FM mode, so when there is no signal, the device is
silent - it works like a typical scanner, but for one frequency.

What I want a connected computer (using the line-in or the
microphone input, need to check levels) is to do something
like in this pseudocode:

	continuously monitor audio input
	if volume > 0:
		create UTC timestamp (YYYY-MM-DD_HH:MM:SS)
		start recording (in background)
	if volume still = 0 again
		send TERM signal do recorder
		recorder closes file (valid file!)
		if duration of file > 10 seconds:
			convert file to MP3 (in background)
			rename file using timestamp
			remove file

I'd like to create the "wrapper" as a simple shell script.

So when this system runs for a while, I will have certain
files, let's say

	... and so on ...

which are all more than 10 seconds in duration and contain
what has been received on the frequency. The restriction on
the duration will make sure no noise will be recorded, only
the desired signals. An option would be to add the duration
to the filename (2020-04-23_21:19:57_00:24:13.mp3 - a file
that contains 24 min 13 sec audio).

My question is:

What file can I monitor (and how) to obtain an information
about _if_ there is some audio input? I'd probably use the
rec command from the sox package for recording, and probably
something like lame for MP3 conversion.

Any pointers are welcome.

Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...

Want to link to this message? Use this URL: <>