public void TrackBtn_OnClicked(Nez.UI.Button btn) { // // Track number button (on bottom of slider) // if (TrackChanl[btn.Tag] < 0) { ChnlMsg.SetText("Channel: "); } else { ChnlMsg.SetText("Channel: " + TrackChanl[btn.Tag].ToString("00")); } // // Give channel number/instrument name // TrackMsg.SetText("Track: " + btn.Tag.ToString("00")); InstrumentMsg.SetText("Description: " + TrackInstrument[btn.Tag]); }
private void SetTrackButtonOn() { int x = 0; //index of the control Vector2 StartPos = new Vector2(20, 250 + (80 * x)); ChnlMsg.SetText("All Tracks"); //InstrumentMsg.SetText("All Instruments"); int trknum = 0; string trkname = ""; GeneralMidiInstrument gmi; foreach (Track trk in sequence1.tracks) { float PosX = 14f; float PosY = 0; trkname = trk.Name; if (trk.Name == "" || trk.Name is null) { trkname = "Track " + trknum.ToString(); } if (trk.ProgramChange != 0) { gmi = (GeneralMidiInstrument)trk.ProgramChange; TrackInstrument[trknum] = gmi.ToString(); TrackChanl[trknum] = trk.MidiChannel; } else { TrackInstrument[trknum] = "n/a"; } switch (trknum) { case 0: TracksInMidi[trknum] = true; x = 0; break; case 1: TracksInMidi[trknum] = true; x = 1; break; case 2: TracksInMidi[trknum] = true; x = 2; break; case 3: TracksInMidi[trknum] = true; x = 3; break; case 4: TracksInMidi[trknum] = true; x = 4; break; case 5: TracksInMidi[trknum] = true; x = 5; break; case 6: TracksInMidi[trknum] = true; x = 6; break; case 7: TracksInMidi[trknum] = true; x = 7; break; case 8: TracksInMidi[trknum] = true; x = 0; PosX = 794; break; case 9: TracksInMidi[trknum] = true; x = 1; PosX = 794; break; case 10: TracksInMidi[trknum] = true; x = 2; PosX = 794; break; case 11: TracksInMidi[trknum] = true; x = 3; PosX = 794; break; case 12: TracksInMidi[trknum] = true; x = 4; PosX = 794; break; case 13: TracksInMidi[trknum] = true; x = 5; PosX = 794; break; case 14: TracksInMidi[trknum] = true; x = 6; PosX = 794; break; case 15: TracksInMidi[trknum] = true; x = 7; PosX = 794; break; } PosY = (200 + (80 * x)); trknum += 1; } }
private void PBtn_OnClicked(Nez.UI.Button btn) { AllChannels = -1; ChnlMsg.SetText("All Channels"); }
public override void Initialize() { base.Initialize(); font = new NezSpriteFont(Content.Load <SpriteFont>("Arial")); // // MIDI sequencer must have processes // sequencer1 = new Sanford.Multimedia.Midi.Sequencer(); sequencer1.clock.Tick += onTick; this.sequencer1.PlayingCompleted += new System.EventHandler(this.HandlePlayingCompleted); this.sequencer1.ChannelMessagePlayed += new System.EventHandler <Sanford.Multimedia.Midi.ChannelMessageEventArgs>(this.HandleChannelMessagePlayed); this.sequencer1.SysExMessagePlayed += new System.EventHandler <Sanford.Multimedia.Midi.SysExMessageEventArgs>(this.HandleSysExMessagePlayed); this.sequencer1.Chased += new System.EventHandler <Sanford.Multimedia.Midi.ChasedEventArgs>(this.HandleChased); this.sequencer1.Stopped += new System.EventHandler <Sanford.Multimedia.Midi.StoppedEventArgs>(this.HandleStopped); // // Default output device (usually 0) // outDevice = new OutputDevice(outDeviceID); //DialogBar db = new DialogBar(-1); //znznznznznznznznznznznznznznznznznznznznznznznznznznznznzn // mouse entity (used for tracking of clicks) //znznznznznznznznznznznznznznznznznznznznznznznznznznznznzn MouseCursor = CreateEntity("mouse"); MouseCursor.AddComponent(new BoxCollider()); MouseCursor.AddComponent(new MouseComponent()); //znznznznznznznznznznznznznznznznznznznznznznznznznznznznzn // keyboard entity (playing piano manually) //znznznznznznznznznznznznznznznznznznznznznznznznznznznznzn MouseCursor = CreateEntity("keyboard"); MouseCursor.AddComponent(new KeyComponent()); //znznznznznznznznznznznznznznznznznznznznznznznznznznznznzn // Text entity with component (Game name label) //znznznznznznznznznznznznznznznznznznznznznznznznznznznznzn TextEntity = CreateEntity("txt"); TextEntity.Transform.Position = new Vector2(10, 20); TextEntity.Transform.Scale = new Vector2(1, 1); txt = new TextComponent(Graphics.Instance.BitmapFont, "MIDI Player", new Vector2(0, 0), Color.White); txt.SetFont(font); TextEntity.AddComponent(txt); //znznznznznznznznznznznznznznznznznznznznznznznznznznznznzn // Background, with high value render layer //znznznznznznznznznznznznznznznznznznznznznznznznznznznznzn Background = CreateEntity("background", new Vector2(0, 0)); Background.Tag = 90; //SpriteRenderer comp = new SpriteRenderer(Content.Load<Texture2D>("Background")).SetRenderLayer(99); Background.AddComponent(new SpriteRenderer(Content.Load <Texture2D>("Slider/BackgroundMetal")).SetRenderLayer(99)); Background.GetComponent <SpriteRenderer>().SetOrigin(new Vector2(0, 0)); Background.SetPosition(new Vector2(310, 15)); //znznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznzn // Canvas //znznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznzn // int StartX = 10; Entity uiCan = CreateEntity("ui"); canvas = uiCan.AddComponent(new UICanvas()); canvas.IsFullScreen = true; canvas.RenderLayer = -10;//= SCREEN_SPACE_RENDER_LAYER; // // Display for track number // TrackMsg = canvas.Stage.AddElement(new Nez.UI.Label("All Tracks")); TrackMsg.SetPosition(320, 310); TrackMsg.SetSize(100f, 50f); // // Display for channel number // ChnlMsg = canvas.Stage.AddElement(new Nez.UI.Label("All Channels")); ChnlMsg.SetPosition(320, 330); ChnlMsg.SetSize(100f, 50f); AllChannels = -1; // // Display for instrument name // InstrumentMsg = canvas.Stage.AddElement(new Nez.UI.Label("All Channels")); InstrumentMsg.SetPosition(320, 350); InstrumentMsg.SetSize(100f, 50f); // // Dispaly for note number being played // NoteMsg = canvas.Stage.AddElement(new Nez.UI.Label("Piano note played")); NoteMsg.SetPosition(320, 370); NoteMsg.SetSize(100f, 50f); // // Track buttons and channels // for (int i = 0; i < 16; i++) { TrackChanl[i] = -1; TracksInMidi[i] = false; //is track number active in MIDI file TracksPlaying[i] = false; //individual tracks playing (buttons) ChannelsPlaying[i] = true; //they all are playing } // // turn off all buttons // //SetTrackButtonOff(); // // Progress bar // PgBar = canvas.Stage.AddElement(new Nez.UI.ProgressBar(0, 1000, 1, false, Nez.UI.ProgressBarStyle.Create(Color.Green, Color.White))); PgBar.SetPosition(10, StartPos); // // Play button // PlayImageUp = new SpriteDrawable((Content.Load <Texture2D>("Player/play_blk"))); PlayImageDn = new SpriteDrawable((Content.Load <Texture2D>("Player/play_grn"))); PlayBtn = canvas.Stage.AddElement(new ImageButton(PlayImageUp, PlayImageDn)); PlayBtn.SetPosition(StartX, StartPos + 30); PlayBtn.OnClicked += Play; // // Stop button // StopImageUp = new SpriteDrawable((Content.Load <Texture2D>("Player/stop_blk"))); StopImageDn = new SpriteDrawable((Content.Load <Texture2D>("Player/stop_grn"))); StopBtn = canvas.Stage.AddElement(new ImageButton(StopImageUp, StopImageDn)); StopBtn.SetPosition(StartX + 71, StartPos + 30); StopBtn.OnClicked += Stop; // // Load/Eject button (stop playing, look for another MIDI file) // LoadImageUp = new SpriteDrawable((Content.Load <Texture2D>("Player/eject_blk"))); LoadImageDn = new SpriteDrawable((Content.Load <Texture2D>("Player/eject_grn"))); LoadBtn = canvas.Stage.AddElement(new ImageButton(LoadImageUp, LoadImageDn)); LoadBtn.SetPosition(StartX + 110, StartPos + 30); LoadBtn.OnClicked += Load; // //znznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznzn // Systems to process our requests //znznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznznzn // this.AddEntityProcessor(new MouseClickSystem(new Matcher().All(typeof(MouseComponent)))); this.AddEntityProcessor(new KeyClickSystem(new Matcher().All(typeof(KeyComponent)))); this.AddEntityProcessor(new PianoClickSystem(new Matcher().All(typeof(NoteComponent), typeof(PlayingComponent)))); // // Start by loading a file // if (!LoadMidiFile()) { return; } // // Create the Mixer image with buttons, sliders, etc // var Track = new TrackMixerEntity(this, new Vector2(310, 20), canvas, TracksInMidi); // // Create the piano keys on bottom of mixer // var pi00 = new PianoEntity(this, new Vector2(StartX + 245, StartPos + 420), 0); // // Octave 4 is the middle C (note 60), color the keys // HandleOctaveColor(60); }