Python3 tcp client for Max

Using OSC from [udpsend]

I needed a better way to send radio frequency data from Max to a rigcltd daemon (via tcp). This is the method of tuning SDR devices hosted by CubicSDR.

From the max8radio folder run:

py3rigctl2.py

The input is OSC frequency data, on port 8001, in the form: /F 7001000

(This would be for 7.001 MHz)

An OSC server in the python program listens for these messages and then reformats and sends them to a running rigctld daemon running in the background on port 4532

rigctld -m 1 4532 &

The frequency message going to rigctld would be in the format: F+ 7001000

 

Python3 tcp client and server

Substitute for command line netcat (nc)

Running nc from the Max [shell] object was not only slow, but also caused audio clicks in CubicSDR. So here’s a link to python code using sockets to build a tcp client and server.  from this link: https://stackoverflow.com/questions/34653875/python-how-to-send-data-over-tcp

import socket

host = socket.gethostname()
port = 12345                   # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
s.sendall(b'Hello, world')
data = s.recv(1024)
s.close()
print('Received', repr(data))

Python2 is not Python3

Less than subtle differences

The default python on Mac Catalina is 2.7.16.

But python 2 is officially deprecated. So to use a current version of python and pip in Mac OS you need to specify python3 and pip3.

Most of the python2 and python3 examples I found were not compatible. For example, the print command.

Video media converter ADVC-110

Bidirectional analog/digital conversion of composite, s-video, and firewire/ilink.

By Grass Valley

http://www.grassvalley.com/products/advc110

20091222_prodctShot_ADVC110.1920x1080.VidRes.png_305_0

Using this device on Mac OS X 10.9, analog video input shows up as a system device. It also works as a firewire video output device.

Input

 

Using Jitter you can get real time input from analog video devices like cameras and VCR’s. Here’s an example using jit.grab (Max help file) to get input from an analog camcorder.

Screen Shot 2015-04-22 at 8.48.35 PM

 

Output

Sending output via firewire to a TV using jit.qt.videoout (Jitter tutorial 22):

Screen Shot 2015-04-22 at 9.53.39 PM

This is what it looks like on a TV:

tv-out2

Raspberry Pi with Pd: audio test

notes

In an audio pass-through test using Pd, with a USB sound card (Griffin iMic), the maximum stereo sample rate before ‘breakup’ is 32000.In mono, it sounds “ok” at 44100. Latency seems low enough to use for music but I’m too sleepy to figure out the numbers.

I don’t know enough about Linux audio to say if the performance deficit is due to ALSA drivers, the sound card, background processes, pd, the CPU, or what?Anyway I ‘m guessing R-Pi will spawn interesting synths and lo-fi FX processors. They’re cheap enough you could use them in parallel.

Prediction: They’ll double the speed, and sell a million more by the end of the year. We’ll see a range of ‘Pi’ clones which run the same Linux distributions, but offer various speeds and IO options. It feels like the democratization of manufacturing has taken another huge leap.