public static void AppendRedrawingMeasure(McMeasure measure) { if (!((measure == null) || _redrawingMeasureList.Contains(measure))) { _redrawingMeasureList.Add(measure); } }
public static void PlayPitch(McPitch pitch) { if (pitch.Volume >= 0.001f) { McNotePack parentNotePack = pitch.ParentNotePack; MusicCanvasControl canvas = parentNotePack.Canvas; McMeasure parentMeasure = parentNotePack.ParentMeasure; float num = ((parentMeasure.TemporaryInfo.RelativeX + McNotation.Margin.Left) + McRegularTrack.Margin.Left) - canvas.ScrollXSmooth; float num2 = ((((McRegularTrack.Margin.Bottom + McRegularTrack.Margin.Top) + McMeasure.Height) * parentMeasure.ParentRegularTrack.Index) + McNotation.Margin.Top) + McRegularTrack.Margin.Top; float x = (num + parentNotePack.TemporaryInfo.RelativeXSmooth) + 8f; if (parentNotePack.Staccato) { canvas.PlaySound(parentMeasure.InstrumentType, pitch.AlterantValue, pitch.Volume, (long)parentNotePack.TemporaryInfo.PlayingDurationTimeMs, 0.03f); } else { canvas.PlaySound(parentMeasure.InstrumentType, pitch.AlterantValue, pitch.Volume, (long)parentNotePack.TemporaryInfo.PlayingDurationTimeMs, 0.03f); } int num4 = parentNotePack.IsRest ? (((parentMeasure.ClefType == McMeasure.ClefTypes.L2G) ? 0x2c : 0x17) + 5) : pitch.Value; float measureLineRelativeY = pitch.MeasureLineRelativeY; float num6 = 3.141593f * (((float)num4) / 88f); Color color = parentNotePack.IsRest ? Color.FromArgb(0x80, Color.White) : Color.FromArgb(0xff, (int)(((Math.Cos((double)num6) + 1.0) / 2.0) * 255.0), (int)(((Math.Sin((double)num6) + 1.0) / 2.0) * 255.0), (int)(((Math.Cos((double)num6) + 1.0) / 2.0) * 255.0)); MusicCanvasControl.RippleAniManager.Append(x, num2 + measureLineRelativeY, color, 10 + ((int)(30f * parentNotePack.Volume)), 0.5f, parentNotePack); } }
public static void RemoveRedrawingMeasure(McMeasure measure) { if ((measure != null) && _redrawingMeasureList.Contains(measure)) { _redrawingMeasureList.Remove(measure); } }
public int InsertMeasureAligned(int?measureIndex = new int?()) { int num = -1; McMeasure[] measuresAligned = new McMeasure[3]; this._regularTracksMLock = false; for (int i = 0; i < 3; i++) { num = this._regularTrackList[i]._InsertMeasure(measureIndex, out measuresAligned[i]); } foreach (McMeasure measure in measuresAligned) { measure._ResetMeasuresAligned(measuresAligned); McMeasure preMeasure = measure.PreMeasure; if (preMeasure != null) { measure.TemporaryInfo.RelativeX = (preMeasure.TemporaryInfo.RelativeX + preMeasure.TemporaryInfo.Width) + Math.Max(McMeasure.Margin.Right, McMeasure.Margin.Left); } measure.ReorganizeDurationStamps(); } int[] numArray = this._measureBeatsPerMinuteMap.Keys.ToArray <int>(); for (int j = numArray.Length - 1; j >= 0; j--) { int key = numArray[j]; if (key >= measureIndex) { this._measureBeatsPerMinuteMap.Add(key + 1, this._measureBeatsPerMinuteMap[key]); this._measureBeatsPerMinuteMap.Remove(key); } } this._regularTracksMLock = true; return(num); }
public static void MarkModified(McMeasure measure) { IsModified = true; AppendRedrawingMeasure(measure); if (((measure != null) && !MusicCanvasControl.MouseDragareaManager.IsInPickingProgress) && (MusicCanvasControl.MouseDragareaManager.LastPickedRelativeMeasures != null)) { MusicCanvasControl.MouseDragareaManager.ClearValidCanvasDragarea(); } }
public McNotePack(McMeasure parentMeasure) { this.ParentMeasure = parentMeasure; this.TemporaryInfo = new NpTemporaryInfo(this); if (parentMeasure != null) { McUtility.MarkModified(parentMeasure); } }
public static void Clear() { if (_hoveringNotePack != null) { _hoveringNotePack.IsHovering = false; } if (_hoveringMeasure != null) { _hoveringMeasure.IsHovering = false; McUtility.AppendRedrawingMeasure(_hoveringMeasure); } _hoveringInsertNotePackIndex = -1; _hoveringInsertPitchValue = 0; _hoveringNotePack = null; _hoveringMeasure = null; }
public static void DrawTie(this RenderTarget renderTarget, SharpDX.DirectWrite.Factory writeFactory, McNotePack startNotePack, McNotePack endNotePack, Color color, bool isTriplet = false) { float scrollXSmooth; RawVector2 startPos = new RawVector2(); RawVector2 endPos = new RawVector2(); bool flipVertical = false; if (startNotePack != null) { McNotePack.NpTemporaryInfo temporaryInfo = startNotePack.TemporaryInfo; temporaryInfo.TieMarkerRelativeYSmooth = temporaryInfo.TieMarkerRelativeYSmooth.Lerp(temporaryInfo.TieMarkerRelativeY, 0.2f); McMeasure parentMeasure = startNotePack.ParentMeasure; scrollXSmooth = parentMeasure.ParentRegularTrack.ParentNotation.Canvas.ScrollXSmooth; RawVector2 vector3 = new RawVector2(((parentMeasure.TemporaryInfo.RelativeX + McNotation.Margin.Left) + McRegularTrack.Margin.Left) - scrollXSmooth, (float)parentMeasure.Top); startPos = new RawVector2((vector3.X + temporaryInfo.RelativeXSmooth) + 8f, vector3.Y + temporaryInfo.TieMarkerRelativeYSmooth); flipVertical = temporaryInfo.IsFlipVerticalStemVoted; } if (endNotePack != null) { McNotePack.NpTemporaryInfo info2 = endNotePack.TemporaryInfo; info2.TieMarkerRelativeYSmooth = info2.TieMarkerRelativeYSmooth.Lerp(info2.TieMarkerRelativeY, 0.2f); McMeasure measure2 = endNotePack.ParentMeasure; scrollXSmooth = measure2.ParentRegularTrack.ParentNotation.Canvas.ScrollXSmooth; RawVector2 vector4 = new RawVector2(((measure2.TemporaryInfo.RelativeX + McNotation.Margin.Left) + McRegularTrack.Margin.Left) - scrollXSmooth, (float)measure2.Top); endPos = new RawVector2((vector4.X + info2.RelativeXSmooth) + 8f, vector4.Y + info2.TieMarkerRelativeYSmooth); } if (isTriplet) { if (endNotePack == null) { renderTarget.DrawTextLayout(writeFactory, "Tri", new RawVector2(startPos.X - 6f, startPos.Y - 5f), "Consolas", 10f, Color.FromArgb(0x80, Color.Aqua), SharpDX.DirectWrite.FontStyle.Italic); } } else if ((startNotePack != null) && (endNotePack == null)) { renderTarget.DrawTextLayout(writeFactory, startNotePack.TieType.ToString().Substring(0, 1), new RawVector2(startPos.X - 12f, startPos.Y - 4f), "Consolas", 10f, Color.FromArgb(0x40, Color.FloralWhite), SharpDX.DirectWrite.FontStyle.Italic); } else if ((startNotePack == null) && (endNotePack != null)) { renderTarget.DrawTextLayout(writeFactory, endNotePack.TieType.ToString().Substring(0, 1), new RawVector2(endPos.X - 12f, endPos.Y - 4f), "Consolas", 10f, Color.FromArgb(0x40, Color.FloralWhite), SharpDX.DirectWrite.FontStyle.Italic); } if ((startNotePack != null) && (endNotePack != null)) { renderTarget.DrawTie(writeFactory, startPos, endPos, color, flipVertical, isTriplet); } }
public int GetMeasureDurationAligned(int measureIndex) { int num = 0; McMeasure measure = this._regularTrackList.First <McRegularTrack>().GetMeasure(measureIndex); if (measure != null) { foreach (McMeasure measure2 in measure.MeasuresAligned) { if (measure2 != null) { int measureDuration = measure2.MeasureDuration; if (measureDuration > num) { num = measureDuration; } } } } return(num); }
public void ReorganizeAlignedMesaureurationStamps(int measureIndex, bool includeContext) { if ((measureIndex >= 0) && (measureIndex < this.MeasureCountAligned)) { McMeasure measure = this.RegularTracks.First <McRegularTrack>().GetMeasure(measureIndex); if (measure != null) { foreach (McMeasure measure2 in measure.MeasuresAligned) { if (includeContext && (measure2.PreMeasure != null)) { measure2.PreMeasure.ReorganizeDurationStamps(); } measure2.ReorganizeDurationStamps(); if (includeContext && (measure2.NextMeasure != null)) { measure2.NextMeasure.ReorganizeDurationStamps(); } McUtility.MarkModified(measure2); } } } }
public McNotePack Clone(McMeasure measure) { McNotePack pack = new McNotePack(measure ?? this.ParentMeasure) { _isRest = this._isRest, _isDotted = this._isDotted, _tieType = this._tieType, _triplet = this._triplet, _durationType = this._durationType, _staccato = this._staccato, _arpeggioMode = this._arpeggioMode }; foreach (int num in this.ValidPitchValueArray) { McPitch pitch = this._pitches[num]; if (((pitch != null) && (pitch.PitchType == McPitch.PitchTypes.Enabled)) && pack.MarkPitch(pitch.Value, McPitch.PitchTypes.Enabled)) { pack.GetPitch(pitch.Value).AlterantType = pitch.RawAlterantType; } } return(pack); }
public int IndexOf(McMeasure measure) => this._measureList.IndexOf(measure);
public int _InsertMeasure(int?measureIndex, out McMeasure newMeasure) { int num; int num2; int?nullable = measureIndex; measureIndex = new int?(nullable.HasValue ? nullable.GetValueOrDefault() : 0x5f5e0ff); if (this.ParentNotation.RegularTracksMLock || (((nullable = measureIndex).GetValueOrDefault() < 0) && nullable.HasValue)) { newMeasure = null; return(-1); } nullable = measureIndex; int measuresCount = this.MeasuresCount; measureIndex = ((nullable.GetValueOrDefault() >= measuresCount) && nullable.HasValue) ? new int?(this.MeasuresCount) : measureIndex; newMeasure = new McMeasure(this); this._measureList.Insert(measureIndex.Value, newMeasure); int[] numArray = this._measureClefTypeMap.Keys.ToArray <int>(); for (num = numArray.Length - 1; num >= 0; num--) { num2 = numArray[num]; measuresCount = num2; if (measuresCount >= measureIndex) { this._measureClefTypeMap.Add(num2 + 1, this._measureClefTypeMap[num2]); this._measureClefTypeMap.Remove(num2); } } numArray = this._measureInstrumentTypeMap.Keys.ToArray <int>(); for (num = numArray.Length - 1; num >= 0; num--) { num2 = numArray[num]; measuresCount = num2; if (measuresCount >= measureIndex) { this._measureInstrumentTypeMap.Add(num2 + 1, this._measureInstrumentTypeMap[num2]); this._measureInstrumentTypeMap.Remove(num2); } } numArray = this._measureKeySignatureMap.Keys.ToArray <int>(); for (num = numArray.Length - 1; num >= 0; num--) { num2 = numArray[num]; measuresCount = num2; if (measuresCount >= measureIndex) { this._measureKeySignatureMap.Add(num2 + 1, this._measureKeySignatureMap[num2]); this._measureKeySignatureMap.Remove(num2); } } numArray = this._measureVolumeCurveMap.Keys.ToArray <int>(); for (num = numArray.Length - 1; num >= 0; num--) { num2 = numArray[num]; measuresCount = num2; if (measuresCount >= measureIndex) { this._measureVolumeCurveMap.Add(num2 + 1, this._measureVolumeCurveMap[num2]); this._measureVolumeCurveMap.Remove(num2); } } numArray = this._measureVolumeMap.Keys.ToArray <int>(); for (num = numArray.Length - 1; num >= 0; num--) { num2 = numArray[num]; measuresCount = num2; if (measuresCount >= measureIndex) { this._measureVolumeMap.Add(num2 + 1, this._measureVolumeMap[num2]); this._measureVolumeMap.Remove(num2); } } return(measureIndex.Value); }
public bool _RemoveMeasure(int measureIndex) { if (this.ParentNotation.RegularTracksMLock) { return(false); } if ((measureIndex < 0) || (measureIndex >= this.MeasuresCount)) { return(false); } McMeasure measure = this._measureList[measureIndex]; measure.TemporaryInfo.Width = -Math.Max(McMeasure.Margin.Right, McMeasure.Margin.Left) - 1; measure.ClearBitmapCache(); this._measureList.RemoveAt(measureIndex); foreach (int num in this._measureClefTypeMap.Keys.ToArray <int>()) { if (num == measureIndex) { this._measureClefTypeMap.Remove(num); } else if (num >= measureIndex) { this._measureClefTypeMap.Add(num - 1, this._measureClefTypeMap[num]); this._measureClefTypeMap.Remove(num); } } foreach (int num in this._measureInstrumentTypeMap.Keys.ToArray <int>()) { if (num == measureIndex) { this._measureInstrumentTypeMap.Remove(num); } else if (num >= measureIndex) { this._measureInstrumentTypeMap.Add(num - 1, this._measureInstrumentTypeMap[num]); this._measureInstrumentTypeMap.Remove(num); } } foreach (int num in this._measureKeySignatureMap.Keys.ToArray <int>()) { if (num == measureIndex) { this._measureKeySignatureMap.Remove(num); } else if (num >= measureIndex) { this._measureKeySignatureMap.Add(num - 1, this._measureKeySignatureMap[num]); this._measureKeySignatureMap.Remove(num); } } foreach (int num in this._measureVolumeCurveMap.Keys.ToArray <int>()) { if (num == measureIndex) { this._measureVolumeCurveMap.Remove(num); } else if (num >= measureIndex) { this._measureVolumeCurveMap.Add(num - 1, this._measureVolumeCurveMap[num]); this._measureVolumeCurveMap.Remove(num); } } foreach (int num in this._measureVolumeMap.Keys.ToArray <int>()) { if (num == measureIndex) { this._measureVolumeMap.Remove(num); } else if (num >= measureIndex) { this._measureVolumeMap.Add(num - 1, this._measureVolumeMap[num]); this._measureVolumeMap.Remove(num); } } return(true); }