private static void Main(string[] args)
        {
            var path   = @"D:\mp3\mixes\";
            var output = @"D:\code\Downgrooves\src\assets\images\waveforms\";

            _settings                 = new StandardWaveFormRendererSettings();
            _settings.Width           = 1080;
            _settings.BackgroundColor = Color.Transparent;
            //_settings.TopPeakPen = new Pen(Color.FromArgb(1, 255, 255, 255));
            //_settings.BottomPeakPen = new Pen(Color.FromArgb(1, 153, 153, 153));
            _settings.PixelsPerPeak = 1;
            _settings.SpacerPixels  = 0;
            _settings.TopHeight     = 64;
            _settings.BottomHeight  = 64;

            Array.ForEach(Directory.GetFiles(output),
                          delegate(string p) { File.Delete(p); });

            foreach (var item in System.IO.Directory.GetFiles(path, "*.mp3"))
            {
                var fileInfo  = new FileInfo(item);
                var fileName  = fileInfo.Name;
                var imageName = fileInfo.Name.Replace(".mp3", ".png");
                var outPath   = $"{output}{imageName}";
                Console.WriteLine($"Write {outPath}");
                MakeWav(fileInfo.FullName, outPath);
                //return;
            }
        }
Exemple #2
0
        private void RenderChart(PictureBox picbox, string audioFilePath)
        {
            MaxPeakProvider      maxPeakProvider      = new MaxPeakProvider();
            RmsPeakProvider      rmsPeakProvider      = new RmsPeakProvider(200);      // e.g. 200
            SamplingPeakProvider samplingPeakProvider = new SamplingPeakProvider(200); // e.g. 200
            AveragePeakProvider  averagePeakProvider  = new AveragePeakProvider(4);    // e.g. 4

            StandardWaveFormRendererSettings myRendererSettings = new StandardWaveFormRendererSettings();

            myRendererSettings.Width        = 4320;
            myRendererSettings.TopHeight    = 256;
            myRendererSettings.BottomHeight = 256;
            //myRendererSettings.BottomSpacerPen = new Pen(Color.Transparent);
            //myRendererSettings.TopSpacerPen = new Pen(Color.Transparent);
            //myRendererSettings.PixelsPerPeak = 10;
            //myRendererSettings.SpacerPixels = 2;
            myRendererSettings.TopPeakPen      = new Pen(Color.FromArgb(0, 192, 192));
            myRendererSettings.BottomPeakPen   = new Pen(Color.FromArgb(100, 0, 192, 192));
            myRendererSettings.BackgroundColor = Color.Transparent;
            //myRendererSettings.DecibelScale = true;
            WaveFormRenderer renderer = new WaveFormRenderer();

            Image image = renderer.Render(audioFilePath, averagePeakProvider, myRendererSettings);

            picbox.Image = image;
        }
Exemple #3
0
        private void SelectSong_button_Click(object sender, EventArgs e)
        {
            //openFileDialog1.ShowDialog();
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //listBox3.Items.Add(openFileDialog1.SafeFileName); //Addes the song to the list TODO: a function to call
            }

            var maxPeakProvider      = new MaxPeakProvider();
            var rmsPeakProvider      = new RmsPeakProvider(200);      // e.g. 200
            var samplingPeakProvider = new SamplingPeakProvider(200); // e.g. 200
            var averagePeakProvider  = new AveragePeakProvider(4);    // e.g. 4

            var myRendererSettings = new StandardWaveFormRendererSettings();

            myRendererSettings.Width           = 640;
            myRendererSettings.TopHeight       = 32;
            myRendererSettings.BottomHeight    = 32;
            myRendererSettings.BackgroundColor = Color.White;

            var renderer      = new WaveFormRenderer();
            var audioFilePath = "./user_data/sound/" + openFileDialog1.SafeFileName;
            var image         = renderer.Render(audioFilePath, myRendererSettings);

            pictureBox1.Image = image;
        }
Exemple #4
0
        public MainWindow()
        {
            InitializeComponent(); waveFormRenderer = new WaveFormRenderer();

            standardSettings = new StandardWaveFormRendererSettings()
            {
                Name = "Standard"
            };
            var soundcloudOriginalSettings = new SoundCloudOriginalSettings()
            {
                Name = "SoundCloud Original"
            };

            var soundCloudLightBlocks = new SoundCloudBlockWaveFormSettings(System.Drawing.Color.FromArgb(102, 102, 102), System.Drawing.Color.FromArgb(103, 103, 103), System.Drawing.Color.FromArgb(179, 179, 179),
                                                                            System.Drawing.Color.FromArgb(218, 218, 218))
            {
                Name = "SoundCloud Light Blocks"
            };

            var soundCloudDarkBlocks = new SoundCloudBlockWaveFormSettings(System.Drawing.Color.FromArgb(52, 52, 52), System.Drawing.Color.FromArgb(55, 55, 55), System.Drawing.Color.FromArgb(154, 154, 154),
                                                                           System.Drawing.Color.FromArgb(204, 204, 204))
            {
                Name = "SoundCloud Darker Blocks"
            };

            var soundCloudOrangeBlocks = new SoundCloudBlockWaveFormSettings(System.Drawing.Color.FromArgb(255, 76, 0), System.Drawing.Color.FromArgb(255, 52, 2), System.Drawing.Color.FromArgb(255, 171, 141),
                                                                             System.Drawing.Color.FromArgb(255, 213, 199))
            {
                Name = "SoundCloud Orange Blocks"
            };

            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
            };

            var topSpacerColor2 = System.Drawing.Color.FromArgb(64, 224, 224, 224);
            var soundCloudGrayTransparentBlocks = new SoundCloudBlockWaveFormSettings(System.Drawing.Color.FromArgb(196, 224, 225, 224), topSpacerColor2, System.Drawing.Color.FromArgb(196, 128, 128, 128),
                                                                                      System.Drawing.Color.FromArgb(64, 128, 128, 128))
            {
                Name          = "SoundCloud Gray Transparent Blocks",
                PixelsPerPeak = 2,
                SpacerPixels  = 1,
                TopSpacerGradientStartColor = topSpacerColor2,
                BackgroundColor             = System.Drawing.Color.Transparent
            };
        }
Exemple #5
0
        private static async Task RenderAudioAsync(string fileName)
        {
            var averagePeakProvider = new AveragePeakProvider(4);
            var rendererSettings    = new StandardWaveFormRendererSettings
            {
                Width        = 1080,
                TopHeight    = 64,
                BottomHeight = 64
            };
            var renderer = new WaveFormRenderer();
            var image    = await Task.Run(() => renderer.Render(fileName, averagePeakProvider, rendererSettings))
                           .ConfigureAwait(false);

            image.Save($@"../{PathIO.GetFileNameWithoutExtension(fileName)}.png", ImageFormat.Png);
        }
Exemple #6
0
        private void Visualization()
        {
            var rmsPeakProvider    = new RmsPeakProvider(200);
            var myRendererSettings = new StandardWaveFormRendererSettings();

            myRendererSettings.Width           = 1376;
            myRendererSettings.TopHeight       = 91;
            myRendererSettings.BottomHeight    = 91;
            myRendererSettings.BackgroundColor = Color.Black;
            myRendererSettings.TopPeakPen      = penWhite;
            myRendererSettings.BottomPeakPen   = penGray;
            var   renderer = new WaveFormRenderer();
            Image image    = renderer.Render(filepath.Text, rmsPeakProvider, myRendererSettings);

            pictureBoxWave.Image = image;
        }
Exemple #7
0
        //SINGLE-IMPORT AUDIO
        private void button1_Click(object sender, EventArgs e)
        {
            //GET AUDIO FILE
            OpenFileDialog openFileDialog1 = new OpenFileDialog
            {
                InitialDirectory = @"C:\",
                Title            = "Browse Audio Files",

                CheckFileExists = true,
                CheckPathExists = true,

                DefaultExt       = "wav",
                Filter           = "wav files (*.wav)|*.wav",
                FilterIndex      = 2,
                RestoreDirectory = true,

                ReadOnlyChecked = true,
                ShowReadOnly    = true
            };

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                single_audio   = openFileDialog1.FileName;
                textBox1.Text += "Opened Audio File Successfully" + "\r\n";
                textBox2.Text  = "Imported Audio: " + single_audio;
            }

            if (single_audio != null)
            {
                //DISPLAY WAVEFORM
                var maxPeakProvider      = new MaxPeakProvider();
                var rmsPeakProvider      = new RmsPeakProvider(200);      // e.g. 200
                var samplingPeakProvider = new SamplingPeakProvider(200); // e.g. 200
                var averagePeakProvider  = new AveragePeakProvider(4);    // e.g. 4

                var myRendererSettings = new StandardWaveFormRendererSettings();
                myRendererSettings.Width        = 651;
                myRendererSettings.TopHeight    = 24;
                myRendererSettings.BottomHeight = 24;

                var renderer      = new WaveFormRenderer();
                var audioFilePath = single_audio;
                var image         = renderer.Render(audioFilePath, averagePeakProvider, myRendererSettings);

                pictureBox1.Image = image;
            }
        }
Exemple #8
0
        private void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    fileName = openFileDialog1.FileName;
                }
            }
            catch (ArgumentNullException)
            {
                return;
            }

            // 1. Configure Providers
            MaxPeakProvider      maxPeakProvider      = new MaxPeakProvider();
            RmsPeakProvider      rmsPeakProvider      = new RmsPeakProvider(200);      // e.g. 200
            SamplingPeakProvider samplingPeakProvider = new SamplingPeakProvider(200); // e.g. 200
            AveragePeakProvider  averagePeakProvider  = new AveragePeakProvider(4);    // e.g. 4

            // 2. Configure the style of the audio wave image
            StandardWaveFormRendererSettings myRendererSettings = new StandardWaveFormRendererSettings();

            myRendererSettings.Width        = 1080;
            myRendererSettings.TopHeight    = 64;
            myRendererSettings.BottomHeight = 64;

            myRendererSettings.BackgroundImage = new Bitmap(@"C:\Users\Kao\Pictures\Background\73109534_p6_master1200.jpg");

            // 3. Define the audio file from which the audio wave will be created and define the providers and settings
            WaveFormRenderer renderer = new WaveFormRenderer();
            Image            image    = renderer.Render(fileName, averagePeakProvider, myRendererSettings);

            // 4. Store the image
            image.Save(@"../render.png", ImageFormat.Png);
            pictureBox1.Image = image;
            // Or jpeg, however PNG is recommended if your audio wave needs transparency
            // image.Save(@"C:\Users\sdkca\Desktop\myfile.jpg", ImageFormat.Jpeg);

            waveOut = new WaveOut();
            waveOut.PlaybackStopped += WaveOut_OnPlaybackStopped;
            var reader = new Mp3FileReader(fileName);

            waveOut.Init(reader);
        }
Exemple #9
0
        public Image audioWave(int Width, ILogger log)
        {
            //MaxPeakProvider maxPeakProvider = new MaxPeakProvider();
            //RmsPeakProvider rmsPeakProvider = new RmsPeakProvider(1000); // e.g. 200
            SamplingPeakProvider samplingPeakProvider = new SamplingPeakProvider(200); // e.g. 200
            //AveragePeakProvider averagePeakProvider = new AveragePeakProvider(3); // e.g. 4

            StandardWaveFormRendererSettings myRendererSettings = new StandardWaveFormRendererSettings();

            myRendererSettings.Width           = Width;
            myRendererSettings.TopHeight       = 128;
            myRendererSettings.BottomHeight    = 128;
            myRendererSettings.PixelsPerPeak   = 1;
            myRendererSettings.BackgroundColor = Color.LightGray;

            renderer = new WaveFormRenderer();
            return(renderer.Render(this.apath, samplingPeakProvider, myRendererSettings, log));
        }
Exemple #10
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var openFileDialog1 = new OpenFileDialog();

            try
            {
                fileName = openFileDialog1.FileName;
            }
            catch (ArgumentNullException)
            {
                return;
            }

            // 1. Configure Providers
            MaxPeakProvider      maxPeakProvider      = new MaxPeakProvider();
            RmsPeakProvider      rmsPeakProvider      = new RmsPeakProvider(200);      // e.g. 200
            SamplingPeakProvider samplingPeakProvider = new SamplingPeakProvider(200); // e.g. 200
            AveragePeakProvider  averagePeakProvider  = new AveragePeakProvider(4);    // e.g. 4

            // 2. Configure the style of the audio wave image
            StandardWaveFormRendererSettings myRendererSettings = new StandardWaveFormRendererSettings();

            myRendererSettings.Width        = 1080;
            myRendererSettings.TopHeight    = 64;
            myRendererSettings.BottomHeight = 64;

            myRendererSettings.BackgroundImage = new Bitmap(@"C:\Users\ciit\Pictures\Konachan.com - 218504 arima_kousei a-shacho blonde_hair dark glasses instrument male miyazono_kaori piano shigatsu_wa_kimi_no_uso tree violin.jpg");

            // 3. Define the audio file from which the audio wave will be created and define the providers and settings
            WaveFormRenderer renderer = new WaveFormRenderer();
            Image            image    = renderer.Render(fileName, averagePeakProvider, myRendererSettings);

            // 4. Store the image
            image.Save(@"../render.png", ImageFormat.Png);
            MusicImage.Image = image;
            // Or jpeg, however PNG is recommended if your audio wave needs transparency
            // image.Save(@"C:\Users\sdkca\Desktop\myfile.jpg", ImageFormat.Jpeg);

            waveOut = new WaveOut();
            waveOut.PlaybackStopped += WaveOut_OnPlaybackStopped;
            var reader = new Mp3FileReader(fileName);

            waveOut.Init(reader);
        }
Exemple #11
0
 private void makeAWaveFormToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         WaveFormRendererLib.WaveFormRenderer waveFormRenderer = new WaveFormRenderer();
         StandardWaveFormRendererSettings     settings         = new StandardWaveFormRendererSettings();
         settings.DecibelScale = true;
         settings.Width        = 600;
         settings.TopHeight    = 40;
         settings.BottomHeight = 40;
         var image = waveFormRenderer.Render(OFD.FileName, settings);
         SFD.Filter = "PNG|*.png";
         SFD.ShowDialog();
         image.Save(SFD.FileName);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        private void ButBrowse_Click_1(object sender, EventArgs e)      //browse button
        {
            string oSelectedFile = "";

            System.Windows.Forms.OpenFileDialog oDlg = new System.Windows.Forms.OpenFileDialog();
            if (System.Windows.Forms.DialogResult.OK == oDlg.ShowDialog())
            {
                oSelectedFile = oDlg.FileName;      //selected file = oSelectedFile
                textBox1.Text = oSelectedFile;

                //configure Providers
                MaxPeakProvider      maxPeakProvider      = new MaxPeakProvider();
                RmsPeakProvider      rmsPeakProvider      = new RmsPeakProvider(200);
                SamplingPeakProvider samplingPeakProvider = new SamplingPeakProvider(200);      //could control these values with sliders?
                AveragePeakProvider  averagePeakProvider  = new AveragePeakProvider(4);

                //configure the style of the audio wave image
                StandardWaveFormRendererSettings myRendererSettings = new StandardWaveFormRendererSettings();
                myRendererSettings.Width        = 1080;
                myRendererSettings.TopHeight    = 64;
                myRendererSettings.BottomHeight = 64;

                WaveFormRenderer renderer      = new WaveFormRenderer();
                String           audioFilePath = textBox1.Text;
                Image            image         = renderer.Render(audioFilePath, averagePeakProvider, myRendererSettings);
                string           folder        = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
                System.IO.Directory.CreateDirectory(folder + "\\AudioManipulation");
                image.Save(folder + "\\AudioManipulation\\output.png", ImageFormat.Png);

                AddToLog("- Sound Played");

                //loads waveform after generation on file browse
                Image loadImage = Image.FromFile("\\output.png");
                pictureBox2.Image  = image;
                pictureBox2.Height = image.Height;
                pictureBox2.Width  = image.Width;
            }
        }
Exemple #13
0
        public AudioFileViewModel(string filepath)
        {
            FilePath = filepath;

            var blockSize      = 200;
            var sampleInterval = 200;
            var scaleFactor    = 4;

            var maxPeakProvider      = new MaxPeakProvider();
            var rmsPeakProvider      = new RmsPeakProvider(blockSize);           // e.g. 200
            var samplingPeakProvider = new SamplingPeakProvider(sampleInterval); // e.g. 200
            var averagePeakProvider  = new AveragePeakProvider(scaleFactor);     // e.g. 4

            var myRendererSettings = new StandardWaveFormRendererSettings();

            myRendererSettings.Width        = 640;
            myRendererSettings.TopHeight    = 32;
            myRendererSettings.BottomHeight = 32;

            var renderer = new WaveFormRenderer();

            Image = ConvertImage(renderer.Render(FilePath, averagePeakProvider, myRendererSettings));
        }