コード例 #1
0
    public override void OnInspectorGUI()
    {
        // Only shows the details on Play Mode.
        if (EditorApplication.isPlaying)
        {
            var endpointCount = MidiJack.CountEndpoints();

            // Endpoints.
            var temp = "Detected MIDI endpoints:";
            for (var i = 0; i < endpointCount; i++)
            {
                var id   = MidiJack.GetEndpointIdAtIndex(i);
                var name = MidiJack.GetEndpointName(id);
                temp += "\n" + id.ToString("X8") + ": " + name;
            }
            EditorGUILayout.HelpBox(temp, MessageType.None);

            // Incomming messages.
            temp = "Incoming MIDI messages:";
            foreach (var message in (target as MidiJack).History)
            {
                temp += "\n" + message.ToString();
            }
            EditorGUILayout.HelpBox(temp, MessageType.None);

            // Make itself dirty to update on every time.
            EditorUtility.SetDirty(target);
        }
        else
        {
            EditorGUILayout.HelpBox("You can view the sutatus on Play Mode.", MessageType.Info);
        }
    }
コード例 #2
0
ファイル: KnobIndicator.cs プロジェクト: dtendr/BubbleBlabble
    void Update()
    {
        var position = transform.localPosition;

        position.y = (MidiJack.GetKnob(knobNumber) - 0.5f) * 10.0f;
        transform.localPosition = position;
    }
コード例 #3
0
 // Update is called once per frame
 void Update()
 {
     if (cPos.moving && MidiJack.GetKnob(1) < AudioInput.DeltaLevel)
     {
         SetCamera();
     }
 }
コード例 #4
0
 public void Update()
 {
     if (_control == Control.Off)
     {
         _level = _defaultLevel;
     }
     else if (_control == Control.MidiKnob)
     {
         _level = MidiJack.GetKnob(_midiChannel, _knobIndex, _defaultLevel);
     }
     else if (_control == Control.MidiNote)
     {
         _level = MidiJack.GetKey(_midiChannel, _noteNumber);
     }
     else // _control == Control.InputAxis
     {
         if (string.IsNullOrEmpty(_inputAxis))
         {
             _level = _defaultLevel;
         }
         else
         {
             _level = Input.GetAxis(_inputAxis);
         }
     }
     _level = _curve.Evaluate(_level);
 }
コード例 #5
0
    public void Update()
    {
        if (lastFrameCount < 0)
        {
            filteredValue = realValue;
        }

        if (Time.frameCount != lastFrameCount)
        {
            var fromKnob = MidiJack.GetKnob(knobNumber);

            if (fromKnob != lastKnobValue)
            {
                realValue     = Mathf.Lerp(minValue, maxValue, fromKnob);
                lastKnobValue = fromKnob;
            }

            if (sensitivity >= 1.0f)
            {
                filteredValue = realValue;
            }
            else
            {
                filteredValue = ExpEase.Out(filteredValue, realValue, sensitivity * -9.9f - 0.1f);
            }

            lastFrameCount = Time.frameCount;
        }
    }
コード例 #6
0
    void Update ()
    {
        float input = 0.0f;

        // Audio input.
        if (audioMode != AudioMode.NoInput)
        {
            if (audioMode == AudioMode.MonoLevel)
            {
                rawInput = AudioJack.instance.ChannelRmsLevels [audioIndex];
            }
            else if (audioMode == AudioMode.StereoLevel)
            {
                rawInput = 0.5f * (AudioJack.instance.ChannelRmsLevels [audioIndex] + AudioJack.instance.ChannelRmsLevels [audioIndex + 1]);
            }
            else
            {
                rawInput = AudioJack.instance.OctaveBandSpectrum [audioIndex];
            }

            // Check the peak level.
            peak -= Time.deltaTime * falldown;
            peak = Mathf.Max (peak, Mathf.Max (rawInput, lowerBound + dynamicRange + headroom));
            
            // Normalize the input level.
            input = (rawInput - peak + headroom + dynamicRange) / dynamicRange;
            input = audioCurve.Evaluate (Mathf.Clamp01 (input));
        }

        // MIDI CC input.
        if (gainEnabled)
        {
            gain = gainCurve.Evaluate (MidiJack.GetKnob (gainKnobChannel, gainKnobIndex, 1.0f));
            input *= gain;
        }
        if (offsetEnabled)
        {
            offset = offsetCurve.Evaluate (MidiJack.GetKnob (offsetKnobChannel, offsetKnobIndex));
            input += offset;
        }

        // Make output.
        input = Mathf.Clamp01 (input);

        if (sensitivity > 0.0f)
        {
            output = input - (input - output) * Mathf.Exp (-sensitivity * Time.deltaTime);
        }
        else
        {
            output = input;
        }
    }
コード例 #7
0
 public void Update(MonoBehaviour owner)
 {
     if (pads != null)
     {
         foreach (var pad in pads)
         {
             if (MidiJack.GetKeyDown(pad.noteNumber))
             {
                 Launch(owner, pad);
             }
         }
     }
 }
コード例 #8
0
ファイル: seaBoardMove.cs プロジェクト: dtendr/BubbleBlabble
    void moveToTarget()
    {
        GetComponent <Rigidbody2D>().AddForce(-GetComponent <Rigidbody2D>().velocity.normalized *m_dragspeed);

        float move = MidiJack.GetKey(calcKey());

        //Debug.Log (move);
        if (move > .1)
        {
            Vector2 dif = m_target.transform.position - transform.position;
            if ((dif).magnitude > 1)
            {
                GetComponent <Rigidbody2D>().AddForce(dif.normalized * m_speed * move * 10);
            }
        }
    }
コード例 #9
0
    void Update()
    {
        var channels = MidiJack.GetKnobNumbers();

        // If a new chennel was added...
        if (indicators.Count != channels.Length)
        {
            // Instantiate the new indicator.
            var go = Instantiate(prefab, Vector3.right * indicators.Count, Quaternion.identity) as GameObject;

            // Initialize the indicator.
            var indicator = go.GetComponent <KnobIndicator> ();
            indicator.knobNumber = channels [indicators.Count];

            // Add it to the indicator list.
            indicators.Add(indicator);
        }
    }
コード例 #10
0
ファイル: seaBoardMove.cs プロジェクト: dtendr/BubbleBlabble
    private ArrayList getInput()
    {
        ArrayList notes_pressed = new ArrayList();

        for (int i = 68; i < 88; i += 1)
        {
            if (MidiJack.GetKey(i) > .1)
            {
                //Debug.Log("key pressed");
                notes_pressed.Add(i);
            }
        }

//		if (notes_pressed.Count > 0) {
//			foreach (int note in notes_pressed) {
//				Debug.Log (midiStr[note]);
//			}
//		}
        return(notes_pressed);
    }
コード例 #11
0
ファイル: seaBoardMove.cs プロジェクト: dtendr/BubbleBlabble
    void testingMove()
    {
        float upKey = MidiJack.GetKey(65), downKey = MidiJack.GetKey(67), leftKey = MidiJack.GetKey(69), rightKey = MidiJack.GetKey(71);

        GetComponent <Rigidbody2D>().AddForce(-GetComponent <Rigidbody2D>().velocity.normalized *m_dragspeed);
        if (upKey > 0.1)
        {
            GetComponent <Rigidbody2D>().AddForce(transform.up.normalized * m_speed * upKey * 10);
        }
        if (downKey > 0.1)
        {
            GetComponent <Rigidbody2D>().AddForce(-transform.up.normalized * m_speed * downKey * 10);
        }
        if (leftKey > 0.1)
        {
            GetComponent <Rigidbody2D>().AddForce(-transform.right.normalized * m_speed * leftKey * 10);
        }
        if (rightKey > 0.1)
        {
            GetComponent <Rigidbody2D>().AddForce(transform.right.normalized * m_speed * rightKey * 10);
        }
    }
コード例 #12
0
ファイル: AudioInput.cs プロジェクト: aizwellenstan/VJ_CX
    // Update is called once per frame
    void Update()
    {
        var aIn = AudioJack.instance;

        audioLevel    = 1.0f + aIn.ChannelRmsLevels.Average() / 40f;
        audioSpectrum = aIn.OctaveBandSpectrum.Select(b => 1.0f + b / 40f).ToArray();

        smoothAudioLevel = Mathf.Lerp(smoothAudioLevel, audioLevel, smoothFactor);
        deltaLevel       = audioLevel - smoothAudioLevel;
        audioTime       += Mathf.Max(0, deltaLevel / 20f * Time.deltaTime);

        Shader.SetGlobalFloat("_AudioLevel", audioLevel);
        Shader.SetGlobalFloat("_SmoothAudioLevel", smoothAudioLevel);
        Shader.SetGlobalFloat("_DeltaLevel", deltaLevel);
        Shader.SetGlobalFloat("_AudioTime", audioTime);

        Shader.SetGlobalInt("_NumSpectrum", audioSpectrum.Length);
        for (var i = 0; i < audioSpectrum.Length; i++)
        {
            Shader.SetGlobalFloat(string.Format("_Spectrum{0}", i.ToString("00")), audioSpectrum [i]);
        }
        foreach (var num in MidiJack.GetKnobNumbers())
        {
            Shader.SetGlobalFloat(string.Format("_Knob{0}", num.ToString("00")), MidiJack.GetKnob(num));
        }

        rowSpectrum = aIn.RawSpectrum.Take(512).Select(b => 1.0f + b / 40f).ToArray();

        spectrumTex.SetPixels(rowSpectrum.Select(
                                  b => new Color(
                                      Mathf.Abs(b),
                                      Mathf.Abs(b) * 256f - Mathf.Floor(Mathf.Abs(b) * 256f),
                                      Mathf.Sign(b))
                                  ).ToArray());
        spectrumTex.Apply();
        Shader.SetGlobalTexture("_SpectrumTex", spectrumTex);
    }
コード例 #13
0
        void Update()
        {
            if (tapNote >= 0)
            {
                if (MidiJack.GetKeyDown(tapChannel, tapNote))
                {
                    Tap();
                }
            }

            if (!string.IsNullOrEmpty(tapButton))
            {
                if (Input.GetButtonDown(tapButton))
                {
                    Tap();
                }
            }

            var interval = 60.0f / bpm;

            time = (time + Time.deltaTime) % interval;

            dbLevel = (curve.Evaluate(time / interval) - 1) * 18;
        }
コード例 #14
0
 // Update is called once per frame
 void Update()
 {
     Debug.Log(MidiJack.GetKey(53));
 }
コード例 #15
0
ファイル: RotateCamera.cs プロジェクト: aizwellenstan/VJ_CX
 void Update()
 {
     if (cPos.moving)
     {
         Camera.main.transform.RotateAround(Vector3.zero, Vector3.up, velocity * Time.deltaTime * MidiJack.GetKnob(2) * 10f);
     }
 }
コード例 #16
0
 void Update()
 {
     transform.localScale = Vector3.one * (0.1f + MidiJack.GetKey(noteNumber));
     GetComponent <Renderer>().material.color = MidiJack.GetKeyDown(noteNumber) ? Color.red : Color.white;
 }
コード例 #17
0
    void Update()
    {
        if (cPos.moving)
        {
            Transform ct     = Camera.main.transform;
            Vector3   fromTo = toPos - ct.position;

            ct.position += Vector3.ClampMagnitude(fromTo, velocity * Time.deltaTime) * MidiJack.GetKnob(2) * 10f;
        }
    }