예제 #1
0
            /// <summary>
            ///
            /// </summary>
            public override void KeyOn()
            {
                base.KeyOn();

                parentModule.hardReset();

                parentModule.SP0256SetClock((int)Math.Round(3120000d * (CalcCurrentFrequency() / 440d)));

                var tb = NoteOnEvent.Tag as NoteOnTimbreInfo;

                if (tb?.Tag is string all)
                {
                    var lpcd = extractAllophones(all);
                    if (lpcd != null)
                    {
                        foreach (var data in lpcd)
                        {
                            parentModule.SP0256AldW(data);
                        }
                    }
                }
                else
                {
                    var lpcd = timbre.RawAllophones;
                    if (lpcd != null)
                    {
                        foreach (var data in lpcd)
                        {
                            parentModule.SP0256AldW(data);
                        }
                    }
                }
            }
예제 #2
0
            internal override void ProcessAllSoundOff()
            {
                var me = new ControlChangeEvent((SevenBitNumber)120, (SevenBitNumber)0);

                ProcessControlChange(me);

                parentModule.hardReset();
            }