Sponsored Content
Operating Systems OS X (Apple) A Bash Audio Sweep Generator... Post 302912087 by wisecracker on Tuesday 5th of August 2014 05:20:35 PM
Old 08-05-2014
A Bash Audio Sweep Generator...

This is a small program as a tester for a basic sweep generator for bandwidth testing of AudioScope.sh.

This DEMO is only capable of 4KHz down to about 85Hz and back due to the low bit rate, but it is proof of concept for a much wider variant using a much higher bit rate.

The file generated is a .WAV file and is continuously sweeping until Ctrl-C is pressed.

Not tested on Linux but it should work perfectly well using the command aplay instead of OSX's afplay ...

Enjoy finding simple solutions to often very difficult problems...

Bazza...
Code:
#!/bin/bash
# sweeper.sh
# Designed around a Macbook Pro 13", OSX 10.7.5, default bash terminal.
# Issued as Public Domain, 2014, B.Walker, G0LCU.
clear
echo ""
echo "Generating the sweep.wav file, please wait a few seconds..."
echo ""
m=0
n=0
sweep_data=" ~"
sweep_text=""
# Initialise all files to zero.
> /tmp/sweeper.raw
> /tmp/sweep.raw
> /tmp/sweep.wav
# Generate the high start sound at 4KHz.
for m in $( seq 0 1 5 )
do
	printf "$sweep_data" >> /tmp/sweeper.raw
done
# Now build up the sweep_data by adding the correct byte values at the beginning first then the end last.
for n in $( seq 0 46 )
do
	# Add the correct byte at the beginning, append the file, looping a few times...
	sweep_data=' '$sweep_data
	for m in $( seq 0 1 3 )
	do
		printf "$sweep_data" >> /tmp/sweeper.raw
	done
	# Now add the correct byte at the end, append the file, looping a few times...
	sweep_data=$sweep_data'~'
	for m in $( seq 0 1 2 )
	do
		printf "$sweep_data" >> /tmp/sweeper.raw
	done
done
# Now to reverse the file sweeper.raw byte by byte using builtins and append to sweeper.raw.
# This is a little slow but it works perfectly, therefore good enough for me.
sweep_text=`cat < /tmp/sweeper.raw`
n=$[ ( ${#sweep_text} - 1 ) ]
while [ $n -ge 0 ]
do
	printf "${sweep_text:$n:1}" >> /tmp/sweeper.raw
	n=$[ ( $n - 1 ) ]
done
# Create a few seconds of sweeper from 4KHz to about 85Hz and back again...
cp /tmp/sweeper.raw /tmp/sweep.raw
cat /tmp/sweeper.raw >> /tmp/sweep.raw
# This is the required .WAV header...
printf "\x52\x49\x46\x46\x6c\xfe\x00\x00\x57\x41\x56\x45\x66\x6d\x74\x20\x10\x00\x00\x00\x01\x00\x01\x00\x40\x1f\x00\x00\x40\x1f\x00\x00\x01\x00\x08\x00\x64\x61\x74\x61\x48\xfe\x00\x00" >> /tmp/sweep.wav
cat /tmp/sweep.raw >> /tmp/sweep.wav
echo "All done, now sweeping from 4KHz to about 85 Hz and back..."
echo "Press Ctrl-C to stop..."
while true
do
	# For Linux use aplay in place of afplay.
	afplay /tmp/sweep.wav
done
# The line below will never be reached but added for fullness...
exit 0

This User Gave Thanks to wisecracker For This Post:
 

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Error with Audio Conversion Bash Script

Good evening, I'm currently working on a BASH script to convert audio between file formats and I've come across a snag. At the beginning of the script, I'm having the system check to see if any files with the .m4a extension exist in the directory, and if so, it runs the script. If there are no... (1 Reply)
Discussion started by: KBurkholder
1 Replies

2. Programming

Python, Platform Independent, Pure Audio Sinewave Generator...

IKHz_SW_OSX.py A DEMO mono _pure_ sinewave generator using standard text mode Python 2.6.7 to at least 2.7.3. This code is EASILY modifyable to Python version 3.x.x... This DEMO kids level 1KHz generator is mainly for a MacBook Pro, (13 inch in my case), OSX 10.7.5 and above. See below...... (0 Replies)
Discussion started by: wisecracker
0 Replies

3. Shell Programming and Scripting

A Crude 1KHz Audio Sinewave Generator Demo...

A very simple crude sinewave generator. The file required is generated inside the code, is linear interpolated and requires /dev/audio to work. Ensure you have this device, if not the download oss-compat from your OS's repository... It lasts for about 8 seconds before exiting and saves a... (5 Replies)
Discussion started by: wisecracker
5 Replies

4. Shell Programming and Scripting

IP Ping Sweep

I put this together to search for unused IP addresses on a router. It's run as a Bash Command on OSX 10.9. Basically the user inputs the router address' IP range to sweep. 'jot' spits out a list of IP addresses based on that input and each one of those gets pinged. The output looks like this (tab... (4 Replies)
Discussion started by: sudo
4 Replies

5. Slackware

Problems with audio recording in Audacity 2.0.5. Slackware64 14.1; Intel HD Audio.

I'm trying to record audio using Audacity 2.0.5 installed from SlackBuilds. My system is 64-bit Slackware 14.1 and a sound card is Intel HD Audio. I didn't change my sound system to OSS. (Default sound system in Slackware 14.1 is ALSA, isn't it?) First, I set Internal Microphone slider in KMix... (2 Replies)
Discussion started by: qzxcvbnm
2 Replies

6. OS X (Apple)

An Audio Function Generator...

Ok guys, gals and geeks... As from today I am starting to learn awk in earnest doing something totally different. I am going to create a pseudo-Audio_Function Generator centred around OSX 10.11.x minimum. The code below is a tester to see what the possibilities are. All waveforms will be... (11 Replies)
Discussion started by: wisecracker
11 Replies

7. OS X (Apple)

Variable frequency audio generator...

Hi all... I intend to do an Audio Function Generator using Awk, (already started thanks to Don), but the biggest thing I have struggled with was variable frequency. I was going to generate differing sized waveforms on the fly but that would that would mean the frequencies are dependent on any... (2 Replies)
Discussion started by: wisecracker
2 Replies

8. OS X (Apple)

A simple variable frequency sinewave audio generator.

Hi all... Well I have not been inactive but working out how to make OSX 10.14.x command line audio player have a variable sample rate. This is a back door as afplay does not have a sample rate flag unlike aplay for ALSA, in Linux flavours. This is a DEMO only but a derivative of it will... (2 Replies)
Discussion started by: wisecracker
2 Replies
All times are GMT -4. The time now is 11:37 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy