Jump to content

Help with Processing Live Weather Data in Opusmodus

Recommended Posts



I am working on a sound installation for two voices (using Soniccouture's Geosonics VST plugin and a vibraphone VST plugin running through a computer). The source of the data is taken live from the internet and is actually API weather data from a city in South Korea. The piece will play for 2 hours every night between early December and early March. 


The trouble I am having is how to transform the different fragments of weather data into data I could use within Opusmodus. Here's the type of data that I get according to each parameter (the options are either floating points, integers, or T/F). All of this is on my computer as OSC signals.


1. wind direction: floating points, between 0 and 360.0

2. wind speed: floating points

3. sky code (i.e., clear, cloudy, rain, snow): integers

4. precipitation type: integers (codes for each type of precipitation) 

5. temperature (celcius): floating points

6. temperature minimum: floating points

7. temperature maximum: floating points

8. humidity: floating points (representing percentage, example 31.1% = 31.1)

9. pressure: float points (time of writing this, pressure of the place I was looking at was 1008.9 while here in Seoul, the pressure is 922.8)

10. lightning: True or False option



My questions are: 

- How can I receive OSC signals within Opusmodus? Is there a function that allows me to do this?

- I've never used the Live Coding function in Opusmodus although I've got a basic knowledge of live coding within other environments such as SuperCollider, Sonic Pi, and Max/MSP. I would like to have the data control the live coding functions modulate the music as it plays live. 


I would really, really appreciate any advice I may get on this. I don't mean to have the community here 'do everything' for me, but I'd appreciate any direction I may get in successfully accomplishing this project.  


Thanks very much and sorry for any trouble,


Share this post

Link to post
Share on other sites

Dear Hasan,

I could send you few examples on how to use the OSC library and how to send the signal to the OSC devices (Reaktor, etc...). 

In order to help I would need to know which of the data will be a length, pitch, etc... and that data will be for OSC controllers.

In Opusmodus any data can be courted to any of the 4 parameters or to OSC values (floating points).

You most have some idea how you would like to use the data in Opusmodus, please explain a bit more the structure.


Share this post

Link to post
Share on other sites

Dear Janusz,


How about using the following four parameters:


Length (according to range): wind direction (degrees): floating points, between 0 and 360.0

Dynamics: wind speed (m/s): floating points

Pitch: temperature (celcius): floating points

Chance of randomly modulating length (according to range of Humidity): Humidity (percentage): floating points


Do you think this can be done? I've attached a screenshot of what I'm currently working with to receive weather API data.



Screen Shot 2017-10-28 at 2.16.16 PM copy.png

Share this post

Link to post
Share on other sites

Are you collecting the data each day?

Could you send me the data for each of the 4 parameters.


For example the function VECTOR-TO-LENGTH could generate the lengths:

(setf l-data '(87.10115 149.16446 261.51358 97.36691 349.27936 279.12173 133.68344 313.95352
               324.80905 50.51986 137.61513 277.79932 142.74834 194.98927 224.3649 188.95398
               114.017494 214.18486 340.42432 175.74698 350.46225 184.5418 153.89604 325.713))
(setf l-scale-data (append '(0.0) l-data '(360.0)))
(setf length (butlast (rest (vector-to-length '1/16 1 16 l-scale-data))))
=> (5/16 7/16 3/4 5/16 1 13/16 7/16 7/8 15/16 3/16 7/16 13/16
    7/16 9/16 5/8 9/16 3/8 5/8 15/16 1/2 9/16 7/16 15/16)



Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now