Ir al contenido principal

Archivos: Recursos

Recursos audiovisuals de software o hardware creats per la comunitAV.

stream firewire

Codi Stream x Firewire

Codi per emetre per internet un flux directe audiovisual, en aquest cas, des d’una connexió Firewire a l’ordinador, ja sigui directament des d’una càmera de vídeo amb Firewire o una capturadora de vídeo Firewire.

Codi fet en fet en bash, per Linux-Ubuntu, basat en dvgrab i ffmpeg2theora (http://es.wikipedia.org/wiki/FFmpeg), utilitzat sovint per streams de directe.

Podeu obrir el vostre propi canal per a usos socials, ho podeu fer a http://giss.tv

Podeu posar aquest codi en un arxiu en blanc, l’anomeneu «theora_dv2stream.sh», li doneu permisos d’execució, i un cop configurat el «CONFIG», ja podreu emetre la vostra càmera o capturadora Firewire per internet.


#!/bin/bash
#theora_dv2stream.sh
#
# CONFIG
#
HOST=giss.tv
PORT=8000
MOUNT=el_teu_mountpoint.ogg
PASSWD=el_teu_password
NOM_STREAM=emissio_teva
DESCRIPCIO=emissio_descripcio_teva
TIPUS=comunitat_audiovisual
WEB=https://telenoika.net
DATA=23/23/2013
NOM_VIDEO=test_comunitAV
#
# FI CONFIG
#
theora_dv2stream(){
dvgrab –format raw -| ffmpeg2theora -f dv -x 320 -y 240 -a 3 -v 6 -c 1 -H 22050 –inputfps 12.5 -o /dev/stdout -| oggfwd -p -d «$DESCRIPCIO» -g «$TIPUS» -n «$NOM_VIDEO» -u «$WEB» $HOST $PORT $PASSWD $MOUNT
}
while true
do
# echo «Verifiquem mount_point»
curl -s http://$HOST:$PORT/|grep -q «Mount Point /$MOUNT»
if [ $? != 0 ]; then
# echo «Verifiquem gst-launch-0.10»
PID=$(pidof dvgrab)
if [ «x$PID» != «x» ]; then
# echo «matant dvgrab»
kill -9 $PID;
fi
theora_dv2stream &
# echo «rearrancant»
sleep 5
fi
sleep 1
done
#
# INSTAL·LACIO de REQUERIMENTS
# $ sudo apt-get install dvgrab ffmpeg2theora oggfwd curl
# FI INSTAL·LACIO REQUERIMENTS
#
# ffmpeg2theora code by riereta.net
# continuity code by acs.li
# suport_maintaiment by kinoraw.net
# experimental icecast servers: giss.tv – experimental.tv – gint.tv – hangar.org
# latele.cat/latele-en-directe project hosted by Telenoika.net
# theora_dv2stream project by edrok Telenoika.net
#
# GPL web@telenoika.net
#
# v tka-0.1 2013/01/16 18:00:00 Telenoika
# v tka-0.2 2013/01/19 12:00:00 Telenoika

stream tdt

Codi Stream x TDT

Codi per emetre per internet un flux directe audiovisual, en aquest cas, una tarjeta USB que captura la TDT per senyal d’antena.

Codi fet en fet en bash, per Linux-Ubuntu, basat en gstreamer (http://en.wikipedia.org/wiki/GStreamer), utilitzat per enviar la senyal de LaTele, canal 37 (a 602000Mz) per internet, a través de:
http://experimentaltv.org:8000/latele
o a http://latele.cat/latele-en-directe

Podeu obrir el vostre propi canal per a usos socials, ho podeu fer a http://giss.tv

Podeu posar aquest codi en un arxiu en blanc, l’anomeneu «gst_tdt2stream.sh», li doneu permisos d’execució, i un cop configurat el «CONFIG», ja podreu re-emetre per streaming el canal de la TDT que desitjeu.


#!/bin/bash
#gst_tdt2stream.sh
#
# CONFIG
#
HOST=giss.tv
PORT=8000
MOUNT=el_teu_mointpoint.ogg
PASSWD=el_teu_password
FREQ_TDT=602000 #(Aquesta és la frequència de LaTele.cat)
BANDA_TDT=8
NOM_STREAM=testing
DESCRIPCIO=emissio_en_proves
TIPUS=comunitat_audiovisual
WEB=https://telenoika.net
BACKUP_FILE=stream_backup_$MOUNT
#
# FI CONFIG
#
gst_tdt2stream(){
gst-launch-0.10 dvbsrc frequency=$FREQ_TDT bandwidth=$BANDA_TDT ! mpegtsdemux name=demux ! queue ! mpeg2dec ! deinterlace ! videorate ! video/x-raw-yuv,framerate=25/2 ! videoscale ! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! tee name=tscreen ! queue ! autovideosink tscreen. ! queue ! theoraenc quality=48 ! queue ! oggmux name=mux demux. ! queue ! mad ! tee name=audiout ! queue ! autoaudiosink audiout. ! queue ! audioconvert ! vorbisenc quality=0.5 ! queue ! mux. mux. ! queue ! tee name=tfile ! queue ! filesink location=$BACKUP_FILE tfile. ! queue ! shout2send ip=$HOST port=$PORT mount=$MOUNT password=$PASSWD streamname=$NOM_STREAM description=$DESCRIPCIO genre=$TIPUS url=$WEB

while true
do
# echo «Verifiquem mount_point»
curl -s http://$HOST:$PORT/|grep -q «Mount Point /$MOUNT»
if [ $? != 0 ]; then
# echo «Verifiquem gst-launch-0.10»
PID=$(pidof gst-launch-0.10)
if [ «x$PID» != «x» ]; then
# echo «matant gst-launch»
kill -9 $PID;
fi
gst_tdt2stream &
# echo «rearrancant»
sleep 5
fi
sleep 1
done
#
# INSTAL·LACIO GSTREAMER
# $ sudo add-apt-repository ppa:gstreamer-developers/ppa
# $ sudo apt-get update
# $ sudo apt-get install gstreamer-tools
# FI INSTAL·LACIO GSTREAMER
#
# INSTAL·LAR CURL
# $ sudo apt-get install curl
# FI INSTAL·LACIO CURL
#
# gstreamer_code by giss.tv
# continuity_code by acs.li
# suport_maintaiment by kinoraw.net
# experimental icecast servers: giss.tv – experimental.tv – gint.tv – hangar.org
# latele.cat/latele-en-directe hosted by Telenoika.net
# gst_tdt2stream project by edrok Telenoika.net
#
# GPL web@telenoika.net
#
# v tka-0.0 2012/05/19 20:53:01 Telenoika
# v tka-0.1 2012/10/14 23:23:23 Hackafou
# v tka-0.2 2013/01/16 18:00:00 EnergyControl stream workshop

playmodes3

Playmodes3

Sintetitzador Audiovisual

DOWNLOAD: http://github.com/eloimaduell/ofxPlaymodes

battlefield

Battlefield Everyday

Videoclip realitzat per output_Video
Hector Agustí
Àlex López

Amb la col·laboració de SALAV, l’Escola d’Arts i Oficis de l’Espectacle, Espai Jove Boca Nord i el suport de Telenoika

lyrics / lletra
BATTLEFIELD EVERYDAY
GET UP MY FEET AND SAY: WHAT A GOOD DAY!
I HOLD MY HEAD UP HIGH, UP TO THE SKY
GET UP MY FEET AND SAY: WHAT A GOOD DAY!
I HOLD MY HEAD UP HIGH, UP TO THE SKY

EM POSO EMPEUS I DIC: QUIN BON DIA!!
AIXECO EL CAP AMUT, CAP AL CEL
EM POSO EMPEUS I DIC: QUIN BON DIA!!
AIXECO EL CAP AMUT, CAP AL CEL

SINGLE PARENTS A GET THE SACK
AND A GOOD JOB’S SO VERY HARD TO FIND
CHILDREN’D CARE BECOMES A BURDEN THERE
WHERE CHILDREN WHERE THE BLESSINGS OF THEIR LIFE
(BUT) NOT SURPRISINGLY WE’LL STAY
WORKING HARD ALL ALONG THE WAY
WORKING STRAIGHT, CARING PLEASED, MAKING OTHERS FEEL THE EASE
WITH THE SIGHT OF A NEW DAY

MARES SOLTERES COMIADADES
UNA BONA FEINA ÉS IMPOSSIBLE DE TROBAR
CUIDAR FILLS ES TORNA UNA CÀRREGA
QUAN TRENIR FILLS ERA UNA BENDICIÓ
ÉS D’ESPERAR QUE SIGUEM TREBALLANT DUR
CAMINANT DE DRET, CUIDANT ELS NOSTRES FENT-LOS SENTIR
L’ARRIBADA D’UN NOU DIA AMB PLAER

IT’S SO HARD TO LIVE, IN THE BATTLEFIELD EVERYDAY
OH YES! IT SEEMS TO ME, I’M NO ONE TO TALK ABOUT THIS
I HAVEN’T BEEN SHOT Y POLICE
BUT WHEN THEIR STRIFE COMES TO MY EAR
THE ONLY WORRIES IN MY MIND
IT IS FOR HOW LONG WILL THEIR RIVER RUN DRY

ÉS MOLT DUR VIURE AL CAMP DE BATALLA CADA DIA
EM SEMBLA QUE NO SÓC NINGÚ PER DIR-HO
NO M’HA DISPARAT MAI LA POLICIA
PERÒ QUAN SENTO QUE LES COSES VAN MALAMENT
L’ÚNIC QUE EM VE AL CAP
ÉS FINS QUAN BAIXARÀ SEC EL SEU RIU

THIS SOLDIERS’ ASSIGNMENT IS GIVEN FROM BIRTH
YOU MAY NOT KNOW THE PERSON, THE MOMENT TO CURSE
MANY HAVE LOST ANY SENSE OF PURPOSE
ALIEN DOCTRINES ARE SELDOM QUESTIONED
BRUTAL ATTACKS AGAINST NATIVE CULTURE
IMPUNITY RISES AS A HUNGRY VULTURE

EL ROL EN LA BATALLA T’ÉS ASSIGNAT DE NAIXEMENT
NO SAPS MAI QUAN I A QUI ET TOCA QUEIXAR-TE
MOLTS HAN PERDUT UNA RAÓ PER VIURE
LES DOCTRINES QUE T’IMPOSEN SÓN POC SOVINT QÜESTIONADES
ATACS BRUTALS CONTRA CULTURES NATIVES
LA IMPUNITAT PUJA (AUGMENTA) CON UN VOLTOR FAMÈL·LIC

NOT SURPRISINGY WE’LL STAY
WORKING HARD ALL ALONG THE WAY
WORKING STRAIGHT, CARING PLEASED, MAKING OTHERS FEEL THE EASE
WITH THE SIGHT OF A NEW DAY

IT’S SO HARD TO LIVE, IN THE BATTLEFIELD EVERYDAY
OH YES! IT SEEMS TO ME, I’M NO ONE TO TALK ABOUT THIS
I HAVEN’T BEEN SHOT Y POLICE
BUT WHEN THEIR STRIFE COMES TO MY EAR
THE ONLY WORRIES IN MY MIND
IT IS FOR HOW LONG WILL THEIR RIVER RUN DRY

disca pausa de kashba

Pausa (Nou disc de Kashba)

Presentem disc / Presentamos disco / New album

Pausa

Kashba presenta el seu nou disc «Pausa», enregistrat en INA estudi, a Vallirana, al maig de 2012.

DESCARREGA’L AMB LES LLETRES / DESCÁRGALO CON LAS LETRAS / DOWNLOAD WITH LYRICS

http://archive.org/download/Pausa/Kashba_Pausa.zip

Kashba – Otra Realidad – Pausa from Telenoika on Vimeo.



Escolta’l aquí: / Escúchalo aquí / Listen to it here:
http://www.myspace.com/kashbaa


K a s h b a neix de l’entusiasme per la indagació de la música electrònica més càlida. Del reconeixement dels sentiments més sincers. El grup està format per dos membres de la Comunitat Audiovisual Telenoika: K-sero, conegut pel seu llarg recorregut com a músic electrònic i membre de Los Subwoofus. I Babi Rodríguez, BabiÓ vj, artista visual ara dedicada a projectar la seva veu. El resultat d’aquesta unió es condensa en atmòsferes que oscil·len entre la cadència del trip-hop i el ressò de les cultures. Però sobretot, i fugint de catalogacions, representa el naixement d’una nova personalitat musical.

+INFO:: https://telenoika.net/kashba

hav1bit

Hav1bit

HAV1BIT, Primer Sintetitzador Audiovisual fet per Telenoika, de la mà dels Luthiers Drapaires

HAV1BIT és un sintetitzador audiovisual d’1 bit de hardware obert basat en arduino, té una sortida minijack, una VGA (640*480px) i 6 potenciometres+6 botons. Són 3 oscil·ladors d’ona quadrada que es modulen entre si, una espècie d’aproximació a la síntesi FM, però audiovisual. Cada oscil·lador modula un dels canals de color RGB.

Ara mateix podeu veure l’esquema, el codi, la descripció i un vídeo d’exemple d’aquest sinte en fase beta, tot i que ja s’està treballant en les noves funcionalitats que se li volen donar:

-guardat de presets
-seqüenciació via serial amb maxforlive o midi (a través del port usb)
-manipulació de senyal de sincronia
-possible mode 8 bits

Tot el disseny està basat en Arduino, amb col·laboració de molts membres de la comunitat a través dels forums. El aparell té unes quantes funcionalitats interessants:

Modes de funcionament:

-Simple: control gruix (ms) i fi (microsegons) de la frequencia dels osciladors
-Rampes: generació de rampes (ones de serra) amb estat inicial, estat final, i temps de la rampa ajustables (moltes gràcies al Emannuelle Mazza pel codi d’aquesta part!)
-Random: frequencia aleatoria per canal, dins un rang definible i amb canvi cada temps definit
-Rampes+Random: Una mescla extraterrestre de les dos funcionalitats anteriors

Connectivitat

-L’aparell pot funcionar de forma autònoma, mitjançant una interfície amb 6 switches i 6 potenciometres
-Es pot connectar a través d’USB a un ordinador i controlar la síntesi a través del port Serial. Estem treballant en un patch per a PureData que permetrà fer MOLTES coses guapes.

DIY

-Com sempre, els nostres dissenys son en part depenents del coneixements que altres han estat a bé compartir, així que en retorn a la comunitat aqui va tot el necessàri per a construir-se’n un d’aquests:

sinte-schem

La construcció és molt fàcil, nomes cal 6 botons i 6 potenciometres connectats a arduino, a més del port minijack i el port VGA.

El Firmware el podeu descarregar a continuació: AV3.pde


//AV1BIT Audiovisual MonoChord 1Bit Synthesizer

//VGA Sync Generator by DWAN
//Faster AnalogRead code by jmknapp
//Ramps code by Emanuelle Mazza

/* VGA Sync Generator
* 11/11/08 - dwan : dwanafite@yahoo.fr
*
* Based on :
* - RG Matrix Example v.2 8/1/08, by BroHogan, from the Arduino Playground
* - Simplest universal VGA/PAL terminal, by Ibragimov Maxim Rafikovich, http://www.vga-avr.narod.ru/main.html
* - the very useful Timer/Counter/Prescaler Calculator, http://www.et06.dk/atmega_timers/
* - Arduino.cc Port Manipulation Tutorial
*
* This program outputs pretty accurate VGA syncronization signals. It's using a timer interrupt on timer2, so hopefully you can make other cool things in loop().
*/

// 640 * 480 @ 60Hz - FvSync = 60.3 Hz / FhSync = 31.3 kHz
// HSync : pin 7 Arduino, pin 13 VGA
// VSync : pin 6 Arduino, pin 14 VGA
// Arduino's pin 5 is HIGH when video can be sent, LOW otherwise. I use it to power a transistor. See this wonderful page : http://www.anatekcorp.com/driving.htm
// 1 NOP = 62,5 ns wasted

#define NOP asm("nop")

#define vga_field_line_count 525 // number of VGA lines
#define ISR_FREQ 0x3F // Sets the speed of the ISR - LOWER IS FASTER - 62

volatile unsigned int linecount;

//FASTER ANALOG READS
//Prescaler/16 (faster analogReads)
#define FASTADC 1

// defines for setting and clearing register bits
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

// Pins per a sortida (RGB i à udio):
const byte R = 9;
const byte G = 10;
const byte B = 11;

const byte A = 12;

//pins d'entrada digital (switch)
const int Rswitch1 = 1; // output as an input
const int Rswitch2 = 4; // output as an input

const int Gswitch1 = 2; // output as an input
const int Gswitch2 = 5; // output as an input

const int Bswitch1 = 3; // output as an input
const int Bswitch2 = 8; // output as an input

const int Randomizer = 13;

// Variables d'estat:
byte RState = LOW;
byte GState = LOW;
byte BState = LOW;

unsigned long previousMicros=0;
unsigned long previousMillis=0;
unsigned long interval=0;

//declara temps d'inicialitzacio de les rampes
long unsigned int initRamp1;
long unsigned int initRamp2;
long unsigned int initRamp3;

//Llegeix els potes
unsigned long int Rpote1(){
unsigned long int r= analogRead(0);
return r;
}

unsigned long int Rpote2(){
unsigned long int r= analogRead(3);
return r;
}

unsigned long int Gpote1(){
unsigned long int g= analogRead(1);
return g;
}

unsigned long int Gpote2(){
unsigned long int g= analogRead(4);
return g;
}

unsigned long int Bpote1(){
unsigned long int b= analogRead(2);
return b;
}

unsigned long int Bpote2(){
unsigned long int b= analogRead(5);
return b;
}

//declara randoms
int random1=0;
int random2=0;
int random3=0;

void setup()
{
// Serial.begin(115200);

DDRD |= B11100000; // it sets pins 7, 6 and 5 as output without changing the value of pins 0 & 1, which are RX & TX
// 76543210 <- pin translation PORTD |= B11000000; // sets pins 7 (hSync) and 6 (vSync) HIGH // 76543210; setISRtimer(); // setup the timer startISR(); // start the timer to toggle shutdown // set prescale to 16: faster analog reads #if FASTADC sbi(ADCSRA,ADPS2) ; cbi(ADCSRA,ADPS1) ; cbi(ADCSRA,ADPS0) ; #endif pinMode(R, OUTPUT); pinMode(G, OUTPUT); pinMode(B, OUTPUT); pinMode(Rswitch1, INPUT); pinMode(Rswitch2, INPUT); pinMode(Gswitch1, INPUT); pinMode(Gswitch2, INPUT); pinMode(Bswitch1, INPUT); pinMode(Bswitch2, INPUT); pinMode(Randomizer, INPUT); initRamp1 = millis(); initRamp2 = millis(); initRamp3 = millis(); } void loop() { long unsigned int a= Rpote1(); long unsigned int b= Rpote2(); long unsigned int c= Gpote1(); long unsigned int d= Gpote2(); long unsigned int e= Bpote1(); long unsigned int f= Bpote2(); if (a+b <=2044){ Rswitch(a,b); } if (c+d <=2044){ Gswitch(c,d); } if (e+f <=2044){ Bswitch(e,f); } } //Gestio dels modes de funcionament (a través dels switches) void Rswitch(long unsigned int pote1, long unsigned int pote2){ byte Rsw1 = digitalRead(Rswitch1); byte Rsw2 = digitalRead(Rswitch2); if (Rsw1==HIGH && Rsw2==HIGH){ RandRampR(pote1, pote2); } if (Rsw1==HIGH && Rsw2==LOW){ RampR(pote1, pote2); } if (Rsw1==LOW && Rsw2==LOW){ SimpleR(pote1, pote2); } if (Rsw1==LOW && Rsw2==HIGH){ RandomR(pote1, pote2); } } void Gswitch(long unsigned int pote1, long unsigned int pote2){ byte Gsw1 = digitalRead(Gswitch1); byte Gsw2 = digitalRead(Gswitch2); if (Gsw1==HIGH && Gsw2==HIGH){ RandRampG(pote1, pote2); } if (Gsw1==HIGH && Gsw2==LOW){ RampG(pote1, pote2); } if (Gsw1==LOW && Gsw2==LOW){ SimpleG(pote1, pote2); } if (Gsw1==LOW && Gsw2==HIGH){ RandomG(pote1, pote2); } } void Bswitch(long unsigned int pote1, long unsigned int pote2){ byte Bsw1 = digitalRead(Bswitch1); byte Bsw2 = digitalRead(Bswitch2); if (Bsw1==HIGH && Bsw2==HIGH){ RandRampB(pote1, pote2); } if (Bsw1==HIGH && Bsw2==LOW){ RampB(pote1, pote2); } if (Bsw1==LOW && Bsw2==LOW){ SimpleB(pote1, pote2); } if (Bsw1==LOW && Bsw2==HIGH){ RandomB(pote1, pote2); } } //Modes de funcionament void RampR(long unsigned int a, long unsigned int b){ SimpleR(0,ramp1(0,a*100,b*10)); } void RandomR(long unsigned int a, long unsigned int b){ SimpleR(0,randomize1(a*100,b)); } void RandRampR(long unsigned int a, long unsigned int b){ SimpleR(0,randomize1(a*50,0)+ramp1(0,50000,b)); } void RampG(long unsigned int a, long unsigned int b){ SimpleG(0,ramp2(0,a*100,b*10)); } void RandomG(long unsigned int a, long unsigned int b){ SimpleG(0,randomize2(a*100,b)); } void RandRampG(long unsigned int a, long unsigned int b){ SimpleG(0,randomize2(a*50,0)+ramp2(0,50000,b)); } void RampB(long unsigned int a, long unsigned int b){ SimpleB(0,ramp3(0,a*100,b*10)); } void RandomB(long unsigned int a, long unsigned int b){ SimpleB(0,randomize3(a*100,b)); } void RandRampB(long unsigned int a, long unsigned int b){ SimpleB(0,randomize3(a*50,0)+ramp3(0,50000,b)); } ////modes Simples void SimpleR(long unsigned int a, long unsigned int b){ unsigned long int rdel=(a*500)+b; unsigned long currentMicros = micros(); if (micros() - previousMicros >= rdel) {
previousMicros = previousMicros+rdel;

if (rdel <512000){ RState =! RState; digitalWrite(R, RState); digitalWrite(A, RState); } } } void SimpleG(long unsigned int a, long unsigned int b){ unsigned long int gdel=(a*500)+b; unsigned long currentMicros = micros(); if (micros() - previousMicros >= gdel) {
previousMicros = previousMicros+gdel;

if (gdel <512000){ GState =! GState; digitalWrite(G, GState); digitalWrite(A, GState); } } } void SimpleB(long unsigned int a, long unsigned int b){ unsigned long int bdel=(a*500)+b; unsigned long currentMicros = micros(); if (micros() - previousMicros >= bdel) {
previousMicros = previousMicros+bdel;

if (bdel <512000){ BState =! BState; digitalWrite(B, BState); digitalWrite(A, BState); } } } /////Rampes unsigned int ramp1(unsigned int inicio, unsigned int fin, long unsigned int duracion){ unsigned int frecuencia = inicio; if((millis() - initRamp1) < duracion){ frecuencia = map((millis() - initRamp1),0,duracion,inicio,fin); }else{ initRamp1 = millis(); } return frecuencia; } unsigned int ramp2(unsigned int inicio, unsigned int fin, long unsigned int duracion){ unsigned int frecuencia = inicio; if((millis() - initRamp2) < duracion){ frecuencia = map((millis() - initRamp2),0,duracion,inicio,fin); }else{ initRamp2 = millis(); } return frecuencia; } unsigned int ramp3(unsigned int inicio, unsigned int fin, long unsigned int duracion){ unsigned int frecuencia = inicio; if((millis() - initRamp3) < duracion){ frecuencia = map((millis() - initRamp3),0,duracion,inicio,fin); }else{ initRamp3 = millis(); } return frecuencia; } ///Randomitzador int randomize1(unsigned int v, unsigned int n){ if (millis() - previousMillis >= n) {
previousMillis = previousMillis+n;

random1=random(v);
}
return random1;
}

int randomize2(unsigned int v, unsigned int n){

if (millis() - previousMillis >= n) {
previousMillis = previousMillis+n;

random2=random(v);
}
return random2;
}

int randomize3(unsigned int v, unsigned int n){

if (millis() - previousMillis >= n) {
previousMillis = previousMillis+n;

random3=random(v);
}
return random3;
}

//Timer per a VGA
///////////////////////////// ISR Timer Functions ///////////////////////////
ISR(TIMER2_COMPA_vect)
{
// Stop video
// pin 5 LOW
PORTD &= ~(1 << 5); // Front porch NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; // Count number of lines if (++linecount == vga_field_line_count) { linecount = 0; } // can it be vsync tiem nao ? if ((linecount == 10 )||(linecount == 11 )) { // hsync LOW // vsync LOW PORTD &= ~(1 << 7); PORTD &= ~(1 << 6); } else // ,hsync only { // hsync LOW // vsync HIGH PORTD &= ~(1 << 7); PORTD |= (1 << 6); } NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; // nonetheless, // hsync HIGH PORTD |= (1 << 7); NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; // Start video if we are in a visible area if (linecount > 45)
{
// pin 5 HIGH
PORTD |= (1 << 5); } } void setISRtimer(){ // setup ISR timer controling toggleing TCCR2A = 0x02; // WGM22=0 + WGM21=1 + WGM20=0 = Mode2 (CTC) TCCR2B = (1 << CS01); // /8 prescaler (2MHz) TCNT2 = 0; // clear counter OCR2A = ISR_FREQ; // set TOP (divisor) - see #define } void startISR(){ // Starts the ISR TCNT2 = 0; // clear counter (needed here also) TIMSK2|=(1<

Actualitzacions:

Anirem actualitzant el firmware de la màquina, afegint-hi noves funcionalitats.

Tenim en ment implementar un sistema de gravació de presets i un sistema de sequenciació per midi. Mica en mica anirem afegint aquestes coses a la web, estigeu atents si us interessa.

dmmdb

Distributed Multi-Media DataBase for joomla!

Telenoika, seguint en la seva línia de desenvolupament de software lliure, us presenta la implementació del dmmdb per Joomla!

· Un mediabase per a la lliure implementació i distribució de videos a la xarxa.

Descarrega-te’l i instal·lal en el teu joomla! usant l’interface administratiu (extensions -> install)
Podeu incloure’l dins de Joomla usant el seguent component:

com_dmmdb

A continuació, pots crear un component, per exemple, una pàgina amb el teu dmmddb de Joomla! amb la creació d’un component amb els següents paràmetres:

* Server Url : url of your dmmdb ( ex:  http://giss.tv/dmmdb  )     
* List of channels or ‘all’ for all channels : a list of channels you want to see ( ex: giss, telenoika )    
* Maximum number of channels : in the case you want to see ‘all’ limit the number of visible channels,
the nth ultimate channels will appear   
* Width : width of the component
* Number of videos per menu : number of accessible videos at once   
* Show videos in a pop-up window : pop-up a modal window to play videos   
* Show search window : show search window   
* Show Latest Videos : show latest videos ( default=yes )
* Show comments on media : show comments   
* Show most viewed : show most viewed
* Show favorites : show favorites
* Show categories : show categories
* Show videos of the same author : show videos by the same author
* Show videos in the same category : show videos of the same category   
* Show videos with the same keywords : show videos with the same keywords    
* Show playlists : show playlists
* Show friend channels : show friend channels
* Show latest media on friend channels : show latest videos on friend channels
* Text Color : text color
* Background Color : background color
* Tip Text Color : tip text color
* Tip Background Color : tip background color
* Link Color : link color

+INFO:: http://giss.tv/dmmdb

warpmap foto

Warpmap 0.1

WarpMap 0.1 : first release !

So finally we present here our first release of WarpMap, an small application that we’reusing to play videos with advanced warping capabilities in our projection mapping projects.
This first release it’s just the binaries on Mac (10.5.7) and Windows (XP) systems,once we’ve cleaned the code and test it on some hardwares we’ll publish the entire code project. This project has been developped in C++ with OpenFrameworks libs. http://www.openframeworks.cc/

WarpMap it’s a simple media-player application that let’s you play several layers of images or videos with a quad-warping and mesh-warp deformation effect for each layer. Configurable via XML files and controled via keyboard, mouse and OSC.
Download and test the software (please read first the documentation)

Documentation http://www.playmodes.com/pub/WarpMap_0.1/WarpMap_README_0.1.pdf
WarpMap_0.1 for Windows XP 32 bits http://www.playmodes.com/pub/WarpMap_0.1/WarpMap_0.1_Win32.zip
WarpMap_0.1 for MAC OS/X 10.5.7 http://www.playmodes.com/pub/WarpMap_0.1/WarpMap_0.1_OSX_10.5.zip
This is a beta-test release, so there could be some bugs and weird stuff 😉
Give it a try and let’us know if it runs on your system. We wellcome your feedback and questions ! And if you use it, please support our project with a donation ! There are a lot of new features we want to include and we need your support.

+INFO :: http://www.playmodes.com

B’talla_Filastine + ProletariCratz

ProletariCratz pone imágenes a uno de los temas del último album de Filastine, Dirty Bomb.

El track se llama B' talla.

 

{mgmediabot}images/stories/2007/proletari cratz/B'TALLA_320.flv|false|320|255{/mgmediabot}

 

 

Continuar leyendo

Reaktor AV Weapons

weapon.jpg


En exclussiva per a la comunitat d'AVs de Telenoika, un download en forma d'ensemble de Reaktor.

Es tracta d'un conjunt d'efectes en sèrie que poden fer-se servir com a efectes d'àudio, o sincronitzats amb playmodes com a multiefectes audiovisuals en temps real. Es tracta, principalment, d'efectes temporals (delays, stretch, etc). Tots els efectes es poden llençar des de el panell de reaktor, o mitjançant notes midi (amb un teclat o pad de percussió).


Qualsevol modificació, afegit, tunning o comentari sobre els efectes es benvingut!


Download:
TheWeapon.ens

Continuar leyendo

Publicacio del codi de SVEN

 sven.jpg

Darrerament en els talleres de Telenoika s´ha estat destacant tot el relacionat amb les
interaccions AV , el software relacionat i eines de desenvolupament i programacio.
Doncs relacionat amb això aqui us deixo un link d´un projecte del qual
s´ha alliberat el codi font, es tracta d´un software de tracking força interessant
(llàstima que ta
sols funciona amb W$).

WEB :: http://deprogramming.us/sven/software.html

Continuar leyendo