Converting continuous data to binary data.
A sub patch generates a sine wave.
The main patch converts the wave to a switch.
download
https://github.com/tkzic/max-projects
folder: data-stream-switch
patch: data-stream-switch.maxpat
Converting continuous data to binary data.
A sub patch generates a sine wave.
The main patch converts the wave to a switch.
https://github.com/tkzic/max-projects
folder: data-stream-switch
patch: data-stream-switch.maxpat
https://github.com/tkzic/max-projects
folder: sampler
patch: sampler-341a.maxpat
“Conversnitch is a small device that automatically tweets overheard conversations, bridging the gap between (presumed) private physical space and public space online.”
By Brian House and Kyle McDonald
Note: 6/2021 – This project has not been updated for 7 years, but surveillance is alive and well.
https://github.com/brianhouse/Conversnitch
(Uses Raspberry Pi)
Draw points in Max by sending latitude and longitude to a Web client via Osc and web sockets.
Uses Ruby, WebSockets, Chrome, Google Maps API, Osc, Max, Jquery, and Node.js… But the Max patch is actually quite simple.
Based on this geocoding tutorial: http://www.sitepoint.com/google-maps-api-jquery/
https://github.com/tkzic/internet-sensors
folder: google-maps
To run the project locally, you will either need to install node.js or have a local web server. The instructions assume that you have installed node, as well as the http package.
If you don’t want to bother with node, there is also an online version of the web client running at http://zerokidz.com/gmap/markers/markers.html
Running Ruby 2.0 as well as the following gems:
1. If you are using the online Web client, go to this URL in a Google Chrome browser: http://zerokidz.com/gmap/markers/markers.html then skip to step 4.
2. In a terminal window start the node webserver
node nodeserver
3. Launch a Google Chrome web browser and type in this URL
127.0.0.1:8081/markers.html
4. In another terminal window start the ruby server for Osc and websockets
ruby mapserver.rb
5. Now in the Web Client (Chrome) press the “OSC” button underneath the map – to open the web sockets connection with the ruby server.
6. Open the Max patch:
googlemaptest.maxpat
7. Now you should be able to click on the message boxes for Bethel and Rumford in the Max patch to add location markers to the map in the browser.
[degrader~] eliminates audio data by reducing sample rate and word size.
https://github.com/tkzic/max-projects
folder: downsampling
patch: nothingness.maxpat
Adaptation of Andy Farnell’s Pd granular timestretch patch
Adjustable chunk-size, pitch, and speed – as well as manual scrubbing.
The original Pd patch (timestretch.pd) is available here: http://aspress.co.uk/sd/index.php
https://github.com/tkzic/max-projects
folder: granular-timestretch
patches
An index pointer (file phasor) scans from the beginning to the end of the file. For example, at 44.1KHz, a 1 second file of audio would have 44,100 samples. Each sample is 022676 ms. Another phasor (grain phasor) scans small chunks (grains) of audio. If audio is playing back at the normal rate and pitch, this grain phasor runs at zero. the file phasor just moves sequentially from one grain to the next.
To stretch the time, the file phasor is slowed down, but the grain phasor speeds up, scanning grains of audio, that start at the current file phasor index. In this way, in listening to the file from beginning to end, you are actually listening to a series of overlapping grains.
As the chunk (grain) size increases the grain phasor frequency decreases.
To raise the pitch, the grain phasor frequency would be increased. To lower the pitch, the phasor frequency goes negative and increases in a negative direction to reduce pitch further.
As you can see, while running this patch, the chunk size, pitch, and speed are all related by a single equation.
phasor frequency = ((pitch / 120)**2 – speed) / chunksize
So the input values interact with each other.
In addition, the grain player uses a technique called PSOLA. Pitch synchronous overlap and add. There are actually two grain players playing simultaneously 180 degrees out of phase. Each is windowed using a positive cosine function. This helps to reduce clicks by crossfading from one grain to the next.
There is some comb-filtering and ringing present on the audio. There are various techniques to reduce this, including:
There is also an option to manually scrub the file. This way you can listen to the texture of grains of various sizes from various points in the file.
You can also set random automatic scrubbing to branch to various points in the file.
Stream realtime video from a web browser into Max or any program that uses Syphon.
CefWithSyphon (developed by Vibeke Bertelsen) launches a web browser and Syphon server. The Max patch operates a Syphon client that receives a video stream from the server and makes it available to Jitter objects.
https://github.com/tkzic/max-projects
folder: web-video-streaming
patch: jit.gl.syphonclient.maxhelp
Note: externals are included with max-projects but can also be downloaded here: http://syphon.v002.info
Download the CefWIthSyphon app from here: https://github.com/vibber/CefWithSyphon – A Mac OS binary is available and has been tested with Mac OS 10.9.2
Hack of classic “forbidden planet” example
https://github.com/tkzic/max-projects
folder: fft-convolution
patches:
Spectral filter
By Katja Vetter www.katjaas.nl
https://github.com/tkzic/max-projects
folder: fft-fllter
patches: