Beispiel #1
0
    // Start is called before the first frame update
    void Start()
    {
        GetComponent <ChuckSubInstance>().RunCode(@"

            //load all soundfiles in sfx folder into array for easy access

            string sample_paths[20];
            ""C:/Users/LillicrapJp/Documents/GitHub/TetrisChucKImplimentation/MusicTechFinal/Assets/SFX"" => string base;
            base + ""/augmented.wav"" => sample_paths[0];
            base + ""/augmented1.wav"" => sample_paths[1];
            base + ""/augmented2.wav"" => sample_paths[2];
            base + ""/augmented3.wav"" => sample_paths[3];
            base + ""/bassdrum.wav"" => sample_paths[4];
            base + ""/block.wav"" => sample_paths[5];
            base + ""/hat.wav"" => sample_paths[6];
            base + ""/lead.wav"" => sample_paths[7];
            base + ""/leadd1.wav"" => sample_paths[8];
            base + ""/leadd2.wav"" => sample_paths[9];
            base + ""/leadd3.wav"" => sample_paths[10];
            base + ""/majortriad.wav"" => sample_paths[11];
            base + ""/majortriadd1.wav"" => sample_paths[12];
            base + ""/majortriadd2.wav"" => sample_paths[13];
            base + ""/majortriadd3.wav"" => sample_paths[14];
            base + ""/minortriad.wav"" => sample_paths[15];
            base + ""/minortriad1.wav"" => sample_paths[16];
            base + ""/minortriad2.wav"" => sample_paths[17];
            base + ""/minortriad3.wav"" => sample_paths[18];
            base + ""/triangle.wav"" => sample_paths[19];
            
            //load all soundfiles to their buffers    
            
            SndBuf buffers[20];

            for(0 => int i; i < 20; i++){
                sample_paths[i] => buffers[i].read;
            }
            
            //load the appropriate buffers to the dac

            [0] @=> global int instruments[];
            [0] @=> global int midi_score[];
            global Event play;
            
            while(true){
                play => now;
                for(0 => int i; i<instruments.size(); i++){
                    buffers[instruments[i]] => dac;
                    buffers[instruments[i]].samples() => buffers[instruments[i]].pos;
                    0 => buffers[instruments[i]].pos;
                    buffers[instruments[i]].rate(Std.mtof(midi_score[i])/50);
                }
                500::ms => now;
                for(0 => int i; i<instruments.size(); i++){
                    buffers[instruments[i]] =< dac;
                }
            }
        ");

        intarraycallback = GetComponent <ChuckSubInstance>().CreateGetIntArrayCallback(IntArrayCallBackFunction);
    }
    // Use this for initialization
    void Start()
    {
        myChuck = GetComponent <ChuckSubInstance>();
        myChuck.RunCode(@"
			TriOsc myOsc;
			[60] @=> global int myNotes[];
			global Event playMyNotes;
			
			while( true )
			{
				playMyNotes => now;
				myOsc => dac;
				for( 0 => int i; i < myNotes.size(); i++ )
				{
					myNotes[i] => Math.mtof => myOsc.freq;
					100::ms => now;
				}
				<<< myNotes[""numPlayed""], ""played so far"" >>>;
				myOsc =< dac;
			}
		"        );

        myIntArrayCallback = myChuck.CreateGetIntArrayCallback(GetInitialArrayCallback);
        myIntCallback      = myChuck.CreateGetIntCallback(GetANumberCallback);
    }
Beispiel #3
0
 public bool GetIntArray(string chuckName, string variableName, Chuck.IntArrayCallback callback)
 {
     if (ids.ContainsKey(chuckName))
     {
         return(GetIntArray(ids[chuckName], variableName, callback));
     }
     else
     {
         Debug.Log(chuckName + " has not been initialized as a ChucK instance");
         return(false);
     }
 }
Beispiel #4
0
 // ----------------------------------------------------
 // name: GetIntArray
 // desc: get the value of global int variableName[]
 // ----------------------------------------------------
 public bool GetIntArray(string variableName, Chuck.IntArrayCallback callback)
 {
     return(chuckMainInstance.GetIntArray(variableName, callback));
 }
Beispiel #5
0
 public bool GetIntArray(System.UInt32 chuckId, string variableName, Chuck.IntArrayCallback callback)
 {
     return(getGlobalIntArray(chuckId, variableName, callback));
 }
Beispiel #6
0
 // ----------------------------------------------------
 // name: GetIntArray
 // desc: get the value of global int variableName[]
 // ----------------------------------------------------
 public bool GetIntArray(string variableName, Chuck.IntArrayCallback callback)
 {
     return(Chuck.Manager.GetIntArray(myChuckId, variableName, callback));
 }