http://dm5ms.blogspot.com/2012/06/connecting-baudline-to-rtl-sdr.html
Check out this article, by searching for the word interleaved – for help working with unsigned int samples
http://superkuh.com/rtlsdr.html
Google search: rtlsdr interleaved
http://dm5ms.blogspot.com/2012/06/connecting-baudline-to-rtl-sdr.html
Check out this article, by searching for the word interleaved – for help working with unsigned int samples
http://superkuh.com/rtlsdr.html
Google search: rtlsdr interleaved
Useful for building projects in 32, 64, or universal architecture
http://stackoverflow.com/questions/5334095/cmake-multiarchitecture-compilation
This post is also helpful: http://www.transmission1.co.uk/viewtopic.php?f=3&t=29883
Notes on compiling rtl_sdr in Mac OS – writing Max and Pd Externals.
update 3/31/2014
Today I got the Pd external running – using essentially same source code as Max. There is occasional weirdness going on with audio clicks when starting/stopping the radio, but other than that it seems fine and it runs. wooHOO. More to follow…
update 3/28/2014
Now have set up a skeleton for Pd, called rtlfmz~ (inside the Pd application bundle) which does absolutely nothing but compiles all of the project files and calls a function in rtl_fm. Next step will be to port the actual Max external code and do the conversion.
updates 3/38/2014 before working on Pd version
There is now a fairly solid max external (rtlfmz~) using a recent version for rtl_fm. Also there is a simple Makefile that compiles local version of rtl_fm3.c in:
tkzic/rtl-sdr-new/rtl-sdr/rtl-fm3
There are very minor changes to rtl_fm.c (for includes) and also a local version of librtlsdr.a (librtlsdr32.a) that is 32 bit.
The current state of the Max external does both pre-demodulated and raw IQ output, but you can only run one copy of the object due to excess use of global variables and my uncertainty over how to run multiple devices, threading, etc., – but we’ll go with it an try porting to Pd now.
update 2/27 – converted to using new version of rtl_fm
I had been using an older version of rtl_fm –
renamed external to rtlfmz~ and now using new version as (rtl_fm3.c) in the project
In addition to recopying the librtlsdr.a – I also recopied all of the include files and added two new files
convenience.c convenience.h
There is a different method of threading and reading which I haven’t looked at yet, but it is now doing what it did before inside Max, which is read FM for a few seconds and write audio data to a file
plan: Set up a circular buffer accessible to the output thread and to the max perform function. – then see if we can get it to run for a few seconds.
The main thing to think about is how to let the processing happen in another thread while returning control to max. Then there really should be a way to interrupt processing from max.
There needs to be a max instance variable that tells whether the radio is running or not. Then, when its time to stop – you just do all the cleanup stuff that is at the end of the rtl_fm main() function.
update 2/18/2014 – Max external
Now have rtl_fm function within the plussztz~ external
It detects, opens device, demodulates about 30 seconds of FM, and writes audio at 44.1kHz. to a file /tmp/radio.bin – which can be played by the play command
Changes to code included:
update 2/15/2014 – Max external
Have now successfully compiled a test external in Max 6.1.4 – name is plussztz~ and it includes the rtl_fm code. Made 2 changes so far:
original post
Today I was able to write a simple makefile to compile the rtl_fm app using the libusb and librtlsdr dynamic libraries.
Pd requires i386 architecture for externals (i386) so I then compiled the app using static libraries and the i386 architecture.
libusb-1.0 already had a 32 bit version in /usr/local/lib/libusb32-1.0.a (note that this version also requires compiling these frameworks:
-framework foundation -framework iokit
For librtlsdr, I rebuilt, using cmake with the following flags:
cmake ../ -DCMAKE_OSX_ARCHITECTURES=i386 -DINSTALL_UDEV_RULES=ON
But did not install the result. See this link for details on building with cmake: http://sdr.osmocom.org/trac/wiki/rtl-sdr
This produced a 32 bit static version of librtlsdr.a that could be used for building the app.
See this Stack Overflow post for more on cmake and architectures: http://stackoverflow.com/questions/5334095/cmake-multiarchitecture-compilation
local files:
currently local version of this test is in: tkzic/rtl-sdr-tz/rtl_fm2/
The default makefile builds the 32 bit architecture.
Next:
Deploying apps that use dylibs on Mac OS using bash script in Xcode.
By ynniv from “A life of coding” blog
http://ynniv.com/blog/2006/02/deploying-app-that-use-dylibs-on-mac.html
Another one from Jay Furstenberg
Ubuntu server guest, on Mac OS host.
http://www.lecloud.net/post/52224625343/the-ultimate-setup-guide-ubuntu-13-04-in-virtualbox
Skipped the SSH for now, also the shared folders are in /media/sf[folder-name] on the guest – will be trying again shortly.
In the meantime I installed a desktop version of Linux and the install was much easier – copy and paste works fine – and we were able to get sounds. now installing pd.
linux instructions for Pd: http://puredata.info/docs/faq/debian
After running into huge problems with copy/paste – and no audio, I was able to install 32 bit version of Ubuntu Studio. Audio works fine, but Jack doesn’t run – after a few hours, I’m abandoning this approach and will probably try running linux natively on something.
from: http://www.reddit.com/r/linux/comments/dtect/
perl -e ‘for($i=0;;$i++){
print pack(“n”, ((($i*($i>>8|$i>>9)&46&$i>>8))^($i&$i>>13|$i>>6)));
}’ | play -c 2 -b 8 -e unsigned -t raw -r 48k –
(requires aplay or /dev/dsp – will not run on Mac)
Using Google speech API and Pandorabots API
(updated 1/21/2024)
all of these changes are local – for now.
replace path to sox with /opt/homebrew/bin/sox in [p call-google-speech]
Also had to write a new python script to convert xml to json. Its in the subfolder /xml2json/xml4json.py
The program came from this link: https://www.geeksforgeeks.org/python-xml-to-json/
Also inside [p call-pandorabots] the path for this python program had to be explicit to the full path on the computer. this will vary depending on your python installation.
Also, note that you must install a dependency with pip:
pip install xmltodict
After all that I was actually able to have a conversation. These bots seem primitive, but loveable, now compared to chatGPT. Guess its time for a new project.
Also the voice selection for speech synth is still not connected
(updated 1/21/2021)
This project is an extension to the speech-to-text project: https://reactivemusic.net/?p=4690 You might want to try running that project first to get the Google speech API running.
sox: sox audio conversion program must be in the computer’s executable file path, ie., /usr/bin – or you can rewrite the [sprintf] input to [aka.shell] with the actual path. In our case we installed sox using Macports. The executable path is /opt/local/bin/sox – which is built into a message object in the subpatcher [call-google-speech]
get sox from: http://sox.sourceforge.net
Need to fix the selection of voices.
Also please see these notes about how to modify the patch with your key – until this gets resolved: https://reactivemusic.net/?p=11035
Echonest analysis data for any Soundcloud track.
By Paul Lamere at musicmachinery.com
Note: 6/2021 – Since the API has moved to Spotify, analysis is only allowed on Spotify tracks.
http://musicmachinery.com/2013/11/15/soundcloud-echo-nest-bridge-service/
Demo: http://labs.echonest.com/SCAnalyzer/sample.html
Extreme sound stretching of Skrillex using an algorithm by Paul Nasca
By Paul Lamere from musicmachinery.com
http://musicmachinery.com/2013/11/26/scary-and-stretched/
Note: I have installed paulstimestrech.exe in an instance of WinXP on VirtualBox