private BitmapImage RenderWave(string filePath) { var rnd = new WaveFormRenderer(); var topSpacerColor = System.Drawing.Color.FromArgb(64, 83, 22, 3); var soundCloudOrangeTransparentBlocks = new SoundCloudBlockWaveFormSettings(System.Drawing.Color.FromArgb(196, 197, 53, 0), topSpacerColor, System.Drawing.Color.FromArgb(196, 79, 26, 0), System.Drawing.Color.FromArgb(64, 79, 79, 79)) { Name = "SoundCloud Orange Transparent Blocks", PixelsPerPeak = 2, SpacerPixels = 1, TopSpacerGradientStartColor = topSpacerColor, BackgroundColor = System.Drawing.Color.Transparent }; WaveFormRendererSettings settings = soundCloudOrangeTransparentBlocks; settings.TopHeight = 50; settings.BottomHeight = 0; settings.Width = 500; settings.DecibelScale = false; var img = rnd.Render(filePath, new RmsPeakProvider(200), settings); var bmp = (Bitmap)img; return(ToBitmapImage(bmp)); }
private void RenderThreadFunc(IPeakProvider peakProvider, WaveFormRendererSettings settings) { try { System.Drawing.Image image = _waveFormRenderer.Render(SoundItemData.FullPath, peakProvider, settings); Dispatcher.Invoke(() => { MemoryStream stream = new MemoryStream(); image.Save(stream, ImageFormat.Png); SoundItemData.Image = new BitmapImage(); SoundItemData.Image.BeginInit(); SoundItemData.Image.StreamSource = stream; SoundItemData.Image.EndInit(); SoundWave.Stretch = Stretch.Fill; SoundWave.Source = SoundItemData.Image; }); } catch (Exception e) { int i = 0; i++; } }
public Image Render(string selectedFile, IPeakProvider peakProvider, WaveFormRendererSettings settings) { using (var reader = new AudioFileReader(selectedFile)) { int bytesPerSample = (reader.WaveFormat.BitsPerSample / 8); var samples = reader.Length / (bytesPerSample); var samplesPerPixel = (int)(samples / settings.Width); var stepSize = settings.PixelsPerPeak + settings.SpacerPixels; peakProvider.Init(reader, samplesPerPixel * stepSize); return(Render(peakProvider, settings)); } }
private WaveFormRendererSettings GetRendererSettings() { var settings = new WaveFormRendererSettings() { TopHeight = 20, BottomHeight = 20, Width = 10, DecibelScale = true }; return(settings); }
private void RenderThreadFunc(IPeakProvider peakProvider, WaveFormRendererSettings settings) { System.Drawing.Image image = null; try { image = waveFormRenderer.Render(selectedFile, peakProvider, settings); hello.Source = helperext.ToWpfImage(image); } catch (Exception e) { MessageBox.Show(e.Message); } }
private void RenderThreadFunc(IPeakProvider peakProvider, WaveFormRendererSettings settings) { Image image = null; try { image = waveFormRenderer.Render(fileName, peakProvider, settings); } catch (Exception e) { MessageBox.Show("error"); MessageBox.Show(e.Message); } BeginInvoke((Action)(() => FinishedRender(image))); }
private static Image Render(IPeakProvider peakProvider, WaveFormRendererSettings settings) { if (settings.DecibelScale) { peakProvider = new DecibelPeakProvider(peakProvider, 48); } var b = new Bitmap(settings.Width, settings.TopHeight + settings.BottomHeight); if (settings.BackgroundColor == Color.Transparent) { b.MakeTransparent(); } using (var g = Graphics.FromImage(b)) { g.FillRectangle(settings.BackgroundBrush, 0, 0, b.Width, b.Height); var midPoint = settings.TopHeight; int x = 0; var currentPeak = peakProvider.GetNextPeak(); while (x < settings.Width) { var nextPeak = peakProvider.GetNextPeak(); for (int n = 0; n < settings.PixelsPerPeak; n++) { var lineHeight = settings.TopHeight * currentPeak.Max; g.DrawLine(settings.TopPeakPen, x, midPoint, x, midPoint - lineHeight); lineHeight = settings.BottomHeight * currentPeak.Min; g.DrawLine(settings.BottomPeakPen, x, midPoint, x, midPoint - lineHeight); x++; } for (int n = 0; n < settings.SpacerPixels; n++) { // spacer bars are always the lower of the var max = Math.Min(currentPeak.Max, nextPeak.Max); var min = Math.Max(currentPeak.Min, nextPeak.Min); var lineHeight = settings.TopHeight * max; g.DrawLine(settings.TopSpacerPen, x, midPoint, x, midPoint - lineHeight); lineHeight = settings.BottomHeight * min; g.DrawLine(settings.BottomSpacerPen, x, midPoint, x, midPoint - lineHeight); x++; } currentPeak = nextPeak; } } return(b); }
private void RenderThreadFunc(IPeakProvider peakProvider, WaveFormRendererSettings settings) { Image image = null; try { image = waveFormRenderer.Render(selectedFile, peakProvider, settings); } catch (Exception e) { MessageBox.Show(e.Message); } FinishedRender(image); }
private void RenderThread(IPeakProvider peak, WaveFormRendererSettings settings) { Image image = null; try { image = waveFormRenderer.Render(path, peak, settings); } catch (Exception e) { MessageBox.Show(e.Message); } BeginInvoke((Action)(() => PctbxWave.Image = image)); }
public Form1() { InitializeComponent(); outputDevice = new WaveOutEvent(); standardSettings = new StandardWaveFormRendererSettings { Name = "StandardSettings", TopPeakPen = new Pen(Color.DarkRed), BottomPeakPen = new Pen(Color.DarkViolet) }; var topSpacerColor = Color.FromArgb(64, 83, 22, 3); var waveGraph = new SoundCloudBlockWaveFormSettings(Color.Coral, Color.Aqua, Color.Black, Color.AliceBlue) { Name = "Waves", PixelsPerPeak = 2, SpacerPixels = 1, TopSpacerGradientStartColor = Color.Aqua, BackgroundColor = Color.Transparent }; }
public MainForm() { InitializeComponent(); waveFormRenderer = new WaveFormRenderer(); standardSettings = new StandardWaveFormRendererSettings() { Name = "Standard" }; var soundcloudOriginalSettings = new SoundCloudOriginalSettings() { Name = "SoundCloud Original" }; var soundCloudLightBlocks = new SoundCloudBlockWaveFormSettings(Color.FromArgb(102, 102, 102), Color.FromArgb(103, 103, 103), Color.FromArgb(179, 179, 179), Color.FromArgb(218, 218, 218)) { Name = "SoundCloud Light Blocks" }; var soundCloudDarkBlocks = new SoundCloudBlockWaveFormSettings(Color.FromArgb(52, 52, 52), Color.FromArgb(55, 55, 55), Color.FromArgb(154, 154, 154), Color.FromArgb(204, 204, 204)) { Name = "SoundCloud Darker Blocks" }; var soundCloudOrangeBlocks = new SoundCloudBlockWaveFormSettings(Color.FromArgb(255, 76, 0), Color.FromArgb(255, 52, 2), Color.FromArgb(255, 171, 141), Color.FromArgb(255, 213, 199)) { Name = "SoundCloud Orange Blocks" }; var topSpacerColor = Color.FromArgb(64, 83, 22, 3); var soundCloudOrangeTransparentBlocks = new SoundCloudBlockWaveFormSettings(Color.FromArgb(196, 197, 53, 0), topSpacerColor, Color.FromArgb(196, 79, 26, 0), Color.FromArgb(64, 79, 79, 79)) { Name = "SoundCloud Orange Transparent Blocks", PixelsPerPeak = 2, SpacerPixels = 1, TopSpacerGradientStartColor = topSpacerColor, BackgroundColor = Color.Transparent }; var topSpacerColor2 = Color.FromArgb(64, 224, 224, 224); var soundCloudGrayTransparentBlocks = new SoundCloudBlockWaveFormSettings(Color.FromArgb(196, 224, 225, 224), topSpacerColor2, Color.FromArgb(196, 128, 128, 128), Color.FromArgb(64, 128, 128, 128)) { Name = "SoundCloud Gray Transparent Blocks", PixelsPerPeak = 2, SpacerPixels = 1, TopSpacerGradientStartColor = topSpacerColor2, BackgroundColor = Color.Transparent }; buttonBottomColour.BackColor = standardSettings.BottomPeakPen.Color; buttonTopColour.BackColor = standardSettings.TopPeakPen.Color; comboBoxPeakCalculationStrategy.Items.Add("Max Absolute Value"); comboBoxPeakCalculationStrategy.Items.Add("Max Rms Value"); comboBoxPeakCalculationStrategy.Items.Add("Sampled Peaks"); comboBoxPeakCalculationStrategy.Items.Add("Scaled Average"); comboBoxPeakCalculationStrategy.SelectedIndex = 0; comboBoxPeakCalculationStrategy.SelectedIndexChanged += (sender, args) => RenderWaveform(); comboBoxRenderSettings.DisplayMember = "Name"; comboBoxRenderSettings.DataSource = new[] { standardSettings, soundcloudOriginalSettings, soundCloudLightBlocks, soundCloudDarkBlocks, soundCloudOrangeBlocks, soundCloudOrangeTransparentBlocks, soundCloudGrayTransparentBlocks }; comboBoxRenderSettings.SelectedIndex = 5; comboBoxRenderSettings.SelectedIndexChanged += (sender, args) => RenderWaveform(); labelRendering.Visible = false; }
public Image Render(string selectedFile, WaveFormRendererSettings settings) { return(Render(selectedFile, new MaxPeakProvider(), settings)); }
public LightBallHelper() { InitializeComponent(); labelNowTime.Text = prefixNowTime; labelTotalTime.Text = prefixTotalTime; /* Waveform setup */ waveFormRenderer = new WaveFormRenderer(); standardSettings = new StandardWaveFormRendererSettings() { Name = "Standard" }; BtnTopColour.BackColor = standardSettings.TopPeakPen.Color; BtnBottomColour.BackColor = standardSettings.BottomPeakPen.Color; updownTopHeight.Value = 80; updownBottomHeight.Value = 80; labelRendering.Visible = false; timer1.Enabled = false; Bitmap bitmap = new Bitmap(Resource1.indicator); pictureBoxIndicator.BackColor = Color.Transparent; pictureBoxIndicator.Location = new Point(START_POS - 5, WAVE_LOC_Y - 5); pictureBoxIndicator.Image = bitmap; UpdownOffset.Value = 50; comboBoxPeakCalculationStrategy.Items.Add("Max Rms Value"); comboBoxPeakCalculationStrategy.Items.Add("Max Absolute Value"); comboBoxPeakCalculationStrategy.Items.Add("Sampled Peaks"); comboBoxPeakCalculationStrategy.Items.Add("Scaled Average"); comboBoxPeakCalculationStrategy.SelectedIndex = 0; comboBoxPeakCalculationStrategy.SelectedIndexChanged += (sender, args) => { if (!String.IsNullOrEmpty(fileName)) { RenderWaveform(); } }; /* Effects Setup */ effectListObj = new List <Effects>(); effectsOptions.Items.Add(Effects.EffectsNames.EffectHSL.ToString()); effectsOptions.Items.Add(Effects.EffectsNames.EffectColorTransition.ToString()); effectsOptions.Items.Add(Effects.EffectsNames.EffectSparkAsync.ToString()); effectsOptions.Items.Add(Effects.EffectsNames.EffectSparkSync.ToString()); effectsOptions.Items.Add(Effects.EffectsNames.EffectMeteorAsync.ToString()); effectsOptions.Items.Add(Effects.EffectsNames.EffectMeteorSync.ToString()); effectsOptions.Items.Add(Effects.EffectsNames.EffectBounceAsync.ToString()); effectsOptions.Items.Add(Effects.EffectsNames.EffectBounceSync.ToString()); keyColor = Color.AliceBlue; setColor(keyColor); textBoxGlobalStarting.Text = getFormatedTimeString(Effects.globalStartingTime); textBoxNumberOfBalls.Text = Effects.numOfBall.ToString(); // Setup Effect Attr Objects { effectAttrLabel[0] = this.labelEffectAttr0; effectAttrValue[0] = this.textBoxEffectAttr0; effectAttrUnit[0] = this.unitEffectAttr0; effectAttrLabel[1] = this.labelEffectAttr1; effectAttrValue[1] = this.textBoxEffectAttr1; effectAttrUnit[1] = this.unitEffectAttr1; effectAttrLabel[2] = this.labelEffectAttr2; effectAttrValue[2] = this.textBoxEffectAttr2; effectAttrUnit[2] = this.unitEffectAttr2; effectAttrLabel[3] = this.labelEffectAttr3; effectAttrValue[3] = this.textBoxEffectAttr3; effectAttrUnit[3] = this.unitEffectAttr3; effectAttrLabel[4] = this.labelEffectAttr4; effectAttrValue[4] = this.textBoxEffectAttr4; effectAttrUnit[4] = this.unitEffectAttr4; effectAttrLabel[5] = this.labelEffectAttr5; effectAttrValue[5] = this.textBoxEffectAttr5; effectAttrUnit[5] = this.unitEffectAttr5; } /* Configuration */ textBoxGlobalStarting.Text = LightBallHelper.getFormatedTimeString(TimeSpan.Zero); textBoxEffectAttr5.Text = "0"; }