├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── Builds ├── Doxyfile ├── build.sh ├── doxygen_autogen.py ├── linux │ └── gmake │ │ ├── Makefile │ │ ├── kmeter_standalone_stereo.make │ │ ├── kmeter_standalone_surround.make │ │ ├── kmeter_vst2_stereo.make │ │ └── kmeter_vst2_surround.make ├── premake5.lua ├── render_templates.bat ├── render_templates.sh ├── settings.template └── windows │ └── vs2017 │ ├── kmeter.sln │ ├── kmeter_standalone_stereo.vcxproj │ ├── kmeter_standalone_stereo.vcxproj.filters │ ├── kmeter_standalone_surround.vcxproj │ ├── kmeter_standalone_surround.vcxproj.filters │ ├── kmeter_vst2_stereo.vcxproj │ ├── kmeter_vst2_stereo.vcxproj.filters │ ├── kmeter_vst2_surround.vcxproj │ ├── kmeter_vst2_surround.vcxproj.filters │ ├── kmeter_vst3_stereo.vcxproj │ ├── kmeter_vst3_stereo.vcxproj.filters │ ├── kmeter_vst3_surround.vcxproj │ └── kmeter_vst3_surround.vcxproj.filters ├── CODE_OF_CONDUCT.markdown ├── JuceLibraryCode ├── AppConfig.h ├── JuceHeader.h ├── ReadMe.txt ├── include_juce_audio_basics.cpp ├── include_juce_audio_basics.mm ├── include_juce_audio_devices.cpp ├── include_juce_audio_devices.mm ├── include_juce_audio_formats.cpp ├── include_juce_audio_formats.mm ├── include_juce_audio_plugin_client_AAX.cpp ├── include_juce_audio_plugin_client_AAX.mm ├── include_juce_audio_plugin_client_AU.r ├── include_juce_audio_plugin_client_AU_1.mm ├── include_juce_audio_plugin_client_AU_2.mm ├── include_juce_audio_plugin_client_AUv3.mm ├── include_juce_audio_plugin_client_RTAS.r ├── include_juce_audio_plugin_client_RTAS_1.cpp ├── include_juce_audio_plugin_client_RTAS_2.cpp ├── include_juce_audio_plugin_client_RTAS_3.cpp ├── include_juce_audio_plugin_client_RTAS_4.cpp ├── include_juce_audio_plugin_client_RTAS_utils.cpp ├── include_juce_audio_plugin_client_RTAS_utils.mm ├── include_juce_audio_plugin_client_Standalone.cpp ├── include_juce_audio_plugin_client_Unity.cpp ├── include_juce_audio_plugin_client_VST2.cpp ├── include_juce_audio_plugin_client_VST3.cpp ├── include_juce_audio_plugin_client_VST_utils.mm ├── include_juce_audio_plugin_client_utils.cpp ├── include_juce_audio_processors.cpp ├── include_juce_audio_processors.mm ├── include_juce_audio_utils.cpp ├── include_juce_audio_utils.mm ├── include_juce_core.cpp ├── include_juce_core.mm ├── include_juce_cryptography.cpp ├── include_juce_cryptography.mm ├── include_juce_data_structures.cpp ├── include_juce_data_structures.mm ├── include_juce_events.cpp ├── include_juce_events.mm ├── include_juce_graphics.cpp ├── include_juce_graphics.mm ├── include_juce_gui_basics.cpp ├── include_juce_gui_basics.mm ├── include_juce_gui_extra.cpp ├── include_juce_gui_extra.mm ├── include_juce_video.cpp └── include_juce_video.mm ├── K-Meter.jucer ├── LICENSE ├── README.markdown ├── Source ├── .ackrc ├── .astylerc ├── audio_file_player.cpp ├── audio_file_player.h ├── average_level_filtered.cpp ├── average_level_filtered.h ├── filter_design │ ├── filter_design_itu.R │ ├── filter_design_itu.pdf │ ├── filter_design_rms.R │ └── filter_design_rms.pdf ├── format_code.bat ├── format_code.sh ├── frut │ ├── .astylerc │ ├── .sublimelinterrc │ ├── FrutHeader.h │ ├── amalgamated │ │ ├── include_frut_audio.cpp │ │ ├── include_frut_audio.h │ │ ├── include_frut_dsp.cpp │ │ ├── include_frut_dsp.h │ │ ├── include_frut_math.cpp │ │ ├── include_frut_math.h │ │ ├── include_frut_parameters.cpp │ │ ├── include_frut_parameters.h │ │ ├── include_frut_skin.cpp │ │ ├── include_frut_skin.h │ │ ├── include_frut_widgets.cpp │ │ └── include_frut_widgets.h │ ├── audio │ │ ├── buffer_position.cpp │ │ ├── buffer_position.h │ │ ├── ring_buffer.cpp │ │ └── ring_buffer.h │ ├── dsp │ │ ├── biquad_filter.cpp │ │ ├── biquad_filter.h │ │ ├── dither.cpp │ │ ├── dither.h │ │ ├── fftw_runner.cpp │ │ ├── fftw_runner.h │ │ ├── filter_chebyshev.cpp │ │ ├── filter_chebyshev.h │ │ ├── filter_chebyshev_stage.cpp │ │ ├── filter_chebyshev_stage.h │ │ ├── fir_filter_box.cpp │ │ ├── fir_filter_box.h │ │ ├── iir_filter_box.cpp │ │ ├── iir_filter_box.h │ │ ├── rate_converter.cpp │ │ ├── rate_converter.h │ │ ├── true_peak_meter.cpp │ │ └── true_peak_meter.h │ ├── format_code.bat │ ├── format_code.sh │ ├── jinja │ │ ├── copy_vst.macros │ │ ├── copy_vst.template │ │ ├── finalise_binaries.macros │ │ ├── finalise_binaries.template │ │ ├── package_releases.macros │ │ ├── package_releases.template │ │ ├── premake5.macros │ │ ├── premake5.template │ │ ├── render_templates.py │ │ └── settings.template │ ├── lint.sh │ ├── math │ │ ├── averager.cpp │ │ ├── averager.h │ │ └── simple_math.h │ ├── parameters │ │ ├── juggler.cpp │ │ ├── juggler.h │ │ ├── par_boolean.cpp │ │ ├── par_boolean.h │ │ ├── par_combined.cpp │ │ ├── par_combined.h │ │ ├── par_continuous.cpp │ │ ├── par_continuous.h │ │ ├── par_string.cpp │ │ ├── par_string.h │ │ ├── par_switch.cpp │ │ ├── par_switch.h │ │ ├── parameter.cpp │ │ └── parameter.h │ ├── skin │ │ ├── look_and_feel_v3.cpp │ │ ├── look_and_feel_v3.h │ │ ├── skin.cpp │ │ └── skin.h │ └── widgets │ │ ├── channel_slider.cpp │ │ ├── channel_slider.h │ │ ├── meter_bar.cpp │ │ ├── meter_bar.h │ │ ├── meter_segment.cpp │ │ ├── meter_segment.h │ │ ├── meter_segment_continuous.cpp │ │ ├── meter_segment_continuous.h │ │ ├── meter_segment_discrete.cpp │ │ ├── meter_segment_discrete.h │ │ ├── needle_meter.cpp │ │ ├── needle_meter.h │ │ ├── orientation.h │ │ ├── resources │ │ ├── COPYRIGHT │ │ ├── button_gpl_down.svg │ │ ├── button_gpl_normal.svg │ │ ├── convert_resources.sh │ │ ├── output │ │ │ ├── button_gpl_down.png │ │ │ └── button_gpl_normal.png │ │ ├── resources.cpp │ │ └── resources.h │ │ ├── signal_led.cpp │ │ ├── signal_led.h │ │ ├── slider.h │ │ ├── slider_combined.cpp │ │ ├── slider_combined.h │ │ ├── slider_continuous.cpp │ │ ├── slider_continuous.h │ │ ├── slider_switch.cpp │ │ ├── slider_switch.h │ │ ├── slider_switch_linear_bar.cpp │ │ ├── slider_switch_linear_bar.h │ │ ├── state_label.cpp │ │ ├── state_label.h │ │ ├── window_about_content.cpp │ │ ├── window_about_content.h │ │ ├── window_settings_content.cpp │ │ ├── window_settings_content.h │ │ ├── window_skin_content.cpp │ │ ├── window_skin_content.h │ │ ├── window_validation_content.cpp │ │ └── window_validation_content.h ├── kmeter.cpp ├── kmeter.h ├── lint.sh ├── meter_ballistics.cpp ├── meter_ballistics.h ├── meter_bar.cpp ├── meter_bar.h ├── overflow_meter.cpp ├── overflow_meter.h ├── peak_label.cpp ├── peak_label.h ├── plugin_editor.cpp ├── plugin_editor.h ├── plugin_parameters.cpp ├── plugin_parameters.h ├── plugin_processor.cpp ├── plugin_processor.h ├── skin.cpp ├── skin.h ├── window_validation_content.cpp └── window_validation_content.h ├── bin ├── copy_vst.bat ├── final │ ├── README │ ├── kmeter │ └── kmeter.pdf ├── finalise_binaries.sh ├── package_releases.sh ├── standalone │ ├── kmeter.pdf │ └── kmeter │ │ ├── doc │ │ ├── CC-BY-SA-4.0 │ │ ├── CONTRIBUTORS │ │ ├── HISTORY │ │ └── LICENSE │ │ ├── fftw │ │ ├── COPYRIGHT │ │ ├── LICENSE │ │ ├── libfftw3f-3.dll │ │ └── libfftw3f-3_x64.dll │ │ └── skins ├── vst2 │ ├── kmeter │ └── kmeter.pdf └── vst3 │ ├── kmeter │ └── kmeter.pdf ├── doc ├── .gitignore ├── CC-BY-SA-4.0 ├── CONTRIBUTORS ├── HISTORY ├── LICENSE ├── TODO ├── include │ ├── cc-by-sa-4.0.tex │ ├── gpl_v3.tex │ ├── hyphenation.sty │ ├── images │ │ ├── VST_Compatible_Logo_Steinberg_negative.png │ │ ├── button_about_off.png │ │ ├── button_about_on.png │ │ ├── button_averaging_selection.png │ │ ├── button_dim_off.png │ │ ├── button_dim_on.png │ │ ├── button_discrete_off.png │ │ ├── button_discrete_on.png │ │ ├── button_expand_meter_off.png │ │ ├── button_expand_meter_on.png │ │ ├── button_flip_off.png │ │ ├── button_flip_on.png │ │ ├── button_gpl_off.png │ │ ├── button_gpl_on.png │ │ ├── button_meter_selection.png │ │ ├── button_mono_off.png │ │ ├── button_mono_on.png │ │ ├── button_mute_off.png │ │ ├── button_mute_on.png │ │ ├── button_peak_hold_off.png │ │ ├── button_peak_hold_on.png │ │ ├── button_peak_meter_off.png │ │ ├── button_peak_meter_on.png │ │ ├── button_reset_off.png │ │ ├── button_reset_on.png │ │ ├── button_skin_off.png │ │ ├── button_skin_on.png │ │ ├── button_validate_off.png │ │ ├── button_validate_on.png │ │ ├── cc-by-sa.png │ │ ├── dialog_validation.png │ │ ├── fft_192khz-freq-fx_path.png │ │ ├── fft_192khz-freq-itu_r.png │ │ ├── fft_192khz-freq-rms.png │ │ ├── fft_192khz-freq_zoomed-itu_r.png │ │ ├── fft_192khz-freq_zoomed-rms.png │ │ ├── fft_192khz-phase-fx_path.png │ │ ├── fft_192khz-phase-itu_r.png │ │ ├── fft_192khz-phase-rms.png │ │ ├── kmeter.png │ │ ├── kmeter_normal_scale.png │ │ ├── level_meter_itu_continuous.png │ │ ├── level_meter_rms_discrete.png │ │ ├── maximum_peak_clipped.png │ │ ├── maximum_peak_normal.png │ │ ├── maximum_true_peak_clipped.png │ │ ├── maximum_true_peak_normal.png │ │ ├── overload_counter_clipped.png │ │ ├── overload_counter_normal.png │ │ ├── phase_correlation_meter.png │ │ └── stereo_meter.png │ └── settings.sty ├── kmeter.pdf ├── kmeter.tex ├── licensing │ ├── vst_id_registration_1.pdf │ └── vst_id_registration_2.pdf └── specifications │ ├── ITU-R BS.1770-1 (Filters).pdf │ └── ITU-R BS.1770.txt ├── libraries ├── fftw ├── fftw-3.3.5-dll32.zip ├── fftw-3.3.5-dll64.zip ├── fftw-3.3.5.tar.gz ├── juce ├── juce_5.4.7.zip ├── vst2 └── vst3 ├── skins ├── Default.skin ├── Default │ ├── Default.svg │ ├── LICENSE │ ├── backgrounds │ │ ├── itu │ │ │ ├── background_itu_stereo_no_peaks.png │ │ │ ├── background_itu_stereo_peaks.png │ │ │ ├── background_itu_surround_no_peaks.png │ │ │ ├── background_itu_surround_peaks.png │ │ │ ├── graduation_itu_k12.png │ │ │ ├── graduation_itu_k12_expanded.png │ │ │ ├── graduation_itu_k14.png │ │ │ ├── graduation_itu_k14_expanded.png │ │ │ ├── graduation_itu_k20.png │ │ │ ├── graduation_itu_k20_expanded.png │ │ │ ├── graduation_itu_normal.png │ │ │ └── graduation_itu_normal_expanded.png │ │ └── rms │ │ │ ├── background_rms_stereo_no_peaks.png │ │ │ ├── background_rms_stereo_peaks.png │ │ │ ├── background_rms_surround_no_peaks.png │ │ │ ├── background_rms_surround_peaks.png │ │ │ ├── graduation_rms_k12.png │ │ │ ├── graduation_rms_k12_expanded.png │ │ │ ├── graduation_rms_k14.png │ │ │ ├── graduation_rms_k14_expanded.png │ │ │ ├── graduation_rms_k20.png │ │ │ ├── graduation_rms_k20_expanded.png │ │ │ ├── graduation_rms_normal.png │ │ │ └── graduation_rms_normal_expanded.png │ ├── buttons │ │ ├── button_about_off.png │ │ ├── button_about_on.png │ │ ├── button_about_over.png │ │ ├── button_dim_off.png │ │ ├── button_dim_on.png │ │ ├── button_dim_over.png │ │ ├── button_discrete_off.png │ │ ├── button_discrete_on.png │ │ ├── button_discrete_over.png │ │ ├── button_expand_off.png │ │ ├── button_expand_on.png │ │ ├── button_expand_over.png │ │ ├── button_flip_off.png │ │ ├── button_flip_on.png │ │ ├── button_flip_over.png │ │ ├── button_hold_off.png │ │ ├── button_hold_on.png │ │ ├── button_hold_over.png │ │ ├── button_itu_off.png │ │ ├── button_itu_on.png │ │ ├── button_itu_over.png │ │ ├── button_k12_off.png │ │ ├── button_k12_on.png │ │ ├── button_k12_over.png │ │ ├── button_k14_off.png │ │ ├── button_k14_on.png │ │ ├── button_k14_over.png │ │ ├── button_k20_off.png │ │ ├── button_k20_on.png │ │ ├── button_k20_over.png │ │ ├── button_mono_off.png │ │ ├── button_mono_on.png │ │ ├── button_mono_over.png │ │ ├── button_mute_off.png │ │ ├── button_mute_on.png │ │ ├── button_mute_over.png │ │ ├── button_normal_off.png │ │ ├── button_normal_on.png │ │ ├── button_normal_over.png │ │ ├── button_peaks_off.png │ │ ├── button_peaks_on.png │ │ ├── button_peaks_over.png │ │ ├── button_reset_off.png │ │ ├── button_reset_on.png │ │ ├── button_reset_over.png │ │ ├── button_rms_off.png │ │ ├── button_rms_on.png │ │ ├── button_rms_over.png │ │ ├── button_skin_off.png │ │ ├── button_skin_on.png │ │ ├── button_skin_over.png │ │ ├── button_validate_off.png │ │ ├── button_validate_on.png │ │ └── button_validate_over.png │ ├── labels │ │ ├── label_debug.png │ │ ├── label_over_off.png │ │ ├── label_over_on.png │ │ ├── label_peak_off.png │ │ ├── label_peak_on.png │ │ ├── label_true_peak_off.png │ │ └── label_true_peak_on.png │ └── meters │ │ ├── meter_kmeter_itu_k12.png │ │ ├── meter_kmeter_itu_k12_expanded.png │ │ ├── meter_kmeter_itu_k14.png │ │ ├── meter_kmeter_itu_k14_expanded.png │ │ ├── meter_kmeter_itu_k20.png │ │ ├── meter_kmeter_itu_k20_expanded.png │ │ ├── meter_kmeter_itu_normal.png │ │ ├── meter_kmeter_itu_normal_expanded.png │ │ ├── meter_kmeter_rms_k12.png │ │ ├── meter_kmeter_rms_k12_expanded.png │ │ ├── meter_kmeter_rms_k14.png │ │ ├── meter_kmeter_rms_k14_expanded.png │ │ ├── meter_kmeter_rms_k20.png │ │ ├── meter_kmeter_rms_k20_expanded.png │ │ ├── meter_kmeter_rms_normal.png │ │ ├── meter_kmeter_rms_normal_expanded.png │ │ ├── meter_phase_correlation.png │ │ ├── meter_phase_correlation_needle.png │ │ ├── meter_stereo.png │ │ └── meter_stereo_needle.png ├── Slim Buttons.skin ├── Slim Buttons.zip ├── Slim Buttons │ ├── LICENSE │ ├── Slim Buttons.svg │ ├── backgrounds │ │ ├── itu │ │ │ ├── background_itu_stereo_no_peaks.png │ │ │ ├── background_itu_stereo_peaks.png │ │ │ ├── background_itu_surround_no_peaks.png │ │ │ ├── background_itu_surround_peaks.png │ │ │ ├── graduation_itu_k12.png │ │ │ ├── graduation_itu_k12_expanded.png │ │ │ ├── graduation_itu_k14.png │ │ │ ├── graduation_itu_k14_expanded.png │ │ │ ├── graduation_itu_k20.png │ │ │ ├── graduation_itu_k20_expanded.png │ │ │ ├── graduation_itu_normal.png │ │ │ └── graduation_itu_normal_expanded.png │ │ └── rms │ │ │ ├── background_rms_stereo_no_peaks.png │ │ │ ├── background_rms_stereo_peaks.png │ │ │ ├── background_rms_surround_no_peaks.png │ │ │ ├── background_rms_surround_peaks.png │ │ │ ├── graduation_rms_k12.png │ │ │ ├── graduation_rms_k12_expanded.png │ │ │ ├── graduation_rms_k14.png │ │ │ ├── graduation_rms_k14_expanded.png │ │ │ ├── graduation_rms_k20.png │ │ │ ├── graduation_rms_k20_expanded.png │ │ │ ├── graduation_rms_normal.png │ │ │ └── graduation_rms_normal_expanded.png │ ├── buttons │ │ ├── button_about_off.png │ │ ├── button_about_on.png │ │ ├── button_about_over.png │ │ ├── button_dim_off.png │ │ ├── button_dim_on.png │ │ ├── button_dim_over.png │ │ ├── button_discrete_off.png │ │ ├── button_discrete_on.png │ │ ├── button_discrete_over.png │ │ ├── button_expand_off.png │ │ ├── button_expand_on.png │ │ ├── button_expand_over.png │ │ ├── button_flip_off.png │ │ ├── button_flip_on.png │ │ ├── button_flip_over.png │ │ ├── button_hold_off.png │ │ ├── button_hold_on.png │ │ ├── button_hold_over.png │ │ ├── button_itu_off.png │ │ ├── button_itu_on.png │ │ ├── button_itu_over.png │ │ ├── button_k12_off.png │ │ ├── button_k12_on.png │ │ ├── button_k12_over.png │ │ ├── button_k14_off.png │ │ ├── button_k14_on.png │ │ ├── button_k14_over.png │ │ ├── button_k20_off.png │ │ ├── button_k20_on.png │ │ ├── button_k20_over.png │ │ ├── button_mono_off.png │ │ ├── button_mono_on.png │ │ ├── button_mono_over.png │ │ ├── button_mute_off.png │ │ ├── button_mute_on.png │ │ ├── button_mute_over.png │ │ ├── button_normal_off.png │ │ ├── button_normal_on.png │ │ ├── button_normal_over.png │ │ ├── button_peaks_off.png │ │ ├── button_peaks_on.png │ │ ├── button_peaks_over.png │ │ ├── button_reset_off.png │ │ ├── button_reset_on.png │ │ ├── button_reset_over.png │ │ ├── button_rms_off.png │ │ ├── button_rms_on.png │ │ ├── button_rms_over.png │ │ ├── button_skin_off.png │ │ ├── button_skin_on.png │ │ ├── button_skin_over.png │ │ ├── button_validate_off.png │ │ ├── button_validate_on.png │ │ └── button_validate_over.png │ ├── labels │ │ ├── label_debug.png │ │ ├── label_over_off.png │ │ ├── label_over_on.png │ │ ├── label_peak_off.png │ │ ├── label_peak_on.png │ │ ├── label_true_peak_off.png │ │ └── label_true_peak_on.png │ └── meters │ │ ├── meter_kmeter_itu_k12.png │ │ ├── meter_kmeter_itu_k12_expanded.png │ │ ├── meter_kmeter_itu_k14.png │ │ ├── meter_kmeter_itu_k14_expanded.png │ │ ├── meter_kmeter_itu_k20.png │ │ ├── meter_kmeter_itu_k20_expanded.png │ │ ├── meter_kmeter_itu_normal.png │ │ ├── meter_kmeter_itu_normal_expanded.png │ │ ├── meter_kmeter_rms_k12.png │ │ ├── meter_kmeter_rms_k12_expanded.png │ │ ├── meter_kmeter_rms_k14.png │ │ ├── meter_kmeter_rms_k14_expanded.png │ │ ├── meter_kmeter_rms_k20.png │ │ ├── meter_kmeter_rms_k20_expanded.png │ │ ├── meter_kmeter_rms_normal.png │ │ ├── meter_kmeter_rms_normal_expanded.png │ │ ├── meter_phase_correlation.png │ │ ├── meter_phase_correlation_needle.png │ │ ├── meter_stereo.png │ │ └── meter_stereo_needle.png └── include │ └── dtd │ └── kmeter-skin.dtd └── validation ├── .gitignore ├── R-REP-BS.2217-1 ├── Ardour R-REP-BS.2217-1 │ └── Ardour R-REP-BS.2217-1.ardour └── Reaper R-REP-BS.2217-1.RPP ├── ebu_tech_3341.pdf ├── itu-r_bs2217.pdf ├── meter_ballistics.flac ├── meter_ballistics.pdf ├── meter_ballistics.py ├── new ├── kmeter_sine.flac ├── true_peak_1023.flac └── true_peak_1024.flac ├── open_document ├── ebu_tech_3341.odt ├── itu-r_bs2217.odt ├── meter_ballistics.odt ├── overflow.odt ├── peak_meter.odt ├── phase_correlation_meter.odt ├── pink_noise_bandlimited.odt ├── rms_sweeps.odt └── stereo_meter.odt ├── overflow.flac ├── overflow.pdf ├── peak_meter.flac ├── peak_meter.pdf ├── phase_correlation_meter.R ├── phase_correlation_meter.flac ├── phase_correlation_meter.pdf ├── pink_noise_bandlimited.flac ├── pink_noise_bandlimited.pdf ├── rms_sweeps.flac ├── rms_sweeps.pdf ├── stereo_meter.flac └── stereo_meter.pdf /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: 'Bug: ' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### Describe the bug 11 | 12 | A *clear and concise* description of what the bug is. 13 | 14 | 15 | ### Steps to reproduce 16 | 17 | List *all* steps to reproduce the behavior: 18 | 19 | 1. [ start Reaper ] 20 | 2. [ create a new song ] 21 | 3. [ open the mixer ] 22 | 4. [ add a stereo track ] 23 | 5. [ add *K-Meter Stereo* to the track's first plug-in slot ] 24 | 6. [ see error ... ] 25 | 26 | 27 | ### Expected behavior 28 | 29 | A *clear and concise* description of what you expected to happen. 30 | 31 | 32 | ### Screenshots 33 | 34 | If applicable, add screenshots to help explain your problem. 35 | 36 | 37 | ### Environment (please complete the following information) 38 | 39 | - OS: [ Windows 10 (64-bit), Linux AV v2020.4.10 (32-bit) ] 40 | - DAW: [ Reaper v6.0.8 (32-bit), Ardour v5.12.0 (32-bit) ] 41 | - Plug-in: [ K-Meter v2.8.1 VST2 (64-bit), K-Meter v2.8.1 stand-alone (64-bit) ] 42 | 43 | Did you compile K-Meter yourself? [no] 44 | 45 | 46 | ### Tool set (if you compiled the plug-in yourself) 47 | 48 | You only need to add the tools you actually used: 49 | 50 | - Build automation: [ premake v5.0.0 alpha14 ] 51 | - Compiler: [ Visual Studio 2017, Clang v6.0.0, gcc Ubuntu v7.5.0 ] 52 | - JUCE: [ v5.4.7 ] 53 | - SDK: [ VST2 2.4 (from SDK v3.6.10), VST3 3.6.14, stand-alone ] 54 | - ... 55 | 56 | 57 | ### Additional context 58 | 59 | Add any other context about the problem here. 60 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: 'Feature request: ' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### Is your feature request related to a problem? If so, please describe. 11 | 12 | A *clear and concise* description of what the problem is. (I'm always frustrated when ...) 13 | 14 | 15 | ### Describe the solution you'd like 16 | 17 | A *clear and concise* description of what you want to happen. 18 | 19 | 20 | ### Describe alternatives you've considered 21 | 22 | A *clear and concise* description of any alternative solutions or features you've considered. 23 | 24 | 25 | ### Additional context 26 | 27 | Add any other context or screenshots about the feature request here. 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .*~ 3 | *.db 4 | *.log 5 | *.ncb 6 | *.pdb 7 | *.sdf 8 | *.suo 9 | *.vcproj.*.user 10 | *.vcxproj.user 11 | 12 | .vs 13 | .Rhistory 14 | 15 | bin/.intermediate_* 16 | 17 | bin/standalone/K-Meter*.exe 18 | bin/standalone/kmeter_* 19 | 20 | bin/vst2/K-Meter*.dll 21 | bin/vst2/kmeter_*.so 22 | 23 | bin/vst3/K-Meter*.vst3 24 | bin/vst3/kmeter_*.so 25 | 26 | skins/default_skin.ini 27 | 28 | Source/api/ 29 | 30 | final/ 31 | ignore/ 32 | releases/ 33 | 34 | ipch/ 35 | Debug/ 36 | Release/ 37 | -------------------------------------------------------------------------------- /Builds/render_templates.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | @rem --------------------------------------------------------------------------- 4 | @rem 5 | @rem Squeezer 6 | @rem ======== 7 | @rem Flexible general-purpose audio compressor with a touch of citrus 8 | @rem 9 | @rem Copyright (c) 2013-2020 Martin Zuther (http://www.mzuther.de/) 10 | @rem 11 | @rem This program is free software: you can redistribute it and/or modify 12 | @rem it under the terms of the GNU General Public License as published by 13 | @rem the Free Software Foundation, either version 3 of the License, or 14 | @rem (at your option) any later version. 15 | @rem 16 | @rem This program is distributed in the hope that it will be useful, 17 | @rem but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | @rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | @rem GNU General Public License for more details. 20 | @rem 21 | @rem You should have received a copy of the GNU General Public License 22 | @rem along with this program. If not, see . 23 | @rem 24 | @rem Thank you for using free software! 25 | @rem 26 | @rem --------------------------------------------------------------------------- 27 | 28 | @echo. 29 | @echo "=== Rendering templates ===" 30 | python.exe "../Source/frut/jinja/render_templates.py" 31 | 32 | 33 | @echo. 34 | @premake5 --os=windows vs2017 35 | 36 | @echo. 37 | @premake5 --cc=clang --os=linux gmake 38 | @rem premake5 --cc=gcc --os=linux gmake 39 | 40 | @echo. 41 | @pause 42 | -------------------------------------------------------------------------------- /Builds/render_templates.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # ---------------------------------------------------------------------------- 4 | # 5 | # Squeezer 6 | # ======== 7 | # Flexible general-purpose audio compressor with a touch of citrus 8 | # 9 | # Copyright (c) 2013-2020 Martin Zuther (http://www.mzuther.de/) 10 | # 11 | # This program is free software: you can redistribute it and/or modify 12 | # it under the terms of the GNU General Public License as published by 13 | # the Free Software Foundation, either version 3 of the License, or 14 | # (at your option) any later version. 15 | # 16 | # This program is distributed in the hope that it will be useful, 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | # GNU General Public License for more details. 20 | # 21 | # You should have received a copy of the GNU General Public License 22 | # along with this program. If not, see . 23 | # 24 | # Thank you for using free software! 25 | # 26 | # ---------------------------------------------------------------------------- 27 | 28 | cd "$(dirname "$0")" || exit 29 | 30 | echo 31 | echo "=== Rendering templates ===" 32 | python3 "../Source/frut/jinja/render_templates.py" 33 | 34 | 35 | echo 36 | premake5 --os=windows vs2017 37 | 38 | echo 39 | premake5 --cc=clang --os=linux gmake 40 | # premake5 --cc=gcc --os=linux gmake 41 | 42 | echo 43 | -------------------------------------------------------------------------------- /JuceLibraryCode/ReadMe.txt: -------------------------------------------------------------------------------- 1 | 2 | Important Note!! 3 | ================ 4 | 5 | The purpose of this folder is to contain files that are auto-generated by the Projucer, 6 | and ALL files in this folder will be mercilessly DELETED and completely re-written whenever 7 | the Projucer saves your project. 8 | 9 | Therefore, it's a bad idea to make any manual changes to the files in here, or to 10 | put any of your own files in here if you don't want to lose them. (Of course you may choose 11 | to add the folder's contents to your version-control system so that you can re-merge your own 12 | modifications after the Projucer has saved its changes). 13 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_basics.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_basics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_devices.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_devices.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_formats.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_formats.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_AAX.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_AAX.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_AU.r: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_AUv3.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_RTAS.r: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_RTAS_1.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_RTAS_2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_RTAS_3.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_RTAS_4.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_RTAS_utils.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_Standalone.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_Unity.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_plugin_client_utils.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_processors.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_processors.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_utils.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_utils.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_core.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_core.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_cryptography.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_cryptography.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_data_structures.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_data_structures.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_events.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_events.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_graphics.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_graphics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_gui_basics.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_gui_basics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_gui_extra.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_gui_extra.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_video.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_video.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /Source/.ackrc: -------------------------------------------------------------------------------- 1 | # ignore documentation directory 2 | --ignore-dir=api 3 | -------------------------------------------------------------------------------- /Source/.astylerc: -------------------------------------------------------------------------------- 1 | # indent using given number of spaces 2 | --indent=spaces=4 3 | 4 | # indent C++ comments beginning in column one 5 | --indent-col1-comments 6 | 7 | # pad empty lines around header blocks ('if', 'for', 'while'...) 8 | --break-blocks 9 | 10 | 11 | 12 | # break brackets from their pre-block statements 13 | --style=break 14 | 15 | # add brackets to one line conditional statements ('if', 'for', 'while'...) 16 | --add-brackets 17 | 18 | 19 | 20 | # remove extra space padding around parentheses 21 | --unpad-paren 22 | 23 | # insert space padding after paren headers only ('if', 'for', 'while'...) 24 | --pad-header 25 | 26 | # insert space padding around operators 27 | --pad-oper 28 | 29 | # attach pointer or reference operators (* or &) to the variable name (right) 30 | --align-pointer=name 31 | 32 | 33 | 34 | # display optional information 35 | --verbose 36 | 37 | # only display changed files 38 | --formatted 39 | 40 | # force Linux-style line endings (LF) 41 | --lineend=linux 42 | 43 | # append given suffix to the original file name 44 | --suffix=.astyle~ 45 | -------------------------------------------------------------------------------- /Source/filter_design/filter_design_itu.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/Source/filter_design/filter_design_itu.pdf -------------------------------------------------------------------------------- /Source/filter_design/filter_design_rms.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/Source/filter_design/filter_design_rms.pdf -------------------------------------------------------------------------------- /Source/format_code.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | rem ---------------------------------------------------------------------------- 4 | rem 5 | rem K-Meter 6 | rem ======= 7 | rem Implementation of a K-System meter according to Bob Katz' specifications 8 | rem 9 | rem Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 10 | rem 11 | rem This program is free software: you can redistribute it and/or modify 12 | rem it under the terms of the GNU General Public License as published by 13 | rem the Free Software Foundation, either version 3 of the License, or 14 | rem (at your option) any later version. 15 | rem 16 | rem This program is distributed in the hope that it will be useful, 17 | rem but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | rem GNU General Public License for more details. 20 | rem 21 | rem You should have received a copy of the GNU General Public License 22 | rem along with this program. If not, see . 23 | rem 24 | rem Thank you for using free software! 25 | rem 26 | rem ---------------------------------------------------------------------------- 27 | 28 | @AStyle --recursive --exclude="resources" --options=./.astylerc "*.cpp" "*.h" 29 | @pause 30 | -------------------------------------------------------------------------------- /Source/format_code.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # ---------------------------------------------------------------------------- 4 | # 5 | # K-Meter 6 | # ======= 7 | # Implementation of a K-System meter according to Bob Katz' specifications 8 | # 9 | # Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 10 | # 11 | # This program is free software: you can redistribute it and/or modify 12 | # it under the terms of the GNU General Public License as published by 13 | # the Free Software Foundation, either version 3 of the License, or 14 | # (at your option) any later version. 15 | # 16 | # This program is distributed in the hope that it will be useful, 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | # GNU General Public License for more details. 20 | # 21 | # You should have received a copy of the GNU General Public License 22 | # along with this program. If not, see . 23 | # 24 | # Thank you for using free software! 25 | # 26 | # ---------------------------------------------------------------------------- 27 | 28 | astyle --recursive --exclude="resources" --options=./.astylerc \ 29 | "*.cpp" \ 30 | "*.h" 31 | -------------------------------------------------------------------------------- /Source/frut/.astylerc: -------------------------------------------------------------------------------- 1 | ../.astylerc -------------------------------------------------------------------------------- /Source/frut/.sublimelinterrc: -------------------------------------------------------------------------------- 1 | { 2 | "@python": 3, 3 | "linters": 4 | { 5 | "clang": { 6 | "args": 7 | [ 8 | "-std=c++14", 9 | "-include", 10 | "${project}/Source/frut/FrutHeader.h" 11 | ] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Source/frut/amalgamated/include_frut_audio.cpp: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_AMALGAMATED_AUDIO_CPP 27 | #define FRUT_AMALGAMATED_AUDIO_CPP 28 | 29 | 30 | #include "../FrutHeader.h" 31 | 32 | #include "../audio/buffer_position.cpp" 33 | #include "../audio/ring_buffer.cpp" 34 | 35 | 36 | #endif // FRUT_AMALGAMATED_AUDIO_CPP 37 | -------------------------------------------------------------------------------- /Source/frut/amalgamated/include_frut_audio.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_AMALGAMATED_AUDIO_H 27 | #define FRUT_AMALGAMATED_AUDIO_H 28 | 29 | 30 | // normal includes 31 | #include "../audio/buffer_position.h" 32 | #include "../audio/ring_buffer.h" 33 | 34 | 35 | #endif // FRUT_AMALGAMATED_AUDIO_H 36 | -------------------------------------------------------------------------------- /Source/frut/amalgamated/include_frut_dsp.cpp: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_AMALGAMATED_DSP_CPP 27 | #define FRUT_AMALGAMATED_DSP_CPP 28 | 29 | 30 | #include "../FrutHeader.h" 31 | 32 | #include "../dsp/biquad_filter.cpp" 33 | #include "../dsp/dither.cpp" 34 | #include "../dsp/fftw_runner.cpp" 35 | #include "../dsp/filter_chebyshev.cpp" 36 | #include "../dsp/filter_chebyshev_stage.cpp" 37 | #include "../dsp/fir_filter_box.cpp" 38 | #include "../dsp/iir_filter_box.cpp" 39 | #include "../dsp/rate_converter.cpp" 40 | #include "../dsp/true_peak_meter.cpp" 41 | 42 | 43 | #endif // FRUT_AMALGAMATED_DSP_CPP 44 | -------------------------------------------------------------------------------- /Source/frut/amalgamated/include_frut_dsp.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_AMALGAMATED_DSP_H 27 | #define FRUT_AMALGAMATED_DSP_H 28 | 29 | 30 | // special includes 31 | #include 32 | #include 33 | 34 | #if FRUT_DSP_USE_FFTW 35 | #include "fftw/api/fftw3.h" 36 | #endif // FRUT_DSP_USE_FFTW 37 | 38 | // normal includes 39 | #include "../dsp/biquad_filter.h" 40 | #include "../dsp/dither.h" 41 | #include "../dsp/fftw_runner.h" 42 | #include "../dsp/filter_chebyshev_stage.h" 43 | #include "../dsp/fir_filter_box.h" 44 | #include "../dsp/iir_filter_box.h" 45 | #include "../dsp/rate_converter.h" 46 | #include "../dsp/true_peak_meter.h" 47 | 48 | // post includes 49 | #include "../dsp/filter_chebyshev.h" 50 | 51 | 52 | #endif // FRUT_AMALGAMATED_DSP_H 53 | -------------------------------------------------------------------------------- /Source/frut/amalgamated/include_frut_math.cpp: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_AMALGAMATED_MATH_CPP 27 | #define FRUT_AMALGAMATED_MATH_CPP 28 | 29 | 30 | #include "../FrutHeader.h" 31 | 32 | #include "../math/averager.cpp" 33 | 34 | 35 | #endif // FRUT_AMALGAMATED_MATH_CPP 36 | -------------------------------------------------------------------------------- /Source/frut/amalgamated/include_frut_math.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_AMALGAMATED_MATH_H 27 | #define FRUT_AMALGAMATED_MATH_H 28 | 29 | 30 | // normal includes 31 | #include "../math/averager.h" 32 | #include "../math/simple_math.h" 33 | 34 | 35 | #endif // FRUT_AMALGAMATED_MATH_H 36 | -------------------------------------------------------------------------------- /Source/frut/amalgamated/include_frut_parameters.cpp: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_AMALGAMATED_PARAMETERS_CPP 27 | #define FRUT_AMALGAMATED_PARAMETERS_CPP 28 | 29 | 30 | #include "../FrutHeader.h" 31 | 32 | #include "../parameters/juggler.cpp" 33 | #include "../parameters/par_boolean.cpp" 34 | #include "../parameters/par_combined.cpp" 35 | #include "../parameters/par_continuous.cpp" 36 | #include "../parameters/par_string.cpp" 37 | #include "../parameters/par_switch.cpp" 38 | #include "../parameters/parameter.cpp" 39 | 40 | 41 | #endif // FRUT_AMALGAMATED_PARAMETERS_CPP 42 | -------------------------------------------------------------------------------- /Source/frut/amalgamated/include_frut_parameters.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_AMALGAMATED_PARAMETERS_H 27 | #define FRUT_AMALGAMATED_PARAMETERS_H 28 | 29 | 30 | // pre includes 31 | #include "../parameters/parameter.h" 32 | 33 | // normal includes 34 | #include "../parameters/par_boolean.h" 35 | #include "../parameters/par_continuous.h" 36 | #include "../parameters/par_string.h" 37 | #include "../parameters/par_switch.h" 38 | 39 | // post includes 40 | #include "../parameters/par_combined.h" 41 | #include "../parameters/juggler.h" 42 | 43 | 44 | #endif // FRUT_AMALGAMATED_PARAMETERS_H 45 | -------------------------------------------------------------------------------- /Source/frut/amalgamated/include_frut_skin.cpp: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_AMALGAMATED_SKIN_CPP 27 | #define FRUT_AMALGAMATED_SKIN_CPP 28 | 29 | 30 | #include "../FrutHeader.h" 31 | 32 | #include "../skin/look_and_feel_v3.cpp" 33 | #include "../skin/skin.cpp" 34 | 35 | 36 | #endif // FRUT_AMALGAMATED_SKIN_CPP 37 | -------------------------------------------------------------------------------- /Source/frut/amalgamated/include_frut_skin.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_AMALGAMATED_SKIN_H 27 | #define FRUT_AMALGAMATED_SKIN_H 28 | 29 | 30 | // normal includes 31 | #include "../skin/look_and_feel_v3.h" 32 | #include "../skin/skin.h" 33 | 34 | 35 | #endif // FRUT_AMALGAMATED_SKIN_H 36 | -------------------------------------------------------------------------------- /Source/frut/amalgamated/include_frut_widgets.cpp: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_AMALGAMATED_WIDGETS_CPP 27 | #define FRUT_AMALGAMATED_WIDGETS_CPP 28 | 29 | 30 | #include "../FrutHeader.h" 31 | 32 | #include "../widgets/channel_slider.cpp" 33 | #include "../widgets/meter_bar.cpp" 34 | #include "../widgets/meter_segment.cpp" 35 | #include "../widgets/meter_segment_continuous.cpp" 36 | #include "../widgets/meter_segment_discrete.cpp" 37 | #include "../widgets/needle_meter.cpp" 38 | #include "../widgets/resources/resources.cpp" 39 | #include "../widgets/signal_led.cpp" 40 | #include "../widgets/slider_combined.cpp" 41 | #include "../widgets/slider_continuous.cpp" 42 | #include "../widgets/slider_switch.cpp" 43 | #include "../widgets/slider_switch_linear_bar.cpp" 44 | #include "../widgets/state_label.cpp" 45 | #include "../widgets/window_about_content.cpp" 46 | #include "../widgets/window_settings_content.cpp" 47 | #include "../widgets/window_skin_content.cpp" 48 | #include "../widgets/window_validation_content.cpp" 49 | 50 | 51 | #endif // FRUT_AMALGAMATED_WIDGETS_CPP 52 | -------------------------------------------------------------------------------- /Source/frut/amalgamated/include_frut_widgets.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_AMALGAMATED_WIDGETS_H 27 | #define FRUT_AMALGAMATED_WIDGETS_H 28 | 29 | 30 | // pre includes 31 | #include "../widgets/orientation.h" 32 | #include "../widgets/resources/resources.h" 33 | #include "../widgets/slider.h" 34 | 35 | // normal includes 36 | #include "../widgets/channel_slider.h" 37 | #include "../widgets/meter_segment.h" 38 | #include "../widgets/meter_segment_continuous.h" 39 | #include "../widgets/meter_segment_discrete.h" 40 | #include "../widgets/needle_meter.h" 41 | #include "../widgets/signal_led.h" 42 | #include "../widgets/slider_combined.h" 43 | #include "../widgets/slider_continuous.h" 44 | #include "../widgets/slider_switch.h" 45 | #include "../widgets/slider_switch_linear_bar.h" 46 | #include "../widgets/state_label.h" 47 | #include "../widgets/window_about_content.h" 48 | #include "../widgets/window_settings_content.h" 49 | #include "../widgets/window_skin_content.h" 50 | #include "../widgets/window_validation_content.h" 51 | 52 | // post includes 53 | #include "../widgets/meter_bar.h" 54 | 55 | 56 | #endif // FRUT_AMALGAMATED_WIDGETS_H 57 | -------------------------------------------------------------------------------- /Source/frut/dsp/filter_chebyshev.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_DSP_FILTER_CHEBYSHEV_H 27 | #define FRUT_DSP_FILTER_CHEBYSHEV_H 28 | 29 | namespace frut 30 | { 31 | namespace dsp 32 | { 33 | 34 | class FilterChebyshev 35 | { 36 | public: 37 | FilterChebyshev(double RelativeCutoffFrequency, 38 | bool IsHighPass, 39 | double PercentRipple, 40 | int NumberOfPoles); 41 | 42 | void changeParameters(double RelativeCutoffFrequency, 43 | bool IsHighPass); 44 | 45 | void reset(); 46 | 47 | double filterSample(double InputCurrent); 48 | void testAlgorithm(bool IsHighPass); 49 | 50 | private: 51 | OwnedArray FilterStages_; 52 | 53 | int NumberOfPoles_; 54 | double PercentRipple_; 55 | }; 56 | 57 | } 58 | } 59 | 60 | #endif // FRUT_DSP_FILTER_CHEBYSHEV_H 61 | -------------------------------------------------------------------------------- /Source/frut/dsp/filter_chebyshev_stage.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_DSP_FILTER_CHEBYSHEV_STAGE_H 27 | #define FRUT_DSP_FILTER_CHEBYSHEV_STAGE_H 28 | 29 | namespace frut 30 | { 31 | namespace dsp 32 | { 33 | 34 | class FilterChebyshevStage 35 | { 36 | public: 37 | FilterChebyshevStage(); 38 | 39 | void changeParameters(double RelativeCutoffFrequency, 40 | bool IsHighPass, 41 | double PercentRipple, 42 | int NumberOfPoles, 43 | int PolePair); 44 | 45 | void reset(); 46 | double filterSample(double InputCurrent); 47 | 48 | String testAlgorithm(double RelativeCutoffFrequency, 49 | bool IsHighPass, 50 | double PercentRipple); 51 | String getCoefficients(); 52 | 53 | private: 54 | double RelativeCutoffFrequency_; 55 | bool IsHighPass_; 56 | 57 | double Coeff_A0_; 58 | double Coeff_A1_; 59 | double Coeff_A2_; 60 | 61 | double Coeff_B1_; 62 | double Coeff_B2_; 63 | 64 | double InputPrevious_1_; 65 | double InputPrevious_2_; 66 | 67 | double OutputPrevious_1_; 68 | double OutputPrevious_2_; 69 | }; 70 | 71 | } 72 | } 73 | 74 | #endif // FRUT_DSP_FILTER_CHEBYSHEV_STAGE_H 75 | -------------------------------------------------------------------------------- /Source/frut/dsp/fir_filter_box.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #if FRUT_DSP_USE_FFTW 27 | 28 | #ifndef FRUT_DSP_FIR_FILTER_BOX_H 29 | #define FRUT_DSP_FIR_FILTER_BOX_H 30 | 31 | namespace frut 32 | { 33 | namespace dsp 34 | { 35 | 36 | class FIRFilterBox : 37 | public FftwRunner 38 | { 39 | public: 40 | FIRFilterBox(const int numberOfChannels, 41 | const int fftBufferSize); 42 | 43 | virtual ~FIRFilterBox(); 44 | 45 | virtual void reset(); 46 | void calculateKernelWindowedSincLPF( 47 | const double relativeCutoffFrequency); 48 | 49 | private: 50 | JUCE_LEAK_DETECTOR(FIRFilterBox); 51 | }; 52 | 53 | } 54 | } 55 | 56 | #endif // FRUT_DSP_FIR_FILTER_BOX_H 57 | 58 | #endif // FRUT_DSP_USE_FFTW 59 | -------------------------------------------------------------------------------- /Source/frut/dsp/rate_converter.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #if FRUT_DSP_USE_FFTW 27 | 28 | #ifndef FRUT_DSP_RATE_CONVERTER_H 29 | #define FRUT_DSP_RATE_CONVERTER_H 30 | 31 | namespace frut 32 | { 33 | namespace dsp 34 | { 35 | 36 | class RateConverter : 37 | public frut::dsp::FIRFilterBox 38 | { 39 | public: 40 | RateConverter( 41 | const int numberOfChannels, 42 | const int originalFftBufferSize, 43 | const int upsamplingFactor); 44 | 45 | virtual ~RateConverter(); 46 | virtual void reset(); 47 | 48 | protected: 49 | void calculateFilterKernel(); 50 | void upsample(); 51 | 52 | int upsamplingFactor_; 53 | int originalFftBufferSize_; 54 | 55 | AudioBuffer sampleBufferOriginal_; 56 | 57 | private: 58 | JUCE_LEAK_DETECTOR(RateConverter); 59 | }; 60 | 61 | } 62 | } 63 | 64 | #endif // FRUT_DSP_RATE_CONVERTER_H 65 | 66 | #endif // FRUT_DSP_USE_FFTW 67 | -------------------------------------------------------------------------------- /Source/frut/dsp/true_peak_meter.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #if FRUT_DSP_USE_FFTW 27 | 28 | #ifndef FRUT_DSP_TRUE_PEAK_METER_H 29 | #define FRUT_DSP_TRUE_PEAK_METER_H 30 | 31 | namespace frut 32 | { 33 | namespace dsp 34 | { 35 | 36 | class TruePeakMeter : 37 | public frut::dsp::RateConverter 38 | { 39 | public: 40 | TruePeakMeter(const int numberOfChannels, 41 | const int originalFftBufferSize, 42 | const int upsamplingFactor); 43 | 44 | virtual ~TruePeakMeter(); 45 | virtual void reset(); 46 | 47 | float getLevel(const int channel); 48 | 49 | void copyFrom(const AudioBuffer &source, 50 | const int numberOfSamples); 51 | 52 | protected: 53 | void processInput(); 54 | 55 | Array truePeakLevels_; 56 | 57 | private: 58 | JUCE_LEAK_DETECTOR(TruePeakMeter); 59 | }; 60 | 61 | } 62 | } 63 | 64 | #endif // FRUT_DSP_TRUE_PEAK_METER_H 65 | 66 | #endif // FRUT_DSP_USE_FFTW 67 | -------------------------------------------------------------------------------- /Source/frut/format_code.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | @rem --------------------------------------------------------------------------- 4 | @rem 5 | @rem FrutJUCE 6 | @rem ======== 7 | @rem Common classes for use with the JUCE library 8 | @rem 9 | @rem Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 10 | @rem 11 | @rem This program is free software: you can redistribute it and/or modify 12 | @rem it under the terms of the GNU General Public License as published by 13 | @rem the Free Software Foundation, either version 3 of the License, or 14 | @rem (at your option) any later version. 15 | @rem 16 | @rem This program is distributed in the hope that it will be useful, 17 | @rem but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | @rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | @rem GNU General Public License for more details. 20 | @rem 21 | @rem You should have received a copy of the GNU General Public License 22 | @rem along with this program. If not, see . 23 | @rem 24 | @rem Thank you for using free software! 25 | @rem 26 | @rem --------------------------------------------------------------------------- 27 | 28 | @AStyle --recursive --exclude="resources" --options=./.astylerc "*.cpp" "*.h" 29 | @pause 30 | -------------------------------------------------------------------------------- /Source/frut/format_code.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # ---------------------------------------------------------------------------- 4 | # 5 | # FrutJUCE 6 | # ======== 7 | # Common classes for use with the JUCE library 8 | # 9 | # Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 10 | # 11 | # This program is free software: you can redistribute it and/or modify 12 | # it under the terms of the GNU General Public License as published by 13 | # the Free Software Foundation, either version 3 of the License, or 14 | # (at your option) any later version. 15 | # 16 | # This program is distributed in the hope that it will be useful, 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | # GNU General Public License for more details. 20 | # 21 | # You should have received a copy of the GNU General Public License 22 | # along with this program. If not, see . 23 | # 24 | # Thank you for using free software! 25 | # 26 | # ---------------------------------------------------------------------------- 27 | 28 | astyle --recursive --exclude="resources" --options=./.astylerc \ 29 | "*.cpp" \ 30 | "*.h" 31 | -------------------------------------------------------------------------------- /Source/frut/jinja/render_templates.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/python3 2 | 3 | # ---------------------------------------------------------------------------- 4 | # 5 | # FrutJUCE 6 | # ======== 7 | # Common classes for use with the JUCE library 8 | # 9 | # Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 10 | # 11 | # This program is free software: you can redistribute it and/or modify 12 | # it under the terms of the GNU General Public License as published by 13 | # the Free Software Foundation, either version 3 of the License, or 14 | # (at your option) any later version. 15 | # 16 | # This program is distributed in the hope that it will be useful, 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | # GNU General Public License for more details. 20 | # 21 | # You should have received a copy of the GNU General Public License 22 | # along with this program. If not, see . 23 | # 24 | # Thank you for using free software! 25 | # 26 | # ---------------------------------------------------------------------------- 27 | 28 | import os 29 | import jinja2 30 | 31 | script_path = os.path.dirname(os.path.abspath(__file__)) 32 | os.chdir(script_path) 33 | 34 | 35 | def cache_templates(searchpath): 36 | templateLoader = jinja2.FileSystemLoader(searchpath=searchpath) 37 | return jinja2.Environment(loader=templateLoader, trim_blocks=True) 38 | 39 | 40 | def render_template(templates, template_file, output_file): 41 | print('{:30s} --> {}'.format(template_file, output_file)) 42 | 43 | with open(output_file, 'w') as f: 44 | template = templates.get_template(template_file) 45 | output = template.render() 46 | 47 | f.write(output) 48 | 49 | 50 | if __name__ == '__main__': 51 | templates = cache_templates('.') 52 | 53 | render_template( 54 | templates, 55 | 'premake5.template', 56 | '../../../Builds/premake5.lua') 57 | 58 | render_template( 59 | templates, 60 | 'copy_vst.template', 61 | '../../../bin/copy_vst.bat') 62 | 63 | render_template( 64 | templates, 65 | 'finalise_binaries.template', 66 | '../../../bin/finalise_binaries.sh') 67 | 68 | render_template( 69 | templates, 70 | 'package_releases.template', 71 | '../../../bin/package_releases.sh') 72 | -------------------------------------------------------------------------------- /Source/frut/jinja/settings.template: -------------------------------------------------------------------------------- 1 | ../../../Builds/settings.template -------------------------------------------------------------------------------- /Source/frut/lint.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | project_home=$(pwd)/../.. 4 | 5 | 6 | function lint_file 7 | { 8 | filename="$1" 9 | dirname=$(dirname "$1") 10 | echo $filename 11 | 12 | cat $filename | /usr/bin/clang -x c++ - \ 13 | -include $project_home/Source/frut/FrutHeader.h \ 14 | -I $project_home/JuceLibraryCode \ 15 | -I $project_home/libraries \ 16 | -I $project_home/libraries/juce/modules \ 17 | -I $project_home/Source \ 18 | -I $project_home/Source/frut \ 19 | -I $project_home/Source/frut/amalgamated \ 20 | -I $dirname \ 21 | -fsyntax-only \ 22 | -fno-caret-diagnostics \ 23 | -std=c++14 \ 24 | -Wall 25 | 26 | /usr/bin/cppcheck \ 27 | --template=gcc \ 28 | --enable=style \ 29 | --include=$project_home/Source/frut/FrutHeader.h \ 30 | --inline-suppr \ 31 | --language=c++ \ 32 | --quiet \ 33 | $filename 34 | 35 | # find error-like codetags 36 | GREP_COLORS="mt=01;31" \ 37 | /bin/egrep \ 38 | --colour \ 39 | '\<(FIXME|BUG)\>' \ 40 | $filename 41 | 42 | # find warning-like codetags 43 | GREP_COLORS="mt=01;33" \ 44 | /bin/egrep \ 45 | --colour \ 46 | '\<(TODO|@todo)\>' \ 47 | $filename 48 | } 49 | 50 | 51 | echo 52 | 53 | find . \( -iname "*.cpp" -or -iname "*.h" \) -print | sort | while read filename 54 | do 55 | lint_file $filename \; 56 | done 57 | 58 | echo 59 | -------------------------------------------------------------------------------- /Source/frut/math/averager.cpp: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | namespace frut 27 | { 28 | namespace math 29 | { 30 | 31 | Averager::Averager(int number_of_samples, float initial_value) 32 | { 33 | jassert(number_of_samples > 2); 34 | 35 | bIsValid = false; 36 | nNumberOfSamples = number_of_samples; 37 | fNumberOfSamples = float(nNumberOfSamples); 38 | nCurrentSample = 0; 39 | 40 | for (int n = 0; n < nNumberOfSamples; ++n) 41 | { 42 | fSamples.insert(n, initial_value); 43 | } 44 | 45 | fSum = initial_value * fNumberOfSamples; 46 | } 47 | 48 | 49 | void Averager::addSample(float newSample) 50 | { 51 | fSum -= fSamples[nCurrentSample]; 52 | fSamples.set(nCurrentSample, newSample); 53 | fSum += fSamples[nCurrentSample]; 54 | 55 | ++nCurrentSample; 56 | 57 | if (nCurrentSample >= nNumberOfSamples) 58 | { 59 | bIsValid = true; 60 | nCurrentSample = 0; 61 | } 62 | } 63 | 64 | 65 | bool Averager::isValid() 66 | { 67 | return bIsValid; 68 | } 69 | 70 | 71 | float Averager::getSimpleMovingAverage() 72 | { 73 | return fSum / fNumberOfSamples; 74 | } 75 | 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /Source/frut/math/averager.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_MATH_AVERAGER_H 27 | #define FRUT_MATH_AVERAGER_H 28 | 29 | namespace frut 30 | { 31 | namespace math 32 | { 33 | 34 | 35 | class Averager 36 | { 37 | public: 38 | Averager(int number_of_samples, float initial_value); 39 | 40 | void addSample(float newSample); 41 | bool isValid(); 42 | float getSimpleMovingAverage(); 43 | 44 | private: 45 | JUCE_LEAK_DETECTOR(Averager); 46 | 47 | bool bIsValid; 48 | int nNumberOfSamples; 49 | float fNumberOfSamples; 50 | int nCurrentSample; 51 | float fSum; 52 | 53 | Array fSamples; 54 | }; 55 | 56 | } 57 | } 58 | 59 | #endif // FRUT_MATH_AVERAGER_H 60 | -------------------------------------------------------------------------------- /Source/frut/parameters/par_boolean.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_PARAMETER_PARBOOLEAN_H 27 | #define FRUT_PARAMETER_PARBOOLEAN_H 28 | 29 | namespace frut 30 | { 31 | namespace parameters 32 | { 33 | 34 | /// Plug-in parameter for storing a Boolean value. 35 | /// 36 | /// The methods of this class may be called on the audio thread, so 37 | /// they are absolutely time-critical! 38 | /// 39 | class ParBoolean : virtual public Parameter 40 | { 41 | public: 42 | ParBoolean(const String &state_true, const String &state_false); 43 | 44 | void toggleState(); 45 | 46 | virtual void setDefaultRealFloat(float newRealValue, bool updateParameter) override; 47 | void setDefaultBoolean(bool newValue, bool updateParameter); 48 | 49 | virtual void setFloat(float newValue) override; 50 | virtual void setRealFloat(float newRealValue) override; 51 | void setBoolean(bool newValue); 52 | 53 | virtual float getFloatFromText(const String &newValue) override; 54 | virtual const String getTextFromFloat(float newValue) override; 55 | 56 | private: 57 | JUCE_LEAK_DETECTOR(ParBoolean); 58 | 59 | String labelTrue; 60 | String labelFalse; 61 | }; 62 | 63 | } 64 | } 65 | 66 | #endif // FRUT_PARAMETER_PARBOOLEAN_H 67 | -------------------------------------------------------------------------------- /Source/frut/parameters/par_string.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_PARAMETER_PARSTRING_H 27 | #define FRUT_PARAMETER_PARSTRING_H 28 | 29 | namespace frut 30 | { 31 | namespace parameters 32 | { 33 | 34 | /// Plug-in parameter for storing a String value. 35 | /// 36 | /// The methods of this class may be called on the audio thread, so 37 | /// they are absolutely time-critical! 38 | /// 39 | class ParString : virtual public Parameter 40 | { 41 | public: 42 | explicit ParString(const String &newValue); 43 | 44 | virtual void setDefaultRealFloat(float newRealValue, bool updateParameter) override; 45 | virtual void setFloat(float newValue) override; 46 | virtual void setRealFloat(float newRealValue) override; 47 | 48 | virtual const String getText() override; 49 | virtual void setText(const String &newValue) override; 50 | 51 | virtual float getFloatFromText(const String &newValue) override; 52 | virtual const String getTextFromFloat(float newValue) override; 53 | 54 | virtual void loadFromXml(XmlElement *xmlDocument) override; 55 | virtual void storeAsXml(XmlElement *xmlDocument) override; 56 | 57 | private: 58 | JUCE_LEAK_DETECTOR(ParString); 59 | 60 | String textValue; 61 | }; 62 | 63 | } 64 | } 65 | 66 | #endif // FRUT_PARAMETER_PARSTRING_H 67 | -------------------------------------------------------------------------------- /Source/frut/parameters/par_switch.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_PARAMETER_PARSWITCH_H 27 | #define FRUT_PARAMETER_PARSWITCH_H 28 | 29 | namespace frut 30 | { 31 | namespace parameters 32 | { 33 | 34 | /// Plug-in parameter for storing a floating-point value (filled with 35 | /// arbitrary preset values). 36 | /// 37 | /// The methods of this class may be called on the audio thread, so 38 | /// they are absolutely time-critical! 39 | /// 40 | class ParSwitch : virtual public Parameter 41 | { 42 | public: 43 | ParSwitch(); 44 | 45 | void addPreset(const float newRealValue, const String &newLabel); 46 | int getNumberOfSteps(); 47 | float getStepSize(); 48 | 49 | float toRealFloat(float newValue); 50 | float toInternalFloat(float newRealValue); 51 | 52 | virtual void setDefaultRealFloat(float newRealValue, bool updateParameter) override; 53 | 54 | virtual void setFloat(float newValue) override; 55 | virtual void setRealFloat(float newRealValue) override; 56 | 57 | virtual float getFloatFromText(const String &newValue) override; 58 | virtual const String getTextFromFloat(float newValue) override; 59 | 60 | private: 61 | JUCE_LEAK_DETECTOR(ParSwitch); 62 | 63 | Array arrRealValues; 64 | StringArray arrLabels; 65 | 66 | float stepSize; 67 | }; 68 | 69 | } 70 | } 71 | 72 | #endif // FRUT_PARAMETER_PARSWITCH_H 73 | -------------------------------------------------------------------------------- /Source/frut/skin/look_and_feel_v3.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_SKIN_LOOK_AND_FEEL_V3_H 27 | #define FRUT_SKIN_LOOK_AND_FEEL_V3_H 28 | 29 | namespace frut 30 | { 31 | namespace skin 32 | { 33 | 34 | class LookAndFeel_Frut_V3 : 35 | public LookAndFeel_V3 36 | { 37 | public: 38 | LookAndFeel_Frut_V3() {}; 39 | ~LookAndFeel_Frut_V3() {}; 40 | 41 | void drawRotarySlider(Graphics &g, int x, int y, int width, int height, 42 | float sliderPosProportional, float rotaryStartAngle, 43 | float rotaryEndAngle, Slider &) override; 44 | 45 | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(LookAndFeel_Frut_V3) 46 | }; 47 | 48 | } 49 | } 50 | 51 | #endif // FRUT_SKIN_LOOK_AND_FEEL_V3_H 52 | -------------------------------------------------------------------------------- /Source/frut/widgets/channel_slider.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_WIDGETS_CHANNEL_SLIDER_H 27 | #define FRUT_WIDGETS_CHANNEL_SLIDER_H 28 | 29 | namespace frut 30 | { 31 | namespace widgets 32 | { 33 | 34 | /// Slider component for selecting an audio channel. This component 35 | /// can either select a distinct channel or all channels at once. 36 | /// 37 | class ChannelSlider : 38 | public Slider 39 | { 40 | public: 41 | ChannelSlider(); 42 | 43 | int getNumberOfChannels(); 44 | void setNumberOfChannels(int numberOfChannels); 45 | 46 | double getDouble(); 47 | float getFloat(); 48 | 49 | virtual double getValueFromText(const String &inputString); 50 | virtual String getTextFromValue(double inputValue); 51 | 52 | protected: 53 | int numberOfChannels_; 54 | 55 | private: 56 | JUCE_LEAK_DETECTOR(ChannelSlider); 57 | }; 58 | 59 | } 60 | } 61 | 62 | #endif // FRUT_WIDGETS_CHANNEL_SLIDER_H 63 | -------------------------------------------------------------------------------- /Source/frut/widgets/needle_meter.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_WIDGETS_NEEDLE_METER_H 27 | #define FRUT_WIDGETS_NEEDLE_METER_H 28 | 29 | namespace frut 30 | { 31 | namespace widgets 32 | { 33 | 34 | /// Meter component with a needle that moves according to the input. 35 | /// 36 | class NeedleMeter : 37 | public Component 38 | { 39 | public: 40 | NeedleMeter(); 41 | 42 | void setImages(const Image &imageBackground, 43 | const Image &imageNeedle, 44 | int needleSpacingLeft, 45 | int needleSpacingTop); 46 | 47 | void setValue(float value); 48 | 49 | virtual void paint(Graphics &g); 50 | virtual void resized(); 51 | 52 | protected: 53 | int needlePosition_; 54 | int needleTravelPath_; 55 | bool isVerticalMeter_; 56 | 57 | int needleSpacingLeft_; 58 | int needleSpacingTop_; 59 | 60 | Image imageBackground_; 61 | Image imageNeedle_; 62 | 63 | private: 64 | JUCE_LEAK_DETECTOR(NeedleMeter); 65 | }; 66 | 67 | } 68 | } 69 | 70 | #endif // FRUT_WIDGETS_NEEDLE_METER_H 71 | -------------------------------------------------------------------------------- /Source/frut/widgets/orientation.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_WIDGETS_ORIENTATION_H 27 | #define FRUT_WIDGETS_ORIENTATION_H 28 | 29 | namespace frut 30 | { 31 | namespace widgets 32 | { 33 | 34 | /// Orientation for widgets. 35 | /// 36 | enum Orientation 37 | { 38 | /// horizontal widget (bottom to top) 39 | horizontal = 0, 40 | 41 | /// inverted horizontal widget (top to bottom) 42 | horizontalInverted, 43 | 44 | /// vertical widget (left to right) 45 | vertical, 46 | 47 | /// inverted vertical widget (right to left) 48 | verticalInverted 49 | }; 50 | 51 | } 52 | } 53 | 54 | #endif // FRUT_WIDGETS_ORIENTATION_H 55 | -------------------------------------------------------------------------------- /Source/frut/widgets/resources/COPYRIGHT: -------------------------------------------------------------------------------- 1 | * button_gpl_down.svg 2 | * button_gpl_normal.svg 3 | 4 | Obtained September 2014 from http://www.gnu.org/graphics/gpl-v3-logo.svg 5 | with permission: 6 | 7 | If you are releasing work under version 3 of the GNU GPL, LGPL, or 8 | AGPL, feel free to use these buttons on your site or in your 9 | application to advertise the license. These logos are immediately 10 | recognizable, and will assure your users that their freedom is being 11 | protected. 12 | 13 | (http://www.gnu.org/graphics/license-logos.html) 14 | 15 | Changed to match application colour and indicate mouse hovering and 16 | button clicks. 17 | -------------------------------------------------------------------------------- /Source/frut/widgets/resources/convert_resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # ---------------------------------------------------------------------------- 4 | # 5 | # FrutJUCE 6 | # ======== 7 | # Common classes for use with the JUCE library 8 | # 9 | # Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 10 | # 11 | # This program is free software: you can redistribute it and/or modify 12 | # it under the terms of the GNU General Public License as published by 13 | # the Free Software Foundation, either version 3 of the License, or 14 | # (at your option) any later version. 15 | # 16 | # This program is distributed in the hope that it will be useful, 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | # GNU General Public License for more details. 20 | # 21 | # You should have received a copy of the GNU General Public License 22 | # along with this program. If not, see . 23 | # 24 | # Thank you for using free software! 25 | # 26 | # ---------------------------------------------------------------------------- 27 | 28 | BINARY_BUILDER_DIR=../../../../libraries/juce/extras/binarybuilder/Builds/LinuxMakefile/build 29 | OUTPUT_DIR=. 30 | 31 | if [ ! -x "$BINARY_BUILDER_DIR/BinaryBuilder" ]; then 32 | echo 33 | echo "BinaryBuilder not found in $BINARY_BUILDER_DIR" 34 | echo 35 | exit 1 36 | fi 37 | 38 | cd $(dirname $0) 39 | "$BINARY_BUILDER_DIR/BinaryBuilder" output "$OUTPUT_DIR" resources '*.png' 40 | 41 | echo 42 | echo -------------------------------------------------------------------------------- 43 | echo 44 | 45 | cat "$OUTPUT_DIR/resources.h" 46 | 47 | echo 48 | echo -------------------------------------------------------------------------------- 49 | echo 50 | -------------------------------------------------------------------------------- /Source/frut/widgets/resources/output/button_gpl_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/Source/frut/widgets/resources/output/button_gpl_down.png -------------------------------------------------------------------------------- /Source/frut/widgets/resources/output/button_gpl_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/Source/frut/widgets/resources/output/button_gpl_normal.png -------------------------------------------------------------------------------- /Source/frut/widgets/resources/resources.h: -------------------------------------------------------------------------------- 1 | /* (Auto-generated binary data file). */ 2 | 3 | #ifndef FRUT_WIDGETS_RESOURCES_H 4 | #define FRUT_WIDGETS_RESOURCES_H 5 | 6 | namespace resources 7 | { 8 | extern const char* button_gpl_normal_png; 9 | const int button_gpl_normal_pngSize = 2521; 10 | 11 | extern const char* button_gpl_down_png; 12 | const int button_gpl_down_pngSize = 2715; 13 | 14 | } 15 | 16 | #endif // FRUT_WIDGETS_RESOURCES_H 17 | -------------------------------------------------------------------------------- /Source/frut/widgets/signal_led.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_WIDGETS_SIGNAL_LED_H 27 | #define FRUT_WIDGETS_SIGNAL_LED_H 28 | 29 | namespace frut 30 | { 31 | namespace widgets 32 | { 33 | 34 | /// Signal LED component. This widget loads three images of the same 35 | /// size which will be displayed according to the meter's level. 36 | /// 37 | /// | %Level | %Display | 38 | /// | :--------: | ----------------------------------- | 39 | /// | <= 0.0 | *imageOff* | 40 | /// | in between | blend of *imageLow* and *imageHigh* | 41 | /// | >= 1.0 | *imageHigh* | 42 | /// 43 | class SignalLed : 44 | public Component 45 | { 46 | public: 47 | SignalLed(); 48 | 49 | virtual void paint(Graphics &g); 50 | 51 | void setLevel(float level); 52 | void setImages(const Image &imageOff, 53 | const Image &imageLow, 54 | const Image &imageHigh); 55 | 56 | protected: 57 | float level_; 58 | 59 | Image imageOff_; 60 | Image imageLow_; 61 | Image imageHigh_; 62 | 63 | private: 64 | JUCE_LEAK_DETECTOR(SignalLed); 65 | }; 66 | 67 | } 68 | } 69 | 70 | #endif // FRUT_WIDGETS_SIGNAL_LED_H 71 | -------------------------------------------------------------------------------- /Source/frut/widgets/slider.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_WIDGETS_SLIDER_H 27 | #define FRUT_WIDGETS_SLIDER_H 28 | 29 | namespace frut 30 | { 31 | namespace widgets 32 | { 33 | 34 | class FrutSlider : 35 | public Slider 36 | { 37 | public: 38 | virtual void setSliderColour(const Colour &colour) = 0; 39 | }; 40 | 41 | } 42 | } 43 | 44 | #endif // FRUT_WIDGETS_SLIDER_H 45 | -------------------------------------------------------------------------------- /Source/frut/widgets/slider_combined.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_WIDGETS_SLIDER_COMBINED_H 27 | #define FRUT_WIDGETS_SLIDER_COMBINED_H 28 | 29 | namespace frut 30 | { 31 | namespace widgets 32 | { 33 | 34 | class SliderCombined : 35 | virtual public FrutSlider 36 | { 37 | public: 38 | SliderCombined(parameters::Juggler *pParameters, int nParameterIndex, int nParameterIndexSwitch); 39 | 40 | void visibilityChanged(); 41 | void resized(); 42 | 43 | virtual void setSliderColour(const Colour &colour); 44 | void setToggleSwitchColour(const Colour &colour); 45 | 46 | void addButtonListener(Button::Listener *newListener); 47 | void removeListener(Button::Listener *listener); 48 | 49 | void updateMode(); 50 | 51 | float getRealFloat(); 52 | bool getBoolean(); 53 | int getRealInteger(); 54 | 55 | double getValueFromText(const String &strText); 56 | String getTextFromValue(double dValue); 57 | private: 58 | JUCE_LEAK_DETECTOR(SliderCombined); 59 | 60 | std::unique_ptr toggleButton; 61 | Colour colourRotary; 62 | Colour colourToggleSwitch; 63 | 64 | parameters::ParCombined *pCombined; 65 | parameters::ParBoolean *pModeSwitch; 66 | }; 67 | 68 | } 69 | } 70 | 71 | #endif // FRUT_WIDGETS_SLIDER_COMBINED_H 72 | -------------------------------------------------------------------------------- /Source/frut/widgets/slider_continuous.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_WIDGETS_SLIDER_CONTINUOUS_H 27 | #define FRUT_WIDGETS_SLIDER_CONTINUOUS_H 28 | 29 | namespace frut 30 | { 31 | namespace widgets 32 | { 33 | 34 | class SliderContinuous : 35 | virtual public FrutSlider 36 | { 37 | public: 38 | SliderContinuous(parameters::Juggler *pParameters, int parameterIndex); 39 | 40 | virtual void visibilityChanged(); 41 | virtual void resized(); 42 | virtual void setSliderColour(const Colour &colour); 43 | 44 | float getRealFloat(); 45 | bool getBoolean(); 46 | int getRealInteger(); 47 | 48 | virtual double getValueFromText(const String &strText); 49 | virtual String getTextFromValue(double dValue); 50 | 51 | protected: 52 | Colour colourRotary_; 53 | parameters::ParContinuous *parameter_; 54 | 55 | private: 56 | JUCE_LEAK_DETECTOR(SliderContinuous); 57 | }; 58 | 59 | } 60 | } 61 | 62 | #endif // FRUT_WIDGETS_SLIDER_CONTINUOUS_H 63 | -------------------------------------------------------------------------------- /Source/frut/widgets/slider_switch.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_WIDGETS_SLIDER_SWITCH_H 27 | #define FRUT_WIDGETS_SLIDER_SWITCH_H 28 | 29 | namespace frut 30 | { 31 | namespace widgets 32 | { 33 | 34 | class SliderSwitch : 35 | virtual public FrutSlider 36 | { 37 | public: 38 | SliderSwitch(parameters::Juggler *pParameters, int nParameterIndex); 39 | 40 | void visibilityChanged(); 41 | void resized(); 42 | virtual void setSliderColour(const Colour &colour); 43 | 44 | float getRealFloat(); 45 | bool getBoolean(); 46 | int getRealInteger(); 47 | 48 | double getValueFromText(const String &strText); 49 | String getTextFromValue(double dValue); 50 | private: 51 | JUCE_LEAK_DETECTOR(SliderSwitch); 52 | 53 | Colour colourRotary; 54 | parameters::ParSwitch *pSwitch; 55 | }; 56 | 57 | } 58 | } 59 | 60 | #endif // FRUT_WIDGETS_SLIDER_SWITCH_H 61 | -------------------------------------------------------------------------------- /Source/frut/widgets/slider_switch_linear_bar.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_WIDGETS_SLIDER_SWITCH_LINEAR_BAR_H 27 | #define FRUT_WIDGETS_SLIDER_SWITCH_LINEAR_BAR_H 28 | 29 | namespace frut 30 | { 31 | namespace widgets 32 | { 33 | 34 | class SliderSwitchLinearBar : 35 | public FrutSlider 36 | { 37 | public: 38 | SliderSwitchLinearBar(parameters::Juggler *pParameters, int nParameterIndex); 39 | 40 | void visibilityChanged(); 41 | void setSliderColour(const Colour &colour); 42 | 43 | float getRealFloat(); 44 | bool getBoolean(); 45 | int getRealInteger(); 46 | 47 | double getValueFromText(const String &strText); 48 | String getTextFromValue(double dValue); 49 | private: 50 | JUCE_LEAK_DETECTOR(SliderSwitchLinearBar); 51 | 52 | Colour colourThumb; 53 | parameters::ParSwitch *pSwitch; 54 | }; 55 | 56 | } 57 | } 58 | 59 | #endif // FRUT_WIDGETS_SLIDER_SWITCH_LINEAR_BAR_H 60 | -------------------------------------------------------------------------------- /Source/frut/widgets/window_settings_content.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | FrutJUCE 4 | ======== 5 | Common classes for use with the JUCE library 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef FRUT_WIDGETS_WINDOW_SETTINGS_CONTENT_H 27 | #define FRUT_WIDGETS_WINDOW_SETTINGS_CONTENT_H 28 | 29 | namespace frut 30 | { 31 | namespace widgets 32 | { 33 | 34 | /// Dialog window for displaying plugin-settings. 35 | /// 36 | class WindowSettingsContent : 37 | public Component, 38 | public Button::Listener 39 | { 40 | public: 41 | WindowSettingsContent(); 42 | 43 | static DialogWindow *createDialogWindow(AudioProcessorEditor *pluginEditor, 44 | int componentWidth, 45 | int componentHeight, 46 | const String &pluginSettings); 47 | 48 | virtual void buttonClicked(Button *button); 49 | 50 | virtual void closeButtonPressed(); 51 | 52 | virtual void applySkin(); 53 | 54 | virtual void initialise(int componentWidth, 55 | int componentHeight, 56 | const String &pluginSettings); 57 | 58 | protected: 59 | TextEditor textEditor_; 60 | TextButton buttonClose_; 61 | 62 | private: 63 | JUCE_LEAK_DETECTOR(WindowSettingsContent); 64 | }; 65 | 66 | } 67 | } 68 | 69 | #endif // FRUT_WIDGETS_WINDOW_SETTINGS_CONTENT_H 70 | -------------------------------------------------------------------------------- /Source/kmeter.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | K-Meter 4 | ======= 5 | Implementation of a K-System meter according to Bob Katz' specifications 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef KMETER_KMETER_H 27 | #define KMETER_KMETER_H 28 | 29 | #include "FrutHeader.h" 30 | #include "meter_ballistics.h" 31 | #include "meter_bar.h" 32 | #include "overflow_meter.h" 33 | #include "peak_label.h" 34 | #include "skin.h" 35 | 36 | 37 | class Kmeter : 38 | public Component 39 | { 40 | public: 41 | static const int KMETER_STEREO_WIDTH = 106; 42 | static const int KMETER_STEREO_WIDTH_2 = KMETER_STEREO_WIDTH / 2; 43 | 44 | virtual void create(int numberOfInputChannels); 45 | 46 | virtual void applySkin(Skin *skin, 47 | int crestFactor, 48 | bool discreteMeter, 49 | bool isExpanded, 50 | bool isHorizontal, 51 | bool displayPeakMeter); 52 | 53 | virtual void setLevels(std::shared_ptr meterBallistics); 54 | 55 | virtual void resized(); 56 | 57 | protected: 58 | OwnedArray levelMeters_; 59 | OwnedArray overflowMeters_; 60 | OwnedArray maximumPeakLabels_; 61 | OwnedArray maximumTruePeakLabels_; 62 | 63 | int numberOfInputChannels_; 64 | bool displayPeakMeter_; 65 | 66 | private: 67 | JUCE_LEAK_DETECTOR(Kmeter); 68 | }; 69 | 70 | #endif // KMETER_KMETER_H 71 | -------------------------------------------------------------------------------- /Source/lint.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | project_home=$(pwd)/.. 4 | 5 | 6 | function lint_file 7 | { 8 | filename="$1" 9 | dirname=$(dirname "$1") 10 | echo $filename 11 | 12 | cat $filename | /usr/bin/clang -x c++ - \ 13 | -include $project_home/Source/frut/FrutHeader.h \ 14 | -I $project_home/JuceLibraryCode \ 15 | -I $project_home/libraries \ 16 | -I $project_home/libraries/juce/modules \ 17 | -I $project_home/Source \ 18 | -I $project_home/Source/frut \ 19 | -I $project_home/Source/frut/amalgamated \ 20 | -I $dirname \ 21 | -fsyntax-only \ 22 | -fno-caret-diagnostics \ 23 | -std=c++14 \ 24 | -Wall 25 | 26 | /usr/bin/cppcheck \ 27 | --template=gcc \ 28 | --enable=style \ 29 | --include=$project_home/Source/frut/FrutHeader.h \ 30 | --inline-suppr \ 31 | --language=c++ \ 32 | --quiet \ 33 | $filename 34 | 35 | # find error-like codetags 36 | GREP_COLORS="mt=01;31" \ 37 | /bin/egrep \ 38 | --colour \ 39 | '\<(FIXME|BUG)\>' \ 40 | $filename 41 | 42 | # find warning-like codetags 43 | GREP_COLORS="mt=01;33" \ 44 | /bin/egrep \ 45 | --colour \ 46 | '\<(TODO|@todo)\>' \ 47 | $filename 48 | } 49 | 50 | 51 | echo 52 | 53 | find . -maxdepth 1 \( -iname "*.cpp" -or -iname "*.h" \) -print | sort | while read filename 54 | do 55 | lint_file $filename \; 56 | done 57 | 58 | echo 59 | 60 | find ./frut/amalgamated -maxdepth 1 \( -iname "*.cpp" -or -iname "*.h" \) -print | sort | while read filename 61 | do 62 | lint_file $filename \; 63 | done 64 | 65 | echo 66 | -------------------------------------------------------------------------------- /Source/meter_bar.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | K-Meter 4 | ======= 5 | Implementation of a K-System meter according to Bob Katz' specifications 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef KMETER_METER_BAR_H 27 | #define KMETER_METER_BAR_H 28 | 29 | #include "FrutHeader.h" 30 | 31 | 32 | class MeterBar : 33 | public frut::widgets::MeterBar 34 | { 35 | public: 36 | using frut::widgets::MeterBar::create; 37 | virtual void create(int crestFactor, 38 | bool discreteMeter, 39 | bool isExpanded, 40 | frut::widgets::Orientation orientation, 41 | int mainSegmentHeight, 42 | const Array &segmentColours); 43 | 44 | protected: 45 | /// Colour ID selector for meter segments. 46 | enum colourSelector // protected namespace 47 | { 48 | /// reddish 49 | red = 0, 50 | 51 | /// yellowish 52 | amber, 53 | 54 | /// greenish 55 | green, 56 | 57 | /// colourish :) 58 | nonLinear 59 | }; 60 | 61 | private: 62 | JUCE_LEAK_DETECTOR(MeterBar); 63 | }; 64 | 65 | #endif // KMETER_METER_BAR_H 66 | -------------------------------------------------------------------------------- /Source/overflow_meter.cpp: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | K-Meter 4 | ======= 5 | Implementation of a K-System meter according to Bob Katz' specifications 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #include "overflow_meter.h" 27 | 28 | 29 | OverflowMeter::OverflowMeter() 30 | { 31 | nOverflows = 0; 32 | 33 | setLabelColour(Colours::white); 34 | setLabelText(String(nOverflows)); 35 | } 36 | 37 | 38 | void OverflowMeter::setOverflows(int Overflows) 39 | { 40 | int nOverflowsOld = nOverflows; 41 | nOverflows = Overflows; 42 | 43 | if (nOverflows != nOverflowsOld) 44 | { 45 | setLabelText(String(nOverflows)); 46 | 47 | if (nOverflows == 0) 48 | { 49 | setState(frut::widgets::StateLabel::State::off); 50 | } 51 | else 52 | { 53 | setState(frut::widgets::StateLabel::State::on); 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Source/overflow_meter.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | K-Meter 4 | ======= 5 | Implementation of a K-System meter according to Bob Katz' specifications 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef KMETER_OVERFLOW_METER_H 27 | #define KMETER_OVERFLOW_METER_H 28 | 29 | #include "FrutHeader.h" 30 | 31 | 32 | class OverflowMeter : 33 | public frut::widgets::StateLabel 34 | { 35 | public: 36 | OverflowMeter(); 37 | 38 | void setOverflows(int Overflows); 39 | 40 | private: 41 | JUCE_LEAK_DETECTOR(OverflowMeter); 42 | 43 | int nOverflows; 44 | }; 45 | 46 | #endif // KMETER_OVERFLOW_METER_H 47 | -------------------------------------------------------------------------------- /Source/peak_label.cpp: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | K-Meter 4 | ======= 5 | Implementation of a K-System meter according to Bob Katz' specifications 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #include "peak_label.h" 27 | 28 | 29 | PeakLabel::PeakLabel(int nCrestFactor) 30 | { 31 | nMeterCrestFactor = nCrestFactor; 32 | setLabelColour(Colours::white); 33 | 34 | resetLevel(); 35 | } 36 | 37 | 38 | void PeakLabel::resetLevel() 39 | { 40 | float fMaximumCrestFactor = 20.0f; // i.e. K-20 41 | float fMeterMinimumDecibel = -(fMaximumCrestFactor + 90.0f); 42 | 43 | // reset level 44 | fMaximumLevel = fMeterMinimumDecibel; 45 | 46 | // ensure peak label update on next call of updateLevel() 47 | fMaximumLevel -= 0.1f; 48 | } 49 | 50 | 51 | void PeakLabel::updateLevel(float newLevel) 52 | { 53 | if (newLevel == fMaximumLevel) 54 | { 55 | return; 56 | } 57 | 58 | fMaximumLevel = newLevel; 59 | float fCorrectedLevel = fMaximumLevel + nMeterCrestFactor; 60 | 61 | if (fCorrectedLevel < 0.0f) 62 | { 63 | setLabelText(String(fCorrectedLevel, 1)); 64 | } 65 | else 66 | { 67 | setLabelText("+" + String(fCorrectedLevel, 1)); 68 | } 69 | 70 | if (fMaximumLevel < -0.20f) 71 | { 72 | setState(false); 73 | } 74 | else 75 | { 76 | setState(true); 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /Source/peak_label.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | K-Meter 4 | ======= 5 | Implementation of a K-System meter according to Bob Katz' specifications 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef KMETER_PEAK_LABEL_H 27 | #define KMETER_PEAK_LABEL_H 28 | 29 | #include "FrutHeader.h" 30 | 31 | 32 | class PeakLabel : 33 | public frut::widgets::StateLabel 34 | { 35 | public: 36 | explicit PeakLabel(int nCrestFactor); 37 | 38 | void resetLevel(); 39 | void updateLevel(float newLevel); 40 | 41 | private: 42 | JUCE_LEAK_DETECTOR(PeakLabel); 43 | 44 | int nMeterCrestFactor; 45 | float fMaximumLevel; 46 | }; 47 | 48 | #endif // KMETER_PEAK_LABEL_H 49 | -------------------------------------------------------------------------------- /Source/skin.h: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------------------- 2 | 3 | K-Meter 4 | ======= 5 | Implementation of a K-System meter according to Bob Katz' specifications 6 | 7 | Copyright (c) 2010-2020 Martin Zuther (http://www.mzuther.de/) 8 | 9 | This program is free software: you can redistribute it and/or modify 10 | it under the terms of the GNU General Public License as published by 11 | the Free Software Foundation, either version 3 of the License, or 12 | (at your option) any later version. 13 | 14 | This program is distributed in the hope that it will be useful, 15 | but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 | GNU General Public License for more details. 18 | 19 | You should have received a copy of the GNU General Public License 20 | along with this program. If not, see . 21 | 22 | Thank you for using free software! 23 | 24 | ---------------------------------------------------------------------------- */ 25 | 26 | #ifndef KMETER_SKIN_H 27 | #define KMETER_SKIN_H 28 | 29 | #include "FrutHeader.h" 30 | #include "plugin_parameters.h" 31 | 32 | 33 | class Skin : 34 | public frut::skin::Skin 35 | { 36 | public: 37 | bool loadSkin(File &skinFile, 38 | int numberOfChannels, 39 | int crestFactor, 40 | int averageAlgorithm, 41 | bool isExpanded, 42 | bool displayPeakMeter); 43 | 44 | void updateSkin(int numberOfChannels, 45 | int crestFactor, 46 | int averageAlgorithm, 47 | bool isExpanded, 48 | bool displayPeakMeter); 49 | 50 | private: 51 | JUCE_LEAK_DETECTOR(Skin); 52 | }; 53 | 54 | #endif // KMETER_SKIN_H 55 | -------------------------------------------------------------------------------- /bin/final/README: -------------------------------------------------------------------------------- 1 | Please do NOT place any intermediate binaries here. This directory is 2 | reserved for the current stable build. 3 | -------------------------------------------------------------------------------- /bin/final/kmeter: -------------------------------------------------------------------------------- 1 | ../standalone/kmeter -------------------------------------------------------------------------------- /bin/final/kmeter.pdf: -------------------------------------------------------------------------------- 1 | ../standalone/kmeter.pdf -------------------------------------------------------------------------------- /bin/standalone/kmeter.pdf: -------------------------------------------------------------------------------- 1 | ../../doc/kmeter.pdf -------------------------------------------------------------------------------- /bin/standalone/kmeter/doc/CC-BY-SA-4.0: -------------------------------------------------------------------------------- 1 | ../../../../doc/CC-BY-SA-4.0 -------------------------------------------------------------------------------- /bin/standalone/kmeter/doc/CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | ../../../../doc/CONTRIBUTORS -------------------------------------------------------------------------------- /bin/standalone/kmeter/doc/HISTORY: -------------------------------------------------------------------------------- 1 | ../../../../doc/HISTORY -------------------------------------------------------------------------------- /bin/standalone/kmeter/doc/LICENSE: -------------------------------------------------------------------------------- 1 | ../../../../doc/LICENSE -------------------------------------------------------------------------------- /bin/standalone/kmeter/fftw/COPYRIGHT: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2003, 2007-14 Matteo Frigo 3 | * Copyright (c) 2003, 2007-14 Massachusetts Institute of Technology 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | * 19 | */ 20 | -------------------------------------------------------------------------------- /bin/standalone/kmeter/fftw/libfftw3f-3.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/bin/standalone/kmeter/fftw/libfftw3f-3.dll -------------------------------------------------------------------------------- /bin/standalone/kmeter/fftw/libfftw3f-3_x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/bin/standalone/kmeter/fftw/libfftw3f-3_x64.dll -------------------------------------------------------------------------------- /bin/standalone/kmeter/skins: -------------------------------------------------------------------------------- 1 | ../../../skins/ -------------------------------------------------------------------------------- /bin/vst2/kmeter: -------------------------------------------------------------------------------- 1 | ../standalone/kmeter -------------------------------------------------------------------------------- /bin/vst2/kmeter.pdf: -------------------------------------------------------------------------------- 1 | ../standalone/kmeter.pdf -------------------------------------------------------------------------------- /bin/vst3/kmeter: -------------------------------------------------------------------------------- 1 | ../standalone/kmeter -------------------------------------------------------------------------------- /bin/vst3/kmeter.pdf: -------------------------------------------------------------------------------- 1 | ../standalone/kmeter.pdf -------------------------------------------------------------------------------- /doc/.gitignore: -------------------------------------------------------------------------------- 1 | auto/ 2 | *.aux 3 | *.log 4 | *.out 5 | *.toc 6 | -------------------------------------------------------------------------------- /doc/CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | Project owner 2 | ============= 3 | 4 | * Martin Zuther a.k.a. radix (http://www.mzuther.de/) 5 | 6 | 7 | 8 | Contributors 9 | ============ 10 | 11 | * Bob Katz (http://www.digido.com/) 12 | 13 | Creator of the K-System Meter. Also a decent mastering engineer... :) 14 | 15 | 16 | * Tod Gentille (http://syncor.blogspot.com/) 17 | 18 | Mac version of K-Meter. 19 | 20 | 21 | * Jan Kokemüller a.k.a. Raiden (https://github.com/jiixyj) 22 | 23 | Paper "ITU-R BS.1770-1 filter specifications (unofficial)", 2011. 24 | 25 | 26 | * Bram de Jong (http://bram.smartelectronix.com/) 27 | 28 | Envelope follower with different attack and release. 29 | 30 | 31 | 32 | Beta testing and ideas 33 | ====================== 34 | 35 | * Rickard (http://www.interfearingsounds.com/) 36 | 37 | * David Tkaczuk 38 | 39 | 40 | (note: do not forget to update "src/window_about.cpp"!) 41 | -------------------------------------------------------------------------------- /doc/TODO: -------------------------------------------------------------------------------- 1 | 2 | o [mzuther] rename internal "variables_" (get rid of "newVariable") 3 | 4 | o [mzuther] get rid of Hungarian notation 5 | 6 | o [mzuther] mark virtual functions as "virtual" 7 | 8 | o [mzuther] use explicit casts: static_cast 9 | 10 | o [mzuther] add const to methods variables 11 | 12 | o [mzuther] pretty-print and document code 13 | 14 | * single-order HP filter for DC removal 15 | 16 | * use JUCE namespace explicitly 17 | 18 | -------------------------------------------------------------------------------- /doc/include/hyphenation.sty: -------------------------------------------------------------------------------- 1 | \hyphenation{ 2 | } 3 | -------------------------------------------------------------------------------- /doc/include/images/VST_Compatible_Logo_Steinberg_negative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/VST_Compatible_Logo_Steinberg_negative.png -------------------------------------------------------------------------------- /doc/include/images/button_about_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_about_off.png -------------------------------------------------------------------------------- /doc/include/images/button_about_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_about_on.png -------------------------------------------------------------------------------- /doc/include/images/button_averaging_selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_averaging_selection.png -------------------------------------------------------------------------------- /doc/include/images/button_dim_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_dim_off.png -------------------------------------------------------------------------------- /doc/include/images/button_dim_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_dim_on.png -------------------------------------------------------------------------------- /doc/include/images/button_discrete_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_discrete_off.png -------------------------------------------------------------------------------- /doc/include/images/button_discrete_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_discrete_on.png -------------------------------------------------------------------------------- /doc/include/images/button_expand_meter_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_expand_meter_off.png -------------------------------------------------------------------------------- /doc/include/images/button_expand_meter_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_expand_meter_on.png -------------------------------------------------------------------------------- /doc/include/images/button_flip_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_flip_off.png -------------------------------------------------------------------------------- /doc/include/images/button_flip_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_flip_on.png -------------------------------------------------------------------------------- /doc/include/images/button_gpl_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_gpl_off.png -------------------------------------------------------------------------------- /doc/include/images/button_gpl_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_gpl_on.png -------------------------------------------------------------------------------- /doc/include/images/button_meter_selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_meter_selection.png -------------------------------------------------------------------------------- /doc/include/images/button_mono_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_mono_off.png -------------------------------------------------------------------------------- /doc/include/images/button_mono_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_mono_on.png -------------------------------------------------------------------------------- /doc/include/images/button_mute_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_mute_off.png -------------------------------------------------------------------------------- /doc/include/images/button_mute_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_mute_on.png -------------------------------------------------------------------------------- /doc/include/images/button_peak_hold_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_peak_hold_off.png -------------------------------------------------------------------------------- /doc/include/images/button_peak_hold_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_peak_hold_on.png -------------------------------------------------------------------------------- /doc/include/images/button_peak_meter_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_peak_meter_off.png -------------------------------------------------------------------------------- /doc/include/images/button_peak_meter_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_peak_meter_on.png -------------------------------------------------------------------------------- /doc/include/images/button_reset_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_reset_off.png -------------------------------------------------------------------------------- /doc/include/images/button_reset_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_reset_on.png -------------------------------------------------------------------------------- /doc/include/images/button_skin_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_skin_off.png -------------------------------------------------------------------------------- /doc/include/images/button_skin_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_skin_on.png -------------------------------------------------------------------------------- /doc/include/images/button_validate_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_validate_off.png -------------------------------------------------------------------------------- /doc/include/images/button_validate_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/button_validate_on.png -------------------------------------------------------------------------------- /doc/include/images/cc-by-sa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/cc-by-sa.png -------------------------------------------------------------------------------- /doc/include/images/dialog_validation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/dialog_validation.png -------------------------------------------------------------------------------- /doc/include/images/fft_192khz-freq-fx_path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/fft_192khz-freq-fx_path.png -------------------------------------------------------------------------------- /doc/include/images/fft_192khz-freq-itu_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/fft_192khz-freq-itu_r.png -------------------------------------------------------------------------------- /doc/include/images/fft_192khz-freq-rms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/fft_192khz-freq-rms.png -------------------------------------------------------------------------------- /doc/include/images/fft_192khz-freq_zoomed-itu_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/fft_192khz-freq_zoomed-itu_r.png -------------------------------------------------------------------------------- /doc/include/images/fft_192khz-freq_zoomed-rms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/fft_192khz-freq_zoomed-rms.png -------------------------------------------------------------------------------- /doc/include/images/fft_192khz-phase-fx_path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/fft_192khz-phase-fx_path.png -------------------------------------------------------------------------------- /doc/include/images/fft_192khz-phase-itu_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/fft_192khz-phase-itu_r.png -------------------------------------------------------------------------------- /doc/include/images/fft_192khz-phase-rms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/fft_192khz-phase-rms.png -------------------------------------------------------------------------------- /doc/include/images/kmeter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/kmeter.png -------------------------------------------------------------------------------- /doc/include/images/kmeter_normal_scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/kmeter_normal_scale.png -------------------------------------------------------------------------------- /doc/include/images/level_meter_itu_continuous.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/level_meter_itu_continuous.png -------------------------------------------------------------------------------- /doc/include/images/level_meter_rms_discrete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/level_meter_rms_discrete.png -------------------------------------------------------------------------------- /doc/include/images/maximum_peak_clipped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/maximum_peak_clipped.png -------------------------------------------------------------------------------- /doc/include/images/maximum_peak_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/maximum_peak_normal.png -------------------------------------------------------------------------------- /doc/include/images/maximum_true_peak_clipped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/maximum_true_peak_clipped.png -------------------------------------------------------------------------------- /doc/include/images/maximum_true_peak_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/maximum_true_peak_normal.png -------------------------------------------------------------------------------- /doc/include/images/overload_counter_clipped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/overload_counter_clipped.png -------------------------------------------------------------------------------- /doc/include/images/overload_counter_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/overload_counter_normal.png -------------------------------------------------------------------------------- /doc/include/images/phase_correlation_meter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/phase_correlation_meter.png -------------------------------------------------------------------------------- /doc/include/images/stereo_meter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/include/images/stereo_meter.png -------------------------------------------------------------------------------- /doc/kmeter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/kmeter.pdf -------------------------------------------------------------------------------- /doc/licensing/vst_id_registration_1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/licensing/vst_id_registration_1.pdf -------------------------------------------------------------------------------- /doc/licensing/vst_id_registration_2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/licensing/vst_id_registration_2.pdf -------------------------------------------------------------------------------- /doc/specifications/ITU-R BS.1770-1 (Filters).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/doc/specifications/ITU-R BS.1770-1 (Filters).pdf -------------------------------------------------------------------------------- /doc/specifications/ITU-R BS.1770.txt: -------------------------------------------------------------------------------- 1 | Please download the latest ITU recommendation BS.1770 from here: 2 | 3 | http://www.itu.int/rec/R-REC-BS.1770 4 | -------------------------------------------------------------------------------- /libraries/fftw: -------------------------------------------------------------------------------- 1 | ../../libraries/fftw_3.3.5 -------------------------------------------------------------------------------- /libraries/fftw-3.3.5-dll32.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/libraries/fftw-3.3.5-dll32.zip -------------------------------------------------------------------------------- /libraries/fftw-3.3.5-dll64.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/libraries/fftw-3.3.5-dll64.zip -------------------------------------------------------------------------------- /libraries/fftw-3.3.5.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/libraries/fftw-3.3.5.tar.gz -------------------------------------------------------------------------------- /libraries/juce: -------------------------------------------------------------------------------- 1 | ../../libraries/juce_5.4.7 -------------------------------------------------------------------------------- /libraries/juce_5.4.7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/libraries/juce_5.4.7.zip -------------------------------------------------------------------------------- /libraries/vst2: -------------------------------------------------------------------------------- 1 | ../../libraries/vstsdk_3.6.10 -------------------------------------------------------------------------------- /libraries/vst3: -------------------------------------------------------------------------------- 1 | ../../libraries/vstsdk_3.6.14 -------------------------------------------------------------------------------- /skins/Default/LICENSE: -------------------------------------------------------------------------------- 1 | This skin by Martin Zuther (http://www.mzuther.de/) is licensed under 2 | a Creative Commons Attribution-ShareAlike 4.0 International License 3 | (http://creativecommons.org/licenses/by-sa/4.0/). -------------------------------------------------------------------------------- /skins/Default/backgrounds/itu/background_itu_stereo_no_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/itu/background_itu_stereo_no_peaks.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/itu/background_itu_stereo_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/itu/background_itu_stereo_peaks.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/itu/background_itu_surround_no_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/itu/background_itu_surround_no_peaks.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/itu/background_itu_surround_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/itu/background_itu_surround_peaks.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/itu/graduation_itu_k12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/itu/graduation_itu_k12.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/itu/graduation_itu_k12_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/itu/graduation_itu_k12_expanded.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/itu/graduation_itu_k14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/itu/graduation_itu_k14.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/itu/graduation_itu_k14_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/itu/graduation_itu_k14_expanded.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/itu/graduation_itu_k20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/itu/graduation_itu_k20.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/itu/graduation_itu_k20_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/itu/graduation_itu_k20_expanded.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/itu/graduation_itu_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/itu/graduation_itu_normal.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/itu/graduation_itu_normal_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/itu/graduation_itu_normal_expanded.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/rms/background_rms_stereo_no_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/rms/background_rms_stereo_no_peaks.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/rms/background_rms_stereo_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/rms/background_rms_stereo_peaks.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/rms/background_rms_surround_no_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/rms/background_rms_surround_no_peaks.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/rms/background_rms_surround_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/rms/background_rms_surround_peaks.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/rms/graduation_rms_k12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/rms/graduation_rms_k12.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/rms/graduation_rms_k12_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/rms/graduation_rms_k12_expanded.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/rms/graduation_rms_k14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/rms/graduation_rms_k14.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/rms/graduation_rms_k14_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/rms/graduation_rms_k14_expanded.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/rms/graduation_rms_k20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/rms/graduation_rms_k20.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/rms/graduation_rms_k20_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/rms/graduation_rms_k20_expanded.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/rms/graduation_rms_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/rms/graduation_rms_normal.png -------------------------------------------------------------------------------- /skins/Default/backgrounds/rms/graduation_rms_normal_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/backgrounds/rms/graduation_rms_normal_expanded.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_about_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_about_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_about_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_about_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_about_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_about_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_dim_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_dim_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_dim_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_dim_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_dim_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_dim_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_discrete_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_discrete_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_discrete_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_discrete_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_discrete_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_discrete_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_expand_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_expand_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_expand_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_expand_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_expand_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_expand_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_flip_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_flip_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_flip_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_flip_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_flip_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_flip_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_hold_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_hold_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_hold_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_hold_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_hold_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_hold_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_itu_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_itu_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_itu_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_itu_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_itu_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_itu_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_k12_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_k12_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_k12_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_k12_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_k12_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_k12_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_k14_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_k14_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_k14_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_k14_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_k14_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_k14_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_k20_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_k20_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_k20_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_k20_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_k20_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_k20_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_mono_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_mono_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_mono_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_mono_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_mono_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_mono_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_mute_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_mute_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_mute_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_mute_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_mute_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_mute_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_normal_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_normal_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_normal_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_normal_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_normal_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_normal_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_peaks_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_peaks_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_peaks_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_peaks_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_peaks_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_peaks_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_reset_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_reset_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_reset_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_reset_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_reset_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_reset_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_rms_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_rms_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_rms_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_rms_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_rms_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_rms_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_skin_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_skin_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_skin_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_skin_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_skin_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_skin_over.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_validate_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_validate_off.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_validate_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_validate_on.png -------------------------------------------------------------------------------- /skins/Default/buttons/button_validate_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/buttons/button_validate_over.png -------------------------------------------------------------------------------- /skins/Default/labels/label_debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/labels/label_debug.png -------------------------------------------------------------------------------- /skins/Default/labels/label_over_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/labels/label_over_off.png -------------------------------------------------------------------------------- /skins/Default/labels/label_over_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/labels/label_over_on.png -------------------------------------------------------------------------------- /skins/Default/labels/label_peak_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/labels/label_peak_off.png -------------------------------------------------------------------------------- /skins/Default/labels/label_peak_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/labels/label_peak_on.png -------------------------------------------------------------------------------- /skins/Default/labels/label_true_peak_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/labels/label_true_peak_off.png -------------------------------------------------------------------------------- /skins/Default/labels/label_true_peak_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/labels/label_true_peak_on.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_itu_k12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_itu_k12.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_itu_k12_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_itu_k12_expanded.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_itu_k14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_itu_k14.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_itu_k14_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_itu_k14_expanded.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_itu_k20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_itu_k20.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_itu_k20_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_itu_k20_expanded.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_itu_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_itu_normal.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_itu_normal_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_itu_normal_expanded.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_rms_k12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_rms_k12.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_rms_k12_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_rms_k12_expanded.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_rms_k14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_rms_k14.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_rms_k14_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_rms_k14_expanded.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_rms_k20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_rms_k20.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_rms_k20_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_rms_k20_expanded.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_rms_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_rms_normal.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_kmeter_rms_normal_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_kmeter_rms_normal_expanded.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_phase_correlation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_phase_correlation.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_phase_correlation_needle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_phase_correlation_needle.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_stereo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_stereo.png -------------------------------------------------------------------------------- /skins/Default/meters/meter_stereo_needle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Default/meters/meter_stereo_needle.png -------------------------------------------------------------------------------- /skins/Slim Buttons.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons.zip -------------------------------------------------------------------------------- /skins/Slim Buttons/LICENSE: -------------------------------------------------------------------------------- 1 | This skin by Martin Zuther (http://www.mzuther.de/) is licensed under 2 | a Creative Commons Attribution-ShareAlike 4.0 International License 3 | (http://creativecommons.org/licenses/by-sa/4.0/). -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/itu/background_itu_stereo_no_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/itu/background_itu_stereo_no_peaks.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/itu/background_itu_stereo_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/itu/background_itu_stereo_peaks.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/itu/background_itu_surround_no_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/itu/background_itu_surround_no_peaks.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/itu/background_itu_surround_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/itu/background_itu_surround_peaks.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/itu/graduation_itu_k12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/itu/graduation_itu_k12.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/itu/graduation_itu_k12_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/itu/graduation_itu_k12_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/itu/graduation_itu_k14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/itu/graduation_itu_k14.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/itu/graduation_itu_k14_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/itu/graduation_itu_k14_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/itu/graduation_itu_k20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/itu/graduation_itu_k20.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/itu/graduation_itu_k20_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/itu/graduation_itu_k20_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/itu/graduation_itu_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/itu/graduation_itu_normal.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/itu/graduation_itu_normal_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/itu/graduation_itu_normal_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/rms/background_rms_stereo_no_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/rms/background_rms_stereo_no_peaks.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/rms/background_rms_stereo_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/rms/background_rms_stereo_peaks.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/rms/background_rms_surround_no_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/rms/background_rms_surround_no_peaks.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/rms/background_rms_surround_peaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/rms/background_rms_surround_peaks.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/rms/graduation_rms_k12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/rms/graduation_rms_k12.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/rms/graduation_rms_k12_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/rms/graduation_rms_k12_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/rms/graduation_rms_k14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/rms/graduation_rms_k14.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/rms/graduation_rms_k14_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/rms/graduation_rms_k14_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/rms/graduation_rms_k20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/rms/graduation_rms_k20.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/rms/graduation_rms_k20_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/rms/graduation_rms_k20_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/rms/graduation_rms_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/rms/graduation_rms_normal.png -------------------------------------------------------------------------------- /skins/Slim Buttons/backgrounds/rms/graduation_rms_normal_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/backgrounds/rms/graduation_rms_normal_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_about_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_about_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_about_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_about_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_about_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_about_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_dim_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_dim_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_dim_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_dim_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_dim_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_dim_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_discrete_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_discrete_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_discrete_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_discrete_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_discrete_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_discrete_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_expand_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_expand_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_expand_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_expand_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_expand_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_expand_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_flip_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_flip_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_flip_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_flip_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_flip_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_flip_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_hold_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_hold_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_hold_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_hold_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_hold_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_hold_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_itu_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_itu_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_itu_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_itu_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_itu_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_itu_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_k12_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_k12_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_k12_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_k12_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_k12_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_k12_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_k14_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_k14_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_k14_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_k14_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_k14_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_k14_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_k20_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_k20_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_k20_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_k20_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_k20_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_k20_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_mono_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_mono_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_mono_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_mono_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_mono_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_mono_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_mute_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_mute_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_mute_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_mute_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_mute_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_mute_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_normal_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_normal_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_normal_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_normal_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_normal_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_normal_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_peaks_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_peaks_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_peaks_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_peaks_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_peaks_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_peaks_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_reset_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_reset_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_reset_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_reset_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_reset_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_reset_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_rms_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_rms_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_rms_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_rms_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_rms_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_rms_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_skin_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_skin_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_skin_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_skin_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_skin_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_skin_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_validate_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_validate_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_validate_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_validate_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/buttons/button_validate_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/buttons/button_validate_over.png -------------------------------------------------------------------------------- /skins/Slim Buttons/labels/label_debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/labels/label_debug.png -------------------------------------------------------------------------------- /skins/Slim Buttons/labels/label_over_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/labels/label_over_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/labels/label_over_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/labels/label_over_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/labels/label_peak_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/labels/label_peak_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/labels/label_peak_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/labels/label_peak_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/labels/label_true_peak_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/labels/label_true_peak_off.png -------------------------------------------------------------------------------- /skins/Slim Buttons/labels/label_true_peak_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/labels/label_true_peak_on.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_itu_k12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_itu_k12.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_itu_k12_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_itu_k12_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_itu_k14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_itu_k14.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_itu_k14_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_itu_k14_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_itu_k20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_itu_k20.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_itu_k20_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_itu_k20_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_itu_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_itu_normal.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_itu_normal_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_itu_normal_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_rms_k12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_rms_k12.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_rms_k12_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_rms_k12_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_rms_k14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_rms_k14.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_rms_k14_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_rms_k14_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_rms_k20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_rms_k20.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_rms_k20_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_rms_k20_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_rms_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_rms_normal.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_kmeter_rms_normal_expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_kmeter_rms_normal_expanded.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_phase_correlation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_phase_correlation.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_phase_correlation_needle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_phase_correlation_needle.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_stereo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_stereo.png -------------------------------------------------------------------------------- /skins/Slim Buttons/meters/meter_stereo_needle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/skins/Slim Buttons/meters/meter_stereo_needle.png -------------------------------------------------------------------------------- /validation/.gitignore: -------------------------------------------------------------------------------- 1 | *.wav 2 | 3 | R-REP-BS.2217-1/ 4 | ebu_loudness_test_set_v05/ 5 | qualis_test_suite/ 6 | -------------------------------------------------------------------------------- /validation/ebu_tech_3341.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/ebu_tech_3341.pdf -------------------------------------------------------------------------------- /validation/itu-r_bs2217.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/itu-r_bs2217.pdf -------------------------------------------------------------------------------- /validation/meter_ballistics.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/meter_ballistics.flac -------------------------------------------------------------------------------- /validation/meter_ballistics.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/meter_ballistics.pdf -------------------------------------------------------------------------------- /validation/new/kmeter_sine.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/new/kmeter_sine.flac -------------------------------------------------------------------------------- /validation/new/true_peak_1023.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/new/true_peak_1023.flac -------------------------------------------------------------------------------- /validation/new/true_peak_1024.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/new/true_peak_1024.flac -------------------------------------------------------------------------------- /validation/open_document/ebu_tech_3341.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/open_document/ebu_tech_3341.odt -------------------------------------------------------------------------------- /validation/open_document/itu-r_bs2217.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/open_document/itu-r_bs2217.odt -------------------------------------------------------------------------------- /validation/open_document/meter_ballistics.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/open_document/meter_ballistics.odt -------------------------------------------------------------------------------- /validation/open_document/overflow.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/open_document/overflow.odt -------------------------------------------------------------------------------- /validation/open_document/peak_meter.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/open_document/peak_meter.odt -------------------------------------------------------------------------------- /validation/open_document/phase_correlation_meter.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/open_document/phase_correlation_meter.odt -------------------------------------------------------------------------------- /validation/open_document/pink_noise_bandlimited.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/open_document/pink_noise_bandlimited.odt -------------------------------------------------------------------------------- /validation/open_document/rms_sweeps.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/open_document/rms_sweeps.odt -------------------------------------------------------------------------------- /validation/open_document/stereo_meter.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/open_document/stereo_meter.odt -------------------------------------------------------------------------------- /validation/overflow.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/overflow.flac -------------------------------------------------------------------------------- /validation/overflow.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/overflow.pdf -------------------------------------------------------------------------------- /validation/peak_meter.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/peak_meter.flac -------------------------------------------------------------------------------- /validation/peak_meter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/peak_meter.pdf -------------------------------------------------------------------------------- /validation/phase_correlation_meter.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/phase_correlation_meter.flac -------------------------------------------------------------------------------- /validation/phase_correlation_meter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/phase_correlation_meter.pdf -------------------------------------------------------------------------------- /validation/pink_noise_bandlimited.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/pink_noise_bandlimited.flac -------------------------------------------------------------------------------- /validation/pink_noise_bandlimited.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/pink_noise_bandlimited.pdf -------------------------------------------------------------------------------- /validation/rms_sweeps.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/rms_sweeps.flac -------------------------------------------------------------------------------- /validation/rms_sweeps.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/rms_sweeps.pdf -------------------------------------------------------------------------------- /validation/stereo_meter.flac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/stereo_meter.flac -------------------------------------------------------------------------------- /validation/stereo_meter.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mzuther/K-Meter/f6f1a748c970db48b32cdd87d98d5bd330c555e0/validation/stereo_meter.pdf --------------------------------------------------------------------------------