RTTY at 300+ bps in Max

notes

After a few vexing timing issues I have been able to send and decode RTTY (technically AFSK audio frequency shift keying ) in Max at 300 baud. Click hear to listen to an example of a 13 word message at 300 bps (300 baud)

The js object adds significant delays (on the order of a few milliseconds) – so I replaced the encoder with a coll and that cleaned up the timing problems when encoding. This patch demonstrates the issue:

Also… You can use threshold~ instead of snapshot~to feed binary pulse amplitude detection logic into edge~ – but you need to run the signal through average~ to prevent the amplitude from repeatedly dropping to zero at the signal frequency. Like this:

Is it better than snapshot~? it seems to be, but who knows – at these speeds it would probably be better to write the whole thing in gen~

There are a few other things – like using counter~ instead of phasor~ to drive the decoder clock. This allows you to restart the clock, when the onset of the start bit is detected – and you can add a variable amount of delay to find optimal point in the signal vector to read the pulse. At 300 bps, at 96k SR, each pulse is 320 samples (3.1 milliseconds) –

I’ll write more on this later –

The Katja Vetter article on Beat-Slicing was helpful – along with several Max tutorials on Audio control rates, and envelope followers.

Local Patches are in;

tkzic/ max teaching examples/

  • rtty-send10.maxpat
  • rtty-recv9a.maxpat

 

Leap Motion example using Cinder and c++ audio

This is a prototype from October – just getting around to posting it.

The hand position (x,y,z) is sensed by LeapMotion to control parameters of an FM synth with feedback delay written in Cinder audio (c++). The graphics were adapted from a Cinder LeapMotion demo.

Local source is in: cinder/cinder_dev/blocks/Cinder-LeapSdk/samples/LeapApp/xcode/LeapAppTZ2.xcodeproj

Uses cinder Leap demo code combined with simple audio synthesis using callbacks in c++

 

 

Applying PID control to Media coverage of politics

(photo from wikidpedia.com)

This idea came from a student, Bernardo Limon Villarreal, who suggested recording the sounds of people on the stock market trading floor – categorizing the sounds by how they match simultaneously occuring market trends , ie., optimistic, pessimistic, up, down, neutral, panic, etc.,

A speaker system feed some of these sounds back to the trading floor in an attempt to psychologically influence traders’ behavior.

Later on I started thinking about the idea of “horse race” stories in media coverage of politics. There is a theory (conspiracy) that its in the best interest of corporate media for political races to be close. So, for example, if Republicans are leading, then the “media” will air stories which favor Democrats in an effort to sway public opinion against Republicans. A continuous feedback mechanism which tries to maintain a ‘close race’.

This idea is similar to how a phase locked loop or PID controller maintains a constant temperature given varying environmental factors. It would be interesting to build a media “machine” which uses the results of opinion polls as the sensor input and always targets a 50/50 result by producing stories which with positive or negative bias, as needed.

In some ways this represents a fundamental principle of advertising.