mirror of
https://github.com/DarthAffe/KeyboardAudioVisualizer.git
synced 2025-12-12 23:28:30 +00:00
102 lines
7.2 KiB
XML
102 lines
7.2 KiB
XML
<styles:CachedResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:styles="clr-namespace:KeyboardAudioVisualizer.Styles"
|
|
xmlns:visualizationProvider="clr-namespace:KeyboardAudioVisualizer.AudioProcessing.VisualizationProvider"
|
|
xmlns:controls="clr-namespace:KeyboardAudioVisualizer.Controls"
|
|
xmlns:system="clr-namespace:System;assembly=mscorlib"
|
|
xmlns:attached="clr-namespace:KeyboardAudioVisualizer.Attached">
|
|
|
|
<styles:CachedResourceDictionary.MergedDictionaries>
|
|
<styles:CachedResourceDictionary Source="/KeyboardAudioVisualizer;component/Styles/FrameworkElement.xaml" />
|
|
<styles:CachedResourceDictionary Source="/KeyboardAudioVisualizer;component/Styles/Theme.xaml" />
|
|
</styles:CachedResourceDictionary.MergedDictionaries>
|
|
|
|
<DataTemplate DataType="{x:Type visualizationProvider:FrequencyBarsVisualizationProviderConfiguration}">
|
|
<Grid>
|
|
<Grid.Resources>
|
|
<Style BasedOn="{StaticResource StyleLabelFormular}" TargetType="Label" />
|
|
<Style BasedOn="{StaticResource StyleTextBlockFormular}" TargetType="TextBlock" />
|
|
<Style BasedOn="{StaticResource StyleListBoxFormular}" TargetType="ListBox" />
|
|
|
|
<ObjectDataProvider x:Key="SpectrumModes" MethodName="GetValues" ObjectType="{x:Type system:Enum}">
|
|
<ObjectDataProvider.MethodParameters>
|
|
<x:Type TypeName="visualizationProvider:SpectrumMode"/>
|
|
</ObjectDataProvider.MethodParameters>
|
|
</ObjectDataProvider>
|
|
|
|
<ObjectDataProvider x:Key="ValueModes" MethodName="GetValues" ObjectType="{x:Type system:Enum}">
|
|
<ObjectDataProvider.MethodParameters>
|
|
<x:Type TypeName="visualizationProvider:ValueMode"/>
|
|
</ObjectDataProvider.MethodParameters>
|
|
</ObjectDataProvider>
|
|
</Grid.Resources>
|
|
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="8" />
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="8" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<controls:Formular Grid.Column="0">
|
|
<Label controls:Formular.IsLabel="True" Content="Spectrum:" />
|
|
<ComboBox controls:Formular.Fill="True"
|
|
ItemsSource="{Binding Source={StaticResource SpectrumModes}}"
|
|
SelectedItem="{Binding SpectrumMode}"
|
|
ToolTip="Defines how the spectrum is grouped together.
 - Linear: Each bar represents the same range of frequencies.
 - Logarithmic: The higher the frequencies get the wider the range of grouped frequencies.
 - Gamma: Uses a configurable Gamma-Value to group the frequencies." />
|
|
|
|
<Label controls:Formular.IsLabel="True" Content="Value:" />
|
|
<ComboBox controls:Formular.Fill="True"
|
|
ItemsSource="{Binding Source={StaticResource ValueModes}}"
|
|
SelectedItem="{Binding ValueMode}"
|
|
ToolTip="Defines how the value of a bar is calculated.
 - Sum: Sums the power of all frequencies grouped in the bar using all available data.
 - Max: Uses the maximum value in each group making sure peaks are caught well.
 - Average: Uses the average of all frequencies grouped in the bar. " />
|
|
|
|
<Label controls:Formular.IsLabel="True" Content="Bars:" />
|
|
<Slider controls:Formular.Fill="True" Minimum="1" Maximum="96" IsSnapToTickEnabled="True" TickFrequency="1" TickPlacement="BottomRight"
|
|
Value="{Binding Bars}"
|
|
ToolTip="The number of bars used to represent the spectrum.." />
|
|
</controls:Formular>
|
|
|
|
<controls:Formular Grid.Column="2">
|
|
<Label controls:Formular.IsLabel="True" Content="Min Freq.:" />
|
|
<Slider controls:Formular.Fill="True" Minimum="0" Maximum="22100" IsSnapToTickEnabled="True" TickFrequency="10" TickPlacement="None"
|
|
Value="{Binding MinFrequency}"
|
|
attached:SliderValue.Unit="Hz"
|
|
ToolTip="The minimum frequency used in the graph." />
|
|
|
|
<Label controls:Formular.IsLabel="True" Content="Max Freq.:" />
|
|
<Slider controls:Formular.Fill="True" Minimum="0" Maximum="22100" IsSnapToTickEnabled="True" TickFrequency="10" TickPlacement="None"
|
|
Value="{Binding MaxFrequency}"
|
|
attached:SliderValue.Unit="Hz"
|
|
ToolTip="The maximum frequency used in the graph." />
|
|
|
|
<Label controls:Formular.IsLabel="True" Content="Gamma:" />
|
|
<Slider controls:Formular.Fill="True" Minimum="1" Maximum="6" IsSnapToTickEnabled="True" TickFrequency="0.25" TickPlacement="BottomRight"
|
|
IsEnabled="{Binding SpectrumMode, Converter={StaticResource EqualsToBoolConverter}, ConverterParameter={x:Static visualizationProvider:SpectrumMode.Gamma}}"
|
|
Value="{Binding Gamma}"
|
|
ToolTip="Only used if 'Gamma' is selected as spectrum!
Higher values cause more compression of high frequencies." />
|
|
</controls:Formular>
|
|
|
|
<controls:Formular Grid.Column="4">
|
|
<Label controls:Formular.IsLabel="True" controls:Formular.LineBreaks="1" Content="Reference:" />
|
|
<Slider controls:Formular.Fill="True" Minimum="1" Maximum="240" IsSnapToTickEnabled="True" TickFrequency="1" TickPlacement="None"
|
|
Value="{Binding ReferenceLevel}"
|
|
attached:SliderValue.Unit="dB"
|
|
ToolTip="The reference value used to calculate the power of each bar.
(You can read this as 'scaling')" />
|
|
|
|
<Label controls:Formular.IsLabel="True" controls:Formular.LineBreaks="1" Content="Smoothing:" />
|
|
<Slider controls:Formular.Fill="True" Minimum="1" Maximum="10" IsSnapToTickEnabled="True" TickFrequency="0.5" TickPlacement="BottomRight"
|
|
Value="{Binding Smoothing}"
|
|
ToolTip="Smooths the graph to prevent flickering.
Low values will cause a hectic fast plot, high values a slow one without peaks." />
|
|
|
|
<Label controls:Formular.IsLabel="True" controls:Formular.LineBreaks="1" Content="Emphasize:" />
|
|
<Slider controls:Formular.Fill="True" Minimum="0" Maximum="2" IsSnapToTickEnabled="True" TickFrequency="0.05" TickPlacement="BottomRight"
|
|
Value="{Binding EmphasisePeaks}"
|
|
ToolTip="Emphasizes peaks. The higher the value, the bigger the difference between a 'loud-bar' and a 'quite-bar'." />
|
|
</controls:Formular>
|
|
</Grid>
|
|
</DataTemplate>
|
|
|
|
</styles:CachedResourceDictionary>
|
|
|