HISE Logo Forum
    • Categories
    • Register
    • Login

    scrolling audio display/visualizer

    Scheduled Pinned Locked Moved General Questions
    14 Posts 4 Posters 536 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • mmprodM
      mmprod
      last edited by

      Is it possible to make a real-time audio display on the user interface? This way the user can see the output waveform that is generated in real time. The audio waveform would move across the screen as it is outputted.

      IMG_3432.jpeg

      This looks like what I’m trying to describe

      For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
      John 3:16

      clevername27C LindonL 2 Replies Last reply Reply Quote 0
      • clevername27C
        clevername27 @mmprod
        last edited by

        @mmprod It certainly is possible. Off the top of my head, I'm not sure what the easiest way to do it is. Someone smarter than me will prob have the answer. One interesting thing would be to use the internal Tile that already does this (and is more interesting than a waveform). Whatever that interface is you have there, I like it - reminiscent of an oscilloscope, and lots of data.

        1 Reply Last reply Reply Quote 0
        • LindonL
          Lindon @mmprod
          last edited by

          @mmprod add a floating tile, set it to AudioAnalyser, and connect it to an Analyser set to Oscilloscope using the Data field:

          {
            "ProcessorId": "YourAnalyserNameHere",
            "Index": 1,
            "FollowWorkspace": false
          }
          

          HISE Development for hire.
          www.channelrobot.com

          mmprodM 2 Replies Last reply Reply Quote 0
          • mmprodM
            mmprod @Lindon
            last edited by

            @Lindon thanks! I forgot that the audio analyzer had an oscilloscope…….

            Is it style-able any further?

            For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
            John 3:16

            dannytaurusD 1 Reply Last reply Reply Quote 0
            • mmprodM
              mmprod @Lindon
              last edited by

              @Lindon Also, can I zoom out even more? Like more than 32768 samples

              For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
              John 3:16

              dannytaurusD 1 Reply Last reply Reply Quote 0
              • mmprodM
                mmprod
                last edited by

                Or perhaps slow down the rate at which it moves across the screen?

                For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
                John 3:16

                1 Reply Last reply Reply Quote 0
                • dannytaurusD
                  dannytaurus @mmprod
                  last edited by dannytaurus

                  @mmprod said in scrolling audio display/visualizer:

                  Is it style-able any further?

                  Use a LookAndFeel script

                  const laf = Content.createLocalLookAndFeel();
                  
                  laf.registerFunction("drawAnalyserBackground", function(g, obj)
                  {
                  	//fill the background
                          g.fillAll(Colours.blue);
                  });
                  
                  laf.registerFunction("drawAnalyserPath", function(g, obj)
                  {
                  	// draw the outline path
                          g.setColour(Colours.red);
                  	g.fillPath(obj.path, obj.area);
                  	// fill the path
                          g.setColour(Colours.red);
                  	g.drawPath(obj.path, obj.area, 1);
                  });
                  
                  Content.getComponent("Analyser1").setLocalLookAndFeel(laf);
                  

                  Meat Beats: https://meatbeats.com
                  Klippr Video: https://klippr.video

                  mmprodM 2 Replies Last reply Reply Quote 0
                  • dannytaurusD
                    dannytaurus @mmprod
                    last edited by dannytaurus

                    @mmprod said in scrolling audio display/visualizer:

                    @Lindon Also, can I zoom out even more? Like more than 32768 samples

                    Synth.getEffect("Analyser1").setAttribute(1, 65536);
                    

                    This is double the 32768 available in the dropdown, and therefore half the speed of scrolling, and seems to be the maximum allowed. Settings higher than this are ignored.

                    The '1' refers to the BufferSize attribute.

                    Meat Beats: https://meatbeats.com
                    Klippr Video: https://klippr.video

                    1 Reply Last reply Reply Quote 0
                    • mmprodM
                      mmprod @dannytaurus
                      last edited by

                      @dannytaurus said in scrolling audio display/visualizer:

                      @mmprod said in scrolling audio display/visualizer:

                      Is it style-able any further?

                      Use a LookAndFeel script

                      const laf = Content.createLocalLookAndFeel();
                      
                      laf.registerFunction("drawAnalyserBackground", function(g, obj)
                      {
                      	//fill the background
                              g.fillAll(Colours.blue);
                      });
                      
                      laf.registerFunction("drawAnalyserPath", function(g, obj)
                      {
                      	// draw the outline path
                              g.setColour(Colours.red);
                      	g.fillPath(obj.path, obj.area);
                      	// fill the path
                              g.setColour(Colours.red);
                      	g.drawPath(obj.path, obj.area, 1);
                      });
                      
                      Content.getComponent("Analyser1").setLocalLookAndFeel(laf);
                      

                      Aha, thank you! drawAnalyserBackground/Path does the trick

                      For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
                      John 3:16

                      1 Reply Last reply Reply Quote 0
                      • mmprodM
                        mmprod @dannytaurus
                        last edited by

                        @dannytaurus said in scrolling audio display/visualizer:

                        @mmprod said in scrolling audio display/visualizer:

                        Is it style-able any further?

                        Use a LookAndFeel script

                        const laf = Content.createLocalLookAndFeel();
                        
                        laf.registerFunction("drawAnalyserBackground", function(g, obj)
                        {
                        	//fill the background
                                g.fillAll(Colours.blue);
                        });
                        
                        laf.registerFunction("drawAnalyserPath", function(g, obj)
                        {
                        	// draw the outline path
                                g.setColour(Colours.red);
                        	g.fillPath(obj.path, obj.area);
                        	// fill the path
                                g.setColour(Colours.red);
                        	g.drawPath(obj.path, obj.area, 1);
                        });
                        
                        Content.getComponent("Analyser1").setLocalLookAndFeel(laf);
                        

                        Thanks, thats exactly what I needed

                        For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
                        John 3:16

                        1 Reply Last reply Reply Quote 0
                        • mmprodM
                          mmprod
                          last edited by

                          By any chance, can I style things other than color as well?

                          For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
                          John 3:16

                          dannytaurusD 1 Reply Last reply Reply Quote 0
                          • dannytaurusD
                            dannytaurus @mmprod
                            last edited by dannytaurus

                            @mmprod said in scrolling audio display/visualizer:

                            By any chance, can I style things other than color as well?

                            Like what? There's not much else to customize.

                            You can already set the width and height, the colours used to draw the waveform, including the stroke width of the outline, and the colour of the background. By setting the buffer size you are also setting the scroll speed.

                            In my plugin the audio is mono so I display only one channel of the waveform by putting the floating tile in a panel and making it twice the height. The bottom half is cut off by the panel bounds.

                            Meat Beats: https://meatbeats.com
                            Klippr Video: https://klippr.video

                            mmprodM 1 Reply Last reply Reply Quote 0
                            • mmprodM
                              mmprod @dannytaurus
                              last edited by

                              @dannytaurus

                              IMG_3434.jpeg

                              For example is it possible in hise to make the audio visualizer lines? Like in the image above.

                              For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
                              John 3:16

                              mmprodM 1 Reply Last reply Reply Quote 0
                              • mmprodM
                                mmprod @mmprod
                                last edited by

                                @mmprod here’s an even better example:

                                For God so loved the world that he gave his one and only Son, that whoever believes in him shall not perish but have eternal life.
                                John 3:16

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                12

                                Online

                                1.8k

                                Users

                                11.9k

                                Topics

                                103.8k

                                Posts