HISE Logo Forum
    • Categories
    • Register
    • Login

    Set font style?

    Scheduled Pinned Locked Moved Scripting
    16 Posts 4 Posters 50 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.
    • VirtualVirginV
      VirtualVirgin @ustk
      last edited by VirtualVirgin

      @ustk Thank you!

      I made an inline function to load all of the fonts from your project fonts folder and auto-name them. I thought it would be easier just to drag the .ttf or .otf into the Fonts folder and let this do the rest. FYI- the naming here removes "-Regular" from the loadFontAs target name so for instance "Nunito-Regular" will now just be referred to as "Nunito". The other types will keep their suffix.

      // this will load all of your fonts which are stored in the projectFolder/Images/Fonts
      inline function loadAllFontsFromProjectFolder()
      {
      	local appDataFolder = FileSystem.getFolder(FileSystem.AppData);
      	local fontsFolder = appDataFolder.getChildFile("Fonts");
      	local fontFiles = FileSystem.findFiles(fontsFolder, "*.ttf;*.otf", false);
      
      	for (file in fontFiles)
      	{
      		local fontPath = file.toString(File.FullPath);
      		local fontName = file.toString(File.Filename);
      		local targetName = "";
      
      		// if the file name suffix is "-Regular", loadAs will use just the prefix
      		if (fontName.endsWith("-Regular.ttf") || fontName.endsWith("-Regular.otf"))
      			targetName = fontName.substring(0, fontName.lastIndexOf("-Regular."));
      		else if (fontName.endsWith(".ttf") || fontName.endsWith(".otf"))
      			targetName = fontName.substring(0, fontName.lastIndexOf("."));
      
      		Engine.loadFontAs(fontPath, targetName);
      	}
      }
      

      You can listen to my orchestral mockups here:
      https://www.virtualvirgin.net/

      VirtualVirginV 1 Reply Last reply Reply Quote 2
      • VirtualVirginV
        VirtualVirgin @VirtualVirgin
        last edited by VirtualVirgin

        @VirtualVirgin Actually, after testing this does not work. It is not finding any of the files.
        Does anyone know how to navigate to the project folder and then the fonts folder to get all of the files there? I can't seem to find a path to do it using the FileSystem.

        You can listen to my orchestral mockups here:
        https://www.virtualvirgin.net/

        1 Reply Last reply Reply Quote 0
        • VirtualVirginV
          VirtualVirgin
          last edited by VirtualVirgin

          Even if I use the AppData folder and let it search recursively in any child folders, it does not return any fonts: Screenshot 2025-08-29 at 7.59.07 PM.png

          You can listen to my orchestral mockups here:
          https://www.virtualvirgin.net/

          d.healeyD ustkU 2 Replies Last reply Reply Quote 0
          • d.healeyD
            d.healey @VirtualVirgin
            last edited by

            @VirtualVirgin Your font files need to be in the project's images folder.

            Link Preview Image
            HISE | Scripting | Engine

            An API class for accessing global properties.

            favicon

            (docs.hise.dev)

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

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

              @VirtualVirgin it's not in the appData folder but in project's folder you access using the wildcard {PROJECT_FOLDER} as in my example

              Hise made me an F5 dude, browser just suffers...

              VirtualVirginV 1 Reply Last reply Reply Quote 0
              • VirtualVirginV
                VirtualVirgin @d.healey
                last edited by

                @d-healey They are.

                You can listen to my orchestral mockups here:
                https://www.virtualvirgin.net/

                1 Reply Last reply Reply Quote 0
                • VirtualVirginV
                  VirtualVirgin @ustk
                  last edited by

                  @ustk It doesn't seem to resolve to anything though: Screenshot 2025-08-29 at 8.36.48 PM.png

                  You can listen to my orchestral mockups here:
                  https://www.virtualvirgin.net/

                  1 Reply Last reply Reply Quote 0
                  • VirtualVirginV
                    VirtualVirgin
                    last edited by

                    I've tried using File.Show() on each of these variations here and all three open to the Audio Files folder in the Project Folder instead of the Project Folder itself, so it seems like there is an error with the FileSystem processing of the wildcard?

                    Screenshot 2025-08-29 at 9.00.03 PM.png

                    You can listen to my orchestral mockups here:
                    https://www.virtualvirgin.net/

                    1 Reply Last reply Reply Quote 0
                    • VirtualVirginV
                      VirtualVirgin
                      last edited by VirtualVirgin

                      Ok, well I made it to the Fonts folder by navigating form the Audio folder, back to the Project folder, then on down.Screenshot 2025-08-29 at 9.36.45 PM.png

                      But now I'm having an issue with

                      File.toString();
                      

                      which returns the path for "Filename" instead of just the filename:

                      Screenshot 2025-08-29 at 9.39.50 PM.png

                      The Docs says it should just return the file name and not the full path:

                      Screenshot 2025-08-29 at 9.40.10 PM.png

                      You can listen to my orchestral mockups here:
                      https://www.virtualvirgin.net/

                      d.healeyD 1 Reply Last reply Reply Quote 1
                      • d.healeyD
                        d.healey @VirtualVirgin
                        last edited by

                        @VirtualVirgin I don't think this will work in the compiled project because fonts are embedded in the binary and that folder structure won't exist.

                        With toString those are constants which are part of your file object, file.FullPath for example

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

                        VirtualVirginV 1 Reply Last reply Reply Quote 0
                        • VirtualVirginV
                          VirtualVirgin
                          last edited by

                          Ok, sorry about that.
                          This one actually works:

                          // this will load all of your fonts which are stored in the projectFolder/Images/Fonts
                          inline function loadAllFontsFromProjectFolder()
                          {
                          	
                          	local fontsFolder  = FileSystem.getFolder("{PROJECT_FOLDER}").getParentDirectory().getChildFile("Images").getChildFile("Fonts");	
                          	local fontFiles = FileSystem.findFiles(fontsFolder, "*.ttf;*.otf", false);
                          
                          	for (file in fontFiles)
                          	{
                          		local fontPath = file.toString("FullPath");
                          		local pathParts = fontPath.split("/");
                          		local fontNameWithExtension = pathParts[pathParts.length - 1];
                          		local targetName = "";
                          
                          		// if the file name suffix is "-Regular", loadAs will use just the prefix
                          		if (fontNameWithExtension.contains("-Regular.ttf") || fontNameWithExtension.contains("-Regular.otf"))
                          			targetName = fontNameWithExtension.substring(0, fontNameWithExtension.lastIndexOf("-Regular."));
                          		else
                          			targetName = fontNameWithExtension.substring(0, fontNameWithExtension.lastIndexOf("."));
                          	
                          		Engine.loadFontAs("{PROJECT_FOLDER}Fonts/" + fontNameWithExtension , targetName);
                          	}
                          }
                          

                          You can listen to my orchestral mockups here:
                          https://www.virtualvirgin.net/

                          1 Reply Last reply Reply Quote 0
                          • VirtualVirginV
                            VirtualVirgin @d.healey
                            last edited by VirtualVirgin

                            @d-healey Even if gets and loads the files using the "{PROJECT_FOLDER}" wildcard? That has to be used for Engine.loadFontAs anyway, so why wouldn't it also work for this?

                            You can listen to my orchestral mockups here:
                            https://www.virtualvirgin.net/

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

                              @VirtualVirgin might work, try it in the compiled plugin and let us know

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

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

                              22

                              Online

                              1.9k

                              Users

                              12.4k

                              Topics

                              107.9k

                              Posts