segunda-feira, 29 de outubro de 2012

Lista de Tons Musicais


Cada música possui uma tonalidade que define a nota central à qual estão relacionadas as outras notas da música. Abaixo segue a lista de tons, cujo posicionamento na interface será no canto superior esquerdo, que restringem os acordes que poderão ser tocados.


Maior                                                   
C
Db
D
Eb
E
F
F#
G
Ab
A
Bb
B


Menor
C
C#
D
Eb
E
F
F#
G
G#
A
Bb
B



Estes acordes serão representados cada um por botões, conforme especificado no último post. Cada tom possui 8 acordes. Por exemplo, se você escolhe o tom C(Dó), é possível tocar os acordes  Em, Am, Dm, G, C, F, Bb, Bdim. Assim por diante.

Então, já dá pra prever o funcionamento da GUI: haverá essas duas listas de tons acima na tela. Ao clicar em uma dessas opções de tons, aparecerá 8 botões com cada acorde correspondente, que, quando pressionados, sairá o som desse acorde. Simples, não?



Acordes - Tom Maior(na ordem) 
Em
Am
Dm
G
C
F
Bb
Bdim
Fm
Bbm
Ebm
Ab
Db
Gb
B
Cdim
F#m
Bm
Em
A
D
G
C
C#°
Gm
Cm
Fm
Bb
Eb
Ab
Db
Ddim
G#m
C#m
F#m
B
E
A
D
D#°
Am
Dm
Gm
C
F
Bb
Eb
Edim
A#m
D#m
G#m
C#
F#
B
E
Fdim
Bm
Em
Am
D
G
C
F
F#°
Cm
Fm
Bbm
Eb
Ab
Db
Gb
Gdim
C#m
F#m
Bm
E
A
D
G
G#°
Dm
Gm
Cm
F
Bb
Eb
Ab
Adim
D#m
G#m
C#m
F#
B
E
A
A#°



Acordes – Tom Menor (na ordem)
Eb
Ab
Ddim
Gm
Cm
Fm
Bb
G
E
A
D#°
G#m
C#m
F#m
B
G#
F
Bb
Edim
Am
Dm
Gm
C
A
Gb
B
Fdim
Bbm
Ebm
Abm
Db
Ab
G
C
F#°
Bm
Em
Am
D
B
Ab
Db
Gdim
Cm
Fm
Bbm
Eb
C
A
D
G#°
C#m
F#m
Bm
E
C#
Bb
Eb
Adim
Dm
Gm
Cm
F
D
B
E
A#°
D#m
G#m
C#m
F#
D#
C
F
Bdim
Em
Am
Dm
G
E
Db
Gb
Cdim
Fm
Bbm
Ebm
Ab
F
D
G
C#°
F#m
Bm
Em
A
F#


     Lá = A                                             m = menor

Si = B                                              # = sustenido
Dó = C                                             #m = sustenido menor                                                                               
Ré = D                                              b = bemol
Mi = E                                              bm = bemol menor
Fá = F                                              dim  = diminuto
Sol = G



Obviamente, as variações que compõem os acordes foram omitidas aqui. Não trabalharemos com variações de acordes nesse contexto.

terça-feira, 23 de outubro de 2012

Materiais!

Hoje chegaram os materiais comprados na SparkFun!

São eles:

- 1x Music Instrument Shield (MIDI);
- 2x Speaker;
- 6x Mini Push Button Switch - SMD;
- 6x Mini Push Button Switch;

Dentro de alguns dias chegam os laser's e os jumpers!

MIDI

Speaker

Mini Push Button Switch

terça-feira, 2 de outubro de 2012

Interface Gráfica: Primeiro Esboço


Hoje nos reunimos para tratar algumas pendências do nosso projeto de Iniciação Científica. Fizemos um levantamento detalhado dos materiais comprados e os que ainda faltam adquirir (veja aqui). Discutimos sobre duas ideias de interface gráfica, ora que a pesquisa induz às possibilidades. 

Os objetivos desta parte da pesquisa consistem em construir uma interface gráfica para um leigo na música que deseja conhecer os sons das notas musicais de todas as afinações de uma guitarra. Separadamente, pretendemos verificar a viabilidade de utilizar o Arduino para afinar as notas da guitarra do nosso projeto.

A figura abaixo refere-se a um rascunho de uma tela feita em Java com Swing. A API Swing procura desenhar por conta própria todos os componentes, como formulários, botões, ícones, dentre outros; ao invés de delegar essa tarefa ao sistema operacional, como a maioria das outras APIs de interface gráfica trabalham. O propósito aqui é de criar botões correspondentes à cada nota musical. Quando o usuário clicar em um deles, o resultado será o som daquela nota. O primeiro teste será com a afinação padrão. Depois, montaremos uma lista com todas as afinações existentes ao canto da tela.




Elaboramos um roteiro de pesquisa da tecnologia que utilizaremos na interface. Os próximos, da parte física, serão carregados em breve.



Roteiro (outubro-dezembro/2012)

- Ler a documentação da API JavaSound e começar a testar (aos poucos);
- Testar exemplos do livro Java: Use A Cabeça e dos sites relacionados;
- Aprender a criar telas no swing;
- Pesquisar sobre tons/escalas musicais e também formatos de mídia (os que são compatíveis com a API JavaSound);
- Verificar a possibilidade de utilizar o pacote javax.media junto com o Swing, para facilitar a programação (http://javafree.uol.com.br/topic-857802-exemplo-para-quem-quer-tocar-mp3-em-java.html);

Fontes de Referência: sites

//JavaSound Documentação, Links, etc
http://www.oracle.com/technetwork/java/javasounddemo-140014.html
http://www.oracle.com/technetwork/java/links-142934.html
http://docs.oracle.com/javase/1.4.2/docs/guide/sound/programmer_guide/chapter11.html#124620
http://www.jsresources.org/examples/SimpleMidiPlayer.html
//exemplos com JMF - depois

http://www.javaworld.com/javaworld/jw-04-2001/jw-0406-jmf1.html
http://www.javaworld.com/javaworld/jw-05-2001/jw-0504-jmf2.html?page=1


//opcional – estender javasound para mp3
http://onjava.com/pub/a/onjava/2004/08/11/javasound-mp3.html