Example #1
0
    void OnTriggerEnter2D(Collider2D triggerCollider) //This one is for playing notes
    {
        NoteHelper note;

        note.pitch    = "";
        note.octave   = 0;
        note.waveform = 0;
        if (triggerCollider.tag == "Single Note")
        {
            note.pitch    = triggerCollider.GetComponent <Note>().pitch;
            note.waveform = (int)triggerCollider.GetComponent <Note>().wave;
            note.octave   = triggerCollider.GetComponent <Note>().octave;
            float freq = RandomEnumSetter.CalculateFrequency(note.pitch, note.octave);

            msg = "/ch1" + "+/freq-" + freq.ToString();
            //Debug.Log("Actual freq: " + freq + "Freq played: " + FindObjectOfType<tcpserver>().freqMedian);
            msg += "+/selector-" + note.waveform.ToString();
        }

        else if (triggerCollider.tag == "Long Note")
        {
            note.pitch    = triggerCollider.GetComponent <LongNote>().pitch;
            note.waveform = (int)triggerCollider.GetComponent <LongNote>().wave;
            note.octave   = triggerCollider.GetComponent <LongNote>().octave;
            float freq = RandomEnumSetter.CalculateFrequency(note.pitch, note.octave);
            //Debug.Log("Actual freq: " + freq + "Freq played: " + FindObjectOfType<tcpserver>().freqMedian);
            msg  = "/ch1" + "+/freq-" + freq.ToString();
            msg += "+/selector-" + note.waveform.ToString();
        }
    }
Example #2
0
 void Start()
 {
     message        = SendStop();
     gameOn         = FindObjectOfType <Spawner>().gameOn;
     backtrackNotes = RandomEnumSetter.MakeSongFromText(backtrackChannel);
     currentNote    = 0;
     speed          = FindObjectOfType <Spawner>().speed;
     delay          = FindObjectOfType <Spawner>().delay;
 }
Example #3
0
    void Start()
    {
        btn.onClick.AddListener(StartGame);
        timeBetweenSpawnsInSeconds = 60f / beatsPerMinute;
        speed = spaceBetweenNotes * 0.64f / timeBetweenSpawnsInSeconds;
        screenHalfSizeInWorldUnits = new Vector2(Camera.main.aspect * Camera.main.orthographicSize, Camera.main.orthographicSize);
        songArray   = RandomEnumSetter.MakeSongFromText(song);
        currentNote = 0;
        float dist = screenHalfSizeInWorldUnits.x - FindObjectOfType <Player>().transform.position.x;

        delay = dist / speed;
    }
Example #4
0
    public string SendBacktrack(int note)
    {
        float  freq     = RandomEnumSetter.CalculateFrequency(backtrackNotes[note].pitch, backtrackNotes[note].octave);
        int    waveform = backtrackNotes[note].waveform;
        int    length   = backtrackNotes[note].length;
        string msg;

        if (waveform != lastWaveForm)
        {
            msg = "/freq-" + freq.ToString() + "+/selector-" + waveform.ToString();
        }
        else
        {
            msg = "/freq-" + freq.ToString();
        }
        return(msg);
    }
Example #5
0
    void Update()
    {
        string selectorMsg = "+/selector-";

        if (RotX > 15)
        {
            showWave = pulse;
        }
        else if (RotX < -20)
        {
            showWave = triangle;
        }
        else if (RotY > 20)
        {
            showWave = square;
        }
        else if (RotY < -20)
        {
            showWave = sawtooth;
        }
        else
        {
            showWave = sine;
        }

        if (flex > 750)
        {
            if (RotX > 15)
            {
                selector = pulse;
            }
            else if (RotX < -20)
            {
                selector = triangle;
            }
            else if (RotY > 20)
            {
                selector = square;
            }
            else if (RotY < -20)
            {
                selector = sawtooth;
            }
            else
            {
                selector = sine;
            }
            selectorMsg += selector;
        }
        else
        {
            selector     = 0;
            selectorMsg += selector;
        }

        float frequency = freq;

        if (frequency == 7f)
        {
            if (count > 1)
            {
                frequency = freqs[count - 1];
            }
            else
            {
                frequency = freqs[10];
            }
        }

        freqs[count] = frequency;
        count++;

        if (count > freqs.Length - 1)
        {
            count = 0;
        }

        float[] freqsort = new float[11];
        freqs.CopyTo(freqsort, 0);
        Array.Sort(freqsort);
        median = freqsort[5];

        int lanes = FindObjectOfType <Spawner>().lanes;

        int currLane = (int)Math.Round(Mathf.Lerp(12, lanes - 1, Mathf.InverseLerp(Low, Low + Delta, median)));

        octave = currLane / 7;

        if (currLane < 7)
        {
            pitch = RandomEnumSetter.GMajorPosInv[currLane];
        }
        else
        {
            pitch = RandomEnumSetter.GMajorPosInv[currLane - 7 * octave];
        }

        freqMedian = RandomEnumSetter.CalculateFrequency(pitch, octave);

        freqMsg += "+/freq-" + freqMedian;

        msg = "/ch1" + freqMsg + selectorMsg;

        if (msg != lastMsg)
        {
            FindObjectOfType <BacktrackHandler>().ch1Msg = msg;
            lastMsg = msg;
        }

        freqMsg     = "";
        selectorMsg = "";
    }
Example #6
0
    void Update()
    {
        if (gameOn)
        {
            if (true)
            {
                if (Time.time > nextSpawnTime)
                {
                    if (gameMode == GameMode.Random)
                    {
                        Vector2  spawnPosition = new Vector2(screenHalfSizeInWorldUnits.x + 0.64f, -screenHalfSizeInWorldUnits.y + spawnBoundary + Random.Range(0, lanes) * 2 * (screenHalfSizeInWorldUnits.y - spawnBoundary) / (lanes - 1));
                        Waveform randomWave    = RandomEnumSetter.GetRandomWaveform();
                        if (Random.Range(0, 2) == 0)
                        {
                            nextSpawnTime = Time.time + timeBetweenSpawnsInSeconds;
                            GameObject newNote = Instantiate(SingleNotePrefab, spawnPosition, Quaternion.identity);
                            newNote.GetComponent <Note>().speed = speed;
                            newNote.GetComponent <Note>().SetColor(randomWave);
                        }
                        else
                        {
                            int noteLength = Random.Range(2, 4);
                            nextSpawnTime = Time.time + timeBetweenSpawnsInSeconds + (0.64f * (noteLength - 1) / speed);
                            GameObject newLongNote = Instantiate(LongNotePrefab, spawnPosition, Quaternion.identity);
                            newLongNote.GetComponent <LongNote>().speed      = speed;
                            newLongNote.GetComponent <LongNote>().noteLength = noteLength;
                            newLongNote.GetComponent <LongNote>().wave       = randomWave;
                        }
                    }
                    if (gameMode == GameMode.Premade)
                    {
                        if (currentNote < songArray.Length)
                        {
                            int noteLength = songArray[currentNote].length;
                            if (songArray[currentNote].pitch == "Break")
                            {
                                nextSpawnTime = Time.time + timeBetweenSpawnsInSeconds + (0.64f * (noteLength - 1) / speed);
                            }
                            else
                            {
                                int notePosition = RandomEnumSetter.GMajorPos[songArray[currentNote].pitch];
                                int octaveOffset = (songArray[currentNote].octave - 1) * 8;

                                Vector2 spawnPosition = new Vector2(screenHalfSizeInWorldUnits.x + 0.64f, -screenHalfSizeInWorldUnits.y + spawnBoundary + (notePosition + octaveOffset) * 2 * (screenHalfSizeInWorldUnits.y - spawnBoundary) / (lanes - 1));
                                if (noteLength == 1)
                                {
                                    nextSpawnTime = Time.time + timeBetweenSpawnsInSeconds;
                                    GameObject newNote = Instantiate(SingleNotePrefab, spawnPosition, Quaternion.identity);
                                    newNote.GetComponent <Note>().speed  = speed;
                                    newNote.GetComponent <Note>().pitch  = songArray[currentNote].pitch;
                                    newNote.GetComponent <Note>().octave = songArray[currentNote].octave;
                                    newNote.GetComponent <Note>().wave   = (Waveform)songArray[currentNote].waveform;
                                    newNote.GetComponent <Note>().SetColor((Waveform)songArray[currentNote].waveform);
                                }
                                else
                                {
                                    nextSpawnTime = Time.time + timeBetweenSpawnsInSeconds + (0.64f * (noteLength - 1) / speed);
                                    GameObject newLongNote = Instantiate(LongNotePrefab, spawnPosition, Quaternion.identity);
                                    newLongNote.GetComponent <LongNote>().noteLength = songArray[currentNote].length;
                                    newLongNote.GetComponent <LongNote>().speed      = speed;
                                    newLongNote.GetComponent <LongNote>().pitch      = songArray[currentNote].pitch;
                                    newLongNote.GetComponent <LongNote>().octave     = songArray[currentNote].octave;
                                    newLongNote.GetComponent <LongNote>().wave       = (Waveform)songArray[currentNote].waveform;
                                }
                            }
                            currentNote++;
                        }
                        else
                        {
                            if (Time.time > delay + (songArray.Length + 2) * 0.64f / speed)
                            {
                                gameOn = false;
                                Debug.Log(FindObjectOfType <Player>().noteAccuracy);
                            }
                        }
                    }
                }
            }
        }
    }