public SimplePerformance(IMidiPerformance midiSource, IScale scale, int initialNumberOfVoices)
        {
            if (midiSource == null)
            {
                throw new ArgumentNullException("midiSource");
            }

            if (scale == null)
            {
                throw new ArgumentNullException("scale");
            }

            if (midiSource.ValueStrategy != MidiValueStrategy.Normalized)
            {
                throw new ArgumentException("The MIDI Performance source must have been initialized with a Normalized value strategy.");
            }

            _scale = scale;

            NumberOfVoices = initialNumberOfVoices;

            _midiSource = midiSource;
            Channel     = _midiSource.Channel;
            _midiSource.PropertyChanged += HandleMidiSourcePropertyChanged;
            _midiSource.ActiveNotes.CollectionChanged += HandleMidiNotesChanged;
        }
Exemple #2
0
        public BendModPanel(IMidiLink midiLink)
        {
            if (midiLink == null)
            {
                throw new ArgumentNullException("midiLink");
            }
            _midiLink = midiLink;

            // TODO how can I restrict this in design mode?
            _midiSource = new MidiPerformance(_midiLink, MidiValueStrategy.Normalized);
            _midiSource.PropertyChanged += HandleMidiSourcePropertyChanged;
        }