So, I downloaded the unity project from unity answers. here is the link:
[UnitySynth link to download page in unity answers][1]
I have finished my prototype, but I'm getting errors when I tried to load a custom midi I downloaded from the web.
I got these error codes:
Error Loading Midi:
Midi Failed to Load!
UnityEngine.Debug:Log(Object)
CSharpSynth.Sequencer.MidiSequencer:LoadMidi(String, Boolean) (at Assets/Plugins/CSharpSynth/Sequencer/MidiSequencer.cs:153)
UnitySynthTest:Awake() (at Assets/Scripts/UnitySynthTest.cs:42)
NullReferenceException: Object reference not set to an instance of an object
CSharpSynth.Sequencer.MidiSequencer.Play () (at Assets/Plugins/CSharpSynth/Sequencer/MidiSequencer.cs:167)
UnitySynthTest.OnGUI () (at Assets/Scripts/UnitySynthTest.cs:161)
I would love to know an easy way to convert midis to mid.txt as the examples used in the demo.
[1]: http://forum.unity3d.com/threads/unitysynth-full-xplatform-midi-synth.130104/
EDIT:
The first error code, the one about not loading midi, comes from here:
public bool LoadMidi(string file, bool UnloadUnusedInstruments)
{
if (playing == true)
return false;
MidiFile mf = null;
try
{
mf = new MidiFile(file);
}
catch (Exception ex)
{
//UnitySynth
//THIS IS THE ERROR LINE **************************
Debug.Log("Error Loading Midi:\n" + ex.Message);
return false;
}
return LoadMidi(mf, UnloadUnusedInstruments);
}
The second one, the one about null reference exception comes from:
public void Play()
{
if (playing == true)
return;
//Clear the current programs for the channels.
Array.Clear(currentPrograms, 0, currentPrograms.Length);
//Clear vol, pan, and tune
ResetControllers();
//set bpm
// THIS IS THE ERROR LINE *****************************
_MidiFile.BeatsPerMinute = 120;
//Let the synth know that the sequencer is ready.
eventIndex = 0;
playing = true;
}
↧