transmittance #1.5 + mur.sat project @ ESC_Graz & Studio17_Ljubljana

Today we visited ESC gallery in Graz, where we started/participated in a workshop connected to the project Mur.sat.

Basicaly mur.sat is about launching a nano-satellite in a low earth orbit. The satellite stays there for about 3-6 weeks after which it enters atmosphere and burns. In the meantime it transmits various data depending on design.

The launch date is planned (at the moment) in march 2012. While the satelite will be in orbit ESC will organize a local ‘space center’.

At the moment there are different efforts for satellite listening and predicting. The fact is, there are numerous satellites in earth orbit. Some of them (or most of them) actually transmit open data (like weather satellites).

For our Transmittance #1.5 project phase we will use software for predicting movements and positions of satellites. ‘Predict‘ uses data (TLE / two line elements) updates (what is really in the sky, where and when) published by NORAD. This data is published in real-time through UNIX sockets. There’s a simple perl script written at ESC by Norbert Math that listens to this information and broadcasts it to the local net using OSC (open sound control). This can be picked up by any OSC-aware software – like Pure Data for example.

What we are planning to do is to use the satellite prediction data for sound/video textures. We plan to use recordings (as we don’t have the antenna and no time to develop strategies to use antenna in a performance) of satellite transmittions in our audio/video patches. We would also like to use Sense/Stage sensor-system (probably acceleration, touch/pressure and light sensors) for some control during the performance, which we will stream from our studio in Ljubljana. The basis of research is also the concept of  ‘atmospheres’ – long durational scenes, where performer’s body accumulatively interacts with a generative a/v system.

#!/usr/bin/perl -w
#
# osc.pl: fetch data of a satellite from predict
# and send them over osc
#
#
# TODO use telnet
use IO::Socket;
use strict;
$| =1;

use Net::OpenSoundControl::Client;

# TODO finde richtiges subnetz
my $client = IO::Socket::INET->new(
        PeerAddr => inet_ntoa(INADDR_BROADCAST),
        PeerPort => 7777,
        Broadcast => 1,
        Proto => 'udp') or die('could not connect.');

# socket to predict
# you must start predict -s first!
# default settings: localhost ,port 1210 UDP

my $sock = new IO::Socket::INET(
        PeerAddr => 'localhost',
        PeerPort => 1210,
        Proto => 'udp', Timeout => 1) or die('could not connect.');
# parameters returned from GET_SAT
my @dn = qw(name long lat az el next foot slantrange alt velo nr vis phase ecl squint);

# satelites we want to query about
my @satellites= qw(LUSAT ITAMSAT OSCAR-27 OSCAR-50 CUTE-1 PCSAT HAMSAT NOAA-14 NOAA-15 NOAA-17 HUBBLE ISS);

my $qry = 'GET_SAT ';

# main loop
while() {

        foreach (@satellites) {

                my $mysat = $_;
                my $myq = $qry.$mysat;

                        for (my $n =0; $n<15; $n++) {
                                print $sock $myq;
                                my $d = <$sock>;
                                chomp $d;
                        #       print " $dn[$n]: $d";
                        #       print "\n";
                                if ($n != 11 && $n !=0 ) {
                                        my @d=['/sat/'.$mysat.'/'.$dn[$n],'f', $d];
                                       $client-> send(Net::OpenSoundControl::encode(@d));
                                }
                        }
                # cool down, wait for 0.1 sec
                select (undef, undef, undef, 0.1);
        }
}

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>