38
Universidade Federal Fluminense Instituto de Computa¸ c ˜ ao Departamento de Ci ˆ encia da Computa¸ c ˜ ao Filipe Coimbra Cavalcante Aplicativo h ´ ıbrido para desenvolvimento de ouvido absoluto Niter´ oi-RJ 2018

Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

Universidade Federal Fluminense

Instituto de Computacao

Departamento de Ciencia da Computacao

Filipe Coimbra Cavalcante

Aplicativo hıbrido para desenvolvimento de ouvido

absoluto

Niteroi-RJ

2018

Page 2: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

ii

Filipe Coimbra Cavalcante

Aplicativo hıbrido para desenvolvimento de ouvido absoluto

Trabalho submetido ao Curso de

Bacharelado em Sistemas de In-

formacao da Universidade Fede-

ral Fluminense como requisito

parcial para a obtencao do tıtulo

de Bacharel em Sistemas de In-

formacao.

Orientador: Prof. Marcos Lage

Niteroi-RJ

2018

Page 3: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

Ficha Catalográfica elaborada pela Biblioteca da Escola de Engenharia e Instituto de Computação da UFF

C376 Cavalcante, Filipe Coimbra

Aplicativo híbrido para desenvolvimento de ouvido absoluto /

Filipe Coimbra Cavalcante. – Niterói, RJ : [s.n.], 2017.

37 f.

Projeto Final (Bacharelado em Sistemas de Informação) –

Universidade Federal Fluminense, 2017.

Orientador: Marcos Lage.

1. Aplicativo móvel. 2. Ouvido absoluto. 3. Percepção auditiva. 4.

Percepção musical. I. Título.

CDD 005.7139

Page 4: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

iv

Filipe Coimbra Cavalcante

Aplicativo hıbrido para desenvolvimento de ouvido absoluto

Trabalho submetido ao Curso de

Bacharelado em Sistemas de Informacao

da Universidade Federal Fluminense como

requisito parcial para a obtencao do tıtulo

de Bacharel em Ciencia da Computacao.

Aprovado por:

Marcos Lage, D.Sc. - Orientador

UFF

Aline Marins Paes Carvalho, D.Sc.

UFF

Daniel Cardoso Moraes de Oliveira, D.Sc.

UFF

Anselmo Antunes Montenegro, D.Sc.

UFF

Niteroi-RJ

2018

Page 5: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

v

Agradecimentos

Gostaria de agradecer aos meus pais por todo apoio e suporte dado durante todo

perıodo em que estive na faculdade. Aos amigos Diogo Souza, Fabrizio Moura, Henrique

Linhares, Pablo Curty e Raphael Quintanilha; sou muito grato por cada momento que

passamos juntos, passando pelos grupos de estudo antes das provas e as madrugadas

fazendo trabalhos em grupo, tudo foi mais leve por estar com voces. Ao professor Marcos

Lage por sua postura e profissionalismo em todo tempo que passamos juntos. A professora

Aline Paes pelo socorro no momento difıcil. Aos professores Daniel Cardoso Moraes de

Oliveira e Anselmo Montenegro Nunes pela presenca na banca examinadora. Sem cada

um de voces nao seria possıvel terminar esse projeto, sou muito grato.

Page 6: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

vi

Resumo

Ouvido absoluto e a habilidade de identificar notas musicais sem o auxılio de uma

referencia. Muitos musicos possuem a visao de que indivıduos extremamente talentosos

ja nascem com essa habilidade e nao ha maneira de obte-la. A verdade e que todos

nos nascemos com a capacidade de adquirir ouvido absoluto, porem, depois da infancia

essa capacidade diminui. Ainda assim, e possıvel alcancar resultados proximos de um

ouvido absoluto iniciando os estudos depois da infancia. Este trabalho mostra detalhes do

desenvolvimento do aplicativo movel Improve Your Pitch Memory (IYPM). O aplicativo

tem o objetivo de apresentar ao usuario uma metodologia de estudo de ouvido absoluto

proposta pelo Rick Beato [Release Rick Beato]. O aplicativo e hıbrido, ou seja, nao foi

desenvolvido em linguagem nativa. Neste trabalho foram detalhados os pros e contras

de se desenvolver um aplicativo movel hıbrido nos dias de hoje, pros e contras esses que

puderam ser observados na pratica durante o desenvolvimento do IYPM.

Palavras-chave: ouvido absoluto, aplicativos hıbridos, memorizacao de notas musicais.

Page 7: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

vii

Abstract

Perfect pitch is the ability to identify musical notes without the benefit of a refe-

rence tone. Many musicians share the opinion that only very talented individuals are born

with perfect pitch and there is no other way to obtain it. The truth is: all of us are born

with the capability of developing perfect pitch, but, after childhood this capability decrea-

ses. Beyond that, after childhood is still possible to achieve results close to what a person

with perfect pitch (developed on childhood) would achieve. This monography details the

development of a mobile application named ”Improve Your Pitch Memory”(IYPM). The

application’s goal is to reveal to the user a perfect pitch method developed by Rick Beato

[Release Rick Beato]. The app is hybrid, therefore it was not developed on native lan-

guage. The pros and cons for developing a hybrid app nowadays were detailed on this

monography. Those pros and cons could be closely observed during the development of

IYPM.

Keywords: perfect pitch, pitch memory, hybrid apps.

Page 8: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

Sumario

Resumo vi

Abstract vii

Lista de Figuras 1

1 Introducao 2

1.1 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 IYPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Trabalhos Anteriores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.4 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Conceitos basicos 5

2.1 Background musical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.1 Notas musicais e intervalos . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.2 Sistema musical ocidental . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.3 Ouvido absoluto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.4 Metodologia utilizada no IYPM . . . . . . . . . . . . . . . . . . . . 9

2.2 Background computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2.1 Aplicativos moveis hıbridos . . . . . . . . . . . . . . . . . . . . . . 10

2.2.2 Ionic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 Estrutura da aplicacao 12

3.1 Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.2 Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.3 Helper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.4 Paginas Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

viii

Page 9: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

ix

3.5 Gravacao e Reproducao de audio . . . . . . . . . . . . . . . . . . . . . . . 16

3.6 Algoritmo de copia e busca de melodias . . . . . . . . . . . . . . . . . . . . 18

3.6.1 Estrutura de diretorios . . . . . . . . . . . . . . . . . . . . . . . . . 18

4 Casos de uso 21

4.1 Reproduzir melodia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.2 Importar ou Remover melodia . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.3 Configuracoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

5 Conclusoes, limitacoes e trabalhos futuros 25

5.1 Conclusoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5.1.1 Aplicativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5.1.2 Desenvolvimento de aplicativos hıbridos . . . . . . . . . . . . . . . 26

5.2 Limitacoes e trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . 26

Page 10: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

1

Lista de Figuras

2.1 Tabela de intervalos musicais. . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Notas musicais e suas respectivas frequencias no padrao ocidental. . . . . . 8

3.1 Diagrama de dependencia entre os componentes da aplicacao . . . . . . . . 12

3.2 Paginas do aplicativo parte 1. . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.3 Paginas do aplicativo parte 2. . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.4 Alteracao feita no codigo fonte do plugin Media. . . . . . . . . . . . . . . . 16

4.2 Relogio para definir a hora da notificacao diaria. . . . . . . . . . . . . . . . 24

Page 11: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

Capıtulo 1

Introducao

1.1 Motivacao

Ouvido absoluto - em ingles absolute pitch ou perfect pitch - e a habilidade de

identificar notas musicais sem uma referencia. Imagine que uma pessoa ouve o sino de uma

igreja, se ela possui a habilidade do ouvido absoluto, consegue identificar a nota que esta

ressoando com facilidade. Segundo [Deutsch 2013], a proporcao em que se encontra esta

habilidade numa populacao e estimada em menos de 1 para 10.000. Por conta da raridade

e por alguns grandes musicos - podemos citar Mozart como exemplo - o possuırem, ha

uma percepcao que apenas indivıduos excepcionalmente talentosos conseguem obter tal

habilidade.

Segundo [Deutsch 2013], porem, adquirir ouvido absoluto e apenas uma questao de

ser exposto as notas musicais e seus nomes durante a infancia. Alem disso, nao ha relatos

de pessoas que desenvolveram ouvido absoluto durante a vida adulta. Porem, ha uma

saıda para adultos que desejam possuir ouvido absoluto, ela passa pelo conceito de pitch

memory. Tal conceito pode ser definido como capacidade de memorizar notas musicais

em seus valores absolutos, ou seja, na altura definida pelo sistema musical ocidental. O

ouvido absoluto pode ser visto como uma especie de pitch memory perfeito pois a pessoa

possui acesso a qualquer nota na altura correta a qualquer momento. Porem, para uma

pessoa sem ouvido absoluto, ter um bom pitch memory e algo extremamente difıcil de

conquistar e requer muito treino.

2

Page 12: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

3

1.2 IYPM

Para este trabalho foi desenvolvido o aplicativo mobile Improve Your Pitch Me-

mory, que utiliza a metodologia concebida por Rick Beato [Release Rick Beato] mestre

em estudo de jazz pelo New England Conservatory of Music. O metodo envolve ouvir

pedacos de melodias e decora-las em seus tons originais com o intuito de melhorar o pitch

memory, chegando o mais proximo possıvel do resultado de um ouvido absoluto.

Os principais aplicativos moveis de hoje em dia sao desenvolvidos para as pla-

taformas Android e iOS pois estas dominam o mercado mundial de smartphones. Para

desenvolver um aplicativo mobile e possıvel utilizar linguagem nativa, especıfica para cada

plataforma. Outra opcao e utilizar um framework como o Ionic [Ionic Documentation] que

gera um aplicativo hıbrido. A programacao neste framework e feita em Javascript, HTML

e CSS. Nos aplicativos hıbridos so e necessario um codigo-fonte para todos as plataformas,

alem disso, e muito pratico desenvolver nessas linguagens que sao muito populares entre

os desenvolvedores. Esses dois fatores diminuem o custo de producao e manutencao de

um aplicativo. O principal problema dos aplicativos hıbridos e que a performance, que

nao e tao boa quanto a de aplicativos nativos, tornando assim inviavel o desenvolvimento

de aplicativos que necessitam de alto desempenho.

Neste trabalho, o aplicativo produzido foi desenvolvido com o Ionic, a escolha

por esse framework se deu pela curiosidade em descobrir em que estagio se encontra o

desenvolvimento de aplicativos hıbridos atualmente. Alem disso o fator performance -

principal problema com aplicativos hıbridos - nao foi decisivo nessa escolha pelo fato do

aplicativo nao utilizar muitos recursos do aparelho, uma vez que a principal tarefa a ser

desempenhada e a reproducao de audio.

1.3 Trabalhos Anteriores

Existem outros aplicativos voltados ao treino de ouvido absoluto. Esses aplicativos

podem ser classificados em dois tipos:

• Aplicativos que fazem um quiz, de maneira que uma nota e tocada e logo em

seguida e perguntado qual o nome da nota. Podemos citar: [Absolute Pitch],

[Perfect Pitch Trainer], [Easy Perfect Pitch Training], [Pitch Trainer];

Page 13: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

4

• Aplicativos que apenas fornecem notas de referencia. Podemos citar: [Pitch Perfect].

Ha um problema nos aplicativos dos dois tipos: nenhum deles fornece uma meto-

dologia clara de estudo. No primeiro tipo citado, apesar de separar o quiz em diferentes

nıveis de dificuldade, espera-se que o usuario evolua suas habilidades baseando-se em ten-

tativa e erro, algo extremamente difıcil tratando-se de uma habilidade tao complexa de ser

desenvolvida. O aplicativo do segundo tipo aparenta ser uma especie de referencia para

descobrir tom de musicas quando nao se tem um instrumento musical em maos, e nao um

aplicativo para treinar ouvido absoluto, visto que ele nao provem nenhuma ferramenta

para o estudo de ouvido absoluto.

1.4 Outline

O restante do trabalho esta organizado como descrito a seguir. O capıtulo 2 provera

background musical e computacional, esclarecendo sobre o sistema musical ocidental,

fundamental para melhor entendimento acerca da habilidade de ouvido absoluto; alem

disso fala sobre o porque da escolha por fazer um aplicativo movel hıbrido. O capıtulo 3

apresenta como esta montada a estrutura do codigo. O capıtulo 4 mostra os casos de uso

do aplicativo. O capıtulo 5 da conclusoes, expoe as limitacoes do trabalho e apresenta

possibilidades de trabalhos futuros a serem desenvolvidos a partir deste.

Page 14: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

Capıtulo 2

Conceitos basicos

2.1 Background musical

2.1.1 Notas musicais e intervalos

Notas musicais se traduzem no espaco fısico como vibracoes que podem ser medidas

em frequencias. Abaixo estao listadas as notas musicais em notacao universal, conhecidas

como cifras:

• C: do ou B#: si sustenido;

• C#: do sustenido ou Db: re bemol;

• D: re;

• D#: re sustenido ou Eb: mi bemol;

• E: mi;

• F: fa ou E#: mi sustenido;

• F#: fa sustenido ou Gb: sol bemol;

• G: sol;

• G#: sol sustenido ou Ab: la bemol;

• A: la;

• A#: la sustenido ou Bb: si bemol;

5

Page 15: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

6

• B: si.

Intervalos musicais sao a distancia entre duas notas musicais. O menor intervalo

musical e o semitom. Dois semitons geram um tom e assim por diante, na figura 2.1 essa

relacao e mostrada com riqueza de detalhes.

Figura 2.1: Tabela de intervalos musicais.

2.1.2 Sistema musical ocidental

Existem dois padroes principais que regem a musica ocidental, de maneira que

sem eles nossa percepcao musical seria totalmente diferente. Um deles e o temperamento

musical e o outro e o padrao la 440Hz ou A440. Estes dois combinados definem as

frequencias das notas musicais que utilizamos, conforme e possıvel ver na figura 2.2. O

padrao A440 define que a frequencia da nota La 4 - o numero 4 representa a oitava da

nota de acordo com a posicao da mesma no piano - e 440Hz e este deve ser utilizado como

referencia para afinar as outras notas. O temperamento divide uma oitava em 12 partes

iguais, gerando 12 notas musicais. Para fazer isso, estabelece a proporcao dos intervalos

musicais, ou seja, a distancia entre duas notas em um intervalo musical. Uma amostra de

como o sistema de temperamento define a proporcao entre os intervalos e: entre a nota

Page 16: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

7

La 4 e a nota La 5 ocorre um intervalo de oitava e a proporcao para este intervalo e 2:1,

visto que a frequencia do La 4 e 440Hz, a do La 5 e 880Hz.

Como pode ser observado em 2.1.1, existem notas que possuem dois nomes, duas

cifras, como por exemplo D# e Eb, isso acontece pois como o sistema de temperamento

divide uma oitava em apenas 12 notas, essas notas acabam tendo a mesma frequencia. Em

outros sistemas isso nao acontece, no sistema utilizado na idade media (sistema pitagorico)

por exemplo, a nota D# e diferente da nota Eb, ou seja, a frequencia do D# e diferente

da frequencia do Eb.

Importante pontuar o conceito de melodia. Para este trabalho sera utilizada uma

definicao bem basica de melodia que e: uma sequencia de notas musicais com ritmo; alem

disso, durante este trabalho melodia pode referir-se ao arquivo de audio utilizado para os

estudos com o aplicativo.

2.1.3 Ouvido absoluto

Ouvido relativo e a habilidade de identificar notas musicais a partir de uma re-

ferencia, ouvido absoluto e a habilidade de identificar notas musicais sem referencia. O

desenvolvimento do ouvido relativo e algo extremamente comum, sendo inclusive, uma

habilidade fundamental para musicos de instrumentos harmonicos e melodicos. Exemplo:

um professor de musica toca a nota C no piano, avisa ao aluno que a nota e C e logo

apos toca Eb. O aluno - que possui ouvido relativo bem desenvolvido - identifica o Eb

com facilidade. Isso acontece pois o aluno teve a referencia, ou seja, soube que a primeira

nota tocada foi C, percebeu que o intervalo musical entre as duas notas e uma terca me-

nor, descobrindo assim que a segunda nota tocada foi Eb. Se o aluno possuısse ouvido

absoluto, nao seria necessario informar que a primeira nota era C pois ele a reconheceria.

Houve diversas tentativas de adquirir ouvido absoluto durante a idade adulta por

meio de treino extenso, e em geral, essas tentativas produziram resultados nao convincen-

tes ou negativos. Um excepcional caso positivo foi descrito por Brady (1970) - um musico

que comecou a estudar piano com 7 anos de idade. Ele treinou ouvido absoluto por volta

de 60 horas e conseguiu uma taxa de sucesso de 65% (97% se nao contarmos erros de se-

mitom). Embora o resultado seja expressivo, demonstra a dificuldade de adquirir ouvido

absoluto na idade adulta em contraste com a aquisicao sem esforco e frequentemente in-

consciente durante a primeira infancia. [Deutsch 2013]. Este relato demonstra que apesar

Page 17: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

8

Figura 2.2: Notas musicais e suas respectivas frequencias no padrao ocidental.

Page 18: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

9

de demandar muitas horas de estudo, e possıvel obter resultados positivos no estudo de

ouvido absoluto durante a idade adulta. O proposito do aplicativo e obter o resultado

mais proximo possıvel de um ouvido absoluto que um adulto pode conseguir.

2.1.4 Metodologia utilizada no IYPM

O conceito de pitch memory pode ser definido como a capacidade de memorizar

notas musicais. O aplicativo Improve Your Pitch Memory, como o nome sugere, e baseado

neste conceito. A metodologia de estudo sugerida pelo aplicativo baseia-se em Rick Beato

e envolve:

• Ouvir a melodia de referencia;

• Canta-la logo apos ouvir - esta pratica ajuda na memorizacao;

• Apos algum tempo cantar a melodia antes de ouvir para verificar se a melodia foi

memorizada no tom original. Para exemplificar melhor o que e um tom musical: em

uma musica fora de seu tom original a melodia e cantada com seus intervalos e ritmo

como foram concebidos porem as notas sao outras, ou seja, a musica se encontra em

outra altura, outro centro tonal.

Para cada um dos 12 tons o aplicativo fornece melodias padrao utilizadas no metodo

do Rick Beato, porem, alem dessas e possıvel adicionar as melodias que o usuario

preferir utilizar em seus estudos. Esta adicao de melodias acontece por meio da

importacao de um audio que esteja na memoria do celular ou da gravacao de audio

da melodia escolhida por meio do microfone do aparelho.

2.2 Background computacional

Para desenvolver um aplicativo mobile e necessario selecionar uma (ou mais) plata-

forma(s) alvo. No quarto trimeste de 2016, segundo [Vincent 2017] 99,6%, dos smartpho-

nes vendidos no mundo utilizam iOS ou Android. Sendo 81.7% Android e 17.9% iOS.

Sabendo desses dados, o IYPM foi desenvolvido pensando na plataforma Android, porem,

com alguns ajustes e possıvel compilar o codigo para iOS tambem, ja que o aplicativo

desenvolvida utiliza um framework de desenvolvimento de aplicativos hıbridos.

Page 19: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

10

2.2.1 Aplicativos moveis hıbridos

E possıvel desenvolver aplicativos mobile por meio de linguagem nativa ou por al-

gum framework que crie o que e chamado de aplicativo movel hıbrido. Dois exemplos de

linguagem nativa sao o Swift e o Java, o primeiro utilizado no iOS e o segundo no Android.

Frameworks como Ionic [Ionic Documentation] e PhoneGap [PhoneGap Documentation]

geram aplicativos hıbridos utilizando linguagens JavaScript, HTML e CSS, alem de utili-

zarem o Cordova para comunicacao nativa com o sistema operacional, sendo assim, apenas

um codigo fonte e gerado para o aplicativo de diversas plataformas. Aplicativos hıbridos

sao aplicacoes web que rodam em um navegador que e aberto quando o usuario solicita a

execucao do aplicativo. O framework React Native [React Native Documentation] e um

hıbrido um pouco diferente. Ele tambem utiliza Javascript, HTML e CSS, porem, tem

sua propria forma de comunicacao com o sistema operacional - diferentemente dos outros

que utilizam o Cordova -, com isso, o React Native nao precisa rodar as aplicacoes geradas

nele dentro de um navegador; apesar do desenvolvimento com o React Native ser bem

proximo do de aplicativos hıbridos comuns, ele gera aplicacoes nativas.

Os aplicativos hıbridos estao se tornando cada dia mais populares, muito por conta

da praticidade de desenvolver apenas um codigo-fonte para gerar aplicativos para as prin-

cipais plataformas. Grandes aplicativos do mercado hoje em dia ja sao desenvolvidos com

frameworks hıbridos, principalmente com o React Native pelo fato dele gerar aplicativos

nativos. Podemos citar como exemplo os aplicativos do Facebook, Instagram e do Skype.

Ver [Showcase React Native].

Imagine uma pequena empresa que precisa desenvolver um aplicativo para iOS,

Android. Para programar o aplicativo seria necessario um desenvolvedor experiente em

linguagem nativa de cada plataforma, o que custa caro devido o nıvel de especializacao

necessaria para programar em linguagem nativa, principalmente porque Swift nao e uma

linguagem popular. Se analisarmos sob a perspectiva dos aplicativos hıbridos, Javascript,

HTML e CSS sao linguagens extremamente populares. Este fator combinado com a

necessidade apenas um codigo-fonte para todas as plataformas certamente diminui os

custos de producao e manutencao de um aplicativo.

Segundo [Vincent 2017], quando se fala em aplicativos hıbridos o principal pro-

blema que se pensa e o da performance, porem, a diferenca tratando-se de aplicacoes

comuns e pequena. Para aplicacoes que necessitam de alta performance como jogos que

Page 20: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

11

utilizam graficos elaborados, o desenvolvimento em linguagem nativa ainda se faz neces-

sario.

Como foi citado acima, o IYPM foi desenvolvido para Android porem seria neces-

sario fazer alguns ajustes para compila-lo para iOS. Esses ajustes sao necessarios porque

funcoes especıficas como abrir um diretorio do smartphone para selecionar uma mıdia sao

feitas por plugins diferentes para plataformas diferentes. Na maioria das funcionalidades

isso nao acontece, ou seja, utiliza-se um plugin e o codigo escrito e funciona em todas as

plataformas da mesma forma.

2.2.2 Ionic

A equipe do Ionic o define da seguinte forma: “O Ionic e um framework de de-

senvolvimento baseado em HTML5 voltado para a criacao de aplicativos moveis hıbri-

dos. Aplicativos hıbridos sao essencialmente pequenos sites rodando em navegadores com

acesso a camada nativa do smartphone.”[Ionic Preface]

O Ionic foi o framework escolhido para o desenvolvimento do IYPM. Essa escolha

se deu pelo interesse em saber como funciona o desenvolvimento de aplicativos hıbridos

na pratica. O fato do framework nao estar mais em versao beta tambem colaborou

para a escolha, visto que ja nao esta mais em fase de testes e possui alguma maturidade.

Alem disso, possui tambem grande comunidade na internet, facilitando a pesquisa quando

problemas se fazem presentes durante o desenvolvimento do aplicativo.

Mais especificamente, a versao do Ionic utilizada foi a 2.3.3. A estrutura basica

desta versao utiliza codigos-fonte de tres tipos para cada pagina web: TS, HTML e CSS.

HTML e CSS compoem o visual da pagina, ja os codigos-fonte do tipo TS fazem o controle

do fluxo de dados e sao escritos em TypeScript - uma variacao do JavaScript, qualquer

codigo JavaScript compila em TypeScript -, utilizando Angular 2. O angular utiliza a

linguagem Typescript que ao final do processo de compilacao converte-se em Javascript.

Alem disso, esta versao do Ionic utiliza o um pacote de plugins chamado Ionic Native,

atraves deste pacote e possıvel acessar recursos nativos do sistema operacional como por

exemplo gravar um audio com o microfone do aparelho.

Page 21: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

Capıtulo 3

Estrutura da aplicacao

A aplicacao esta estruturada em 4 tipos principais de componentes: Controllers,

Providers, Helpers e Paginas Web. Este capıtulo explicara o proposito de cada um des-

ses componentes, alem disso, detalhara a implementacao de algumas funcionalidades e

mostrara estrutura de diretorios criada pelo aplicativo.

Na figura 3.1 e possıvel observar a relacao de dependencia entre esses componentes.

Figura 3.1: Diagrama de dependencia entre os componentes da aplicacao

12

Page 22: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

13

3.1 Controllers

Os arquivos Typescript de cada pagina funcionam como controladores, neles encontram-

se funcionalidades especıficas de uma pagina, alem da preparacao das variaveis para o

funcionamento da pagina. Grandes operacoes ou operacoes que podem no futuro servir

mais de uma pagina se encontram em providers e sao chamadas dentro do controlador de

uma pagina.

3.2 Providers

Os providers tem papel importante em um codigo Ionic 2. Tambem sao chamados

de servicos, geralmente sao utilizados para fazer alguma tarefa ou prover alguma informa-

cao para a aplicacao. Exemplo de como os providers foram aplicados no codigo: existe um

provider para paths que provem os nomes dos diretorios utilizados no programa para que

nao seja necessario que cada controlador utilize esses nomes colocando-os manualmente;

alem de prover os nomes dos diretorios, o path provider tambem oferece funcionalidades

relacionadas a diretorio como por exemplo verificar se um diretorio existe. Ha tambem

um provider para notificacao, se um controlador necessita criar uma notificacao, esta ope-

racao e facilmente feita, apenas chamando um metodo; nao fosse o provider se em mais

de um controlador fosse necessario criar a mesma notificacao, um codigo de no mınimo

onze linhas seria adicionado em cada controlador, alem dos benefıcios da reutilizacao de

codigo gerados pelo provider, apenas uma linha e adicionada.

3.3 Helper

Foi criada uma classe helper (escrita em Typescript) que foi utilizada para opera-

coes estaticas extremamente simples acabaram se repetindo ao longo do codigo. Exemplo

de operacao: tirar a extensao (tipo do arquivo) do nome do arquivo.

3.4 Paginas Web

Ha 7 paginas no aplicativo, para cada pagina ha uma pasta com tres arquivos: um

do tipo HTML, um CSS e Typescript. Lista de paginas do aplicativo:

Page 23: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

14

(a) Pagina Choose Key. (b) Pagina Import Melody.

(c) Pagina Remove Melody. (d) Pagina Play Melody.

Figura 3.2: Paginas do aplicativo parte 1.

Page 24: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

15

(a) Pagina About. (b) Pagina Settings.

Figura 3.3: Paginas do aplicativo parte 2.

• Choose Key (ver figura 3.2a): esta e a pagina mostrada ao abrir o aplicativo, nela

o usuario seleciona um tom e e redirecionado para a pagina play melody do tom

escolhido;

• Import Melody (ver figura 3.2b): nesta pagina e possıvel importar melodias para o

tom selecionado;

• Remove Melody (ver figura 3.2c): nesta pagina e possıvel remover uma ou mais

melodias do tom selecionado;

• Play Melody (ver figura 3.2d): nesta pagina e possıvel reproduzir as melodias do

tom selecionado na pagina choosekey, alem disso, ha um botao para importar e um

para remover melodias do tom;

• About (ver figura 3.3a): nesta pagina se encontram as instrucoes para utilizacao do

aplicativo, e onde o metodo de estudo descrito no capıtulo 2 e explicado;

• Settings (ver figura 3.3b): nesta pagina e possıvel ajustar as configuracoes do apli-

cativo. Ha duas funcionalidades controladas pelas configuracoes: a de loop e a de

enviar notificacoes diarias;

Page 25: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

16

• Tabs (e possıvel ver a divisao em abas na figura 3.2a): esta pagina e um template

do aplicativo, ela possui o codigo das abas do aplicativo que ficam sao mostradas

durante todo tempo em que o aplicativo esta sendo utilizado.

A interface do aplicativo esta dividida em tres abas principais, sao elas:

• Melodies: esta aba contem as paginas Choose Key, Play Melody, Import Melody e

Remove Melody;

• Settings: esta aba contem a pagina Settings;

• About: esta aba contem a pagina About.

3.5 Gravacao e Reproducao de audio

Em teoria a funcionalidade de gravacao de audio e uma funcionalidade simples,

porem, foi encontrado um problema ao desenvolve-la. O sample rate de gravacao de

audio do plugin Media, especificamente para Android, era extremamente baixo. Isso

gerava uma gravacao com qualidade inaceitavel para os padroes atuais. Foi necessario

alterar manualmente o sample rate no codigo fonte do plugin e recompila-lo para poder

gerar uma gravacao de qualidade. E possıvel ver essa alteracao na figura 3.4.

Figura 3.4: Alteracao feita no codigo fonte do plugin Media.

Page 26: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

17

Visto que ate mesmo em aplicativos grandes como o Instagram e possıvel encontrar

pequenos problemas de reproducao como por exemplo um audio que comeca a tocar e so

para se o aplicativo for fechado, foi investido bastante tempo no desenvolvimento de um

algoritmo de reproducao de audio que fosse extremamente confiavel.

No Android, apos a instalacao do aplicativo nao e possıvel deletar nem adicionar

arquivos a pasta assets, a unica operacao possıvel e a de copia. Sendo assim, quando

o usuario gravasse um audio com o microfone, nao seria possıvel colocar o arquivo de

audio gerado na pasta assets e o plugin Native Audio do Ionic Native apenas reproduz

arquivos que se encontram na pasta assets. Vale ressaltar que o Native Audio e o plugin

mais completo para reproducao de audio, sendo extremamente facil de manipula-lo e

oferecendo diversas opcoes para a reproducao dentre elas podemos destacar a de loop -

funcao importante para o IYPM. Alem disso, foi tentado contato com a equipe do Ionic

Native e obtida a resposta que o plugin baseia-se na utilizacao de uma funcao especıfica

do Android que reproduz assets, deixando a performance melhor, por isso a restricao

de apenas reproduzir arquivos da assets no Native Audio. O unico plugin que reproduz

audios que se encontram fora da pasta assets e o Media do Ionic Native que e um plugin

mais generico, apesar de ter a funcionalidadade para reproduzir audios, esse nao e o foco

do plugin, aumentando assim a complexidade de algumas funcionalidades no algoritmo

de reproducao de audio.

O plugin Media - diferentemente do Native Audio - nao fornece um objeto cen-

tralizador que faca o controle da reproducao de mıdia do aplicativo como um todo, ou

seja, e necessario um objeto do tipo Media para cada entrada de audio. Nao ha um

objeto onde seja possıvel pausar em todos os audios que estejam tocando na aplicacao,

e necessario pausar cada arquivo objeto Media individualmente. Foi necessario criar um

array de objetos Media, um objeto deste tipo e criado e colocado no array quando um

audio e reproduzido pela primeira vez, sendo assim, se um audio nunca e reproduzido,

seu objeto Media nao e criado. O algoritmo fica ainda mais complexo quando e colocada

a funcionalidade de loop e o fato de Javascript ser orientado a eventos.

Para melhor compreensao do codigo e importante salientar alguns detalhes. Quando

a reproducao de um audio comeca e colocado um subscribe no status objeto Media dele.

Com o subscribe, sempre que houver uma mudanca no status objeto o fluxo do codigo e

direcionado para o bloco dentro do subscribe. A variavel stopAll funciona como um eject

Page 27: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

18

e e controlada por fora do algoritmo de reproducao, por meio dela e possıvel parar a repro-

ducao de todos os objetos de audio do aplicativo, alem disso, quando o valor da variavel

esta em true todas as subscriptions sao canceladas. Esta variavel e necessaria pois por

exemplo, se o usuario mudar de pagina ou apertar o botao home, a reproducao de todos

os audios precisa ser parada. A variavel loopOption e controlada pelas configuracoes do

aplicativo. This refere-se as variaveis de classe. Os algoritmos a seguir interagem entre si

para construir a reproducao de audio do aplicativo.

Algorithm 1 togglePlay

if (isCallingToPlayAudio) then

if (this.status == 2) {status 2 significa que um audio esta sendo reproduzido} then

this.mediaObjects[this.lastPlayedAudio].pause();

end if

this.playAudio(audioId);

else if (isCallingToPauseAudio) then

this.mediaObjects[this.lastPlayedAudio].pause();

end if

3.6 Algoritmo de copia e busca de melodias

Havia a necessidade do aplicativo vir out-of-the-box com as melodias padrao de

referencia e a unica forma fazer isso e colocando os arquivos de audio dentro da pasta

assets. Colocar as melodias padrao na mesma pasta das melodias importadas diminui a

complexidade do algoritmo que busca as melodias a serem reproduzidas de acordo com o

tom escolhido. Sendo assim, foi necessario criar um algoritmo para buscar melodias na

pasta assets e trazer para a pasta de arquivos do aplicativo. As diretivas tratadas para

desenvolver este algoritmo foram: o algoritmo deve ser simples e nao deve ocupar muito

espaco na memoria RAM; a simplicidade faz a busca ser executada velozmente e quanto

menos espaco ocupado na memoria RAM mais fluidez na navegacao do aplicativo.

3.6.1 Estrutura de diretorios

A solucao escolhida comeca pela criacao de uma estrutura de pastas conforme a

apresentada abaixo:

Page 28: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

19

Algorithm 2 playAudio

if (this.mediaObjects[audioId] == null) then

this.mediaObjects[audioId] = new MediaObject();

end if

this.mediaObjects[audioId].play(); {a reproducao do audio comeca aqui}

this.mediaObjects[audioId].onStatusUpdate.subscribe(); {todos os comandos abaixo

sao executados quando ha uma mudanca no status}

this.status = status;

if (status == 2) then

this.lastPlayedAudio = audioId;

else if (status == 4) {status 4 significa que a reproducao chegou ao fim} then

if (stopAll == false) then

if (loopOption == true) then

if (lastPlayedAudio == audioId) then

mediaObjects[audioId].play();

end if

end if

end if

end if

Page 29: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

20

External Data Directory/Melodies/

C/J.S. Bach 2 Part Invention.wav

C#/Cinderella Theme.wav

DCantata No. 54.wav

Etc.

Quando o aplicativo e instalado, as melodias padrao se encontram na pasta assets,

quando o usuario abre a pagina Play Melody pela primeira vez o algoritmo copia - copiar e

a unica operacao permitida na pasta assets apos a instalacao do aplicativo - a melodia de

referencia para pasta do tom. Vale lembrar que para cada tom o aplicativo fornece apenas

uma melodia de referencia e ao entrar na pagina Play Melody o usuario ja selecionou um

tom, sendo assim, a operacao de copia e executada em lotes, nao onerando o aplicativo

na primeira execucao.

Quando o usuario abre a pagina Play Melody o algoritmo confere se e a primeira

vez que o aplicativo esta rodando, se for ele copia a melodia referencia do tom para a

pasta de melodias do tom. O processo de leitura de melodias e bem simples, o algoritmo

pega todos os arquivos de audio da pasta do tom escolhido e carrega-os na memoria para

que eles possam ser executados.

Page 30: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

Capıtulo 4

Casos de uso

4.1 Reproduzir melodia

Visto que a parte mais importante do estudo se da pela audicao de melodias, a

reproducao de audio e a funcionalidade mais importante do IYPM. Na pagina principal

do aplicativo, o usuario primeiro selecionara um tom para entrar na pagina de reproducao

de melodias. Ao entrar na pagina de reproducao todas as melodias do tom escolhido sao

listadas e e possıvel clicar no botao play para reproduzir a melodia. Quando a reproducao

comeca, o botao play transforma-se em pause e quando a reproducao e pausada, o botao

volta a ser play. Se a opcao de loop esta ativada, a reproducao continuara ate o usuario

apertar o botao pause ou a tela do aparelho apagar. Se o usuario mudar de aba ou apertar

o botao home para sair do aplicativo a reproducao e parada.

A escolha de colocar uma pagina de reproducao para cada tom e nao agrupar

todas as melodias de todos os tons em uma pagina teve o intuito de nao comprometer a

experiencia de visualizacao do usuario. Se todas as melodias estivessem na mesma pagina,

seria necessario uma especie de scroll ou paginacao. Tendo uma pagina de reproducao

para cada tom deixa a pagina com um aspecto limpo.

4.2 Importar ou Remover melodia

E extremamente valoroso para o aplicativo que o usuario possa utilizar suas pro-

prias melodias em seus estudos. Isso se da pois fica mais facil decorar uma melodia em

valores absolutos se o usuario e bem familiarizado com a melodia. Apesar das melodias

21

Page 31: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

22

das melodias que vem de fabrica com o aplicativo serem praticamente de senso comum, e

mais facil decorar uma melodia que ja esteja mais presente no dia a dia do usuario.

Importante lembrar que e na aba melodies que acontece a reproducao, importacao

e remocao de melodias. Ha um botao dentro da pagina de reproducao que direciona o

usuario para a pagina de importacao e um que direciona para a de remocao. A decisao

de utilizar a sobreposicao de paginas se deu por conta da estrutura que ja estava toda

montada sobre a escolha de um tom na pagina Home, foi uma opcao logica optar por

colocar as paginas Import e Remove sobrepostas a pagina Play. O nıvel maximo de paginas

sobrepostas no aplicativo e tres, este numero extremamente comum para os padroes dos

aplicativos atuais. Alem disso, o nıvel tres somente e atingido em tarefas nao sao usuais

apos a configuracao final do usuario.

E possıvel importar uma melodia gravando um audio com o microfone do smartphone

ou buscando um audio na memoria. Se o usuario clica no ıcone do microfone (ver figura

3.2b), este se transforma num ıcone de pause e a mensagem muda avisando que quando

ele clicar no pause a gravacao sera finalizada (ver figura 4.1a). Quando a gravacao e fina-

lizada e solicitado ao usuario um nome para a gravacao ou e possıvel cancelar (ver figura

4.1b), o que resulta na delecao da gravacao.

(a) Botao para pausar gravacao.(b) Campo para assinalar o nome da

gravacao.

Page 32: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

23

Se a escolha for por buscar um audio na memoria, uma funcionalidade nativa

do sistema e acionada e e possıvel selecionar um arquivo para importar. Nao existe

uma opcao no plugin para que o usuario apenas veja os arquivos de audio da memoria,

portanto, o usuario pode selecionar arquivos de qualquer tipo. Se o arquivo selecionado

for de tipo diferente de WAV, MP3 ou AAC o aplicativo avisa ao usuario que o arquivo

nao e suportado.

Para que o usuario nao corra o risco de apagar por engano uma melodia padrao de

referencia do aplicativo, as melodias deste tipo nao podem ser deletadas. Essa restricao

e avisada na pagina about. Alem disso, os ıcones checkbox das melodias desse tipo

encontram-se em cinza e nao podem ser selecionados. Quando o usuario seleciona uma ou

mais melodias e aperta o botao de remover um dialogo de confirmacao e mostrado. Se a

remocao foi realizada com sucesso, este fato e reportado ao usuario, assim como quando

ha um erro, este e reportado.

4.3 Configuracoes

Ha duas configuracoes disponıveis: reproducao de audio em loop e notificacoes.

Para acessar as configuracoes basta entrar na aba Settings. Ao ativar a opcao de loop,

quando a reproducao de uma melodia chega ao fim, a mesma melodia e reproduzida nova-

mente ate que o botao pause seja pressionado. Esta opcao e valida pois algumas melodias

sao curtas para facilitar o processo de memorizacao, sendo assim, e extremamente util ter

a opcao de ouvir as melodias em loop. Ao ativar a opcao notificacoes, um relogio aparece

na tela (ver figura 4.2) para que o usuario selecione a hora que vai receber as notificacoes

diariamente. Se na hora da escolha do horario, o usuario pressionar o botao cancelar as

notificacoes nao sao ativadas. As notificacoes servem para que o usuario lembre-se de pra-

ticar diariamente - algo fundamental para o desenvolvimento das habilidades de ouvido

absoluto.

Page 33: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

24

Figura 4.2: Relogio para definir a hora da notificacao diaria.

Page 34: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

Capıtulo 5

Conclusoes, limitacoes e trabalhos

futuros

5.1 Conclusoes

5.1.1 Aplicativo

Este trabalho propos o desenvolvimento de um aplicativo para o desenvolvimento

da habilidade de ouvido absoluto. O estudo com o aplicativo e feito com o metodo

desenvolvido pelo Rick Beato [Release Rick Beato] que envolve ouvir melodias e tentar

decora-las em seus tons originais. O aplicativo fornece uma melodia padrao para cada

tom, alem disso, e possıvel adicionar melodias personalizadas, utilizando o microfone do

smartphone ou importando um audio que esteja na memoria do aparelho. Alem disso, o

aplicativo provem a funcionalidade de loop para a reproducao de melodias e a opcao de

notificar diariamente o usuario para que ele lembre-se de estudar diariamente - o que e

fundamental para o desenvolvimento do ouvido absoluto.

Na pesquisa de aplicativos para treino de ouvido absoluto, nao foi encontrado

nenhum que seguisse um metodo de estudo como o IYPM. Vale lembrar que o ouvido

absoluto e uma habilidade extremamente difıcil de ser desenvolvida durante a idade adulta.

Se o usuario que estiver estudando nao tiver uma metodologia clara para seguir, este

processo torna-se ainda mais complexo.

Segundo relatos do livro [Deutsch 2013], e possıvel obter resultados que se aproxi-

mam da habilidade de quem adquire ouvido absoluto na infancia.

25

Page 35: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

26

O feedback sobre o aplicativo mostrado abaixo e do Andre Barreto, ele tem 22

anos, toca guitarra, violao, contra-baixo e e produtor musical. “Nunca tinha feito um

treino especıfico para ouvido absoluto, toda a nocao que tenho ate hoje vem da memoria

musical que desenvolvi apos anos ouvindo e tocando musica. Por isso achei a proposta

do app otima, de ter uma melodia ”decorada”para cada tom. Inicialmente achei muito

complicado treinar, por nao conhecer todas as melodias que vem como padrao do app.

Esse problema e resolvido usando a ferramenta de adicionar uma melodia gravada ao

banco do aplicativo, tornando o treino bem mais natural. A curto prazo nao posso dizer

que decorei todos os tons das melodias, mas com o tempo acredito que e possıvel melhorar

a percepcao de notas e chegar mais perto do tao sonhado ouvido absoluto com a ajuda

do IYPM.”

A grande dificuldade do Andre foi a nao familiarizacao com algumas melodias.

Apesar de ter a opcao de importar melodias que esta mais familiarizado, provavelmente

nao o fez pelo trabalho que teria para configurar um banco de melodias, tendo que conferir

o tom da melodia antes de importa-la. Uma solucao para este problema sera proposta na

secao 5.2.

5.1.2 Desenvolvimento de aplicativos hıbridos

O balanco final sobre aplicativos hıbridos e que os frameworks de desenvolvimento

para aplicativos desse tipo ainda estao em processo de amadurecimento. Foram detectados

diversos problemas ao longo do processo de desenvolvimento estes problemas elevaram a

complexidade de algumas funcionalidades aparentemente simples.

Apesar dos problemas encontrados, ainda e mais rapido desenvolver um codigo

de aplicativo hıbrido que funciona para as principais plataformas do que desenvolver

um codigo para cada plataforma desejada, ainda mais se a intencao for abranger outras

plataformas alem do Android e iOS, como por exemplo Windows Phone e BlackBerry.

5.2 Limitacoes e trabalhos futuros

O IYPM nao tem o proposito de testar o usuario, de maneira que ele acompanhe

seu desenvolvimento, o IYPM foi desenvolvido apenas como uma plataforma de estudo.

Numa versao futura, poderia ser util adicionar um quiz onde uma nota e tocada e logo em

Page 36: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

27

seguida pergunta-se qual o nome daquela nota. Diferentemente dos quizzes encontrados

em outros aplicativos, no espaco de tempo entre duas perguntas seriam tocadas algumas

notas aleatoriamente para que usuario nao consiga usar o ouvido relativo para responder

as perguntas. A partir deste quiz seria possıvel verificar os resultados do estudo com o

IYPM dentro do proprio aplicativo.

Uma boa expansao do IYPM seria integra-lo com o aplicativo Spotify para reco-

mendar que o usuario estude com as melodias que mais ouve no dia a dia. Seria super

interessante trabalhar no ambito de reconhecimento de notas musicais, de forma que ao

baixar a lista de musicas mais ouvidas pelo usuario, o IYPM ja as assinalasse ao tom

correto para o estudo, dessa forma o trabalho manual do usuario de descobrir o tom da

melodia que deseja utilizar no IYPM seria poupado.

Page 37: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

Referencias Bibliograficas

[Absolute Pitch]ABSOLUTE Pitch. https://play.google.com/store/apps/details?

id=sk.xorsk.pitch. [Accessed: 02-January-2017].

[Deutsch 2013]DEUTSCH, D. The Psychology Of Music. Third edition. [S.l.]: Academic

Press, 2013.

[Easy Perfect Pitch Training]EASY Perfect Pitch Training. https://play.google.

com/store/apps/details?id=jp.viralworks.perfectpitch. [Accessed: 02-January-

2017].

[Ionic Documentation]IONIC Documentation. https://ionicframework.com/docs/.

[Accessed: 02-January-2017].

[Ionic Preface]IONIC Preface. https://ionicframework.com/docs/v1/guide/

preface.html. [Accessed: 02-January-2017].

[Perfect Pitch Trainer]PERFECT Pitch Trainer. https://play.google.com/store/

apps/details?id=com.trifonopoulos.perfectPitchTrainer. [Accessed: 02-

January-2017].

[PhoneGap Documentation]PHONEGAP Documentation. http://docs.phonegap.

com/. [Accessed: 02-January-2017].

[Pitch Perfect]PITCH Perfect. https://play.google.com/store/apps/details?id=

depollsoft.pitchperfect. [Accessed: 02-January-2017].

[Pitch Trainer]PITCH Trainer. https://play.google.com/store/apps/details?id=

edu.cpp.pitchtrainer. [Accessed: 02-January-2017].

28

Page 38: Filipe Coimbra Cavalcante Aplicativo h brido para ... › riuff › bitstream › 1 › 7688 › 1 › TCC Filipe...um aplicativo. O principal problema dos aplicativos h bridos e que

29

[React Native Documentation]REACT Native Documentation. https://facebook.

github.io/react-native/docs/getting-started.html. [Accessed: 02-January-

2017].

[Release Rick Beato]RELEASE Rick Beato. https://rickbeato.com/pages/about. [Ac-

cessed: 02-January-2017].

[Showcase React Native]SHOWCASE React Native. https://facebook.github.io/

react-native/showcase.html. [Accessed: 02-January-2017].

[Vincent 2017]VINCENT, J. 99.6 percent of new smartphones run An-

droid or iOS. February 2017. [Accessed: 02-January-2017]. Disponıvel em:

<https://www.theverge.com/2017/2/16/14634656/android-ios-market-share-

blackberry-2016>.

[Vincent 2017]VINCENT, J. Hybrid Mobile Apps are Overtaking Native. July

2017. https://blog.phonegap.com/hybrid-mobile-apps-are-overtaking-native-

951a3aacacd1. [Accessed: 02-January-2017].