Using GNUradio audio sink in windows enviornment - gnuradio

I have just downloaded GNU Radio's installer for the windows environment and am having trouble with simple audio playback from a wav file.
The audio file will play but is 'choppy' and seems to be playing back at the wrong sample rate (difficult to tell for sure due to the intermittent audio). I am using the correct sample rate from the file (11.025kHz). I have also tried adding a throttle block between the file and the audio sink, although I know that is not recommended. I'm not sure if there are 'issues' with the port to Windows or if there is some additional hardware config needed (above what is typically done in Linux) Attached is a screen grab of the GNUradio flowgraph.
note: the same 'choppy' audio is heard when the wav file source block is replaced by a signal source block.
Image showing the internal data samples related to the second comment below:

Related

JFR recording analysis: Path in the File I/O report is "null"?

I'm profiling (using JFR's "Continuous" profile settings) a non-trivial production application which does a lot of I/O and I'm surprised that the File I/O report shows only a single row with Path null.
How can I find out why is this happening and fix it?
It's a pretty standard java/clojure app and it runs in a docker container.
This happens when the file stream was created using a file descriptor, for example System.out, System.in and System.err.

How to automate audio track replacement in a video?

I would like to implement a automation of audio enhancement for self created videos.
The videos have all in common
the mic is a classical laptop mic (mid quality with lots of white noise)
I have a white noise profile created with audacity and if I manually apply the noise reduction to the audio track the audio sounds nearly like in a studio created.
Now I want to run a app or script to:
apply the noise reduction with a given noise profile and write the new audio file as MP3 to disk
apply the new audio track to the given video (replace existing voice track with the new track)
save the new video as a new file to the disk
Anyone around who can help on this? I need to decide build or buy...
And I do not know if even tools exist to automate this steps...
My development requirements:
platform neutral language or platform, preferably java
of
if applications exists (e.g. under linux, so nearly platform neutral)
the app or packages with a brief description how to handle it (e.g. audacity and ffmpeg but I did not find something helpful to get started)
Requirements:
sox
ffmpeg
Create some longer sample recording where you don't speak at all but capture some common noises for you mic and surrounding.
Convert it to wav, name it noisesample.wav and save it to your video folder. Open command line, navigate to folder and execute:
sox noisesample.wav -n noiseprof noise_profile_file
Create folder mp3
mkdir mp3
Convert every video to mp3 for later processing
for f in *.mp4; do ffmpeg -i "$f" -c:a libmp3lame "mp3/${f%.mp4}.mp3"; done
Change directory to mp3 and apply sox noise reduction (like audacitys) to every mp3 file
cd mp3
for f in *.mp3; do sox "$f" "${f%.mp3}_new.mp3" noisered noise_profile_file 0.26
Change to parent directory again, create out directory and combine new mp3 files with mp4 files
cd ..
mkdir out
for f in *.mp4; do ffmpeg -i "$f" -i "mp3/${f%.mp4}_new.mp3" -map 0:v -map 1:a -c:v copy -shortest "out/${f%.mp4}.mp4"; done
This should be do the trick you asked for.
As long as your noise profile remain the same you can reuse it for all your videos.

Using IOSleep in socket filtering kernel extension

I'm developing a kernel extension which processes every socket is build on system and waits in user space to get confirmation from user to allow or deny that socket.
I'm using IOSleep to apply the wait i mentioned above but it gives this error when loading kernel extension.
"the following symbols are unresolved for this kext:
_IOSleep"
First of all , i want to know am i correct about using IOSleep to make waiting ?
If not , how should i apply desired waiting to cover time interval that i need to get user confirmation about allowing or rejecting a specific socket connection?
Thanks in advance for any useful response.
IOSleep is perfectly fine in a kernel extension. The error you see is because libraries are linked to kexts at load time, not compile time.
When you add functions to your code that require linking against new libraries, you must call kextlibs on the compiled binary in order to find out what you need to add to the plist file. This is explained in the Add Library Declarations section of the Generic Kernel Extension tutorial in the Mac Developer Library, but it's easy to forget to do this after the first time.
The basic steps are:
Build your kext
Run the command kextlibs -xml MyKext.kext in the Terminal
Replace the <key>OSBundleLibraries</key><dict>...</dict> part of your kext's Info.plist file with the printout from the above
Rebuild your kext
It should now link correctly when you load it with kextload.

LInephone source code not working with TCP for local SIP calls

I downloaded the source code of Linphone app from GitHub (https://github.com/onmyway133/linphone-iphone) and tried to run it on my iPhone. It is working fine with transport selected as UDP but when I select transport setting as TCP outgoing works fine but the app don't notify about any incoming call.
I also tried to track the network calls by installing Linphone for mac on my macbook but for TCP it not even start any session of network requests.
Any one faced such issue or is there any other way to achieve SIP calling in local network? Any help is welcome.
The source code at the URL mentioned in the question "https://github.com/onmyway133/linphone-iphone" is not latest one. I had to check out the latest version from git url mention at linphone.org and after trying it many times finally I got the complete code and also I had to do few changes to compile the latest source code successfully.
I faced this error while compiling the code on terminal:
Shell script 'Makefile' at path 'linphone-iphone/submodules/build-i386-apple-darwin/mssilk/sdk' was downloading corrupt SILK_SDK_SRC_v1.0.9.zip.
Fix: System terminal was downloading only 600Kbs of file size (i.e. corrupt zipped file) from the URL http://developer.skype.com/silk/SILK_SDK_SRC_v1.0.9.zip due to which next command was not able to unzip it and was displaying file missing error. I changed the default URL to 'http://bkvoice.googlecode.com/files/SILK_SDK_SRC_v1.0.9.zip' thus process was able to download the file that was actually 62.9MBs of size.
Hope it'll help someone.

programmatically mount a disk image(DMG) in mac os x

Q. How to mount an apple disk image programmatically ?
My approach is similar to use disk arbitration for mounting as shown here. I prefer not to use any command line tool.
The un-mount and eject works perfectly but the mount needs a BSD name(generally used for block file of disk). I've seen the source code for DiskArbitrator also, this tool uses hdiutil in background to create the block file for the DMG.
Is there any other method/framework to create the block file for my disk image so that i can use it to mount the DMG?
I've already seen this this