예제 #1
0
 // Reset and start sequecing.
 public void ResetAndPlay(float startTime)
 {
     // Start the sequencer and dispatch events at the beginning of the track.
     seq = new MidiTrackSequencer(song.tracks[0], song.division, bpm);
     DispatchEvents(seq.Start(startTime));
     // Debug.Log(startTime + " " + seq.Playing);
 }
예제 #2
0
    public override void ProcessFrame(Playable playable, FrameData info, object playerData)
    {
        double time = playable.GetTime();

        MidiEventReceiver trackBinding = playerData as MidiEventReceiver;

        if (!trackBinding)
        {
            return;
        }

        m_midiEventReceiver = trackBinding;

        //  Debug.Log( playable.GetGraph().GetRootPlayable(0).GetPlayState() );

        // Debug.Log(m_previousState);

        if (Director.state == PlayState.Paused)
        {
            m_lastTime = playable.GetTime();
            // DispatchEvents(m_seq.Start((float)playable.GetTime()));
        }
        // On play
        if (Director.state == PlayState.Playing && m_previousState == PlayState.Paused)
        {
            if (m_seq != null)
            {
                Debug.Log("Start it " + m_lastTime);
                LoadSong();
                LoadSequencer();
                DispatchEvents(m_seq.Start((float)m_lastTime));
            }
        }
        m_previousState = Director.state;


        if (!m_FirstFrameHappened)
        {
            m_FirstFrameHappened = true;
        }


        if (m_seq != null && m_seq.Playing)
        {
            // Update the sequencer and dispatch incoming events.

            DispatchEvents(m_seq.Advance(info.deltaTime));
        }
    }
예제 #3
0
    // Use this for initialization
    void Start()
    {
        //var bytes = File.ReadAllBytes(@"single_paradiddle");

        //TextAsset ta = Resources.Load("single_paradiddle",typeof(TextAsset)) as TextAsset;
        //Object midifile = Resources.Load("single_paradiddle");
        //Debug.Log(ta);
        MidiFileContainer song = MidiFileLoader.Load(midiFile.bytes);

        seq = new MidiTrackSequencer(song.tracks[0], song.division, 120);

        foreach (MidiEvent e in seq.Start())
        {
            // Do something with a MidiEvent.
            Debug.Log(e);
        }
    }
예제 #4
0
    void ResetAndPlay()
    {
        Component[] cs = GetComponents <AudioSource> ();
        foreach (Component c in cs)
        {
            AudioSource a = c as AudioSource;
            a.time = startTime;
            a.Play();
        }

        foreach (MidiFileContainer song in songs)
        {
            for (int i = 0; i < song.tracks.Count; ++i)
            {
                MidiTrackSequencer s = new MidiTrackSequencer(song.tracks [i], song.division, bpm);
                List <MidiEvent>   e = s.Start(startTime);
                if (receiveStartEvent)
                {
                    VJMidiInput.ReceiveMidiEvents(e);
                }
                sequencers.Add(s);
            }
        }
    }
예제 #5
0
		void ResetAndPlay ()
		{
			sequencer = new MidiTrackSequencer (song.tracks [1], song.division, 131.0f);
			ApplyMessages (sequencer.Start ());
		}
예제 #6
0
 public void ResetAndPlay()
 {
     sequencer = new MidiTrackSequencer(song.tracks[0], song.division, bpm);
     ApplyMessages(sequencer.Start());
 }
예제 #7
0
 public void Begin(float startTime)
 {
     DispatchEvents(seq.Start(startTime));
 }
예제 #8
0
 public void Begin(float startTime)
 {
     DispatchEvents(seq.Start(startTime));
     // Debug.Log(startTime + " " + seq.Playing);
 }