Tag: mashup

How to use IFTTT from Max

IFTTT Twitter triggers are back!

Update – 5/20/2014 –

IFTTT has restored Twitter triggers. By using a Max Twitter client: http://reactivemusic.net/?p=7013 you can now connect Max with IFTTT

original post follows

A possibility with curl

http://blog.tomdoggett.net/2013/05/ifttt-recipe-http-commands.html

A few notes…

It doesn’t appear that IFTTT has a public API.

One method would be to use intermediaries for example – sending email using php (see this post http://reactivemusic.net/?p=4840) Then IFTTT could pick up the trigger – for example, from gmail. Commands could be embedded in the subject or body of message.

Or you could simply use Twitter as the intermediary – using existing internet sensors methods: (see this post: http://reactivemusic.net/?p=5859)

Would this work in reverse?

Other methods:

temboo: The temboo API should be accessible via Max using a ruby server. Temboo has many common points of interaction with IFTTT

mashape: I think the same applies as with temboo.

Marcus Povey describes a workaround using web hooks: http://www.marcus-povey.co.uk/2012/11/07/using-webhooks-with-ifttt-com/

Another idea: http://forums.getpebble.com/discussion/5816/restful-api-iftt-integration-android

Or what about Zapier

Here’s an article about IFTTT Twitter triggers: http://iag.me/socialmedia/how-to-replace-ifttt-twitter-triggers/

 

The sound of a new machine

Using internet ping data to control a synthesizer in Max

This project uses ‘ping’ times to about 40 Google domains, like google.ca, google.de, etc., to control pitch and amplitude of a 20 voice droning synthesizer.

Imagine working in a Google control center. A soothing low pitched drone fills the room. Then Suddenly you hear an slowly rising pitch. You check the monitors – Google Paraguay is experiencing network failure. You light a cigarette and wait for things to calm down.

The server is a ruby script which handles the http: requests using the Mashape ping-uin API and sends messages to Max using OSC

The synth has a weird clustering drone like effect like some kind of alien life force.

The patch design is kind of embarrassing. Its obvious I forgot how to use [poly~]. Maybe by the time you read this, we’ll have addressed this.  Hey billions of patch cords look cool.

Here’s an example of the Mashape API in curl

curl --include --request GET 'https://igor-zachetly-ping-uin.p.mashape.com/pinguin.php?address=google.ca' \
  --header 'X-Mashape-Authorization: YOUR-MASHAPE-API-KEY'

Here’s a list of Google domains

http://en.wikipedia.org/wiki/List_of_Google_domains

download

https://github.com/tkzic/internet-sensors

folder: ping

files

main Max patch
  • sound-of-a-new-machine2.maxpat
abstractions and other files
  • google.txt (list of domains for [coll] object
ruby
  • domain-ping.rb

authorization

  • Register with mashape http://mashape.com to get an API-key for ping-uin
  • Then edit domain-ping.rb to enter your mashape API-key.

instructions

  • Open the Max patch: sound-of-a-new-machine2.maxpat
  • Turn on audio. Turn up the gain.
  • From a terminal window type the following command
# ./domain-ping.rb


  •  In the Max patch, click the toggle box to start polling. It may take a minute to hear any sounds, while the oscillators are loading. Increase polling speed to 400 or so if you can’t wait.
  • Another reason you might not hear anything interesting is if the clip threshold is too low. Watch the incoming ping times and set the clip threshold above the average level.
  • Adjust the pitch multiplier to your desired pitch range.
  • When you’ve had enough, type <ctrl-c> in the terminal window to stop the server.

note: Occasionally the server program will time-out when its launched. Try launching again, or edit it and increase the timeout value.

 

Mashape

An API factory.

https://www.mashape.com

Happened to look at mashape.com again today. Its grown considerably over the past year and now provides access to over 1300 API’s with open source client libraries and Oauth proxies.

Mashape is an API of API’s – a layer of abstraction that standardizes how you consume API’s.

Instructions for using the API: https://www.mashape.com/docs/consume/rest

Here’s an example of a typical API call which gets the weather in San Francisco. Note I have obscured the API-key.

curl -H "X-Mashape-Authorization: YOUR-MASHAPE-KEY" "https://george-vustrey-weather.p.mashape.com/api.php?_method=getForecasts&location=San%20Francisco"

Here’s the result:

[{"day_of_week":"Wed","high":"63","low":"47","condition":"Mostly Clear"},{"day_of_week":"Thu","high":"66","low":"50","condition":"Partly Cloudy"}]

[Note] examples in tkzic/mashape

The API description pages have curl examples.