Comment lire un fichier MIDI à l'aide de l'API Java Sound

introduction

Cet article rappelle comment lire des fichiers MIDI à l'aide de l'API Java Sound. Il s'agit d'un article rudimentaire qui peut être lu / arrêté pour le moment.

Exemple de code

Voici l'exemple de code source. C'est un programme simple que le MIDI est joué lorsque vous entrez le chemin du fichier MIDI avec l'entrée de la console. Nous faisons une gestion des exceptions incroyablement applicable, alors veuillez me pardonner. m (__) m

SamplePlayer.java


import java.io.File;
import java.io.IOException;
import java.util.Scanner;

import javax.sound.midi.InvalidMidiDataException;
import javax.sound.midi.MidiSystem;
import javax.sound.midi.MidiUnavailableException;
import javax.sound.midi.Sequence;
import javax.sound.midi.Sequencer;

public class SamplePlayer {

	public static void main(String[] args) {
		//Matériel pour lire les données MIDI/Une instance d'un périphérique logiciel.
		Sequencer sequencer = null;

		try {
			//Obtenez le séquenceur par défaut connecté à l'appareil.
			sequencer = MidiSystem.getSequencer();

			//Ouvrez l'appareil et acquérez des ressources.
			sequencer.open();
		}
		catch (MidiUnavailableException e) {
			e.printStackTrace();
		}

		//Obtenez le chemin du fichier MIDI à partir de l'entrée de la console.
		Scanner scanner = new Scanner(System.in);
		System.out.print("Chemin du fichier MIDI>> ");
		String path = scanner.next();

		try {
			//Données MIDI d'un fichier MIDI(Objet de séquence)Avoir.
			File file = new File(path);
			Sequence sequence = MidiSystem.getSequence(file);

			//Définissez les données MIDI acquises dans le séquenceur.
			sequencer.setSequence(sequence);
		}
		catch (InvalidMidiDataException e) {
			e.printStackTrace();
		}
		catch (IOException e) {
			e.printStackTrace();
		}

		//Lecture du séquenceur
		sequencer.start();

		//En attente de la saisie de la clé
		System.out.println("Entrez la chaîne de caractères appropriée pour terminer.");
		System.out.print(">>");
		scanner.next();
		scanner.close();

		//Arrêt du séquenceur
		sequencer.stop();

		//Fermez le séquenceur et libérez les ressources que vous utilisiez.
		sequencer.close();
	}
}

Commentaire

Préparez un séquenceur

Obtient les objets nécessaires à la lecture MIDI. Le code ci-dessous obtiendra automatiquement l'appareil par défaut fourni par l'API. (Si vous voulez juste le jouer, la valeur par défaut est suffisante.)

** * [1] et [2] lancent "MidiUnavailableException", assurez-vous donc de gérer l'exception. ** **


	Sequencer sequencer = null;
	try {
		// [1]Obtenez le séquenceur par défaut connecté à l'appareil.
		sequencer = MidiSystem.getSequencer();

		// [2]Ouvrez l'appareil et acquérez des ressources.
		sequencer.open();
	}
	catch (MidiUnavailableException e) {
		e.printStackTrace();
	}

Lire le fichier MIDI

Obtenez des données MIDI à partir d'un fichier MIDI. Les données MIDI acquises sont gérées par un objet appelé "Sequence".

Définissez l'objet acquis dans le séquenceur.

** * Comme précédemment, [1] et [2] lancent "MidiUnavailableException", assurez-vous donc de gérer l'exception. ** **

	try {
		// [1]Données MIDI d'un fichier MIDI(Objet de séquence)Avoir.
		File file = new File(path);
		Sequence sequence = MidiSystem.getSequence(file);

		// [2]Définissez les données MIDI acquises dans le séquenceur.
		sequencer.setSequence(sequence);
	}
	catch (InvalidMidiDataException e) {
		e.printStackTrace();
	}
	catch (IOException e) {
		e.printStackTrace();
	}


Lecture / arrêt MIDI

Après cela, vous pouvez contrôler la lecture / l'arrêt en appelant play (start) et stop (stop) du séquenceur.

	//Lecture du séquenceur
	sequencer.start();

	//Arrêt du séquenceur
	sequencer.stop();

Libérer les ressources système

Veillez à ne pas oublier d'exécuter close () à la fin du programme.

	sequencer.close();

Recommended Posts

Comment lire un fichier MIDI à l'aide de l'API Java Sound
Comment lire un fichier MIDI à l'aide de l'API Java Sound (spécifiez le périphérique MIDI à utiliser)
Comment désassembler un fichier de classe Java
Comment décompiler un fichier de classe Java
[Java] Comment utiliser la classe File
Essayez d'utiliser l'API Stream en Java
[Java] Comment calculer l'âge à l'aide de LocalDate
[Java] Comment utiliser la méthode toString ()
Etudier comment utiliser le constructeur (java)
[Traitement × Java] Comment utiliser la boucle
[Java] Comment sortir et écrire des fichiers!
[Java] Comment obtenir le répertoire actuel
[Traitement × Java] Comment utiliser la classe
Comment obtenir la date avec Java
[Java] Comment utiliser la classe Calendar
[Java] Comment accéder au début d'une chaîne spécifique à l'aide de la classe String
ChatWork4j pour l'utilisation de l'API ChatWork en Java
Comment jouer de la voix ou de la musique en utilisant javascript
Comment mettre en œuvre la fonction de chapelure avec Gretel
Comment utiliser l'API Java avec des expressions lambda
[Java] (pour MacOS) Méthode de définition du chemin de classe
Comment utiliser la méthode replace () (Java Silver)
[Java] Comment obtenir l'URL redirigée finale
Essayez d'utiliser l'analyse syntaxique de l'API COTOHA en Java
[Java] Mémo sur la façon d'écrire la source
[Java] Comment obtenir facilement la plus longue chaîne de caractères d'ArrayList à l'aide de stream
Comment définir les tabulations et les espaces pour qu'ils soient visibles à l'aide de la touche de tabulation pour insérer des espaces dans des fichiers Java dans Eclipse
[Java] Comment obtenir l'URL de la source de transition
[Java] Comment omettre le constructeur privé dans Lombok
Comment écrire Scala du point de vue de Java
Comment entrer / sortir des fichiers mainframe IBM en Java?
[Java] Comment sortir de Janken (équivalent à paiza rang A)
[Java] Comment extraire le nom du fichier du chemin
[Pour les débutants] Comment utiliser Stream API après Java 8
[Android Studio] [Java] Comment réparer l'écran verticalement
Résumé de l'API de communication Java (1) Comment utiliser Socket
Résumé de l'API de communication Java (3) Comment utiliser SocketChannel
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment utiliser Play Framework sans utiliser l'activateur de sécurité
Résumé de l'API de communication Java (2) Comment utiliser HttpUrlConnection
Comment obtenir le nom de classe de l'argument de LoggerFactory.getLogger lors de l'utilisation de SLF4J en Java
Comment utiliser Maven pour placer des fichiers de ressources en dehors de JAR
Comment utiliser l'API Chain
Comment abaisser la version java
[Java] Comment utiliser Map
Comment désinstaller Java 8 (Mac)
Java pour jouer avec Function
Java - Comment créer JTable
[À voir absolument pour l'apprenti ingénieur Java] Comment utiliser l'API Stream
Différence entre Java et JavaScript (comment trouver la moyenne)
Comment utiliser java Facultatif
Comment réduire les images Java
Comment rédiger un commentaire java