stringlessguitarapp.files.wordpress.com€¦  · web viewde produção musical; garageband, para a...

63
Pontifícia Universidade Católica de São Paulo Centro de Ciências Exatas e Tecnologia Ciência da Computação THIAGO DE ASSIS CARDOSO VIDAL STRINGLESSGUITAR APP: SOFTWARE MUSICAL PARA AUXILIAR A PERCEPÇÃO SONORA DE MÚSICOS INICIANTES

Upload: others

Post on 17-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

Pontifícia Universidade Católica de São Paulo

Centro de Ciências Exatas e Tecnologia

Ciência da Computação

THIAGO DE ASSIS CARDOSO VIDAL

STRINGLESSGUITAR APP: SOFTWARE MUSICAL PARA AUXILIAR

A PERCEPÇÃO SONORA DE MÚSICOS INICIANTES

São Paulo, Dezembro de 2014

Page 2: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

THIAGO DE ASSIS CARDOSO VIDAL

STRINGLESSGUITAR APP: SOFTWARE MUSICAL PARA AUXILIAR

A PERCEPÇÃO SONORA DE MÚSICOS INICIANTES

Monografia apresentada ao curso de Ciência da Computação da Pontifícia Universidade Católica de São Paulo como requisito parcial para obtenção do título de bacharel em Ciência da Computação, orientado pelo Prof. Dr. Carlos Eduardo de Barros Paes.

São Paulo, Dezembro de 2014

Page 3: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

STRINGLESSGUITAR APP: SOFTWARE MUSICAL PARA AUXILIAR

A PERCEPÇÃO SONORA DE MÚSICOS INICIANTES

THIAGO DE ASSIS CARDOSO VIDAL

Monografia defendida e aprovada, em 06/12/2014, pela banca examinadora:

Professor Dr. Carlos Eduardo de Barros Paes

Orientador

Professor Dr. Julio Arakaki

Professor do curso de Ciência da Computação

Professor Ms. Jefferson Oliveira da Silva

Professor do curso de Sistemas de Informação

Page 4: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

Dedico este trabalho aos meus pais, que estiveram sempre do meu lado em todos os momentos e à minha família que também exerceu um apoio sempre presente. Ao Professor Ítalo, que me ajudou na concepção do modelo deste trabalho; aos meus colegas músicos e

Page 5: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

professores de música e aos bons amigos que fiz na Pontifícia Universidade Católica.

Agradeço primeiramente a Deus, que possibilitou essa história estar acontecendo; ao Professor Carlos, meu orientador, ao Professor Cláudio Ayabe, que me ajudou a aprimorar a comunicação oral; à

Page 6: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

Fernando, que introduziu a música em minha vida e à Larissa, uma amiga excepcional para mim.

"Eu sei o preço do sucesso: dedicação, trabalho duro e uma devoção incessante para as coisas

Page 7: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

que você quer ver acontecer." Frank Lloyd Wright

LISTA DE FIGURAS

Figura 2: Semitom entre as notas Dó e Ré no braço do violão................................................17

Figura 3.1: Interface do Aplicativo GarageBand.....................................................................20

Figura 3.2.1: Diagrama de Atividades do Processo de Remoção de Ruídos...........................22

Figura 3.2.2: Amplificando o som de uma faixa com volume baixo.......................................23

Figura 3.2.3: Aplicando o Efeito de Remoção de Ruído.........................................................23

Figura 3.2.4: Eliminando Ruídos remanescentes da gravação................................................24

Figura 3.2.5: Cortando o excesso de uma faixa sem som............................................... ........24

Figura 3.3: Adicionando arquivos áudio no arquivo de recursos do projeto...........................25

Figura 4.1: Modelo de Domínio da Aplicação........................................................................28

Figura 4.2: Diagrama de Classes da Aplicação.......................................................................29

Figura 4.3.1: Diagrama de Comunicação para Seleção de Tom.............................................30

Figura 4.3.2: Diagrama de Comunicação da instanciação dos botões da tela.........................31

Figura 4.3.3: Diagrama de Comunicação para a configuração de propriedades de botões.....32

Figura 4.3.4: Diagrama de Comunicação para o posicionamento de botões na tela...............33

Figura 4.3.5: Diagrama de Comunicação para Tocar Acorde.................................................34

Figura 6.1: Trecho de código com a localização e tamanho dos botões..................................36

Figura 6.2: Trecho do método SetButtonsProperties...............................................................37

Figura 6.3: Método SetLabels para configuração dos rótulos de tom selecionado..................37

Figura 6.4: Trecho do método AssignEvents da classe ButtonHandler...................................38

Figura 6.5: Método PlaySound que toca um acorde.................................................................39

Figura 6.6: Trecho do método SetResouceItem........................................................................39

Page 8: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

Figura 7.1: Primeiro Rascunho da Interface

Gráfica.................................................................40

Figura 7.2: Interface Gráfica implementada em

Java................................................................41

Figura 7.3: Versão final da Interface Gráfica implementada em C# (Windows

Forms)...........41

LISTA DE TABELAS

Tabela 2.1: Relação de Notas Musicais com as Letras do Alfabeto..................17

Tabela 2.2: Legenda para Nomeação de Acordes..............................................18

Tabela 2.3: Tons Maior......................................................................................19

Tabela 2.4: Tons Menor.....................................................................................19

Tabela 2.5: Acordes Maiores.............................................................................19

Tabela 2.6: Acordes Menores............................................................................19

Page 9: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

LISTA DE SIGLAS

C# Linguagem de Programação C#

m4a Formato de áudio m4a

IDE Integrated Development Environment

wav Formato de áudio wave

UML Unified Modeling Language

Page 10: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

RF Requisito funcional

API Application Programming Interface

RESUMO

Page 11: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

Este trabalho tem como objetivo criar uma aplicação de software para auxiliar o músico com a dificuldade de reconhecer acordes. Enquanto partituras apresentam-se como um recurso visual importante para treinar a capacidade de leitura e interpretação de notas musicais e acordes, notou-se uma necessidade de complementar o aprendizado do aluno com um apoio sonoro. Seja o usuário autodidata ou frequentador de aulas particulares, o intuito do software é permitir a ele se familiarizar com os sons dos acordes de um violão. No experimento foram utilizados dois softwares de produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição dos mesmos. Os acordes foram previamente pré-carregados na aplicação e são disponibilizados para consulta. A percepção sonora é uma habilidade isenta de talento musical que pode ser desenvolvida e aprimorada ao longo do tempo, se praticada com frequência com um instrumento real. Sendo o diferencial da aplicação não requerer conhecimento avançado em teoria musical, espera-se que seu uso contínuo aliado ao hábito de praticar com um violão, o aluno consiga melhorar sua capacidade de reconhecer acordes sem ter de recorrer a recursos auxiliares.

Palavras-chave: acorde, aplicação, tom.

Page 12: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

ABSTRACT

This study aims to create a software application to assist the musician with the difficulty of recognizing chords. While scores are presented as an important visual resource to train the ability to read and interpret musical notes and chords, it has been noticed a need to supplement student learning with a sound support. Be the user a self-taught or a private lessons goer, the purpose of the software is to allow him become familiar with the sounds of the chords of a guitar. In this experiment, two softwares of music production were used; GarageBand for recording of the chords (via an audio recorder) and Audacity to edit them. The chords were previously preloaded into the application and are available for consultation. Sound perception is a musical skill free of talent that can be developed and improved over time, if frequently practiced with a real instrument. The differential of the application is that it does not require advanced knowledge of music theory. It is expected that its continued use coupled with the habit of practicing with an acoustic guitar the student can improve his ability to recognize chords without resorting to auxiliary resources. 

Keywords: application, chord, tone.

Page 13: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

SUMÁRIO

1 Introdução....................................................................................................................... 13

2 Conceitos sobre Teoria Musical.......................................................................................15

2.1 Tons e Acordes.........................................................................................................16

2.2 Padrão de Nomenclatura Americana......................................................................17

2.3 Lista de Tons e Acordes Utilizados...........................................................................19

3 Processos de Desenvolvimento.......................................................................................20

3.1 Gravação de Acordes...............................................................................................20

3.2 Edição de Acordes: Remoção de Ruídos nas Gravações de Áudio..........................22

3.3 Importação de Arquivos de Áudio no Visual Studio...............................................26

4 Arquitetura do Software..................................................................................................28

4.1 Modelo de Domínio.................................................................................................29

4.2 Diagrama de Classes................................................................................................30

4.3 Diagramas de Comunicação.....................................................................................31

5 Requisitos da Aplicação...................................................................................................36

Requisitos Funcionais..............................................................................................36

6 Implementação................................................................................................................37

7 Interface Gráfica..............................................................................................................41

8 Conclusões e Trabalhos Futuros......................................................................................43

Referências Bibliográficas................................................................................................44

Webgrafia........................................................................................................................ 45

Page 14: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

14

1 INTRODUÇÃO

É sabido que, segundo professores de música, para se tornar um bom músico é preciso

dominar não só técnicas inerentes ao instrumento de estudo, o violão, mas o principal, saber

reconhecer notas musicais e acordes. Sendo essas técnicas, por exemplo, como posicionar os

dedos nas cordas ou como segurar o braço do violão, apresenta-se como uma grande

dificuldade a percepção de reconhecer os acordes sem o auxílio de um aparato textual, como

uma partitura.

Seja o músico um frequentador de aulas particulares ou autodidata, após conversas

com professores de música foi percebida a necessidade de amparar a dificuldade do aluno

iniciante em reconhecer o acorde apenas pelo som. O acorde é um elemento básico que

permite a criação de músicas, por isso foi concebida a ideia de uma aplicação de software que

pudesse servir como um complemento ao aprendizado. Entretanto, ressalta-se que o trabalho

não é um sistema de software educativo. Apesar de ser uma ferramenta que facilita o

aprendizado de música, o aplicativo não ensina ao usuário como executar os acordes de um

violão.

A habilidade de reconhecer sons musicais é isenta de talento e pode ser aprimorada

com o tempo se houver a prática com frequência. O objetivo da aplicação é, portanto, permitir

ao usuário ouvir os sons dos acordes de um violão sempre que quiser. Recomenda-se, aliado

ao uso deste software, o acompanhamento de um violão para que o intuito de familiarização

de acordes seja atingido; uma vez que o aluno pode comparar o som do acorde pré-gravado na

aplicação com o som que ele mesmo reproduz em seu instrumento.

Existem softwares que auxiliam o aprendizado de música, como o “Advanced Fretpro”

[http://www.tabguitarlessons.com/advanced-fretpro.htm – acesso em 12.05.2014], que mostra

com rigor como construir acordes no braço do violão e o próprio “GarageBand”, utilizado

nessa aplicação para a gravação de acordes; assim como a aplicação web “JamStudio”

[http://www.jamstudio.com – acesso em 29/11/14], não é necessário o usuário ter experiência

prévia com música.

Este estudo se originou como um subprojeto de Iniciação Científica no início de 2012,

com sua conclusão na metade de 2013. O projeto principal era criar uma guitarra que não

precisasse de cordas para ser tocada utilizando a plataforma open-source Arduino. Foi

Page 15: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

15

idealizada, naquela época, uma interface gráfica que, quando fosse conectada via USB ao

instrumento desenvolvido, mostraria ao usuário em tempo real as notas tocadas. Não havia

opção de tocar acordes com a guitarra. Entretanto, após pesquisas acerca da documentação da

API de comunicação com o hardware do computador, denominada RXTX, e orientações do

Professor Ítalo em relação às possibilidades efetivas de implementação, foi proposta como

alternativa uma ideia mais simples que vingaria o propósito da interação entre músico e

máquina, ampliando o horizonte no que se refere a auxiliar o aluno de música com uma

dificuldade de seu dia a dia.

Intitulada de StringlessGuitar App, trata-se de uma aplicação desktop desenvolvida

com a linguagem de programação C# com a tecnologia Windows Forms da Microsoft.

Anteriormente, quando ainda era Iniciação Científica, este aplicativo foi desenvolvido em

Java e a arquitetura do software foi em partes aproveitada; como o modelo de domínio, que

não teve alteração, o diagrama de classes e um diagrama de comunicação. Em relação à

Iniciação Científica, foram alterados efetivamente o código fonte e os diagramas de

comunicação. Além disso, o layout dos dois permaneceu praticamente o mesmo, mas os

acordes foram regravados e editados.

1.1 Organização do Trabalho

O trabalho será dividido em oito capítulos, sendo este introdutório e mais sete. No

capítulo 2, são apresentados conceitos fundamentais da Teoria Musical, que explica os

principais elementos que torneiam este trabalho, como tons e acordes. No capítulo 3, são

explicados detalhadamente os processos de desenvolvimento da aplicação, isto é, como os

acordes foram gravados e editados e, em seguida, importados na aplicação. No capítulo 4, a

arquitetura do software é explorada, destacando a estrutura e comportamento do sistema. O

capítulo 5 retrata os requisitos da aplicação e o capítulo 6, da implementação do aplicativo. O

capítulo 7 faz um comparativo da interface gráfica da aplicação quando era projeto de

Iniciação Científica com a interface gráfica final deste trabalho mais o primeiro esboço da

tela. O capítulo 8 apresenta as conclusões da pesquisa e trabalhos futuros.

Page 16: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

16

2 CONCEITOS SOBRE TEORIA MUSICAL

Música é a arte de combinar os sons simultaneamente e sucessivamente, com ordem,

equilíbrio e proporção, dentro do tempo (Nobre, 2006). Das principais partes que constituem a

música, a combinação dos sons sucessivos, ou seja, tocados uns após os outros, é o que se

conhece como melodia. Em relação aos sons simultâneos, ou seja, dados de uma só vez,

constituem uma harmonia.

Uma nota musical é um som que possui uma variação de tonalidade entre grave e

agudo, assim como os sons produzidos por instrumentos musicais. Esse tipo de som é

denominado som tonante. O som cuja variação de tonalidade não é possível distinguir é

denominado não-tonante. Popularmente, estes sons são conhecidos como ruídos.

Altura é uma propriedade do som. Ela permite diferenciar um som grave de um som

agudo, a partir da frequência das vibrações. Se o som tiver poucas vibrações, tem-se um som

grave, caso contrário, tem-se um som agudo. Notas musicais são sons que vibram em uma

altura definida; já os ruídos têm uma vibração irregular, portanto, sem altura definida.

As notas musicais são usadas para representar a altura dos sons musicais. As notas

musicais naturais, ou seja, as básicas no sistema musical ocidental são dó, ré, mi, fá, sol, lá, si.

Neste sistema há 5 outras notas musicais além das naturais as quais são chamadas de

acidentadas. Na música, o termo “acidente” é utilizado para descrever uma nota natural que

teve uma ligeira alteração sonora. Os acidentes, símbolos que ora podem ser “sustenido" ou

ora “bemol”, se encontram entre as notas dó e ré, ré e mi, fá e sol, sol e lá, e por último, lá e

si.

Entende-se como escala uma sequência finita e organizada de notas. As escalas

organizam as notas do som mais grave para o som mais agudo. Todavia, existem diversos

tipos de escala, empregadas para cada estilo musical como gospel, blues, jazz, rock, entre

outros. As principais escalas são a natural e a cromática. A natural, também chamada escala

de Dó Maior, é composta pelas notas nesta sequência: dó, ré, mi, fá, sol, lá, si, dó. À medida

que lê-se as notas de uma escala da esquerda para a direita (forma ascendente), o som das

notas se torna mais agudo. Da mesma forma, quando lê-se da direita para a esquerda (forma

descendente), o som das notas se torna mais grave.

Page 17: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

17

A escala utilizada neste trabalho é a cromática, que compreende as 12 notas do sistema

musical ocidental, isto é, as notas naturais incluindo as notas acidentadas. A escala cromática,

em comparação à escala de Dó Maior, quando é introduzida os acidentes ela será composta

pelas notas em sequência: Dó – dó sustenido – ré – ré sustenido – mi – fá – fá sustenido – sol

– sol sustenido – lá – lá sustenido - si – dó. (retirado de:

http://www.guitarbattle.com.br/licoes/3351-escalas-musicais-parte-1-definicao-penta-m7-

modos-gregos.html).

É a partir de uma escala que são construídos os acordes. A primeira nota em uma

escala é denominada raiz. A escala começa e termina com a nota raiz. Por exemplo, a escala

apresentada acima começa com dó e termina com dó. Um acorde construído a partir desta

escala, por exemplo, é o Dó Maior. (retirado de:

http://violaoeguitarra.musicblog.com.br/82443/O-QUE-E-EXATAMENTE-UMA-ESCALA).

2.1 Tons e Acordes

Um acorde é a reunião simultânea de no mínimo três notas, isto é, tocadas ao mesmo

tempo. Por exemplo, o acorde “Dó Maior” é formado pelas notas dó, mi e sol.

O termo tom se refere a uma nota em relação à qual se constrói uma escala que

seleciona acordes que tenham relação entre si para formar a sequência deles nas músicas. Por

exemplo, quando uma música está no tom de Dó Maior, isso significa que os acordes

selecionados, isto é, os acordes possíveis de serem tocados respeitando a escala são: Mi

Menor, Lá Menor, Ré Menor, Sol Maior, Dó Maior, Fá Maior, Si Bemol, e Si diminuto.

Um outro significado para o conceito de tom é o intervalo que existe entre duas notas

musicais quaisquer. Ao menor intervalo possível tem-se um semitom, que equivale a distância

de uma casa (ou traste) no braço do violão. Por exemplo, da nota dó à nota dó sustenido, tem-

se um semitom. Ao intervalo que equivale a soma de dois semitons tem-se um tom. Por

exemplo, da nota dó à nota ré, da nota ré à nota mi, etc.

Page 18: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

18

Figura 2: Semitom entre as notas Dó e Ré no braço do violão (retirada de: http://jodayemidio.blogspot.com.br/2010/01/dicas-de-violao-e-guitarra-3.html)

Diz-se que um tom ou um acorde é maior quando a distância entre as notas (ou

intervalo) é equivalente a um tom. Por exemplo, da nota dó à nota ré o intervalo é de um tom,

pois contabiliza-se duas casas (trastes) até a próxima nota, conforme a figura acima. Diz-se

que um tom ou acorde é menor quando os intervalos entre as notas são de um semitom. Por

exemplo, da nota mi à nota fá o intervalo é de um semitom, ou seja, é contabilizada uma casa

para a próxima nota.

A alteração sonora que uma nota pode ter é representada pelos acidentes sustenido e

bemol. Se uma nota teve um aumento sonoro, seu nome será sucedido da palavra sustenido.

Por exemplo, ao aumento da nota dó, tem-se a nota dó sustenido. O mesmo vale para quando

uma nota tem uma diminuição sonora, exceto ao fato que seu nome será sucedido pela palavra

bemol. Por exemplo, se a nota ré teve uma diminuição, então será chamada de ré bemol. O

que marca essa elevação ou diminuição sonora é o semitom. Ao elevar um semitom, tem-se

uma nota sustenida. Ao abaixar um semitom, tem-se uma nota bemol. De fato, os semitons

existem no intervalo das notas que são marcadas pelos acidentes.

2.2 Padrão de Nomenclatura Americana

Cada nota musical é representada por uma letra do alfabeto. Segundo o padrão de

nomenclatura americana, utiliza-se as sete primeiras letras do alfabeto para designar as notas:

Page 19: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

19

A LáB SiC DóD RéE MiF FáG Sol

Tabela 2.1 – Relação de Notas Musicais com Letras do Alfabeto(retirada de GarageBand - adaptado)

As letras podem fazer referências a acordes, inclusive. Esse tipo de representação é

utilizado em cifras. Os acidentes musicais (bemol e sustenido) são representados,

respectivamente, pela letra b minúscula e o símbolo #. Para os acordes, há uma legenda

adicional:

m menor# sustenido#m sustenido menorb bemolbm bemol menordim (ou °) diminuto

Tabela 2.2 – Legenda para Nomeação de Acordes (retirada de GarageBand - adaptado)

A representação dos acordes em formato de cifra é composta por pelo menos uma

letra. Por exemplo, o acorde Ré Maior é representado pela letra D. É possível utilizar o

caractere ‘M’ para frisar que o acorde é maior, contudo, não é necessário e nesse estudo esse

artifício foi descartado. Os acordes menores, porém, precisam ser sucedidos do caractere ‘m’

após uma letra correspondente a uma nota musical. Por exemplo, o acorde Lá Menor é

representado pela sigla “Am”, que corresponde a Lá (A) mais o ‘m’ relativo ao menor. O

número máximo de siglas para representação de um acorde é dois. Por exemplo, o acorde Fá

sustenido bemol é escrito como “F#m”. Um acorde não pode ser menor e diminuto ao mesmo

tempo.

Page 20: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

20

2.3 Lista de Tons e Acordes Utilizados

Há uma série de possibilidades de formação de acordes. Nesse estudo, no entanto, esse

conceito não é determinante, e sim os acordes possíveis de serem tocados para cada tom que

define as notas relacionadas em uma música. Para cada tom é possível tocar oito acordes.

Segue abaixo a lista de tons maior e tons menor:

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

Tabela 2.3 – Tons Maior (retirada de GarageBand)

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

Tabela 2.4 – Tons Menor (retirada de GarageBand)

Abaixo seguem os acordes relacionados aos respectivos tons:

Tabela 2.5 –

Acordes Maiores

(retirada de GarageBand - adaptado)

C Maior Em Am Dm G C F Bb BdimDb Maior

Fm Bbm Ebm Ab Db Gb B Cdim

D Maior F#m Bm Em A D G C C#°Eb Maior Gm Cm Fm Bb Eb Ab Db DdimE Maior G#m C#m F#m B E A D D#°F Maior Am Dm Gm C F Bb Eb EdimF# Maior A#m D#m G#m C# F# B E FdimG Maior Bm Em Am D G C F F#°Ab Maior

Cm Fm Bbm Eb Ab Db Gb Gdim

A Maior C#m F#m Bm E A D G G#°Bb Maior Dm Gm Cm F Bb Eb Ab AdimB Maior D#m G#m C#m F# B E A A#°

Page 21: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

21

Tabela 2.6 –

Acordes Menores

(retirada de GarageBand - adaptado)

3 PROCESSOS DE DESENVOLVIMENTO

3.1 Gravação de Acordes

Os acordes disponibilizados na aplicação para consulta foram gravados com um

software de produção musical, o GarageBand para iPad e então, pré-carregados no aplicativo.

Sua interface permite que, com um simples toque em cima da sigla do acorde, saia seu som.

Para a gravação, foi utilizado o gravador de áudio de um iPod para a captação dos sons dos

acordes.

C Menor Eb Ab Ddim Gm Cm Fm Bb GC# Menor E A D#° G#m C#m F#m B G#D Menor F Bb Edim Am Dm Gm C AEb Menor Gb B Fdim Bbm Ebm Abm Db AbE Menor G C F#° Bm Em Am D BF Menor Ab Db Gdim Cm Fm Bbm Eb CF# Menor A D G#° C#m F#m Bm E C#G Menor Bb Eb Adim Dm Gm Cm F DG# Menor

B E A#° D#m G#m C#m F# D#

A Menor C F Bdim Em Am Dm G EBb Menor Db Gb Cdim Fm Bbm Ebm Ab FB Menor D G C#° F#m Bm Em A F#

Page 22: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

22

Figura 3.1 – Interface do Aplicativo GarageBand para iPad

O formato original das gravações é m4a, mas a IDE Visual Studio só aceita arquivos

áudio no formato wav. Então, foi necessário converter todas as faixas para este formato

utilizando um conversor online (http://www.media.io – acesso em 12/03/14).

Page 23: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

23

3.2 Edição de Acordes: Remoção de Ruídos nas Gravações de Áudio

Cada gravação de áudio contendo o som de um acorde necessita passar por um

tratamento de remoção de ruídos. Isso se deve ao fato de que as gravações não foram feitas

em um ambiente com acústica apropriada, como um estúdio. O software de produção musical

utilizado no experimento é o Audacity.

O processo é ilustrado com o diagrama de atividades abaixo (figura 3.2.1). Como pré-

condição, a faixa de áudio deve ter sido convertida do formato m4a (gravado originalmente)

para o formato wav (aceito pela aplicação).

No início, carrega-se a gravação de áudio no software Audacity; em seguida, o arquivo

é tocado. Se o volume do áudio estiver baixo, aplica-se o efeito de amplificação; senão,

aplica-se diretamente o efeito de remoção de ruídos. Se após a amplificação a gravação tiver

ruídos, aplica-se o efeito de remoção de ruídos; senão, encerra-se o processo. Logo em

seguida, testa-se o áudio corrigido, que terá uma perda no seu volume por conta do último

efeito. Então, corta-se o excesso da faixa que poderá ter ruídos remanescentes ou em relação à

parte da faixa que foi totalmente “silenciada”. Se depois desta fase o volume estiver baixo

ainda, aplica-se amplificação da gravação até achar o nível ideal. Senão, a gravação é salva

em um diretório selecionado e encerra-se o processo.

Page 24: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

24

Figura 3.2.1 – Diagrama de Atividades do Processo de Remoção de Ruídos

Page 25: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

25

As figuras abaixo detalham as faixas de áudio no Audacity nos cenários acima:

a) Amplificação de Som (Volume Baixo)

Figura 3.2.2: Amplificando o som de uma faixa com volume baixo

b) Remoção de Ruído

Figura 3.2.3: Aplicando o Efeito de Remoção de Ruído

Page 26: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

26

c) Corta Excesso da Faixa (Ruídos Remanescentes)

Figura 3.2.4 – Eliminando ruídos remanescentes da gravação

d) Corta Excesso da Faixa (Parte Silenciada)

Figura 3.2.5 – Cortando o excesso da faixa sem som

As gravações corrigidas apresentam uma sonoridade melhor, além de ocupar menos

espaço na memória, pois uma faixa depois da aplicação deste processo terá de 1 a 3 segundos

a menos de duração, o que diminui em média 50 a 150 kbytes do arquivo. No total, são 192

gravações a serem importadas no aplicativo posteriormente.

Page 27: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

27

3.3 Importação de Arquivos de Áudio no Visual Studio

Na IDE Visual Studio, uma opção de persistência de objetos é utilizar um arquivo de

recursos (exclusivo da IDE). Um recurso é um dado não executável implantado em uma

aplicação. Por exemplo, um recurso pode ser um arquivo áudio, uma imagem, como um

logotipo ou uma mensagem de erro. Na aplicação, esse arquivo é identificado pela extensão

resx. Os dados dos recursos são compilados no arquivo executável.

As 192 gravações de áudio foram salvas previamente em um diretório local, logo após

terem sido editadas. Então, ao clicar em “Add Resource” na janela “Propriedades” do projeto,

como na figura abaixo, os acordes foram adicionados do diretório diretamente no arquivo de

recursos da aplicação.

Figura 3.3 – Adicionando arquivos áudio no arquivo de recursos do projeto

Ao armazenar os dados em um arquivo de recursos é possível alterar seus dados sem

ter de recompilar toda a aplicação. É, inclusive, uma maneira de encapsular todo o

armazenamento de dados persistentes em um só local na aplicação.

Page 28: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

28

No começo da pesquisa, a primeira versão não foi feita sob essa abordagem; o

armazenamento dos acordes era feito em diretório local e o problema que ocorria era que a

aplicação não conseguia ser executada em outras máquinas, pois as gravações obviamente não

existiam em outros diretórios.

Page 29: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

29

4 ARQUITETURA DO SOFTWARE

A arquitetura de software é basicamente a descrição da organização ou estrutura de um

sistema de software em componentes de programa (módulos). Além disso, a arquitetura

reflete a maneira como esses componentes interagem entre si. Em um sentido mais amplo, no

entanto, os componentes representam os principais elementos de um sistema e suas

interações. No contexto de projeto de arquitetura, um componente de software pode ser algo

tão simples quanto um módulo de programa ou classe orientada a objetos (Pressman, 2011).

A arquitetura evidencia decisões de projeto iniciais que terão profundo impacto em

todo o trabalho de engenharia de software que vem a seguir e, tão importante quanto, no

sucesso final do sistema como uma entidade operacional, é o que afirma Bass (2003), no que

se refere à importância da arquitetura de software.

A projeção da organização de um sistema para satisfazer aos seus requisitos funcionais

e não funcionais é o que se conhece como projeto de arquitetura. Um estilo arquitetural define

uma família de sistemas em termos de um padrão de organização estrutural (Shaw, 1996); ou

seja, um estilo de arquitetura tem como objetivo estabelecer uma estrutura para todos os

componentes do sistema. Dentre as classificações de estilos arquiteturais, a arquitetura

utilizada neste trabalho é a orientada a objetos. Neste estilo, os componentes de um sistema

encapsulam dados e as operações que devem ser aplicadas para manipular os dados

(Pressman, 2011).

A UML (Unified Modeling Language) é uma linguagem de modelagem que foi

projetada para sistemas orientados a objetos. O processo de projeto orientado a objetos inclui

atividades para projetar a arquitetura do sistema, identificar objetos no sistema, descrever o

projeto usando diferentes modelos de objetos e documentar as interfaces dos componentes

(Sommerville, 2011). Em outras palavras, durante o desenvolvimento de um sistema

orientado a objetos vários modelos podem ser produzidos com o intuito de descrever sua

estrutura e seu comportamento, em diferentes níveis de abstração. O modelo que se refere à

estrutura é denominado estático, enquanto o modelo que se refere ao comportamento do

sistema é denominado dinâmico.

Page 30: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

30

Um artefato de software é um produto de uma ou mais atividades durante o

desenvolvimento de um software. Portanto, os modelos da aplicação e o código fonte são os

artefatos produzidos neste trabalho.

Sendo assim, foram desenvolvidos um modelo de domínio, para a contextualização

dos conceitos da aplicação; um diagrama de classes, que compõe a estrutura do aplicativo; e

diagramas de comunicação, com destaque para os cenários nos quais:

i. O usuário seleciona um tom;

ii. Os botões referentes aos acordes são instanciados;

iii. As propriedades dos botões (localização, texto e tamanho) são configuradas;

iv. Os botões são adicionados no painel;

v. O usuário toca um acorde.

4.1 Modelo de Domínio

Um modelo de domínio é uma representação visual de classes conceituais ou objetos

do mundo real, em um contexto (Fowler, 1996). Ou seja, é uma descrição de coisas/conceitos

em uma situação real, mas não de objetos de software, tais como classes em C#, por exemplo.

O modelo de domínio, produzido na etapa de análise, ajuda na elaboração da lista de

requisitos.

Nesse sentido, um tom determina 8 acordes (sem as variações) a serem tocados. Um

tom pode ser maior ou menor; por causa disso, temos que Acordes Maior e Acordes Menor

são um tipo de Acorde. Um acorde é composto por 3 notas tocadas simultaneamente. As

instâncias ‘C’ e ‘C#m’ são apenas um exemplo de nota e acorde, respectivamente.

Page 31: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

31

Figura 4.1 – Modelo de Domínio da Aplicação

4.2 Diagrama de Classes

A classe principal que controla a aplicação é a frmMainForm. É ela que delega

requisições a outras classes para tratar eventos do usuário, como tocar um acorde. Há duas

outras classes de formulário, a frmHelpForm e a frmAboutForm que mostram uma tela

para o usuário contendo instruções de uso e informações da aplicação, respectivamente. A

classe ButtonFactory é aquela que encapsula a instanciação de todos os botões da tela. A

lógica de tocar um acorde é realizada pela ButtonHandler, que implementa uma interface

(IStreamSettings) que a permite localizar um arquivo de áudio no arquivo de recursos

embutido na aplicação.

Page 32: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

32

Figura 4.2 – Diagrama de Classes da Aplicação

4.3 Diagramas de Comunicação

i. Seleção de um tom

Quando um usuário seleciona um tom, a aplicação mostra por meio de um rótulo qual

tom foi selecionado, acima do ComboBox. Por exemplo, se o tom selecionado foi “D Maior”,

o rótulo mostra “D Major Selected” acima do ComboBox de tons maiores. Agora, se um tom

menor for selecionado, por exemplo, o “A Menor”, o rótulo aparece acima do ComboBox de

tons menores como “A Minor Selected”.

Page 33: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

33

Ambas são operações da classe frmMainForm. Após configurar o rótulo, o painel é

sempre limpado para carregar os botões referentes a um tom. Pois, logo após o usuário

escolher um tom e os oito acordes daquele tom forem carregados, quando ele escolher outro

tom o painel deve ser limpo para carregar os outros acordes.

Figura 4.3.1 – Diagrama de Comunicação para Seleção de Tom

ii. Instanciação de botões

A lógica de instanciação de todos os botões que se referem aos acordes está localizada

na classe ButtonFactory. A instanciação ocorre após o usuário selecionar um tom; 8 botões

serão instanciados. Como exemplo, o tom escolhido foi C Menor. O tom virá como parâmetro

(string) do item selecionado no ComboBox. A classe ButtonFactory receberá uma mensagem

da classe frmMainForm para instanciar os oito acordes relacionados a este tom

(CreateMinorButtonsForSelectedTone), e então delega essa responsabilidade para um método

da mesma classe (CreateButtons) que faz a instanciação dos botões.

Page 34: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

34

No diagrama por motivos de visualização foram apenas ilustradas apenas 3 instâncias

de botão, que representam os acordes Eb, Ab e Gm do tom C Menor, mas são sempre geradas

oito instâncias de acorde para cada tom.

Figura 4.3.2– Diagrama de Comunicação da Instanciação dos Botões da Tela

iii. Configuração de propriedades dos botões

Depois dos botões terem sido instanciados, suas propriedades (localização, tamanho e

texto) são configuradas. A classe frmMainForm manda uma mensagem para a classe

ButtonFactory para realizar essa operação. Então, para cada botão que representa um acorde

serão enviadas mensagens para configurar a localização de cada botão; o tamanho (pré-fixado

em coordenadas altura x largura) e o texto de cada botão.

Page 35: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

35

Figura 4.3.3 – Diagrama de Comunicação para a configuração de propriedades dos botões

iv. Posicionamento dos botões no painel

Uma vez que tem-se os botões (acordes) referentes a um tom instanciados e suas

propriedades configuradas, eles são posicionados linearmente na tela. A mensagem que a

classe frmMainForm envia para a classe ButtonFactory recupera o botão referente àquele tom

e logo em seguida, o passa como parâmetro para adicioná-lo na tela.

Page 36: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

36

Figura 4.3.4 – Diagrama de Comunicação para o posicionamento de botões na tela

v. Tocar acorde

Quando o usuário clica no botão para obter o som de um acorde, essa mensagem é

propagada da tela para a classe ButtonHandler, que quando a recebe ela realiza a operação

PlaySound, passando como parâmetro o nome do acorde. Nesta operação, a classe

ButtonHandler instancia um objeto da classe SoundPlayer e, em seguida, manda uma

mensagem de volta para a classe ButtonHandler para obter a gravação de áudio armazenada

Page 37: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

37

no arquivo de recursos. Finalmente, a classe SoundPlayer toca o som pelo envio da mensagem

Play().

Figura 4.3.5 – Diagrama de Comunicação para Tocar Acorde

5 REQUISITOS DA APLICAÇÃO

Um requisito de um sistema de software consiste em uma descrição do que o sistema

deve fazer, os serviços que oferecem e as restrições em relação ao seu funcionamento,

visando atender às necessidades do cliente. Os requisitos são normalmente classificados em

requisitos funcionais e requisitos não funcionais. Essa aplicação possui apenas requisitos

funcionais. Requisitos funcionais são declarações de serviços que o sistema deve fornecer, de

Page 38: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

38

como o sistema deve reagir a entradas específicas e de como o sistema deve se comportar em

determinadas situações (Sommerville, 2011).

Requisitos Funcionais

Nesse sentido, foi elaborado uma lista de requisitos funcionais referentes a esta

aplicação:

RF #1: A aplicação deve armazenar os sons dos acordes de um violão para consulta

em um arquivo de recursos no Visual Studio;

RF #2: A aplicação deve permitir o usuário ouvir um som de um determinado acorde,

quando selecionado;

RF #3: A aplicação deve mostrar na tela, por meio de um rótulo, qual tom foi

selecionado;

RF #4: A aplicação deve carregar os botões que representam os acordes no painel

inferior, para cada tom selecionado;

RF #5: A aplicação deve limpar o painel sempre quando um tom for selecionado, para

carregar acordes referentes a outro tom.

RF #6: O sistema deve dispor oito diferentes acordes para exibição na tela para cada

tom selecionado no ComboBox;

RF #7: Apenas um tom pode ser selecionado por vez. Após receber a informação que

o tom mudou, ou seja, um item do ComboBox, é disparado um evento que carrega os acordes

referentes ao outro tom selecionado.

6 IMPLEMENTAÇÃO

Esse capítulo do trabalho retrata com detalhes a implementação do sistema, com

trechos de código para exemplificar.

Há um painel sem bordas desenhado na parte inferior central da tela. Nele devem ser

dispostos em posições fixa oito botões que vão representar os acordes. Em relação à

localização dos botões, eles foram implementados com o tipo Point, que representa um par de

Page 39: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

39

coordenadas (x, y) que define um ponto em um plano bidimensional. Já o tamanho dos botões

é dado por um par de inteiros, especificando altura x largura, pré-fixado em (75,23).

Figura 6.1– trecho de código com a localização e tamanho dos botões

Os botões têm propriedades que precisam ser configuradas, tais como localização,

tamanho e texto. O método SetButtonsProperties da classe ButtonFactory é responsável por

fazer tais configurações. A localização de cada botão é atribuída à propriedade Location de

cada botão, assim como o tamanho é atribuído à propriedade Size de cada um. A ordem com

que cada acorde aparece na tela foi a mesma utilizada no software de produção musical

GarageBand.

Como nomenclatura de nomeação de botões na aplicação, foi decidido utilizar a sigla

“btn” antecedendo o nome de cada botão, seguido do acorde e seu tom, separados por um

underscore. Por exemplo, para o acorde “Dm” do tom “C Maior”, tem-se: btnDm_CMajor.

Page 40: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

40

Figura 6.2- trecho do método SetButtonsProperties

Sempre quando o usuário seleciona um tom um rótulo marca acima do ComboBox

referente àquele tom qual tom foi selecionado. O método SetLabels recebe um flag como

parâmetro determinando se o tom selecionado é maior ou não. Isso separa a verificação de

tons maiores de tons menores.

Os testes dentro do método verificam qual item foi selecionado do ComboBox e

atribui ao rótulo o texto do tom selecionado, e limpa o outro rótulo caso necessário. Por

exemplo, se for escolhido um tom maior, e em seguida, um tom menor, o rótulo que marca o

tom maior selecionado deve ser limpado da tela, marcando apenas o tom menor selecionado.

Figura 6.3– método SetLabels para configuração dos rótulos de tom selecionado

Assim que os botões são adicionados na tela, o evento de clique do botão para tocar

um acorde é vinculado com o método tratador deste evento. Isso é feito somente quando um

tom é selecionado. As instâncias dos botões são recuperadas por uma propriedade pela classe

ButtonFactory, como mostra a figura a seguir. Se o tom selecionado é o “C Maior”, por

exemplo, serão armazenadas as referências apenas para os métodos que tocam os acordes

deste tom.

Page 41: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

41

Figura 6.4 – Trecho do método AssignEvents da classe ButtonHandler

O método PlaySound é responsável por tocar o acorde quando o usuário clica em um

botão. Ele recebe como parâmetro uma string contendo o nome do acorde. As instruções estão

dentro de um bloco using, que automaticamente limpa os recursos não utilizados na memória

(arquivo de áudio).

Figura 6.5 – Método PlaySound que toca um acorde

O método SetResouceItem localiza no arquivo de recursos a gravação de áudio e a

atribui à propriedade Stream do objeto SoundPlayer.

Page 42: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

42

Figura 6.6– Trecho do método SetResouceItem

7 INTERFACE GRÁFICA

O primeiro rascunho da interface gráfica surgiu em meados de 2012, quando o projeto

era ainda Iniciação Científica. A partir deste esboço, naquela época foi implementada uma

tela em Java (com a API Swing) e, finalmente, para este trabalho, a versão final foi

implementada com Windows Forms.

Page 43: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

43

Figura 7.1– Primeiro rascunho da interface gráfica

Figura 7.2 – Interface implementada em Java

Page 44: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

44

Figura 7.3 – Versão final da interface gráfica implementada em C# (Windows Forms)

8 CONCLUSÕES E TRABALHOS FUTUROS

Embora nenhum acompanhamento tenha sido feito com alunos de música durante o

desenvolvimento do projeto, foi possível, no entanto, apresentá-lo para alguns músicos

profissionais, DJs, adolescentes e guitarristas amadores. Suas opiniões levantaram

possibilidades de não só implementar funcionalidades futuras que continuarão a ajudar no que

se refere ao reconhecimento de acordes, mas de acreditar que interface do software o torna

intuitivo e fácil de usar.

Page 45: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

45

Ao longo do período em que este trabalho foi desenvolvido, as opiniões de

profissionais da área de música e usuários acerca de funcionalidades extras que poderão ser

implementadas neste aplicativo no futuro, são:

1) Implementação das variações dos acordes;

2) Permitir ao usuário gravar uma sequência de acordes com seu instrumento, e

depois compará-los com uma sequência de acordes pré-gravadas na aplicação;

3) Apresentar a partitura de cada acorde, quando selecionado;

4) Incluir um temporizador que permite o usuário ouvir por determinado tempo

uma sequência de acordes para depois tentar reproduzi-la em seu violão.

9 REFERÊNCIAS BIBLIOGRÁFICAS

FOWLER, M. Analysis Patterns: Reusable Object Models. Reading, MA.: Addison-Wesley, 1996.

SOMMERVILLE, I. Engenharia de Software. São Paulo: Prentice Hall, 2011.

Page 46: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

46

PRESSMAN, Roger S. Engenharia de Software: Uma Abordagem Profissional. –7ª ed. – Porto Alegre: AMGH, 2011.

SHARP, J. Microsoft Visual C# 2010 Step by Step. – Redmond: Bookman, 2010.

TROELSEN, A. Pro C# 5.0 and the .NET Framework 4.5. – Nova York: Apress, 2012 – 1ª ed.

FOWLER, M.; BECK, K.; BRANT, J. et al. Refactoring: Improving the Design of Existing Code. – Pearson, 2010.

BASS, L; CLEMENTS, P; KAZMAN, R. Software Architeture in Practice. 2 ed. Addison-Wesley, 2003.

SHAW, M; GARLAN, D. Software Architeture: Perspectives on an Emerging Discipline. Prentice Hall, 1996.

10 WEBGRAFIA

Violão Brasil. “Teoria musical básica para violão”. Disponível em: http//www.violaobrasil.com.br/curso-de-violao-teoria-basica. Acesso em: 02 junho 2014.

Page 47: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

47

Nobre, Jorge. “Apostila de Teoria Musical”. Disponível em: <http://www2.secult.ce.gov.br/Recursos/PublicWebBanco/Partituraacervo/Apt000002.pdf>. Acesso em: 27 outubro 2014.

Portal de Educação Musical do Colégio Pedro II. “Apostila de Educação Musical – 6º Ano do Ensino Fundamental”. Disponível em: <http://www.portaledumusicalcp2.mus.br/apostilas/pdfs/6ano_00_apostila%20completa.pdf>. Acesso em: 28 outubro 2014.

Bezerra, Ronaldo. “Teoria – Sistema Musical Ocidental”. Disponível em: <http://guiame.com.br/colunistas/ronaldo-bezerra/teoria-sistema-musical-ocidental.html#.VE8UjfldWSo>. Acesso em: 28 outubro 2014.

Mini-curso de Teoria Musical. “Os acidentes Musicais”. Disponível em: <http://www.academiamusical.com.pt/curso-teoria-musical/os-acidentes-musicais/>. Acesso em: 29 outubro 2014.

Bartz, Guilherme. “Notas e letras”. Disponível em: <http://www.estacaomusical.com.br/aprendendomusica/24/notas-e-letras>. Acesso em: 29 outubro 2014.

Dos Santos, Paula P. “Notas Musicais”. Disponível em: <http://www.infoescola.com/musica/notas-musicais/>. Acesso em: 29 outubro 2014.

Bartz, Guilherme. “Escala Pentatônica”. Disponível em: <http://www.estacaomusical.com.br/aprendendomusica/23/escala-pentatonica>. Acesso em: 01 novembro 2014.

Violão Popular – Curso Básico. Disponível em: <http://www.paralerepensar.com.br/violao_popular.htm>. Acesso em: 02 novembro 2014.

Aulas de Violão e Guitarra. “O que é exatamente uma escala”. Disponível em: <http://violaoeguitarra.musicblog.com.br/82443/O-QUE-E-EXATAMENTE-UMA-ESCALA/> Acesso em: 03 novembro 2014.

Warren, D. “Escalas Musicais (Parte 1) – Definição, Penta M7 e Modos Gregos”. Disponível em: <http://www.guitarbattle.com.br/licoes/3351-escalas-musicais-parte-1-definicao-penta-m7-modos-gregos.html>. Acesso em: 03 novembro 2014.

Mundo do Violão. “Escala Cromática”. Disponível em: <http://www.mundodoviolao.com.br/teoria-musical/escala-cromatica/>. Acesso em: 04 novembro 2014.

Emidio, J. “Dicas de Violão e Guitarra”. Disponível em: <http://jodayemidio.blogspot.com.br/2010/01/dicas-de-violao-e-guitarra-3.html>. Acesso em: 04 novembro 2014.

Page 48: stringlessguitarapp.files.wordpress.com€¦  · Web viewde produção musical; GarageBand, para a gravação dos acordes (por meio de um gravador de áudio) e Audacity, para a edição

48

http://msdn.microsoft.com/pt-br/library/ht9h2dk8(v=vs.90).aspx (Recursos Vinculados versus Recursos Incorporados – Acesso em 01 novembro 2014).

http://www.codeproject.com/Articles/17422/Embedding-and-Playing-WAV-Audio-Files-in-a-WinForm (Incorporando e tocando arquivos WAV em um projeto Windows Forms – acesso 02 novembro 2014).