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(); }
//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); } } }
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"); }
//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); }
//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"); }