Ejemplo n.º 1
0
        public MusicNotationCreator(UpdateMuscialSymbolDelegate AddMuscialSymbolDelegate = null,
                                    TimeSignature TimeSignature = null,
                                    int Tempo = 120,
                                    MusicSymbolDuration MinSymbolDuration = MusicSymbolDuration.Sixteenth,
                                    MusicSymbolDuration MaxSymbolDuration = MusicSymbolDuration.Whole,
                                    bool DottedMusicSymbolDuration        = false,
                                    bool LegatoSupport = false)
        {
            Samples          = new List <Sample>(16);
            AddMuscialSymbol = AddMuscialSymbolDelegate;

            if (timeSignature == null)
            {
                this.timeSignature = new TimeSignature(TimeSignatureType.Common, 4, 4);
            }
            else
            {
                this.timeSignature = TimeSignature;
            }
            tempo                     = Tempo;
            minSymbolDuration         = MinSymbolDuration;
            maxSymbolDuration         = MaxSymbolDuration;
            dottedMusicSymbolDuration = DottedMusicSymbolDuration;
            CalculDurationSymbols();
            this.LegatoSupport = LegatoSupport;

            SendMusicSymbol(new Clef(ClefType.GClef, 2));
            SendMusicSymbol(new Key(0));

            SendMusicSymbol(timeSignature);
        }
Ejemplo n.º 2
0
 public Rest(MusicSymbolDuration restDuration, int numberOfDots = 0)
 {
     type         = MusicSymbolType.Rest;
     duration     = restDuration;
     NumberOfDots = numberOfDots;
     DetermineMusicalCharacter();
 }
Ejemplo n.º 3
0
 public Note(string noteStep, int noteAlter, int noteOctave, MusicSymbolDuration noteDuration,
             NoteStemDirection noteStemDirection, NoteTieType noteTieType, List <NoteBeamType> noteBeamList,
             int numberOfDots = 0)
 {
     type          = MusicSymbolType.Note;
     duration      = noteDuration;
     step          = noteStep;
     octave        = noteOctave;
     alter         = noteAlter;
     stemDirection = noteStemDirection;
     beamList      = noteBeamList;
     tieType       = noteTieType;
     midiPitch     = MusicalSymbol.ToMidiPitch(step, alter, octave);
     NumberOfDots  = numberOfDots;
     DetermineMusicalCharacter();
 }
Ejemplo n.º 4
0
        public static Note CreateNoteFromMidiPitch(int midiPitch, MusicSymbolDuration noteDuration,
                                                   int numberOfDots)
        {
            int    midiPitchInLowestOctave = midiPitch;
            string step   = "A";
            int    alter  = 0;
            int    octave = 0;

            while (midiPitchInLowestOctave > 32)
            {
                midiPitchInLowestOctave -= 12;
            }
            if (midiPitchInLowestOctave == 21)
            {
                step = "A"; alter = 0;
            }
            else if (midiPitchInLowestOctave == 22)
            {
                step = "B"; alter = -1;
            }
            else if (midiPitchInLowestOctave == 23)
            {
                step = "B"; alter = 0;
            }
            else if (midiPitchInLowestOctave == 24)
            {
                step = "C"; alter = 0;
            }
            else if (midiPitchInLowestOctave == 25)
            {
                step = "C"; alter = 1;
            }
            else if (midiPitchInLowestOctave == 26)
            {
                step = "D"; alter = 0;
            }
            else if (midiPitchInLowestOctave == 27)
            {
                step = "E"; alter = -1;
            }
            else if (midiPitchInLowestOctave == 28)
            {
                step = "E"; alter = 0;
            }
            else if (midiPitchInLowestOctave == 29)
            {
                step = "F"; alter = 0;
            }
            else if (midiPitchInLowestOctave == 30)
            {
                step = "F"; alter = 1;
            }
            else if (midiPitchInLowestOctave == 31)
            {
                step = "G"; alter = 0;
            }
            else if (midiPitchInLowestOctave == 32)
            {
                step = "G"; alter = 1;
            }

            if (midiPitch < 24)
            {
                octave = 0;
            }
            else if (midiPitch < 36)
            {
                octave = 1;
            }
            else if (midiPitch < 48)
            {
                octave = 2;
            }
            else if (midiPitch < 60)
            {
                octave = 3;
            }
            else if (midiPitch < 72)
            {
                octave = 4;
            }
            else if (midiPitch < 84)
            {
                octave = 5;
            }
            else if (midiPitch < 96)
            {
                octave = 6;
            }
            else if (midiPitch < 108)
            {
                octave = 7;
            }
            else if (midiPitch < 120)
            {
                octave = 8;
            }

            //octave--;

            return(new Note(step, alter, octave, noteDuration, NoteStemDirection.Up,
                            NoteTieType.None,
                            new List <NoteBeamType>()
            {
                NoteBeamType.Single
            }, numberOfDots));
        }
Ejemplo n.º 5
0
 public MusicSymbolDurationCaption(MusicSymbolDuration Duration, string Caption)
 {
     this.Duration = Duration;
     this.Caption  = Caption;
 }