Concrete Logo
Hamburger button

Notes: uma biblioteca iOS de teoria musical iOS

  • Blog
  • 22 de Dezembro de 2017
Share

Há alguns anos, escrevi um aplicativo para me ajudar no processo de aprender a tocar baixo (você pode descobrir mais sobre isso aqui). Recentemente, um amigo meu chamado Kaique Pantosi D’amato decidiu começar um projeto com quase a mesma ambição, ajudá-lo a aprender tocar violão. Eu me inspirei no processo e decidi trazer de volta à vida esse meu antigo, mas desta vez formado como uma biblioteca rápida de open source.

Liberá-lo como uma biblioteca poderia ter o potencial de beneficiar outras pessoas com ideias semelhantes, bem como atrair colaboradores para aprimorar o projeto. Nesta publicação, gostaria de falar sobre alguns dos desafios da criação desta biblioteca de teoria musical, bem como a importância do teste de unidade.

Requisitos iniciais

Desde o início, gostaria que essa biblioteca tivesse suporte para Cocoapods e Carthage. Para fazer isso, usei o modelo de projeto iOS Cookie Cutter, o que torna o processo mais simples, você pode descobrir como funciona em outro post. A biblioteca do Notes precisaria ter os seguintes recursos para suportar o aplicativo do meu amigo e meu aplicativo antigo (se eu decidisse trazê-lo de volta à vida*):

  • Notas
  • Escalas
  • Acordes
  • Harmonia Diatônica
  • Equivalentes de Enharmonic
  • Testes, testes e mais testes …

A razão pela qual os testes são essenciais durante este processo de desenvolvimento é que a teoria musical tem muitas pequenas nuances e variações. Os testes, por padrão, são cruciais em todos os projetos e eles mostram como o código é profissional. Além disso, eles são ainda mais importantes nos casos em que o número de variações e condições de testes é tão grande que o teste manual não é opcional.

Apenas para trazer algum contexto, este é o arquivo nos quais eu teste a escala principal. Existem doze variações diferentes desta única “Entidade” para cada chave, incluindo os acidentes.

O teste seria muito mais detalhado se eu não estivesse usando Quick and Nimble, ambas bibliotecas de testes essenciais que tornam o teste no iOS uma brisa. Dito isto, até este momento, o aplicativo possui mais de 350 testes, desde acordes até escalas, notas e harmonia, entre outras coisas.

Então, o que posso fazer?

Agora, a biblioteca suporta a geração de harmonia diatônica em todas as chaves, como você pode ver abaixo:

Harmonia diatônica? Espere, o que isso significa? Isso significa que, dada uma chave, a biblioteca pode gerar acordes que funcionam bem dentro dessa chave, permitindo que você crie progressões de acordes. Também pode gerar algumas escalas para você em cada chave, acordes, encontrar equivalentes de notas etc. E essa informação pode ajudá-lo a criar acordes, escalas e aplicativos educacionais orbitando em torno do tema da teoria musical.

Roadmap e além…

No momento, a biblioteca ainda está em seus primeiros dias, de modo que os colaboradores possam aprimorar o projeto de várias maneiras, no entanto, dar algumas orientações ou, pelo menos, uma primeira direção. Acho que beneficiaria mais de features como:

  • Frequência de notas
  • Geração de som a partir da frequência de notas
  • Escalas adicionais
  • Som para tradução de nota

Espero que vocês possam ver o repositório e brincar com ele. Como sempre, colaboradores são mais do que bem-vindos. A música é como uma linguagem de programação, com seu próprio conjunto de regras, estrutura e sintaxe. Não é de admirar que muitos desenvolvedores toquem um instrumento.

Como sempre, qualquer ideia, dúvida ou feedback são mais do que bem-vindos. =)

PS: Se você gostou deste post, compartilhe no Twitter, recomende ou as duas coisas. =)

Muito obrigado!

É desenvolvedor iOS e quer fazer parte de um time fantástico, trabalhando em produtos digitais? Clique aqui. 😉