Well as all of regulars on here now know the code in the OP is broken as of OSX Sierra 10.12.2. It works fine on 10.12.0 and 10.12.1 but the latest version of Sierra broke the code.
See here... Root access in OSX 10.12.2.
...for more details.
This code is a workaround for the error generated in the above URL.
The important part is this...
...inside the function. It can be outside the function but fails on AudioScope.sh if it is. I have absolutely no idea why! AudioScope.sh now captures again using QT.
Here is the revised code to counteract the error in the above URL.
It works for me and I hope for others too.
The Applescript section has been altered to allow for time delays in program startup and initial setup before taking a recording. There is a very small amount of error checking that defaults to roughly a 1 second capture.
This fudge has taken me ages to solve and has taught me a lot about Apple and their attitude towards security. I can't blame them but it is a RPITA having to do workarounds.
Code:
#!/bin/sh
# Usage:- [./]AUDIO_CAPTURE.sh <number_of_seconds_from_1_upwards>
#
# This DEMO shell script uses a virgin OSX Sierra install only, nothing else is required.
# The conversion for this DEMO is mono, 8 bit, unsigned integer at 48000 sps but it is
# easy to convert to just about anything, 'man afconvert'...
#
# This creates a sample which is then saved to '/"$mypath"/Untitled.m4a' which is then converted
# to '/"$mypath"/Untitled.wav' file. Both formats are then played using 'afplay'.
#
# From the current directory, './AUDIO_CAPTURE.sh 5' gives about 5 seconds of recording.
#
# Use the internal built in microphone as a test.
# Time for the recording.
seconds="$1"
# Some very basic error checking.
if [ "$seconds" = "" ] || [ "$seconds" -le "1" ]
then
seconds=1
fi
# 'mypath' should be in Applescript format, NOT POSIX format.
# E.G. 'Users:myhome:Desktop'. There is no need for leading and trailing colons - see below.
# This could be a command line second argument but is not given '$2' here.
mypath='tmp'
SAMPLE()
{
> /"$mypath"/Untitled.m4a
chmod 666 /"$mypath"/Untitled.m4a
osascript << AppleSampler
tell application "QuickTime Player"
activate
set savePath to "Macintosh HD:" & "$mypath" & ":Untitled.m4a"
set recording to new audio recording
set visible of front window to false
delay 3
start recording
delay "$1"
stop recording
export document "Untitled" in file savePath using settings preset "Audio Only"
close (every document whose name contains "Untitled") saving no
tell application "System Events" to click menu item "Hide Export Progress" of menu "Window" of menu bar 1 of process "QuickTime Player"
-- quit
end tell
AppleSampler
# 'wait' added for fullness only.
wait
}
# Use the function to create a _background_ recording.
SAMPLE "$seconds"
# Example of conversion to a WAVE file.
afconvert -f 'WAVE' -c 1 -d UI8@48000 /"$mypath"/Untitled.m4a /"$mypath"/Untitled.wav
ls -l /"$mypath"/Untitled.*
# Playback both files.
afplay /"$mypath"/Untitled.m4a
sleep 1
afplay /"$mypath"/Untitled.wav
exit 0
EDIT:-
Just comment out the 'quit' part in the Applescript section to remove the annoying opening and closing of QT on the dock...
Last edited by wisecracker; 12-31-2016 at 10:43 AM..
Reason: See above.
This User Gave Thanks to wisecracker For This Post:
i am having a weird error on mac os x running some shell scripts. i am a complete newbie at this and this question concerns 2 scripts. one of which a friend of mine wrote (videochecker.sh) a couple weeks ago and it's been running fine on another machine.
then last week i wrote capture.sh and it... (2 Replies)
I want to config Transparent Proxy using Shell Script.
I have more questions<exercise of me :D>:
+ Check that the squid is installed or not install and version is installed
+Allows users to choose to run a transparent proxy or not
+Perform configuration and turn on service in accordance... (0 Replies)
Hello,
I am new to Mac OSX and shell scripting all together. I was wondering if anyone could help get me started in a few scenarios so that I would be able to automate checking a system against a STIG checklist. A STIG Checklist is a DoD Guideline for securing systems. Here is the first... (3 Replies)
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)
Hi,
I want 10000+ unique Audio file of approx 2MB each. How can i generate numerous audio files using shell script. Any tool, command or suggestions are welcome.
If i give one audio seed file then can we create numerous unique files with same seed file?
Any help is highly appreciable.... (11 Replies)
Hi everyone...
I don't know if this is the correct forum but it is Apple OSX specific.
It is a proper pseudo-man page for the sparse official one...
This is as thorough as experimentation can get...
Command line afplay, August 2016.
---------------------------------
afplay -h
... (0 Replies)
This is a DEMO shell script to generate a simple graticule and plot inside it...
Apologies for any typos...
it is another building block along with my other two shell uploads recently to start a semi_serious project of an Terminal_AudioScope...
The fist upload I posted recently was to show... (83 Replies)
Hello everyone!
I'm developing a MacOs Application in python and I'm having some issues trying to find information related to the power button pressed event. I know that in Ubuntu 14.04 you can find information about it on the acpi folders, but I realized that here in Mac that process is... (0 Replies)
Hello,
I have a backup script that runs an rsync backup to an external drive. I use the script frequently on Windows and Linux and have installed it on a Mac. The script has an option to run shutdown after the backup has completed. Since backup can take hours to run, this is an option that is... (10 Replies)