Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们能用Soundfont和JFugue创作自己的作品吗?_Java_Jfugue_Soundfont_Gervill - Fatal编程技术网

Java 我们能用Soundfont和JFugue创作自己的作品吗?

Java 我们能用Soundfont和JFugue创作自己的作品吗?,java,jfugue,soundfont,gervill,Java,Jfugue,Soundfont,Gervill,我们能用Soundfont创作自己的作品吗?我正在使用TablaSoundFont和JFugue来创建新的构图并播放它。但是在从声音库加载乐器后,程序仍然播放钢琴的默认声音。如何从声音库启用乐器。 检查以下代码: import org.jfugue.*; import java.io.File; import java.io.FileInputStream; import javax.sound.midi.Instrument; import javax.so

我们能用Soundfont创作自己的作品吗?我正在使用TablaSoundFont和JFugue来创建新的构图并播放它。但是在从声音库加载乐器后,程序仍然播放钢琴的默认声音。如何从声音库启用乐器。 检查以下代码:

import org.jfugue.*;
    import java.io.File;
    import java.io.FileInputStream;


    import javax.sound.midi.Instrument;
    import javax.sound.midi.MidiDevice;
    import javax.sound.midi.MidiSystem;
    import javax.sound.midi.Sequence;
    import javax.sound.midi.Sequencer;
    import javax.sound.midi.Soundbank;
    import javax.sound.midi.Synthesizer;

    import com.sun.media.sound.SF2Soundbank;

    public class SF2Demo {
        static Synthesizer synthesizer;
        static Sequencer sequencer;
        static MidiDevice dev;


        public static void main(String[] args) {
            // TODO Auto-generated method stub
            try {
                synthesizer=MidiSystem.getSynthesizer();
                synthesizer.open();

                } 
            catch (Exception e) {e.printStackTrace();}

                loadSF2();

        Player player = new Player();
        Pattern pattern = new Pattern("C#3 D#3 D#3 C#3 C#3 D#3 D#3 C#3");//"Dha Dhin Dhin Dha Dha Dhin Dhin Dha " Tabla Pattern
        player.play(pattern);
        }

        private static void loadSF2() {
            String filename;
            boolean duringInitialLoad=false;
            try{
                filename="C:/Javapro/tabla-sf2/tabla.sf2";   
                File f= new File(filename);
                if(f.exists()){
                    Soundbank soundbank=new SF2Soundbank(
                            new FileInputStream(f));
                    synthesizer.loadAllInstruments(soundbank);
                    synthesizer.open(); 

                    p("\n now loaded on synthesizer: ");
                    printInstruments(soundbank,synthesizer.getLoadedInstruments());
                }
                else {
                    p(filename + " not found");
                    System.exit(0);
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }




        private static void printInstruments(Soundbank soundbank,Instrument[] instruments){
            p("");
            p("----------------------------------------------------------------------------");
            p("Soundbank name: " + soundbank.getName());
            p("Soundbank version: " + soundbank.getVersion());
            p("Description: " + soundbank.getDescription());
            p("Author:  " + soundbank.getVendor() + ".");
            p("Number of instruments: " + soundbank.getInstruments().length);

            for (Instrument i : instruments)
            {
                p(  "Bank="    + i.getPatch().getBank() + 
                       " Patch="   + i.getPatch().getProgram() +
                       " Instr.="  + i);
            }
        }

        public static void p(Object o){
            System.out.println(o);
        }
    }
在命令提示输出时:

C:\Javapro>javac-classpath gervill.jar;jfugue-4.0.3.jar SF2Test2.java

C:\Javapro>java-classpath gervill.jar;jfugue-4.0.3.jar;。SF2测试2

现在加载到合成器上:

-----------------------------------------------------------------------
Soundbank name: Tabla from Indian Orchestral Soundfont CD
Soundbank version: 2.1
Description: To learn more go to www.soundfont.com
Author:  Dr. S.K. Chew.
Number of instruments: 3
Bank=0 Patch=0 Instr.=Instrument: TablaSP bank #0 preset #0
Bank=0 Patch=1 Instr.=Instrument: TablaSPMLFO bank #0 preset #1
Bank=0 Patch=2 Instr.=Instrument: TablaSPVLFO bank #0 preset #2

我得到了同样的解决方案。创建播放器对象时需要传递合成器的对象。播放器=新播放器(合成器);嗨,苏波德,我还有更多的问题要问。我可以在什么地方和你联系吗?