Introdução ao Jitter

20

Click here to load reader

description

Introdução ao Jitter: -Reproduzir um ficheiro de vídeo; - A estrutura de dados central: matriz; - Atributos e argumentos nos objectos Jitter;

Transcript of Introdução ao Jitter

Page 1: Introdução ao Jitter

Jitter - Introdução

Vídeo Arte InteractivaVídeo Arte Interactiva

12-02-2010 Jorge C. S. Cardoso 1

Page 2: Introdução ao Jitter

Conteúdo2

Conteúdo

• Conhecimento prévio• Conhecimento prévio• Estrutura básica (objectos) para ler um vídeo• Matrizes• Atributos• Atributos

12-02-2010 Jorge C. S. Cardoso

Page 3: Introdução ao Jitter

Conhecimento prévio3

Conhecimento prévio• Objectos fundamentaisj

– Metro– S, R (send, receive)

P k– Pak– Prepend– Route– line– Loadbang– Patcher (patchers dentro de patchers)– Patcher (patchers dentro de patchers)– Construção de mensagens com variáveis– ...

• Assumo que já sabem isto tudo– Se não souberem: http://cycling74.com/docs/max5/vignettes/intro/docintro.html

12-02-2010 Jorge C. S. Cardoso

Page 4: Introdução ao Jitter

Ler um ficheiro de vídeo4

Ler um ficheiro de vídeo• jit qt moviejit.qt.movie

– Carrega um ficheiro de vídeovídeo

– Argumentos: largura e altura do vídeo

– Mensagens • Read: abre a janela de j

diálogo para escolher o ficheiro

• Stop: pára a reprodução• Stop: pára a reprodução• Start: recomeça a

reprodução

12-02-2010 Jorge Cardoso

Page 5: Introdução ao Jitter

Ler um ficheiro de vídeo5

Ler um ficheiro de vídeo• metrometro

– Faz com que o jit.qt.movieenvie a frame actual

– Atenção: o ficheiro continua a ser lido mesmo sem o metro, mas nenhuma frame é enviada

– Atributo: intervalo (ms) entre envio das framesI l– Inlet

• 0: pára• 1: inicia

12-02-2010 Jorge Cardoso

Page 6: Introdução ao Jitter

Ler um ficheiro de vídeo6

Ler um ficheiro de vídeo• jit.pwindowjit.pwindow

– Mostra o vídeo dentro do patch

• Exemplo #1

12-02-2010 Jorge Cardoso

Page 7: Introdução ao Jitter

Matrizes7

Matrizes• Estrutura de dados para Estrutura de dados para

guardar um conjunto de valores

• Normalmente, tem duas dimensões

0 1 2 3 4 5 6 7 0

– representa-se em forma tabular– casa posição é uma “célula”

É l Ji

123• É a estrutura central em Jitter

– Todos (ou quase) os objectos Jitter recebem e enviam matrizes

345

J

12-02-2010 Jorge Cardoso

Page 8: Introdução ao Jitter

Matrizes - Dimensões8

Matrizes - Dimensões

• Uma matriz pode ter duas ou mais dimensões• Uma matriz pode ter duas ou mais dimensões– Em Jitter, o normal é usar matrizes bi-dimensionais

0 1 2 3 4 5 6 7 012345

12-02-2010 Jorge Cardoso

Page 9: Introdução ao Jitter

Matrizes para Vídeo9

Matrizes para Vídeo

• Uma imagem (frame) pode ser representada como • Uma imagem (frame) pode ser representada como uma matriz, em que cada célula guarda uma cor (pixel)(pixel)– Uma cor é representada em ARGB, ou seja, o número é

uma composição de quatro valoresuma composição de quatro valores• Alpha (transparência)• Red 50 44 23 31 38 52 75 52• Green• Blue

50 44 23 31 38 52 75 5229 09 15 08 38 98 53 5208 07 12 15 24 30 51 5210 31 14 38 32 36 53 6714 33 38 45 53 70 69 4036 44 58 63 47 53 35 2668 76 74 76 55 47 38 3569 68 63 74 50 42 35 32

12-02-2010 Jorge Cardoso

69 68 63 74 50 42 35 32

Page 10: Introdução ao Jitter

Matrizes - Planos10

Matrizes - Planos

• Cada célula guarda de facto 4 valores• Cada célula, guarda, de facto, 4 valores• O Jitter separa estes valores em Planos

– Uma matriz de vídeo, em Jitter, é uma matriz bi-dimensional com (normalmente) 4 planos( ) p

12-02-2010 Jorge Cardoso

Page 11: Introdução ao Jitter

Matrizes – Tipo de dados11

Matrizes Tipo de dados• Cada célula de uma matriz guarda um valor numéricoCada célula de uma matriz guarda um valor numérico.• Um valor numérico pode ser representado de formas

diferentes consoante os limites (máximo e mínimo) ( )pretendidos ou o tipo de número (inteiro ou decimal)

• Em Jitter, uma vez que uma célula (de um plano) guarda um J q ( p ) gvalor que corresponde a apenas um componente de cor, apenas são precisos valores entre 0 e 255

O d d d é d d l– O tipo de dados char é o indicado para estes valores

12-02-2010 Jorge Cardoso

Page 12: Introdução ao Jitter

Matrizes – jit matrix12

Matrizes jit.matrix

• O objecto jit matrix guarda uma matriz• O objecto jit.matrix guarda uma matriz– Para criar uma matriz temos de

• dar-lhe um nome, • indicar o número de planos que queremos• indicar o tipo de dados (char)• indicar a dimensão (largura altura)

• Exemplos #2 e #3• Exemplos #2 e #3

12-02-2010 Jorge Cardoso

Page 13: Introdução ao Jitter

Argumentos13

Argumentos

• A maioria dos objectos em Max pode ser • A maioria dos objectos em Max pode ser inicializado através de argumentos escritos a

i d bj ( d d seguir ao nome do objecto (a ordem dos argumentos indica o seu significado)– Estes argumentos definem o estado inicial do

objectoj– O estado pode ser alterado enviando valores para

os inletsos inlets

12-02-2010 Jorge Cardoso

Page 14: Introdução ao Jitter

Atributos14

Atributos• Em Jitter, os objectos possuem demasiadas características Em Jitter, os objectos possuem demasiadas características

para poderem ser inicializadas desta forma • Os objectos Jitter possuem atributos que permitem inicializar j J p q p

e alterar o estado do objecto• Os atributos podem ser definidos como argumentos (usando p g (

um @ antes do nome do atributo) ou através de mensagens• Os atributos podem ter um ou mais parâmetros

• Exemplo #4

12-02-2010 Jorge Cardoso

Page 15: Introdução ao Jitter

Atributos15

Atributos

• Os objectos Jitter respondem a mensagens • Os objectos Jitter respondem a mensagens “get<nomeatributo>” com o valor actual do

ib atributo. – Dá jeito para determinar o estado actual do j p

objecto

• Exemplo #5Exemplo #5

12-02-2010 Jorge C. S. Cardoso

Page 16: Introdução ao Jitter

Mais Info16

Mais Info

• What is a Matrix? • What is a Matrix? http://www.cycling74.com/docs/max5/tutorials/ji /ji h i i h l/jit-tut/jitterwhatisamatrix.html

• What are attributes? http://www.cycling74.com/docs/max5/tutorials/jit-tut/jitterwhatareattributes html/jit-tut/jitterwhatareattributes.html

• Tutorial 1: Playing a QuickTime Movie http://www.cycling74.com/docs/max5/tutorials/jit-tut/jitterchapter01.htmlj j p

12-02-2010 Jorge Cardoso

Page 17: Introdução ao Jitter

Exercício #117

Exercício #1

• Crie um patcher que comece a reproduzir um • Crie um patcher que comece a reproduzir um vídeo logo que seja aberto

12-02-2010 Jorge C. S. Cardoso

Page 18: Introdução ao Jitter

Exercício #218

Exercício #2

• Crie um patcher que reproduza um vídeo em • Crie um patcher que reproduza um vídeo em três resoluções diferentes (640x480, 320x200, 160 100)160x100)– use um [jit.matrix] intermédio entre o j

[jit.qt.movie] e o [jit.pwindow] para definir a resolução

12-02-2010 Jorge C. S. Cardoso

Page 19: Introdução ao Jitter

Exercício #319

Exercício #3

• Crie um patcher que reproduza apenas o • Crie um patcher que reproduza apenas o canal verde de um vídeo.

12-02-2010 Jorge C. S. Cardoso

Page 20: Introdução ao Jitter

Exercício #420

Exercício #4

1 Crie um patcher que mostre o mesmo vídeo 1. Crie um patcher que mostre o mesmo vídeo em duas janelas (pwindow) diferentes.

1. Uma das janelas deve mostrar o vídeo em 320x240 e apenas o canal vermelho (a vermelho)

2. A outra janela deve mostrar o vídeo em 160x120 e apenas o canal azul (a azul)p ( )

12-02-2010 Jorge Cardoso