GMU:Tutorials/Networking/Controlling PureData with IanniX: Difference between revisions
(17 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== INTRODUCTION == | =='''INTRODUCTION'''== | ||
In this tutorial we look at how to synchronise Iannix with PureData via Open Sound Control (OSC). | In this tutorial we look at how to synchronise Iannix with PureData via Open Sound Control (OSC). | ||
Line 12: | Line 12: | ||
Pure Data is an open source visual programming language that enables you to construct complex interactive systems for music and multimedia environments. It is particularly useful for the performance platform in order to design custom responsive audio environments from incoming visual data. | Pure Data is an open source visual programming language that enables you to construct complex interactive systems for music and multimedia environments. It is particularly useful for the performance platform in order to design custom responsive audio environments from incoming visual data. | ||
== PREPARATION == | == '''PREPARATION''' == | ||
Line 18: | Line 18: | ||
Ensure PureData is installed. https://puredata.info/downloads | Ensure PureData is installed. https://puredata.info/downloads | ||
== Configure Iannix to send data via OSC == | ==''' Configure Iannix to send data via OSC''' == | ||
Line 37: | Line 37: | ||
<videoflash type="vimeo">180056110|400|300|</videoflash> | <videoflash type="vimeo">180056110|400|300|</videoflash> | ||
If flash isn't working on your browser go here: https://vimeo.com/180056110 | <br/> If flash isn't working on your browser go here: https://vimeo.com/180056110 <br/> | ||
== Enable PureData to receive incoming OSC data from Iannix == | |||
<br/> Now we are ready to start sending values to PureData!!!! <br/> | |||
== '''Enable PureData to receive incoming OSC data from Iannix''' == | |||
1. Create a new patcher window. <br/> | 1. Create a new patcher window. <br/> | ||
Line 48: | Line 50: | ||
4. In the '''udpreceive''' object we define the port number declared in Iannix i.e. '''udpreceive 57120'''<br/> | 4. In the '''udpreceive''' object we define the port number declared in Iannix i.e. '''udpreceive 57120'''<br/> | ||
5. The OSC message has to be unpacked using the '''unpackOSC''' object which is an object box connected to the left outlet of the '''udpreceive''' object. <br/> | 5. The OSC message has to be unpacked using the '''unpackOSC''' object which is an object box connected to the left outlet of the '''udpreceive''' object. <br/> | ||
6. In order for us to separate and route the array of messages we receive from Iannix we can create another object ''' | 6. In order for us to separate and route the array of messages we receive from Iannix we can create another object '''routeOSC'''. i.e. '''routeOSC /trigger /cursor''' and patch this to the outlet of the '''unpackOSC''' object. We use the arguments '''/trigger''' and '''/cursor''' because these are the identifiers named in Iannix for bundling the values sent as demonstrated in the picture below. <br/> | ||
[[File:values.png|400px]] | [[File:values.png|400px]] | ||
7. It is then good practice to use the '''print''' object in PureData to get an idea of the values being received. In order to do this you should patch the '''print''' object to the ''' | 7. It is then good practice to use the '''print''' object in PureData to get an idea of the values being received. In order to do this you should patch the '''print''' object to the '''unpackOSC''' object outlet. This allows us to see how we will manage the incoming data.<br/> | ||
8. Your patch should look something like the one below. | 8. Your patch should look something like the one below. | ||
[[File:Udpreceive.png| | [[File:Udpreceive.png|600px]] | ||
9. Press play in our Iannix example and see what values are coming into PureData. <br/> | 9. Press play in our Iannix example and see what values are coming into PureData. <br/> | ||
10. The above diagram demonstrates one way in which to handle the incoming values. The '''/trigger''' outlet outputs triggers in the form of integers. The '''/cursor''' outlet outputs a list of floats. You can use the '''unpack''' object to manage the list as shown above. | 10. The above diagram demonstrates one way in which to handle the incoming values. The '''/trigger''' outlet outputs triggers in the form of integers. The '''/cursor''' outlet outputs a list of floats. You can use the '''unpack''' object to manage the list of floats as shown above. | ||
== START PATCHING!!!== | =='''START PATCHING!!!'''== | ||
Now you are ready to start patching and designing awesome responsive sounds!!! | Now you are ready to start patching and designing awesome responsive sounds!!! | ||
Line 69: | Line 71: | ||
<videoflash type="vimeo">180050728|400|300|</videoflash> | <videoflash type="vimeo">180050728|400|300|</videoflash> | ||
If flash isn't working on your browser go here: https://vimeo.com/180050728 | <br/> If flash isn't working on your browser go here: https://vimeo.com/180050728 <br/> | ||
<br/> The fun doesn’t stop there. You can map values to whatever you like. Triggers are good for triggering notes or sound events and cursors are good for handling continuous data such as gain control or filters. <br/> | |||
== LINKS & REFERENCES == | =='''LINKS & REFERENCES'''== | ||
PureData online manual http://en.flossmanuals.net/pure-data/ | PureData online manual http://en.flossmanuals.net/pure-data/ | ||
Line 81: | Line 82: | ||
Digi arts students check out Kadenze’s other free courses! https://www.kadenze.com/ | Digi arts students check out Kadenze’s other free courses! https://www.kadenze.com/ | ||
Iannix http://www.iannix.org/en/ | Iannix http://www.iannix.org/en/ |
Latest revision as of 08:01, 1 September 2016
INTRODUCTION
In this tutorial we look at how to synchronise Iannix with PureData via Open Sound Control (OSC).
What is Iannix? Iannix is a graphical open source sequencer that has the ability to sync with a variety of real time software environments such as Max MSP, Pure Data, Super Collider etc. via Open Sound Control (OSC). Iannix is useful as it has a variety of input/output capabilities however for the purpose of this tutorial we focus on how to send values generated in Iannix to Max MSP in order to familiarise ourselves with the Open Sound Control protocol.
What is Open Sound Control? Open sound control is a protocol for communication among computers and multimedia devices. It can be utilised to communicate data between different software platforms locally and remotely.
What is PureData? Pure Data is an open source visual programming language that enables you to construct complex interactive systems for music and multimedia environments. It is particularly useful for the performance platform in order to design custom responsive audio environments from incoming visual data.
PREPARATION
Ensure Iannix is installed. http://www.iannix.org/en/download-iannix/
Ensure PureData is installed. https://puredata.info/downloads
Configure Iannix to send data via OSC
1. Open Iannix.
2. In the inspector go to the configuration tab and select network as pictured below.
3. Make sure Enable OSC is on.
4. In the Default IP tab enter the IP address of the receiver. Use the default IP 127.0.0.1 if you are running both programs on the same computer.
5. The default port for sending data out of Iannix is 57120 as pictured.
Now you are set up and ready to send data to PureData. In order to generate some values to be sent to PureData we need to create a new score in Iannix. You can either select one of the examples in the files menu found in the inspector or you can create a new score from scratch.
For example:
<videoflash type="vimeo">180056110|400|300|</videoflash>
If flash isn't working on your browser go here: https://vimeo.com/180056110
Now we are ready to start sending values to PureData!!!!
Enable PureData to receive incoming OSC data from Iannix
1. Create a new patcher window.
2. Create a new object in the patcher window by using the shortcut ⌘1. Type import mrpeach into the object box. **mrpeach is a built in PureData library that handles the OSC protocol.
3. Create another new object in the patcher window and type into the object box udpreceive. **udpreceive is a built in PureData object that receives OSC messages transmitted over a network.
4. In the udpreceive object we define the port number declared in Iannix i.e. udpreceive 57120
5. The OSC message has to be unpacked using the unpackOSC object which is an object box connected to the left outlet of the udpreceive object.
6. In order for us to separate and route the array of messages we receive from Iannix we can create another object routeOSC. i.e. routeOSC /trigger /cursor and patch this to the outlet of the unpackOSC object. We use the arguments /trigger and /cursor because these are the identifiers named in Iannix for bundling the values sent as demonstrated in the picture below.
7. It is then good practice to use the print object in PureData to get an idea of the values being received. In order to do this you should patch the print object to the unpackOSC object outlet. This allows us to see how we will manage the incoming data.
8. Your patch should look something like the one below.
9. Press play in our Iannix example and see what values are coming into PureData.
10. The above diagram demonstrates one way in which to handle the incoming values. The /trigger outlet outputs triggers in the form of integers. The /cursor outlet outputs a list of floats. You can use the unpack object to manage the list of floats as shown above.
START PATCHING!!!
Now you are ready to start patching and designing awesome responsive sounds!!!
Below is an example of a basic patch mapping incoming trigger values to a sinusoidal oscillator.
<videoflash type="vimeo">180050728|400|300|</videoflash>
If flash isn't working on your browser go here: https://vimeo.com/180050728
The fun doesn’t stop there. You can map values to whatever you like. Triggers are good for triggering notes or sound events and cursors are good for handling continuous data such as gain control or filters.
LINKS & REFERENCES
PureData online manual http://en.flossmanuals.net/pure-data/
Early 2017 sees an online Pure Data course being launched through the creative education platform Kadenze. Access to the course content and material is free with standard membership to the site. https://www.kadenze.com/courses/creating-interactive-audio-applications-using-pure-data-i/info
Digi arts students check out Kadenze’s other free courses! https://www.kadenze.com/
Iannix http://www.iannix.org/en/