SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana">O básico Antes de partirmos para a parte prática, vou passar um mínimo de informações sobre a teoria envolvida no programa. Note que, apesar de tocar guitarra, não sou profundo conhecedor de teoria musical e nunca tive muita paciência para aprendê-la. Esse foi na realidade um dos motivos que me levou a escrever este programa: entender um pouco mais sobre a teoria de notas e escalas. Para quem não quiser entender a teoria por trás do programa, pule esta etapa e vá direto para a parte prática, caso contrário, vamos lá: Acredito que a maioria das pessoas conheça as sete notas musicais: Dó (C), Ré (D), Mi (E), Fá (F), Sol (G), Lá (A) e Si (B) – as letras entre parênteses são o que chamamos de representação cifrada, sendo assim, o C representa um Dó, o A representa um Lá, e assim por diante. Chamamos de escala cromática a escala que contém todas as notas musicais, ou seja: C-C#-D-D#-E-F-F#-G-G#-A-A#-B-C (Dó - Dó sustenido - Ré - Ré sustenido - Mi - Fá - Fá sustenido - Sol - Sol sustenido - Lá - Lá sustenido - Si – Dó). O intervalo (distância sonora) entre qualquer nota e a próxima nota consecutiva na escala cromática é chamada de semitom, portanto entre um C e um C# temos um semitom. Observe que não existe E# e B#. Uma escala consiste em uma seqüência de notas que nos leva de uma oitava até a outra, ou seja, usando como exemplo a escala apresentada anteriormente, o Dó (C) final está uma oitava acima (mais agudo) em relação ao Dó (C) inicial. Outra informação básica que facilitará a compreensão do programa é que utilizaremos a afinação padrão para a guitarra, onde as cordas estão afinadas Para quem quiser se aprofundar mais na teoria musical envolvida, sugiro ir até o link www.zentao.com/guitar/theory (site em inglês). Tipos e arrays usados no exemplo Agora que sabemos o mínimo necessário sobre teoria musical, podemos compreender melhor o programa analisando o código-fonte. Usaremos o componente freeware MidiGen para tocar as notas na placa de som. Ele pode ser obtido no endereço www.alan-warriner.co.uk/software/TMidiGen.zip. Sua instalação é simples, basta instalar o arquivo TMidiGen.dpk. Temos na Listagem 1 alguns tipos, constantes e variáveis usadas na aplicação, explicados a seguir: Listagem 1. Tipos, variáveis utilizadas no exemplo (retirados da unit MidiGen.pas) type TMGNote = (mgC, mgCsharp, mgD, mgDsharp, mgE, mgF, mgFsharp, mgG, mgGsharp, mgA, mgAsharp, mgB); NoteStruc = record Fret: TRect; Nota: TMGNote; Oitava: Smallint; end; NotasArray = array of NoteStruc; ... const NotasBase: array[1..6] of TMGNote = (mgE, mgB, mgG, mgD, mgA, mgE); NotasMusic: array[0..11] of TMGNote = (mgC, mgCsharp, mgD, mgDsharp, mgE, mgF, mgFsharp, mgG, mgGsharp, mgA, mgAsharp, mgB); NotasMusicPort: array[Low(NotasMusic)..High( NotasMusic)] of string[4] = ('Do', 'Do#', 'Ré', 'Ré#', 'Mi', 'Fá', 'Fá#', 'Sol', 'Sol#', 'Lá', 'Lá#', 'Si'); NotasAlfa: array[Low(NotasMusic)..High( NotasMusic)] of string[2] = ('C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B'); Larg = 43; { Largura do bitmap do fret } ...
Artigo Clube Delphi 55 - Guitar Explorer
Artigo da Revista Clube Delphi Edição 55
Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.