Jump to content

Help with Processing Live Weather Data in Opusmodus


Recommended Posts

Hello,

 

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,

Hasan

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.

 

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.

 

Thanks.

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

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)

 

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Topics

    • By opmo
      2.1.25893
       
      – Addition:
      COUNTERPOINT - methods on bars and events.
    • By opmo
      2.1.25892
       
      – Fixed:
      Stop playback with <Cmd>-<Escape>, will no longer append MIDI entry input as if you were in a chord or the sustain pedal was down.
       
      – Changes:
      Revised attributes list entry.
      Pitch-Bend Down-Half is now assign to attributes.
      Pitch-Bend Up-Half is now assign to velocities.
       
      – Documentation
      Revised MIDI Entry document.
       

       
      Best wishes,
      Janusz
    • By opmo
      MIDI ENTRY
       
      To start the MIDI input into your score file, select the command MIDI Entry from the Tools menu. When MIDI Entry is ON, the Listener echo bar will change to orange:
       

       
      Now you know the MIDI Entry is ON. Depending on the position of the pitch-bend wheel and the modulation wheel as well as the position of the sustain pedal the colour of the Listener echo bar will change.
       
      To make the MIDI Entry as functional as possible there are a number of commands that will increase the speed of your work without the need to move away form your MIDI keyboard.
       
      Every entry is octave independent, except the pitch entry.
       
      MIDI Entry Tables
       Pitch                                  
      Enter pitch symbols and chords into your score.
       
       Length and Tuplet                      
      Pitch-Bend: Full Up
      C 1 D 1/2 E 1/4 F 1/8 G 1/16 A 1/32 B 1/64 Cs 3 Ds 5 Fs 6 Gs 7 Bb 9  
       Length-rest and Tuplet                 
      Pitch-Bend: Full Down
      C -1 D -1/2 E -1/4 F -1/8 G -1/16 A -1/32 B -1/64 Cs -3 Ds -5 Fs -6 Gs -7 Bb -9  
       Velocity                               
      Pitch-Bend: Half Down
      C   pppp Cs  ppp D   pp Eb  p E   mp F   mf Fs  f G   ff Gs fff A   ffff Bb < B   >  
       Attribute                              
      Pitch-Bend: Half Up
      C   stacc Cs ten D   stacs Eb marc E   mart F   fermata Fs fermata-s G   fermata-l Gs trem A   ped Bb ped1 B   tie  
       Microtonality and Commands             
      Modulation Wheel: Up
      Add a microtonal symbol next to the pitch symbol.
       
      F   + G   - A   . B   .. C   parenthesis pair D   open parenthesis E   close parenthesis Cs move forward char Eb move backward char Fs delete backward char Gs undo Bb new line and indent Note: If you enable MIDI input with the modulation wheel up, you need to move it down and up again in order for it to be considered up.
       
      Entries with Sustain Pedal Down
       
       Pitch                                  
      Add a pitch symbol next to the previous pitch (chord).
       
       Length and Tuplet                      
      Pitch-Bend: Full Up
      Add a length entry to the previous length value (combine length).
       
       Length-rest and Tuplet                 
      Pitch-Bend: Full Down
      Add a length-rest entry to the previous rest value (combine length).
       
       Velocity                               
      Pitch-Bend: Half Down
      Add < or > dynamic symbol to the previous velocity value.
       
       Attribute                              
      Pitch-Bend: Half Up
      Add (+) attribute to the previous attribute value (combine attributes).
       
      Examples:
      c4e4g4 Enter a chord c4e4g4 or Enter c4 then e4 then g4 with sustain pedal down  
      (q c4 mp e4 g4) Modulation wheel up then C => () Pitch-bend full up then E => (q) Enter c4 => (q c4) Pitch-bend half down then E => (q c4 mp) Enter e4 then g4 => (q c4 mp e4 g4)  
      (q c4 mp e4 stacc g4 p fermata+trem) Modulation wheel up then C => () Pitch-bend full up then E => (q) Enter c4 => (q c4) Pitch-bend half down then E => (q c4 mp) Enter e4 => (q c4 mp e4) Pitch-bend half up then C => (q c4 mp e4 stacc) Enter g4 => (q c4 mp e4 stacc g4) Pitch-bend half down then Eb => (q c4 mp e4 stacc g4 p) Pitch-bend half up then Eb => (q c4 mp e4 stacc g4 p fermata) Pitch-bend half up then Gs + sustain => (q c4 mp e4 stacc g4 p fermata+trem)  
      (q c4 mp e4 stacc g4 p fermata+trem 3q c4 eb4 fs4) Modulation wheel up then C => () Pitch-bend full up then E => (q) Enter c4 => (q c4) Pitch-bend half down then E => (q c4 mp) Enter e4 => (q c4 mp e4) Pitch-bend half up then C => (q c4 mp e4 stacc) Enter g4 => (q c4 mp e4 stacc g4) Pitch-bend half down then Eb => (q c4 mp e4 stacc g4 p) Pitch-bend half up then Eb => (q c4 mp e4 stacc g4 p fermata) Pitch-bend half up then Gs + sustain => (q c4 mp e4 stacc g4 p fermata+trem) Pitch-bend full up Cs/E (chord) => (q c4 mp e4 stacc g4 p fermata+trem 3q) Enter c4 then eb4 then fs4 => (q c4 mp e4 stacc g4 p fermata+trem 3q c4 eb4 fs4) Best wishes,
      Janusz
×
×
  • Create New...