HISE Logo Forum
    • Categories
    • Register
    • Login

    Haha the easter bunny has delivered.

    Scheduled Pinned Locked Moved General Questions
    loris
    99 Posts 10 Posters 7.7k 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.
    • d.healeyD
      d.healey @ustk
      last edited by d.healey

      @ustk I use audacity and then export the list to csv, open in a spreadsheet, and filter the data. Might be too slow though if you have a lot of samples

      ac264fce-27a0-494d-933d-54c6740ac435-image.png

      Libre Wave - Freedom respecting instruments and effects
      My Patreon - HISE tutorials
      YouTube Channel - Public HISE tutorials

      ustkU 1 Reply Last reply Reply Quote 0
      • ustkU
        ustk @d.healey
        last edited by

        @d-healey Yeah but remember it has to be doable in a compiled project in the end ;)

        Can't help pressing F5 in the forum...

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

          @ustk cant you use Loris in HISE to generate the SDIF file and then some other (not open source) process to read the partials from the SDIF?

          HISE Development for hire.
          www.channelrobot.com

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

            @Lindon what format is the SDIF file?

            HISE Development for hire.
            www.channelrobot.com

            ustkU 1 Reply Last reply Reply Quote 0
            • ustkU
              ustk @Lindon
              last edited by ustk

              @Lindon Don't you know what an SDIF file is, Lindon? Because... well... I don't... :)

              WikiWiki:
              "SDIF, "Sound Description Interchange Format" is a standard for the well-defined and extensible interchange of a variety of sound descriptions."

              Can't help pressing F5 in the forum...

              LindonL hisefiloH 2 Replies Last reply Reply Quote 0
              • LindonL
                Lindon @ustk
                last edited by

                @ustk its the partials analysis produced by loris analyse - essentially the sines and their envelopes that (when combined) re-generate your original audio...

                HISE Development for hire.
                www.channelrobot.com

                ustkU 1 Reply Last reply Reply Quote 2
                • ustkU
                  ustk @Lindon
                  last edited by

                  @Lindon A nice idea indeed, if it's authorised by the license

                  Can't help pressing F5 in the forum...

                  Christoph HartC 1 Reply Last reply Reply Quote 0
                  • Christoph HartC
                    Christoph Hart @ustk
                    last edited by

                    @ustk you can also build an open source analyser app that stores the data in a format that you can define yourself so you don‘t have to come up with an SDIF parser.

                    ustkU 1 Reply Last reply Reply Quote 1
                    • ustkU
                      ustk @Christoph Hart
                      last edited by

                      @Christoph-Hart I just need to get the harmonics from any FFT solution so let stay simple, especially since Hise probably has everything I need at some modifications away :)

                      Can't help pressing F5 in the forum...

                      1 Reply Last reply Reply Quote 0
                      • hisefiloH
                        hisefilo @ustk
                        last edited by

                        @ustk https://sourceforge.net/projects/sdif/files/sdif/SDIF-3.11.4/SDIF-3.11.4-src.zip/download

                        1 Reply Last reply Reply Quote 2
                        • ?
                          A Former User @ustk
                          last edited by

                          @ustk said in Haha the easter bunny has delivered.:

                          It crashes on mac with a mouseUp in the upper previewPanel so I changed this

                          Engine.playBuffer("", "", 0.0);
                          

                          into this

                          Engine.playBuffer([], "", 0.0);
                          

                          I had the same issue on Windows, thanks for the easy fix :)

                          1 Reply Last reply Reply Quote 1
                          • ?
                            A Former User
                            last edited by

                            I've written a temporary method for the Save button, for those of you just as impatient as me :) :

                            const var SuffixLabel = Content.getComponent("SuffixLabel");
                            
                            inline function onSaveButtonControl(component, value)
                            {
                            	if (value)
                            	{
                            		//Grab suffix
                            
                            		local suffix = SuffixLabel.get("text");
                            		local fileName = LorisProcessor.CURRENT_FILE.toString(1);
                            		local audioFilesDirectory = FileSystem.getFolder(FileSystem.AudioFiles);
                            
                            		//Write buffer to audio
                            
                            		local bufferToWrite = LorisProcessor.ooo;
                            
                            		local fileToExport = audioFilesDirectory.getChildFile(fileName + "_" + suffix + ".wav");
                            
                            		local isMultiChannel = isDefined(bufferToWrite[0].length);
                            
                            		if (!isMultiChannel)
                            			fileToExport.writeAudioFile([bufferToWrite], Engine.getSampleRate(), 16);
                            		else
                            			fileToExport.writeAudioFile(bufferToWrite, Engine.getSampleRate(), 16);
                            	}
                            };
                            
                            Content.getComponent("SaveButton").setControlCallback(onSaveButtonControl);
                            
                            
                            
                            Christoph HartC 1 Reply Last reply Reply Quote 3
                            • Christoph HartC
                              Christoph Hart @A Former User
                              last edited by

                              @iamlamprey yeah, go open source! Now do a realtime synthesizer next.

                              ? 1 Reply Last reply Reply Quote 0
                              • d.healeyD
                                d.healey
                                last edited by

                                @iamlamprey Thanks for that!

                                @Christoph-Hart This is amazing. I've just been playing with the pitch lock and my dynamic layers crossfade perfectly without any noticeable chorusing. I didn't even make much of an attempt to line them up, I just auto-trimmed the starts and dropped in some loop points.

                                Libre Wave - Freedom respecting instruments and effects
                                My Patreon - HISE tutorials
                                YouTube Channel - Public HISE tutorials

                                1 Reply Last reply Reply Quote 0
                                • ?
                                  A Former User @Christoph Hart
                                  last edited by

                                  @Christoph-Hart said in Haha the easter bunny has delivered.:

                                  Now do a realtime synthesizer next.

                                  Any suggestions on optimizing the number of partials? I don't think I can do 2000 lol

                                  b97359a4-b12f-4c03-9025-70ccd8efecc2-image.png

                                  LindonL 1 Reply Last reply Reply Quote 0
                                  • LindonL
                                    Lindon @A Former User
                                    last edited by

                                    @iamlamprey

                                    @hisefilo is our additive synthesis expert I think - last time I looked at his published stuff he was using only about 8 partials to get something viable, so you could "optimise" down to this, build an additive synthesis engine to utilise these, and then keep adding partials until you are happy.

                                    Of course "build an additive synthesis engine" is a 5-word description of a HUGE job...

                                    HISE Development for hire.
                                    www.channelrobot.com

                                    hisefiloH 1 Reply Last reply Reply Quote 0
                                    • hisefiloH
                                      hisefilo @Lindon
                                      last edited by hisefilo

                                      @Lindon @iamlamprey LOL, not that expert but spend a lot of time dealing with partials. I think 128 harmonic partials + residual noise can create almost any sound in a credible way. (lower registries from C2 and below will need up to 256 partials but you can optimize that for each octave)

                                      I haven't checked the Loris integration yet. But I guess many of the 1930 partial you have is noise turned into partials. Have you checked how many partials you see on Spear for this sound??

                                      1 Reply Last reply Reply Quote 0
                                      • ?
                                        A Former User
                                        last edited by

                                        I actually have some semi-working additive nodes I made in SNEX a while back, they just didn't have working envelopes. IIRC they utilized about 40 (?) sines and waveshaping to add overtones without a noticeable CPU hit

                                        The 1930 partials seem to be the Loris algo being overly sensitive, a lot of the extracted partials are extremely close in frequency to each other:

                                        6d935e42-0ff6-4613-8b42-d1ac71672b6d-image.png

                                        These are sorted by loudness, you can see there's multiple 552.x partials, there's probably some parameter for filtering these but I'm dumb :)

                                        d.healeyD 1 Reply Last reply Reply Quote 0
                                        • d.healeyD
                                          d.healey @A Former User
                                          last edited by d.healey

                                          @iamlamprey

                                          The 1930 partials seem to be the Loris algo being overly sensitive,

                                          I assume that's why the resynthesis sounds so good. But for an additive synth it's probably overkill.

                                          This is probably what you need: http://www.cerlsoundgroup.org/Loris/docs/utils.html

                                          collate : collate the Partials to reduce their number without assuming any harmonic structure (cannot distill later!).

                                          Libre Wave - Freedom respecting instruments and effects
                                          My Patreon - HISE tutorials
                                          YouTube Channel - Public HISE tutorials

                                          ? 1 Reply Last reply Reply Quote 0
                                          • ?
                                            A Former User @d.healey
                                            last edited by A Former User

                                            @d-healey Yeh I noticed that command, not sure how to use it in the HISE implementation, I tried

                                            lorisManager.process(CURRENT_FILE, "collate", ???);
                                            

                                            No idea what to use for the third parameter, or if the collate string is even viable there lol

                                            I currently have a hacky solution by just rounding the values before pushing them to the array, then using pushIfNotAlreadyThere to remove the duplicates, it works for now

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

                                            26

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            103.2k

                                            Posts