Beispiel #1
0
        private void probe_sample_selector_gui(int window_id)
        {
            GUIContent _content = new GUIContent();

            BeepSource source = beepsource_list[(((sel_beep_page - 1) * 10) + sel_beep_src)];   //shortcut   0-9 only, but correspond to the correct beepsource

            //GUILayout.Label("Beepsource " + source.beep_name, label_txt_center);

            probe_sample_selector_scroll_pos = GUILayout.BeginScrollView(probe_sample_selector_scroll_pos, false, true);

            //list each sample from Dict
            foreach (string key in dict_probe_samples.Keys)
            {
                AudioClip _clip = new AudioClip();
                GUIStyle sample_gs = label_txt_left;

                if (dict_probe_samples.TryGetValue(key, out _clip))
                {

                    //check if _clip is == source.clip
                    //if yes, bold it
                    if (_clip == source.audiosource.clip) sample_gs = label_txt_bold;
                    //else sample_gs = label_txt_left;
                }

                GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true));

                _content.text = key;
                _content.tooltip = "Probe sample file name";
                GUILayout.Label(_content, sample_gs, GUILayout.ExpandWidth(true));

                _content.text = "►";
                _content.tooltip = "Play this sample once";
                if (GUILayout.Button(_content, GUILayout.ExpandWidth(false)))
                {
                    if ((exchange_playing && disable_beeps_during_chatter) || sstv.isPlaying) return;   //don't play during chatter or sstv
                    //if (debugging) Debug.Log("[CHATR] playing sample " + source.current_clip + " one time...");

                    OTP_source = source;
                    OTP_stored_clip = source.audiosource.clip;

                    //if (debugging) Debug.Log("[CHATR] OTP_stored_clip = " + OTP_stored_clip);
                    //source.current_clip = key;
                    //if (debugging) Debug.Log("[CHATR] set clip " + source.current_clip + " to play once");
                    //set_beep_clip(source);
                    //if (debugging) Debug.Log("[CHATR] source.audiosource.clip set");

                    //AudioClip _clip;
                    if (dict_probe_samples.TryGetValue(key, out _clip))
                    {
                        source.audiosource.clip = _clip;
                    }

                    OTP_playing = true;
                    source.audiosource.Play();

                }

                _content.text = "Set";
                _content.tooltip = "Set this sample to play from this beepsource";
                if (GUILayout.Button(_content, GUILayout.ExpandWidth(false)))
                {
                    //sample was selected
                    source.current_clip = key;  //set current_clip
                    set_beep_clip(source);  //then assign AudioClip
                    if (debugging) Debug.Log("[CHATR] sample selector clip set :: clip = " + key);

                }

                GUILayout.EndHorizontal();
            }

            GUILayout.EndScrollView();

            GUILayout.BeginHorizontal(GUILayout.ExpandWidth(true));
            GUILayout.Label(" ", GUILayout.ExpandWidth(true));
            if (GUILayout.Button("Close", GUILayout.ExpandWidth(false)))
            {
                show_probe_sample_selector = false;
            }
            GUILayout.EndHorizontal();

            if (show_tooltips && GUI.tooltip != "") tooltips(probe_sample_selector_window_pos);

            GUI.DragWindow();
        }
Beispiel #2
0
        //Set audioclip
        private void set_beep_clip(BeepSource beepsource)
        {
            if (beepsource.current_clip == "First")
            {
                //"First" is used when creating a new beepsource
                //if (debugging) Debug.Log("[CHATR] beep AudioClip is \"First\"");
                //pick any AudioClip (when adding a new beepsource)

                //dump all values into a List
                //get a random index for that list
                //assign
                List<AudioClip> val_list = new List<AudioClip>();
                foreach (AudioClip val in dict_probe_samples.Values)
                {
                    val_list.Add(val);
                }
                beepsource.audiosource.clip = val_list[0];
                string s = "";
                if (dict_probe_samples2.TryGetValue(beepsource.audiosource.clip, out s))
                {
                    beepsource.current_clip = s;
                    if (debugging) Debug.Log("[CHATR] \"First\" AudioClip set :: current_clip = " + s);
                }
            }
            else if (beepsource.current_clip == "Random")
            {
                if (debugging) Debug.Log("[CHATR] setting random AudioClip...");
                List<AudioClip> clip_list = new List<AudioClip>();
                foreach (AudioClip clip in dict_probe_samples.Values)
                {
                    clip_list.Add(clip);
                }
                beepsource.audiosource.clip = clip_list[rand.Next(0, clip_list.Count)];
                string s = "";
                if (dict_probe_samples2.TryGetValue(beepsource.audiosource.clip, out s))
                {
                    beepsource.current_clip = s;
                    if (debugging) Debug.Log("[CHATR] beep AudioClip randomized :: current_clip = " + s);
                }
            }
            else
            {
                AudioClip temp_clip = new AudioClip();

                //broken here current_clip == null

                if (dict_probe_samples.TryGetValue(beepsource.current_clip, out temp_clip))
                {
                    beepsource.audiosource.clip = temp_clip;
                    string s = "";
                    if (dict_probe_samples2.TryGetValue(beepsource.audiosource.clip, out s))
                    {
                        beepsource.current_clip = s;
                        if (debugging) Debug.Log("[CHATR] beep AudioClip set :: current_clip = " + s);
                    }
                }
                else
                {
                    if (debugging) Debug.LogError("[CHATR] Could not find AudioClip for key " + beepsource.current_clip + " :: setting AudioClip to \"First\"");
                    beepsource.current_clip = "First";
                    set_beep_clip(beepsource);
                }
            }
        }
Beispiel #3
0
        private void paste_beepsource_values(BeepSource source)
        {
            if (beepsource_clipboard.HasValue("precise")) source.precise = Boolean.Parse(beepsource_clipboard.GetValue("precise"));
            if (beepsource_clipboard.HasValue("precise_freq"))
            {
                source.precise_freq = Int32.Parse(beepsource_clipboard.GetValue("precise_freq"));
                source.precise_freq_slider = source.precise_freq;
            }
            if (beepsource_clipboard.HasValue("loose_freq"))
            {
                source.loose_freq = Int32.Parse(beepsource_clipboard.GetValue("loose_freq"));
                source.loose_freq_slider = source.loose_freq;
            }
            if (beepsource_clipboard.HasValue("volume")) source.audiosource.volume = Single.Parse(beepsource_clipboard.GetValue("volume"));
            if (beepsource_clipboard.HasValue("pitch")) source.audiosource.pitch = Single.Parse(beepsource_clipboard.GetValue("pitch"));
            if (beepsource_clipboard.HasValue("current_clip")) source.current_clip = beepsource_clipboard.GetValue("current_clip");
            if (beepsource_clipboard.HasValue("sel_filter")) source.sel_filter = Int32.Parse(beepsource_clipboard.GetValue("sel_filter"));
            if (beepsource_clipboard.HasValue("show_settings_window")) source.show_settings_window = Boolean.Parse(beepsource_clipboard.GetValue("show_settings_window"));
            if (beepsource_clipboard.HasValue("reverb_preset_index")) source.reverb_preset_index = Int32.Parse(beepsource_clipboard.GetValue("reverb_preset_index"));
            if (beepsource_clipboard.HasValue("settings_window_pos_x")) source.settings_window_pos.x = Single.Parse(beepsource_clipboard.GetValue("settings_window_pos_x"));
            if (beepsource_clipboard.HasValue("settings_window_pos_y")) source.settings_window_pos.y = Single.Parse(beepsource_clipboard.GetValue("settings_window_pos_y"));

            if (dict_probe_samples.Count > 0)
            {
                set_beep_clip(source);

                if (source.precise == false && source.loose_freq > 0) new_beep_loose_timer_limit(source);
            }

            foreach (ConfigNode filter in beepsource_clipboard.nodes)
            {
                if (filter.name == "CHORUS")
                {
                    if (filter.HasValue("enabled")) source.chorus_filter.enabled = Boolean.Parse(filter.GetValue("enabled"));
                    if (filter.HasValue("dry_mix")) source.chorus_filter.dryMix = Single.Parse(filter.GetValue("dry_mix"));
                    if (filter.HasValue("wet_mix_1")) source.chorus_filter.wetMix1 = Single.Parse(filter.GetValue("wet_mix_1"));
                    if (filter.HasValue("wet_mix_2")) source.chorus_filter.wetMix2 = Single.Parse(filter.GetValue("wet_mix_2"));
                    if (filter.HasValue("wet_mix_3")) source.chorus_filter.wetMix3 = Single.Parse(filter.GetValue("wet_mix_3"));
                }
                else if (filter.name == "DISTORTION")
                {
                    if (filter.HasValue("enabled")) source.distortion_filter.enabled = Boolean.Parse(filter.GetValue("enabled"));
                    if (filter.HasValue("distortion_level")) source.distortion_filter.distortionLevel = Single.Parse(filter.GetValue("distortion_level"));
                }
                else if (filter.name == "ECHO")
                {
                    if (filter.HasValue("enabled")) source.echo_filter.enabled = Boolean.Parse(filter.GetValue("enabled"));
                    if (filter.HasValue("delay")) source.echo_filter.delay = Single.Parse(filter.GetValue("delay"));
                    if (filter.HasValue("decay_ratio")) source.echo_filter.decayRatio = Single.Parse(filter.GetValue("decay_ratio"));
                    if (filter.HasValue("dry_mix")) source.echo_filter.dryMix = Single.Parse(filter.GetValue("dry_mix"));
                    if (filter.HasValue("wet_mix")) source.echo_filter.wetMix = Single.Parse(filter.GetValue("wet_mix"));
                }
                else if (filter.name == "HIGHPASS")
                {
                    if (filter.HasValue("enabled")) source.highpass_filter.enabled = Boolean.Parse(filter.GetValue("enabled"));
                    if (filter.HasValue("cutoff_freq")) source.highpass_filter.cutoffFrequency = Single.Parse(filter.GetValue("cutoff_freq"));
                    if (filter.HasValue("resonance_q")) source.highpass_filter.highpassResonanceQ = Single.Parse(filter.GetValue("resonance_q"));
                }
                else if (filter.name == "LOWPASS")
                {
                    if (filter.HasValue("enabled")) source.lowpass_filter.enabled = Boolean.Parse(filter.GetValue("enabled"));
                    if (filter.HasValue("cutoff_freq")) source.lowpass_filter.cutoffFrequency = Single.Parse(filter.GetValue("cutoff_freq"));
                    if (filter.HasValue("resonance_q")) source.lowpass_filter.lowpassResonanceQ = Single.Parse(filter.GetValue("resonance_q"));
                }
                else if (filter.name == "REVERB")
                {
                    if (filter.HasValue("enabled")) source.reverb_filter.enabled = Boolean.Parse(filter.GetValue("enabled"));
                    if (filter.HasValue("reverb_preset")) source.reverb_filter.reverbPreset = (AudioReverbPreset)Enum.Parse(typeof(AudioReverbPreset), filter.GetValue("reverb_preset"));
                    if (filter.HasValue("dry_level")) source.reverb_filter.dryLevel = Single.Parse(filter.GetValue("dry_level"));
                    if (filter.HasValue("room")) source.reverb_filter.room = Single.Parse(filter.GetValue("room"));
                    if (filter.HasValue("room_hf")) source.reverb_filter.roomHF = Single.Parse(filter.GetValue("room_hf"));
                    if (filter.HasValue("room_lf")) source.reverb_filter.roomLF = Single.Parse(filter.GetValue("room_lf"));
                    if (filter.HasValue("room_rolloff")) source.reverb_filter.roomRolloff = Single.Parse(filter.GetValue("room_rolloff"));
                    if (filter.HasValue("decay_time")) source.reverb_filter.decayTime = Single.Parse(filter.GetValue("decay_time"));
                    if (filter.HasValue("decay_hf_ratio")) source.reverb_filter.decayHFRatio = Single.Parse(filter.GetValue("decay_hf_ratio"));
                    if (filter.HasValue("reflections_level")) source.reverb_filter.reflectionsLevel = Single.Parse(filter.GetValue("reflections_level"));
                    if (filter.HasValue("reflections_delay")) source.reverb_filter.reflectionsDelay = Single.Parse(filter.GetValue("reflections_delay"));
                    if (filter.HasValue("reverb_level")) source.reverb_filter.reverbLevel = Single.Parse(filter.GetValue("reverb_level"));
                    if (filter.HasValue("reverb_delay")) source.reverb_filter.reverbDelay = Single.Parse(filter.GetValue("reverb_delay"));
                    if (filter.HasValue("diffusion")) source.reverb_filter.diffusion = Single.Parse(filter.GetValue("diffusion"));
                    if (filter.HasValue("density")) source.reverb_filter.density = Single.Parse(filter.GetValue("density"));
                    if (filter.HasValue("hf_reference")) source.reverb_filter.hfReference = Single.Parse(filter.GetValue("hf_reference"));
                    if (filter.HasValue("lf_reference")) source.reverb_filter.lfReference = Single.Parse(filter.GetValue("lf_reference"));
                }
            }
            if (debugging) Debug.Log("[CHATR] single beepsource values pasted from beepsource_clipboard");
        }
Beispiel #4
0
 //Timer functions
 private void new_beep_loose_timer_limit(BeepSource bm)
 {
     if (bm.loose_freq == 1) bm.loose_timer_limit = rand.Next(120, 301);
     else if (bm.loose_freq == 2) bm.loose_timer_limit = rand.Next(60, 121);
     else if (bm.loose_freq == 3) bm.loose_timer_limit = rand.Next(30, 61);
     else if (bm.loose_freq == 4) bm.loose_timer_limit = rand.Next(15, 31);
     else if (bm.loose_freq == 5) bm.loose_timer_limit = rand.Next(5, 16);
     else if (bm.loose_freq == 6) bm.loose_timer_limit = rand.Next(1, 6);
     //if (debugging) Debug.Log("[CHATR] new beep loose timer limit set: " + bm.loose_timer_limit);
 }
Beispiel #5
0
        //Copy/Paste beepsource
        private void copy_beepsource_values(BeepSource source)
        {
            beepsource_clipboard = new ConfigNode();

            ConfigNode _filter;

            beepsource_clipboard.AddValue("precise", source.precise);
            beepsource_clipboard.AddValue("precise_freq", source.precise_freq);
            beepsource_clipboard.AddValue("loose_freq", source.loose_freq);
            beepsource_clipboard.AddValue("volume", source.audiosource.volume);
            beepsource_clipboard.AddValue("pitch", source.audiosource.pitch);
            beepsource_clipboard.AddValue("current_clip", source.current_clip);
            beepsource_clipboard.AddValue("sel_filter", source.sel_filter);
            beepsource_clipboard.AddValue("show_settings_window", source.show_settings_window);
            beepsource_clipboard.AddValue("reverb_preset_index", source.reverb_preset_index);
            beepsource_clipboard.AddValue("settings_window_pos_x", source.settings_window_pos.x);
            beepsource_clipboard.AddValue("settings_window_pos_y", source.settings_window_pos.y);

            //filters
            //ConfigNode _filter;

            _filter = new ConfigNode();
            _filter.name = "CHORUS";
            _filter.AddValue("enabled", source.chorus_filter.enabled);
            _filter.AddValue("dry_mix", source.chorus_filter.dryMix);
            _filter.AddValue("wet_mix_1", source.chorus_filter.wetMix1);
            _filter.AddValue("wet_mix_2", source.chorus_filter.wetMix2);
            _filter.AddValue("wet_mix_3", source.chorus_filter.wetMix3);
            beepsource_clipboard.AddNode(_filter);

            _filter = new ConfigNode();
            _filter.name = "DISTORTION";
            _filter.AddValue("enabled", source.distortion_filter.enabled);
            _filter.AddValue("distortion_level", source.distortion_filter.distortionLevel);
            beepsource_clipboard.AddNode(_filter);

            _filter = new ConfigNode();
            _filter.name = "ECHO";
            _filter.AddValue("enabled", source.echo_filter.enabled);
            _filter.AddValue("delay", source.echo_filter.delay);
            _filter.AddValue("decay_ratio", source.echo_filter.decayRatio);
            _filter.AddValue("dry_mix", source.echo_filter.dryMix);
            _filter.AddValue("wet_mix", source.echo_filter.wetMix);
            beepsource_clipboard.AddNode(_filter);

            _filter = new ConfigNode();
            _filter.name = "HIGHPASS";
            _filter.AddValue("enabled", source.highpass_filter.enabled);
            _filter.AddValue("cutoff_freq", source.highpass_filter.cutoffFrequency);
            _filter.AddValue("resonance_q", source.highpass_filter.highpassResonanceQ);
            beepsource_clipboard.AddNode(_filter);

            _filter = new ConfigNode();
            _filter.name = "LOWPASS";
            _filter.AddValue("enabled", source.lowpass_filter.enabled);
            _filter.AddValue("cutoff_freq", source.lowpass_filter.cutoffFrequency);
            _filter.AddValue("resonance_q", source.lowpass_filter.lowpassResonanceQ);
            beepsource_clipboard.AddNode(_filter);

            _filter = new ConfigNode();
            _filter.name = "REVERB";
            _filter.AddValue("enabled", source.reverb_filter.enabled);
            _filter.AddValue("reverb_preset", source.reverb_filter.reverbPreset);
            _filter.AddValue("dry_level", source.reverb_filter.dryLevel);
            _filter.AddValue("room", source.reverb_filter.room);
            _filter.AddValue("room_hf", source.reverb_filter.roomHF);
            _filter.AddValue("room_lf", source.reverb_filter.roomLF);
            _filter.AddValue("room_rolloff", source.reverb_filter.roomRolloff);
            _filter.AddValue("decay_time", source.reverb_filter.decayTime);
            _filter.AddValue("decay_hf_ratio", source.reverb_filter.decayHFRatio);
            _filter.AddValue("reflections_level", source.reverb_filter.reflectionsLevel);
            _filter.AddValue("reflections_delay", source.reverb_filter.reflectionsDelay);
            _filter.AddValue("reverb_level", source.reverb_filter.reverbLevel);
            _filter.AddValue("reverb_delay", source.reverb_filter.reverbDelay);
            _filter.AddValue("diffusion", source.reverb_filter.diffusion);
            _filter.AddValue("density", source.reverb_filter.density);
            _filter.AddValue("hf_reference", source.reverb_filter.hfReference);
            _filter.AddValue("lf_reference", source.reverb_filter.lfReference);
            beepsource_clipboard.AddNode(_filter);

            if (debugging) Debug.Log("[CHATR] single beepsource values copied to beepsource_clipboard");
        }
        private void paste_all_beep_filters(BeepSource source)
        {
            ConfigNode filter = new ConfigNode();

            filter = filters_clipboard.GetNode("CHORUS");
            if (filter.HasValue("enabled")) source.chorus_filter.enabled = Boolean.Parse(filter.GetValue("enabled"));
            if (filter.HasValue("dry_mix")) source.chorus_filter.dryMix = Single.Parse(filter.GetValue("dry_mix"));
            if (filter.HasValue("wet_mix_1")) source.chorus_filter.wetMix1 = Single.Parse(filter.GetValue("wet_mix_1"));
            if (filter.HasValue("wet_mix_2")) source.chorus_filter.wetMix2 = Single.Parse(filter.GetValue("wet_mix_2"));
            if (filter.HasValue("wet_mix_3")) source.chorus_filter.wetMix3 = Single.Parse(filter.GetValue("wet_mix_3"));
            if (filter.HasValue("delay")) source.chorus_filter.dryMix = Single.Parse(filter.GetValue("delay"));
            if (filter.HasValue("rate")) source.chorus_filter.dryMix = Single.Parse(filter.GetValue("rate"));
            if (filter.HasValue("depth")) source.chorus_filter.dryMix = Single.Parse(filter.GetValue("depth"));

            filter = filters_clipboard.GetNode("DISTORTION");
            if (filter.HasValue("enabled")) source.distortion_filter.enabled = Boolean.Parse(filter.GetValue("enabled"));
            if (filter.HasValue("distortion_level")) source.distortion_filter.distortionLevel = Single.Parse(filter.GetValue("distortion_level"));

            filter = filters_clipboard.GetNode("ECHO");
            if (filter.HasValue("enabled")) source.echo_filter.enabled = Boolean.Parse(filter.GetValue("enabled"));
            if (filter.HasValue("delay")) source.echo_filter.delay = Single.Parse(filter.GetValue("delay"));
            if (filter.HasValue("decay_ratio")) source.echo_filter.decayRatio = Single.Parse(filter.GetValue("decay_ratio"));
            if (filter.HasValue("dry_mix")) source.echo_filter.dryMix = Single.Parse(filter.GetValue("dry_mix"));
            if (filter.HasValue("wet_mix")) source.echo_filter.wetMix = Single.Parse(filter.GetValue("wet_mix"));

            filter = filters_clipboard.GetNode("HIGHPASS");
            if (filter.HasValue("enabled")) source.highpass_filter.enabled = Boolean.Parse(filter.GetValue("enabled"));
            if (filter.HasValue("cutoff_freq")) source.highpass_filter.cutoffFrequency = Single.Parse(filter.GetValue("cutoff_freq"));
            if (filter.HasValue("resonance_q")) source.highpass_filter.highpassResonanceQ = Single.Parse(filter.GetValue("resonance_q"));

            filter = filters_clipboard.GetNode("LOWPASS");
            if (filter.HasValue("enabled")) source.lowpass_filter.enabled = Boolean.Parse(filter.GetValue("enabled"));
            if (filter.HasValue("cutoff_freq")) source.lowpass_filter.cutoffFrequency = Single.Parse(filter.GetValue("cutoff_freq"));
            if (filter.HasValue("resonance_q")) source.lowpass_filter.lowpassResonanceQ = Single.Parse(filter.GetValue("resonance_q"));

            filter = filters_clipboard.GetNode("REVERB");
            if (filter.HasValue("enabled")) source.reverb_filter.enabled = Boolean.Parse(filter.GetValue("enabled"));
            if (filter.HasValue("reverb_preset")) source.reverb_filter.reverbPreset = (AudioReverbPreset)Enum.Parse(typeof(AudioReverbPreset), filter.GetValue("reverb_preset"));
            if (filter.HasValue("dry_level")) source.reverb_filter.dryLevel = Single.Parse(filter.GetValue("dry_level"));
            if (filter.HasValue("room")) source.reverb_filter.room = Single.Parse(filter.GetValue("room"));
            if (filter.HasValue("room_hf")) source.reverb_filter.roomHF = Single.Parse(filter.GetValue("room_hf"));
            if (filter.HasValue("room_lf")) source.reverb_filter.roomLF = Single.Parse(filter.GetValue("room_lf"));
            if (filter.HasValue("room_rolloff")) source.reverb_filter.roomRolloff = Single.Parse(filter.GetValue("room_rolloff"));
            if (filter.HasValue("decay_time")) source.reverb_filter.decayTime = Single.Parse(filter.GetValue("decay_time"));
            if (filter.HasValue("decay_hf_ratio")) source.reverb_filter.decayHFRatio = Single.Parse(filter.GetValue("decay_hf_ratio"));
            if (filter.HasValue("reflections_level")) source.reverb_filter.reflectionsLevel = Single.Parse(filter.GetValue("reflections_level"));
            if (filter.HasValue("reflections_delay")) source.reverb_filter.reflectionsDelay = Single.Parse(filter.GetValue("reflections_delay"));
            if (filter.HasValue("reverb_level")) source.reverb_filter.reverbLevel = Single.Parse(filter.GetValue("reverb_level"));
            if (filter.HasValue("reverb_delay")) source.reverb_filter.reverbDelay = Single.Parse(filter.GetValue("reverb_delay"));
            if (filter.HasValue("diffusion")) source.reverb_filter.diffusion = Single.Parse(filter.GetValue("diffusion"));
            if (filter.HasValue("density")) source.reverb_filter.density = Single.Parse(filter.GetValue("density"));
            if (filter.HasValue("hf_reference")) source.reverb_filter.hfReference = Single.Parse(filter.GetValue("hf_reference"));
            if (filter.HasValue("lf_reference")) source.reverb_filter.lfReference = Single.Parse(filter.GetValue("lf_reference"));

            if (debugging) Debug.Log("[CHATR] all beep filter values pasted from filters_clipboard");
        }
        //Copy/Paste beep filters
        private void copy_all_beep_filters(BeepSource source)
        {
            filters_clipboard = new ConfigNode();
            ConfigNode _filter;

            _filter = new ConfigNode();
            _filter.name = "CHORUS";
            _filter.AddValue("enabled", source.chorus_filter.enabled);
            _filter.AddValue("dry_mix", source.chorus_filter.dryMix);
            _filter.AddValue("wet_mix_1", source.chorus_filter.wetMix1);
            _filter.AddValue("wet_mix_2", source.chorus_filter.wetMix2);
            _filter.AddValue("wet_mix_3", source.chorus_filter.wetMix3);
            _filter.AddValue("delay", source.chorus_filter.delay);
            _filter.AddValue("rate", source.chorus_filter.rate);
            _filter.AddValue("depth", source.chorus_filter.depth);
            filters_clipboard.AddNode(_filter);

            _filter = new ConfigNode();
            _filter.name = "DISTORTION";
            _filter.AddValue("enabled", source.distortion_filter.enabled);
            _filter.AddValue("distortion_level", source.distortion_filter.distortionLevel);
            filters_clipboard.AddNode(_filter);

            _filter = new ConfigNode();
            _filter.name = "ECHO";
            _filter.AddValue("enabled", source.echo_filter.enabled);
            _filter.AddValue("delay", source.echo_filter.delay);
            _filter.AddValue("decay_ratio", source.echo_filter.decayRatio);
            _filter.AddValue("dry_mix", source.echo_filter.dryMix);
            _filter.AddValue("wet_mix", source.echo_filter.wetMix);
            filters_clipboard.AddNode(_filter);

            _filter = new ConfigNode();
            _filter.name = "HIGHPASS";
            _filter.AddValue("enabled", source.highpass_filter.enabled);
            _filter.AddValue("cutoff_freq", source.highpass_filter.cutoffFrequency);
            _filter.AddValue("resonance_q", source.highpass_filter.highpassResonanceQ);
            filters_clipboard.AddNode(_filter);

            _filter = new ConfigNode();
            _filter.name = "LOWPASS";
            _filter.AddValue("enabled", source.lowpass_filter.enabled);
            _filter.AddValue("cutoff_freq", source.lowpass_filter.cutoffFrequency);
            _filter.AddValue("resonance_q", source.lowpass_filter.lowpassResonanceQ);
            filters_clipboard.AddNode(_filter);

            _filter = new ConfigNode();
            _filter.name = "REVERB";
            _filter.AddValue("enabled", source.reverb_filter.enabled);
            _filter.AddValue("reverb_preset", source.reverb_filter.reverbPreset);
            _filter.AddValue("dry_level", source.reverb_filter.dryLevel);
            _filter.AddValue("room", source.reverb_filter.room);
            _filter.AddValue("room_hf", source.reverb_filter.roomHF);
            _filter.AddValue("room_lf", source.reverb_filter.roomLF);
            _filter.AddValue("room_rolloff", source.reverb_filter.roomRolloff);
            _filter.AddValue("decay_time", source.reverb_filter.decayTime);
            _filter.AddValue("decay_hf_ratio", source.reverb_filter.decayHFRatio);
            _filter.AddValue("reflections_level", source.reverb_filter.reflectionsLevel);
            _filter.AddValue("reflections_delay", source.reverb_filter.reflectionsDelay);
            _filter.AddValue("reverb_level", source.reverb_filter.reverbLevel);
            _filter.AddValue("reverb_delay", source.reverb_filter.reverbDelay);
            _filter.AddValue("diffusion", source.reverb_filter.diffusion);
            _filter.AddValue("density", source.reverb_filter.density);
            _filter.AddValue("hf_reference", source.reverb_filter.hfReference);
            _filter.AddValue("lf_reference", source.reverb_filter.lfReference);
            filters_clipboard.AddNode(_filter);

            if (debugging) Debug.Log("[CHATR] all beep filter values copied to filters_clipboard");
        }