示例#1
0
 IEnumerator TestEveryBeat()
 {
     while (true)
     {
         RespondToSound(microphone.VolumeRMS);
         FindObjectOfType <AudioController>().FadeAudioTest();
         yield return(new WaitForSeconds(60.0f / AudioHelmClock.GetGlobalBpm()));
     }
 }
示例#2
0
    // Use this for initialization
    void Awake()
    {
        ChangeOctave(minOct, maxOct);
        foreach (var sequenceGenerator in sequenceGenerators)
        {
            sequenceGenerator.minNote = rootNote * OctaveSpan;
        }

        CountDownTime = 60.0 / AudioHelmClock.GetGlobalBpm() * BeatsPerCycle;
    }
    // Start is called before the first frame update
    void Awake()
    {
        CatPlayList = GameObject.Find("CatPlaylist").GetComponentsInChildren <CatList>();
        clock       = GameObject.Find("Clock").GetComponent <AudioHelmClock>();
        print("catplaylist : " + CatPlayList.Length);
        clock.pause = true;
        order       = 0;
        Started     = false;

        PlayButton  = GameObject.Find("PlayButton").GetComponent <Button>();
        PauseButton = GameObject.Find("PauseButton").GetComponent <Button>();
        StopButton  = GameObject.Find("StopButton").GetComponent <Button>();

        PlayButton.onClick.AddListener(delegate //If press start button
        {
            if (!Started)                       //Initialize sequencers and start to play
            {
                print("lets start : " + order);

                Started          = true;
                currentCatList   = CatPlayList[order];
                currentSequencer = ExtractSequencersFromCatList(currentCatList);
                foreach (Sequencer sequencer in currentSequencer)
                {
                    SequencerReadyToStart(sequencer);
                }
                //To listen beat event, choose pivot sequencer.
                pivot_sequencer = currentSequencer[0];
                pivot_sequencer.beatEvent.AddListener(delegate
                {
                    attachNextSequencer(pivot_sequencer);
                });
                clock.pause = false;
            }
            else  //Resume
            {
                print("resume");
                clock.pause = false;
            }
        });

        PauseButton.onClick.AddListener(delegate
        {
            clock.pause = true;
        });

        StopButton.onClick.AddListener(delegate
        {
            Started         = false;
            order           = 0;
            pivot_sequencer = null;
        });
    }
示例#4
0
    private void CountDownMacro()
    {
        CountDownTime -= Time.fixedDeltaTime;
        //Debug.Log(AudioHelmClock.GetGlobalBpm());
        if (CountDownTime <= 0)
        {
            ChangeOctave(minOct, maxOct);
            foreach (var sequenceGenerator in sequenceGenerators)
            {
                sequenceGenerator.Generate();
            }

            CountDownTime = 60.0 / AudioHelmClock.GetGlobalBpm() * BeatsPerCycle;
            //Debug.Log("Current Octave: " + currentOctaveIndex + " Current Min note: " + sequenceGenerator.minNote + " Octave Span:" + sequenceGenerator.octaveSpan);
        }
    }
示例#5
0
 private void OnTriggerExit2D(Collider2D other)
 {
     if (exit)
     {
         if (other.gameObject.name != "PlayerCat")
         {
             Debug.Log("exit");
             other.gameObject.GetComponent <Cat>().sequencer.enabled = false;
             catList.Remove(other.gameObject.GetComponent <Cat>());
             catObjectList.Remove(other.gameObject);
             Debug.Log(AudioHelmClock.GetGlobalBeatTime().ToString());
         }
         if (other.gameObject.name == "PlayerCat")
         {
             OnPause();
         }
     }
 }
示例#6
0
    void Update()
    {
        clock       = GameObject.Find("Clock").GetComponent <AudioHelmClock>();
        bpm         = clock.bpm;
        timeToReach = 60f * 4f * 4 / bpm;

        t += Time.deltaTime / timeToReach;

        //Moves one Row Together
        catPlayList.transform.position = Vector3.Lerp(start, goal, t);
        //Debug.Log(Vector3.Lerp(start, goal, t).x.ToString());

        if (catPlayList.transform.position.x <= -cameraWidth * 0.55f)
        {
            catPlayList.transform.position = start;
            t = 0;
            for (int i = 0; i < catPlayList.transform.childCount; i++)
            {
                catPlayList.transform.GetChild(i).localPosition = new Vector3(-cameraWidth * 1.05f + (1.1f / 4f) * i * cameraWidth, -cameraHeight * 0.05f, 0);
            }
        }


        for (int i = 0; i < catPlayList.transform.childCount; i++)
        {
            //set One Row's Position back to 0, and play music.
            if (catPlayList.transform.GetChild(i).position.x <= goal.x)
            {
                catPlayList.transform.GetChild(i).localPosition = new Vector3((1.1f / 4f) * i * cameraWidth, -cameraHeight * 0.05f, 0);
            }

            /*
             * if (catPlayList.transform.GetChild(i).position.x > Vector3.Lerp(start, goal, 0.25f).x) {
             *  for (int j = 0; j < catPlayList.transform.GetChild(i).childCount; j++) {
             *      catPlayList.transform.GetChild(i).GetChild(j).GetChild(2).GetComponent<SampleSequencer>().loop = false;
             *  }
             *
             * }
             */
        }
    }
示例#7
0
 void Awake()
 {
     clock = GameObject.Find("Clock").GetComponent <AudioHelmClock>();
 }
示例#8
0
 // Start is called before the first frame update
 void Start()
 {
     clock = GameObject.Find("Clock").GetComponent <AudioHelmClock>();
     SetBPMSlider();
 }
示例#9
0
    // Start is called before the first frame update
    void Start()
    {
        patternElements = GetComponentsInChildren <Toggle>();
        Debug.Log("NoteSet # of toggle : " + patternElements.Length);
        count = 0;

        clock = GameObject.Find("Clock").GetComponent <AudioHelmClock>();

        //GameObject DrumSequencer = GameObject.Find("DrumKit01Sequencer");
        //GameObject SynthSequencer = GameObject.Find("SynthSequencer");
        //GameObject BassSequencer = GameObject.Find("BassSequencer");
        //GameObject GuitarSequencer = GameObject.Find("GuitarSequencer");


        CatList Catlist = GameObject.Find("CatList").GetComponent <CatList>();

        currentCat   = Catlist.catlist[Catlist.catlist.Count - 1];
        positionText = GameObject.Find("Position").GetComponent <Text>();


        print(currentCat.instrumentName);

        if (currentCat.instrumentName == "drum")
        {
            sequencer = GameObject.Find("DrumKit01Sequencer").GetComponent <Sequencer>();
        }
        else if (currentCat.instrumentName == "synthesizer")
        {
            sequencer = GameObject.Find("SynthSequencer").GetComponent <Sequencer>();
        }
        else if (currentCat.instrumentName == "bass")
        {
            print("Get into the bass");
            sequencer = GameObject.Find("BassSequencer").GetComponent <Sequencer>();
            //patch = GameObject.Find("basspatch").GetComponent<HelmPatch>();
            //print(patch);

            //print(GameObject.Find("BassSequencer").GetComponent<HelmController>());
            //GameObject.Find("BassSequencer").GetComponent<HelmController>().LoadPatch(patch);
            key = key - 12;
        }
        else if (currentCat.instrumentName == "guitar")
        {
            sequencer = GameObject.Find("GuitarSequencer").GetComponent <Sequencer>();
        }
        else
        {
            print("this is not good");
        }

        switch (currentCat.catType)
        {
        case "plain":
            velocity    = 0.7f;
            beat        = 16;
            beatdivider = 1f;
            break;

        case "strong":
            velocity    = 1.0f;
            beat        = 16;
            beatdivider = 1f;
            break;

        case "sensitive":
            velocity    = 0.4f;
            beat        = 16;
            beatdivider = 1f;
            break;

        case "supreme":
            velocity    = 0.7f;
            beat        = 32;
            beatdivider = 2f;
            break;

        default:
            break;
        }

        ResetButton = GameObject.Find("ResetButton").GetComponent <Button>();

        if (sequencer == null)
        {
            print("null!");
        }
        sequencer.Clear();
        Color normalColor = patternElements[0].colors.normalColor;

        initColor = new Color(normalColor.r, normalColor.g, normalColor.b);

        ResetButton.onClick.AddListener(delegate
        {
            ResetNote();
        });
        sequencer.beatEvent.AddListener(delegate
        {
            ToggleBackgroundChange();
        });
        //sequencer.
        //Pattern Color Selection
        //if (InstName == "Bass Drum") {
        //    for (int )
        //}
    }