raytaller | 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 :
- Sequence sequence=MidiSystem.getSequence(midiFile);
- //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
- Track track=sequence.createTrack();
- track.add(createNoteOnEvent(70, 96)); // l'évènement est bien lu, avec un beau son de piano
- seq=MidiSystem.getSequencer();
- seq.open();
- seq.setSequence(sequence);
- Synthesizer sm_synthesizer=MidiSystem.getSynthesizer();
- sm_synthesizer.open();
- Receiver synthReceiver=sm_synthesizer.getReceiver();
- Transmitter seqTransmitter=seq.getTransmitter();
- seqTransmitter.setReceiver(synthReceiver);
|
Code :
- Sequence sequence=MidiSystem.getSequence(midiFile);
- 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
- Track track=sequence.createTrack();
- track.add(createNoteOnEvent(70, 96)); // et là, il est complètement distordu
- seq=MidiSystem.getSequencer();
- seq.open();
- seq.setSequence(sequence);
- Synthesizer sm_synthesizer=MidiSystem.getSynthesizer();
- sm_synthesizer.open();
- Receiver synthReceiver=sm_synthesizer.getReceiver();
- Transmitter seqTransmitter=seq.getTransmitter();
- seqTransmitter.setReceiver(synthReceiver);
|
|