JavaSound es una colección de clases e interfaces para efectuar y controlar medios de sonido en Java. Consta de dos paquetes.
- javax.sound.sampled: Este paquete proporciona una interfaz para la captura, mezcla de audio digital.
- javax.sound.midi: este paquete proporciona una interfaz para la síntesis, secuenciación y transporte de eventos MIDI (interfaz digital de instrumentos musicales).
¿Qué es midi?
Exploraremos MIDI más sobre MIDI aquí. Entonces, MIDI es como una hoja de notas que el instrumento con capacidad midi puede tocar, considérelo como un documento HTML y un instrumento con capacidad midi como un navegador web. El archivo MIDI tiene información sobre cómo se debe tocar una canción, al igual que una hoja de instrucciones para un guitarrista. Los dispositivos MIDI saben cómo leer un archivo midi y generar sonido.
Para hacer un sonido real, necesitamos cuatro cosas para esto:
- Instrumento (que toca la música) SECUENCIADOR
- Canción (la música que se reproducirá) SECUENCIA
- Pista (que contiene las notas)
- Notas (la información musical real) EVENTOS MIDI
La API de JavaSound cubrió todo esto.
SECUENCIADOR ⇒ SECUENCIA ⇒ PISTA ⇒ EVENTOS MIDI
Procedimiento:
Paso 1: Obtenga un secuenciador y ábralo
// Make a sequencer named player and open it Sequencer player = MIDISystem.getSequencer(); player.open();
Paso 2: Hacer una nueva Secuencia
// Make a new sequence Sequence seq = new Sequence(Sequence.PPQ, 4);
Paso 3: Obtenga una nueva pista de la secuencia
// Creating new Track Track t = seq.createTrack();
Paso 4: Rellene la pista con MIDIEVENTS
// Filling the Track with MidiEvent and // giving the Sequence to the Sequencer t.add(myMidiEvent1); player.setSequence(seq); // Play it using start player.start();
Implementación:
Ejemplo
Java
// Java Program to Illustrate JAva Sound API // Importing classes from // javax.sound package import javax.sound.midi.*; // Main class // MiniMusicApp public class GFG { // Method 1 // Main driver method public static void main(String[] args) { // Creating object of class inside main() GFG minimusic = new GFG(); // Calling method 2 to play the sound minimusic.play(); // Display message on the console for // successful execution of program System.out.print( "Successfully compiled and executed"); } // Method 2 // To play the sound public void play() { // Try block to check for exceptions try { // Getting a sequencer and open it Sequencer player = MidiSystem.getSequencer(); player.open(); // Making 1a new Sequence Sequence seq = new Sequence(Sequence.PPQ, 4); // Creating a new track Track track = seq.createTrack(); // Making a Message ShortMessage a = new ShortMessage(); // Put the Instruction in the Message a.setMessage(144, 1, 44, 100); // Make a new MidiEvent MidiEvent noteOn = new MidiEvent(a, 1); // Add MidiEvent to the Track track.add(noteOn); ShortMessage b = new ShortMessage(); b.setMessage(128, 1, 44, 100); MidiEvent noteOff = new MidiEvent(b, 16); track.add(noteOff); // Giving sequence to Sequencer player.setSequence(seq); // Start the Sequencer using start() method player.start(); } // Catch block to handle exceptions catch (Exception ex) { // Display the exception on console // along with line number ex.printStackTrace(); } } }
Producción:
Successfully compiled and executed
Publicación traducida automáticamente
Artículo escrito por kalashmathankar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA