Créer et jouer un javax.sound.midi.Track

Créer et jouer un javax.sound.midi.Track - Java - Programmation

Marsh Posté le 03-04-2005 à 21:32:57    

Y'a un truc que je comprends pas :
J'essaye de créer et d'enrichir un Track avec des évènements de notes.
Quand je charge un fichier midi, pas de problème, le morceau est lu normalement.
Si sur un autre Track, je rajoute des évènements, ils sont bien lus.
 
Maintenant, dès que je vire le Track du fichier midi chargé (il ne reste donc plus que mon track créé par le code) ben là, on entend juste un crachouillis. J'arrive pas à faire le rapprochement :
 

Code :
  1. Sequence sequence=MidiSystem.getSequence(midiFile);
  2. //sequence.deleteTrack(sequence.getTracks()[1]);  // dans mon fichier, y'a une piste vide en 0 et le morceau en track 1. Ici, je laisse la piste du morceau et tout marche nickel
  3. Track track=sequence.createTrack();
  4. track.add(createNoteOnEvent(70, 96)); // l'évènement est bien lu, avec un beau son de piano
  5. seq=MidiSystem.getSequencer();
  6. seq.open();
  7. seq.setSequence(sequence);
  8. Synthesizer sm_synthesizer=MidiSystem.getSynthesizer();
  9. sm_synthesizer.open();
  10. Receiver synthReceiver=sm_synthesizer.getReceiver();
  11. Transmitter seqTransmitter=seq.getTransmitter();
  12. seqTransmitter.setReceiver(synthReceiver);


 

Code :
  1. Sequence sequence=MidiSystem.getSequence(midiFile);
  2. sequence.deleteTrack(sequence.getTracks()[1]);  // ici, je supprime la seule piste du fichier où y'a des évènements, il devrait donc rester uniquement l'évènement que j'ajoute après
  3. Track track=sequence.createTrack();
  4. track.add(createNoteOnEvent(70, 96));  // et là, il est complètement distordu
  5. seq=MidiSystem.getSequencer();
  6. seq.open();
  7. seq.setSequence(sequence);
  8. Synthesizer sm_synthesizer=MidiSystem.getSynthesizer();
  9. sm_synthesizer.open();
  10. Receiver synthReceiver=sm_synthesizer.getReceiver();
  11. Transmitter seqTransmitter=seq.getTransmitter();
  12. seqTransmitter.setReceiver(synthReceiver);


Reply

Marsh Posté le 03-04-2005 à 21:32:57   

Reply

Marsh Posté le 04-04-2005 à 12:23:50    

distordu? tu pourrais être plus précis?
Sinon, pê que sur la piste que tu effaces, il y a des evenements qui initialisent le synthé ou je ne sais quoi ...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 05-04-2005 à 17:18:12    

Difficile de décrire exactement le son.. je dirais qu'il est saccadé.
En effet, j'imagine bien que sur la piste que j'efface y'a des infos qui font que le son se joue bien, mais j'ai trouvé que 2 types de tutos :
 
Création d'une piste et enregistrement dans un fichier
Lecture d'une piste depuis un fichier
 
 
et dans le premier, ils font exactement comme je fais alors je vois pas trop.
Sinon, j'ai enregistré ce que j'entends :
 
D'abord on entend un son de piano correct, c'est celui que je joue en même temps que la piste chargée que j'ai mise en mute.
Ensuite on entend une espèce de claquement râpeux, et ça c'est quand je détrus la piste mutée.
 
http://tom.rethaller.free.fr/vrac/piano.mp3

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed