Esempio n. 1
0
 public void Update(int deltaMs)
 {
     foreach (KeyValuePair <byte, NoteData> item in voiceTable)
     {
         item.Value.Voice.SetFrequencyRatio(item.Value.FrequencyRatio * PitchFrequencyRatio);
         if (panChanged && !item.Value.IsPercussion)
         {
             item.Value.Voice.SetOutputMatrix(1, 2, outputMatrix);
         }
     }
     submix.SetVolume(ValueToAmplitude(Volume));
     if (panChanged)
     {
         panChanged = false;
     }
     if (echoChanged)
     {
         EchoParameters effectParameter = default(EchoParameters);
         effectParameter.Delay     = 160f;
         effectParameter.Feedback  = 0.6f;
         effectParameter.WetDryMix = (float)(int)Echo / 384f;
         submix.SetEffectParameters(0, effectParameter);
         echoChanged = false;
     }
 }
Esempio n. 2
0
        /// <summary>
        /// This method opens a selected filter's window where the user
        /// can set the parameters for the filter. Once the parameters
        /// are set, the user can then apply, cancel, or remove the filter.
        /// This method is called when a user selects a new filter under
        /// the filters menu or when a user selects an already applied filter
        /// in the filter queue.
        /// </summary>
        private void OpenFilterWindow(String filterType, String inputElement)
        {
            EffectParameters parameters;

            if (inputElement.Equals("MenuItem"))
            {
                switch (filterType)
                {
                case "Echo":
                    parameters = new EchoParameters();
                    break;

                case "Amplify":
                    parameters = new AmplifyParameters();
                    break;

                case "Bass Boost":
                    parameters = new BassBoostParameters();
                    break;

                case "Phaser":
                    parameters = new PhaserParameters();
                    break;

                case "Fade In":
                    parameters = new FadeInParameters();
                    break;

                case "Fade Out":
                    parameters = new FadeOutParameters();
                    break;

                case "Distortion":
                    parameters = new DistortionParameters();
                    break;

                default:
                    StatusText.Content = filterType + " is an invalid filter. ";
                    return;
                }
            }
            else
            {
                parameters = filtersList[inputElement].param;
            }

            FilterWindow winFilter = new FilterWindow(filterType, inputElement, parameters);

            winFilter.Owner = this;
            winFilter.Show();
        }
Esempio n. 3
0
            public Track(XAudio2 xAudio2, Z2Sound baa, Dictionary <Tuple <byte, byte>, Instrument> instrumentTable, Dictionary <int, Sample> sampleTable)
            {
                engine               = xAudio2;
                soundData            = baa;
                this.instrumentTable = instrumentTable;
                this.sampleTable     = sampleTable;
                voiceTable           = new Dictionary <byte, NoteData>();
                submix               = new SubmixVoice(engine);
                Echo             effect           = new Echo();
                EffectDescriptor effectDescriptor = new EffectDescriptor(effect)
                {
                    InitialState       = true,
                    OutputChannelCount = 2
                };

                submix.SetEffectChain(effectDescriptor);
                EchoParameters effectParameter = new EchoParameters
                {
                    Delay     = 160f,
                    Feedback  = 0f,
                    WetDryMix = 0f
                };

                submix.SetEffectParameters(0, effectParameter);
                submix.EnableEffect(0);
                outputMatrix    = new float[2];
                Volume          = 127;
                Pitch           = 0;
                Pan             = 63;
                panChanged      = false;
                Bank            = 0;
                Echo            = 0;
                echoChanged     = false;
                Instrument      = 0;
                outputMatrix[0] = (outputMatrix[1] = 0.5f);
            }