Midi Fading и регуляторы громкости

Итак, я делаю миди-систему для электронной 2-мерной java-игры при разработке, и до сих пор мне удавалось создать простой миди-файл, который воспроизводится + останавливается, но я пытался играть с громкостью и затуханием, но это не так. кажется, хотят работать правильно.

Вот мой файл класса:

package sign;
import java.io.*;
import javax.sound.midi.*;

public class Midi {

    private static Sequencer sequencer = null;  

    public void play(String filename) {
        play(filename,false); 
        }

    public static void play(String filename, boolean loop) {
        try {
            stop();
            sequencer = MidiSystem.getSequencer();
            File midiFile = new File(filename);
            sequencer.setSequence(MidiSystem.getSequence(midiFile));
            if (loop)
                sequencer.setLoopCount(Sequencer.LOOP_CONTINUOUSLY);
            sequencer.open();
            sequencer.start();
         } catch (Exception e) {
            System.err.println("MidiPlayer: " + e);
            sequencer = null;
         }
    }

    public static Sequencer getSequencer() { 
        return sequencer; 
        }

    public static void stop() {
        try {
            if ((sequencer == null) || (!sequencer.isRunning())) return;
            sequencer.stop();
            sequencer.close();
        }
        catch (Exception e) {
            System.err.println("MidiPlayer: " + e);
        }
        sequencer = null;
    }

}

Я спрашиваю, может ли кто-нибудь объяснить мне, как реализовать громкость + затухание с этим файлом?

Я пробовал некоторые методы затухания + регулировка громкости, но они всегда вылетают из моей игры, потому что для их работы требуется какое-то смехотворно старое миди-устройство.


person Garrett    schedule 15.09.2013    source источник
comment
Могу ли я стучать? если так. шишка :с   -  person Garrett    schedule 19.09.2013


Ответы (1)


Здесь был дан ответ о том, как изменить громкость секвенсора: Каким методом можно регулировать громкость в MIDI-секвенсоре?

Для затухания вам придется реализовать это самостоятельно (т.е. периодически уменьшать громкость секвенсора).

person Thalur    schedule 20.11.2013