SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Jitter - Introdução

              Vídeo Arte Interactiva




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


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




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


                Conhecimento prévio
• Objectos fundamentais
    j
    –   Metro
    –   S, R (send, receive)
    –   Pak
        P k
    –   Prepend
    –   Route
    –   line
    –   Loadbang
    –   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
4


             Ler um ficheiro de vídeo
                              • jit qt movie
                                jit.qt.movie
                                       – Carrega um ficheiro de
                                         ví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
                                          • Start: recomeça a
                                            reprodução

12-02-2010             Jorge Cardoso
5


             Ler um ficheiro de vídeo
                              • metro
                                       – Faz com que o jit.qt.movie
                                         envie 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 frames
                                       – I l
                                         Inlet
                                           • 0: pára
                                           • 1: inicia




12-02-2010             Jorge Cardoso
6


             Ler um ficheiro de vídeo
                              • jit.pwindow
                                       – Mostra o vídeo dentro do
                                         patch




                              • Exemplo #1




12-02-2010             Jorge Cardoso
7


                            Matrizes
• Estrutura de dados para
  guardar um conjunto de
  valores
• Normalmente, tem duas                             0 1 2 3 4 5 6 7
  dimensões                                     0
    – representa-se em forma tabular            1
    – casa posição é uma “célula”               2
                                                3
• É a estrutura central em Ji
                      l    Jitter               4
    – Todos (ou quase) os objectos              5
      J
      Jitter recebem e enviam matrizes




12-02-2010                      Jorge Cardoso
8


             Matrizes - 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
              0
              1
              2
              3
              4
              5


12-02-2010                  Jorge Cardoso
9


                      Matrizes para Vídeo
• Uma imagem (frame) pode ser representada como
  uma matriz, em que cada célula guarda uma cor
  (pixel)
    – Uma cor é representada em ARGB, ou seja, o número é
      uma composição de quatro valores
             •   Alpha (transparência)
             •   Red                                     50 44 23 31 38 52 75 52
             •   Green                                   29 09 15 08 38 98 53 52
                                                         08 07 12 15 24 30 51 52
             •   Blue                                    10 31 14 38 32 36 53 67
                                                         14 33 38 45 53 70 69 40
                                                         36 44 58 63 47 53 35 26
                                                         68 76 74 76 55 47 38 35
                                                         69 68 63 74 50 42 35 32

12-02-2010                               Jorge Cardoso
10


               Matrizes - Planos
• Cada célula, guarda, de facto, 4 valores
        célula guarda     facto
• O Jitter separa estes valores em Planos
    – Uma matriz de vídeo, em Jitter, é uma matriz bi-
      dimensional com (normalmente) 4 p
                      (              ) planos




12-02-2010               Jorge Cardoso
11


             Matrizes – Tipo de dados
• Cada célula de uma matriz guarda um valor numérico
                                              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 p
      J              q              (       plano) g
                                                 ) guarda um
  valor que corresponde a apenas um componente de cor,
  apenas são precisos valores entre 0 e 255
    – O tipo d dados char é o indicado para estes valores
             de d d             d d                 l




12-02-2010                     Jorge Cardoso
12


                     Matrizes – jit matrix
                                jit.matrix
• O objecto jit matrix guarda uma matriz
            jit.matrix
    – 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

12-02-2010                        Jorge Cardoso
13


                  Argumentos
• A maioria dos objectos em Max pode ser
  inicializado através de argumentos escritos a
  seguir ao nome do objecto (a ordem dos
       i            d bj      (    d    d
  argumentos indica o seu significado)
    – Estes argumentos definem o estado inicial do
      objecto
         j
    – O estado pode ser alterado enviando valores para
      os inlets


12-02-2010              Jorge Cardoso
14


                      Atributos
• Em Jitter, os objectos possuem demasiadas características
  para poderem ser inicializadas desta forma
• Os objectos Jitter possuem atributos que p
         j      J    p                  q permitem inicializar
  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
15


                    Atributos
• Os objectos Jitter respondem a mensagens
  “get<nomeatributo>” com o valor actual do
  atributo.
     ib
    – Dá jeito p
         j     para determinar o estado actual do
      objecto
• Exemplo #5




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


                 Mais Info
• What is a Matrix?
  http://www.cycling74.com/docs/max5/tutorials
  /jit-tut/jitterwhatisamatrix.html
  /ji     /ji      h i       i h l
• 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.html
   j       j        p
12-02-2010          Jorge Cardoso
17


              Exercício #1
• Crie um patcher que comece a reproduzir um
  vídeo logo que seja aberto




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


                   Exercício #2
• Crie um patcher que reproduza um vídeo em
  três resoluções diferentes (640x480, 320x200,
  160x100)
  160 100)
    – 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
19


              Exercício #3
• Crie um patcher que reproduza apenas o
  canal verde de um vídeo.




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


                  Exercício #4
1.
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 ( azul)
          p                  (a    )




12-02-2010              Jorge Cardoso

Mais conteúdo relacionado

Mais de Jorge Cardoso

Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing
Jorge Cardoso
 
Introdução à Programação para iPhone (iOS)
Introdução à Programação para iPhone (iOS)Introdução à Programação para iPhone (iOS)
Introdução à Programação para iPhone (iOS)
Jorge Cardoso
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
Jorge Cardoso
 
Jitter: Comunicação em rede
Jitter: Comunicação em redeJitter: Comunicação em rede
Jitter: Comunicação em rede
Jorge Cardoso
 
Jitter: visao por computador
Jitter:  visao por computadorJitter:  visao por computador
Jitter: visao por computador
Jorge Cardoso
 

Mais de Jorge Cardoso (20)

Interacção em ambientes de realidade virtual
Interacção em ambientes de realidade virtualInteracção em ambientes de realidade virtual
Interacção em ambientes de realidade virtual
 
PhD defense presentation
PhD defense presentationPhD defense presentation
PhD defense presentation
 
Dynamic graphical user interface generation for web-based public display appl...
Dynamic graphical user interface generation for web-based public display appl...Dynamic graphical user interface generation for web-based public display appl...
Dynamic graphical user interface generation for web-based public display appl...
 
Evaluation of a programming toolkit for interactive public display applications
Evaluation of a programming toolkit for interactive public display applicationsEvaluation of a programming toolkit for interactive public display applications
Evaluation of a programming toolkit for interactive public display applications
 
Interaction modalities, technologies and tools for interactive art
Interaction modalities, technologies and tools for interactive artInteraction modalities, technologies and tools for interactive art
Interaction modalities, technologies and tools for interactive art
 
PuReWidgets toolkit
PuReWidgets toolkitPuReWidgets toolkit
PuReWidgets toolkit
 
PuReWidgets presentation at EICS 2012
PuReWidgets presentation at EICS 2012PuReWidgets presentation at EICS 2012
PuReWidgets presentation at EICS 2012
 
PuReWidgets toolkit
PuReWidgets toolkit PuReWidgets toolkit
PuReWidgets toolkit
 
Assessing Feedback for Indirect Shared Interaction
Assessing Feedback for Indirect Shared InteractionAssessing Feedback for Indirect Shared Interaction
Assessing Feedback for Indirect Shared Interaction
 
Oop java
Oop javaOop java
Oop java
 
Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao
 
Computer vision techniques for interactive art
Computer vision techniques for interactive artComputer vision techniques for interactive art
Computer vision techniques for interactive art
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing
 
Introdução à Programação para iPhone (iOS)
Introdução à Programação para iPhone (iOS)Introdução à Programação para iPhone (iOS)
Introdução à Programação para iPhone (iOS)
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
OOP Java
OOP JavaOOP Java
OOP Java
 
OOP ObjC
OOP ObjCOOP ObjC
OOP ObjC
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de Programacao
 
Jitter: Comunicação em rede
Jitter: Comunicação em redeJitter: Comunicação em rede
Jitter: Comunicação em rede
 
Jitter: visao por computador
Jitter:  visao por computadorJitter:  visao por computador
Jitter: visao por computador
 

Último

República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
LidianeLill2
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
rfmbrandao
 

Último (20)

Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
aprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubelaprendizagem significatica, teórico David Ausubel
aprendizagem significatica, teórico David Ausubel
 
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptxSlides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LP
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
Missa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfMissa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdf
 
Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)Sopa de letras | Dia da Europa 2024 (nível 1)
Sopa de letras | Dia da Europa 2024 (nível 1)
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
tensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxtensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptx
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
 

Introdução ao Jitter

  • 1. Jitter - Introdução Vídeo Arte Interactiva 12-02-2010 Jorge C. S. Cardoso 1
  • 2. 2 Conteúdo • Conhecimento prévio • Estrutura básica (objectos) para ler um vídeo • Matrizes • Atributos 12-02-2010 Jorge C. S. Cardoso
  • 3. 3 Conhecimento prévio • Objectos fundamentais j – Metro – S, R (send, receive) – Pak P k – Prepend – Route – line – Loadbang – 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
  • 4. 4 Ler um ficheiro de vídeo • jit qt movie jit.qt.movie – Carrega um ficheiro de ví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 • Start: recomeça a reprodução 12-02-2010 Jorge Cardoso
  • 5. 5 Ler um ficheiro de vídeo • metro – Faz com que o jit.qt.movie envie 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 frames – I l Inlet • 0: pára • 1: inicia 12-02-2010 Jorge Cardoso
  • 6. 6 Ler um ficheiro de vídeo • jit.pwindow – Mostra o vídeo dentro do patch • Exemplo #1 12-02-2010 Jorge Cardoso
  • 7. 7 Matrizes • Estrutura de dados para guardar um conjunto de valores • Normalmente, tem duas 0 1 2 3 4 5 6 7 dimensões 0 – representa-se em forma tabular 1 – casa posição é uma “célula” 2 3 • É a estrutura central em Ji l Jitter 4 – Todos (ou quase) os objectos 5 J Jitter recebem e enviam matrizes 12-02-2010 Jorge Cardoso
  • 8. 8 Matrizes - 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 0 1 2 3 4 5 12-02-2010 Jorge Cardoso
  • 9. 9 Matrizes para Vídeo • Uma imagem (frame) pode ser representada como uma matriz, em que cada célula guarda uma cor (pixel) – Uma cor é representada em ARGB, ou seja, o número é uma composição de quatro valores • Alpha (transparência) • Red 50 44 23 31 38 52 75 52 • Green 29 09 15 08 38 98 53 52 08 07 12 15 24 30 51 52 • Blue 10 31 14 38 32 36 53 67 14 33 38 45 53 70 69 40 36 44 58 63 47 53 35 26 68 76 74 76 55 47 38 35 69 68 63 74 50 42 35 32 12-02-2010 Jorge Cardoso
  • 10. 10 Matrizes - Planos • Cada célula, guarda, de facto, 4 valores célula guarda facto • O Jitter separa estes valores em Planos – Uma matriz de vídeo, em Jitter, é uma matriz bi- dimensional com (normalmente) 4 p ( ) planos 12-02-2010 Jorge Cardoso
  • 11. 11 Matrizes – Tipo de dados • Cada célula de uma matriz guarda um valor numérico 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 p J q ( plano) g ) guarda um valor que corresponde a apenas um componente de cor, apenas são precisos valores entre 0 e 255 – O tipo d dados char é o indicado para estes valores de d d d d l 12-02-2010 Jorge Cardoso
  • 12. 12 Matrizes – jit matrix jit.matrix • O objecto jit matrix guarda uma matriz jit.matrix – 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 12-02-2010 Jorge Cardoso
  • 13. 13 Argumentos • A maioria dos objectos em Max pode ser inicializado através de argumentos escritos a seguir ao nome do objecto (a ordem dos i d bj ( d d argumentos indica o seu significado) – Estes argumentos definem o estado inicial do objecto j – O estado pode ser alterado enviando valores para os inlets 12-02-2010 Jorge Cardoso
  • 14. 14 Atributos • Em Jitter, os objectos possuem demasiadas características para poderem ser inicializadas desta forma • Os objectos Jitter possuem atributos que p j J p q permitem inicializar 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
  • 15. 15 Atributos • Os objectos Jitter respondem a mensagens “get<nomeatributo>” com o valor actual do atributo. ib – Dá jeito p j para determinar o estado actual do objecto • Exemplo #5 12-02-2010 Jorge C. S. Cardoso
  • 16. 16 Mais Info • What is a Matrix? http://www.cycling74.com/docs/max5/tutorials /jit-tut/jitterwhatisamatrix.html /ji /ji h i i h l • 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.html j j p 12-02-2010 Jorge Cardoso
  • 17. 17 Exercício #1 • Crie um patcher que comece a reproduzir um vídeo logo que seja aberto 12-02-2010 Jorge C. S. Cardoso
  • 18. 18 Exercício #2 • Crie um patcher que reproduza um vídeo em três resoluções diferentes (640x480, 320x200, 160x100) 160 100) – 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
  • 19. 19 Exercício #3 • Crie um patcher que reproduza apenas o canal verde de um vídeo. 12-02-2010 Jorge C. S. Cardoso
  • 20. 20 Exercício #4 1. 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 ( azul) p (a ) 12-02-2010 Jorge Cardoso