// Called when the node enters the scene tree for the first time. public override void _Ready() { buf = (AudioStreamGeneratorPlayback)GetStreamPlayback(); //FIXME: IMPLEMENT DRUMS channels[9].Mute = true; //Setup the patch bank. const string BANKPATH = "res://demo/bank0/"; const string EXT = ".gfmp"; for (int i = 0; i < patchBank.Length; i++) { patchBank[i] = new Patch(MixRate); var inst = (GeneralMidiInstrument)i; var path = BANKPATH + inst.ToString() + EXT; var dir = new Godot.Directory(); //Search for a bank to overload the initial one!! if (Godot.ResourceLoader.Exists(path) || dir.FileExists(path)) { var f = new Godot.File(); f.Open(path, File.ModeFlags.Read); patchBank[i].FromString(f.GetAsText()); f.Close(); GD.Print("Program ", i, " (", inst, ") loaded."); } else { //Init patch. patchBank[i].FromString(glue.INIT_PATCH, true); } } }
public override void _Ready() { InitVignette(); var Audio = GetTree().Root.GetNode <Main>("Main").Audio; Audio.Stream = new AudioStreamGenerator(); gen = (AudioStreamGeneratorPlayback)Audio.GetStreamPlayback(); PrepFrames(); Audio.Play(); }
// Called when the node enters the scene tree for the first time. public override void _Ready() { program_change(ops, 4); buf = (AudioStreamGeneratorPlayback)GetNode <AudioStreamPlayer>("AudioStreamPlayer").GetStreamPlayback(); var player = GetNode <AudioStreamPlayer>("AudioStreamPlayer"); MixRate = ((AudioStreamGenerator)player.Stream).MixRate; GetNode <AudioStreamPlayer>("AudioStreamPlayer").Play(); }
public void FillBuffer() { float increment = (1.0f / (hz / pulse_hz)); int toFill = AudioStreamGeneratorPlayback.GetFramesAvailable(); for (uint i = 0; i < toFill; i++) { float foo = Godot.Mathf.Sin(phase * (Godot.Mathf.Pi * 2f)); Vector2.Set(foo, foo); AudioStreamGeneratorPlayback.PushFrame(Vector2); phase = (phase + increment) % 1f; } }
public OplPlayer FillBuffer() { int toFill = AudioStreamGeneratorPlayback.GetFramesAvailable() * (Opl.IsStereo ? 2 : 1); if (Buffer.Length < toFill) { Buffer = new short[toFill]; } Opl.ReadBuffer(Buffer, 0, toFill); for (uint i = 0; i < toFill; i++) { float soundbite = Buffer[i] / 32767f; // Convert from 16 bit signed integer audio to 32 bit signed float audio Vector2.Set(soundbite, soundbite); AudioStreamGeneratorPlayback.PushFrame(Vector2); } return(this); }
public override void _Ready() { // await ToSignal(GetTree(), "idle_frame"); player = GetNode <AudioStreamPlayer>("Player"); stream = (AudioStreamGenerator)player.Stream; buf = (AudioStreamGeneratorPlayback)player.GetStreamPlayback(); stream.MixRate = Global.MixRate; bufferPool = new Vector2[(int)Math.Max(stream.MixRate * stream.BufferLength + 2, stream.MixRate)]; player.Play(); // for (int i=4; i<c.Voice.egs.Length; i++) c.Voice.egs[i].mute = true; fromMidi = Owner.GetNode("MIDI Control"); // fromMidi.Connect("note_on", this, "TryNoteOn"); // fromMidi.Connect("note_off", this, "TryNoteOff"); fromMidi.Connect("note_on", this, "QueueNote"); fromMidi.Connect("note_off", this, "QueueNote", new Godot.Collections.Array(new int[1])); }