Você está aqui: Java ::: Pacote javax.sound.midi ::: Aplicações com código fonte completo |
Como tocar uma sequência de notas MIDI usando JavaQuantidade de visualizações: 1150 vezes |
|
Nesta dica eu mostrarei um código Java completo que tira proveito das classes do pacote javax.sound.midi para tocar a escala de dó maior em uma guitarra envenenada com distorção à la Slash. Veja que maravilha! Não precisaremos instalar nada. Tudo que precisamos já está pronto na instalação padrão do Java SDK. Trata-se de uma aplicação MIDI completa que, embora simples, é o ponto de partida para a criação de afinadores de guitarra e baixo, um jogo educativo ou até, quem sabe, a sua própria versão do famoso Guitar Pro. O código está em Java console, mas pode ser facilmente adaptado para Java Swing ou JavaFX, que permitem uma maior interação com o mouse e teclado, além de oferecerem um visual mais bonito e intuitivo. Veja a listagem completa, repleta de comentários e observações a partir da perspectiva de um programador e músico: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package arquivodecodigos;
import javax.sound.midi.Instrument;
import javax.sound.midi.MidiChannel;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.Synthesizer;
public class Estudos {
public static void main(String[] args) {
try{
// vamos obter o sintetizador MIDI e abrí-lo
Synthesizer sintetizador = MidiSystem.getSynthesizer();
sintetizador.open();
// vamos obter a lista de instrumentos MIDI disponíveis
Instrument[] instrumentos =
sintetizador.getDefaultSoundbank().getInstruments();
// vamos criar um canal para a guitarra "Distortion Guitar"
MidiChannel canalGuitarra = sintetizador.getChannels()[0];
// mudamos o programa pra refletir o instrumento escolhido
// Distortion Guitar é o instrumento 31 na especificação MIDI, então
// temos que usar 30 (lembra, né? Em Java os vetoes começam em 0)
canalGuitarra.programChange(instrumentos[30].getPatch().getProgram());
// vamos definir a escala de dó maior
// lembre-se: Tom - Tom - Semitom - Tom - Tom - Tom - Semitom
// DÓ, RÉ, MI, FÁ, SOL, LÁ, SI, DÓ (uma oitava acima)
int notas[] = {60, 62, 64, 65, 67, 69, 71, 72, 72, 71,
69, 67, 65, 64, 62, 60};
// agora vamos percorrer as notas da escala com 1/2
// segundo de pausa entre elas
for(int i = 0; i < notas.length; i++){
// vamos tocar a nota
canalGuitarra.noteOn(notas[i], 100);
// vamos pausar o programa por meio segundo
Thread.currentThread().sleep(500);
// vamos silienciar a nota
canalGuitarra.noteOff(notas[i]);
}
}
catch (Exception e) {
System.out.println("Houve um erro: " + e.getMessage());
}
}
}
|
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






