Forum
    • Categories
    • Register
    • Login
    1. Home
    2. dannytaurus
    • Profile
    • Following 3
    • Followers 1
    • Topics 84
    • Posts 842
    • Groups 0

    dannytaurus

    @dannytaurus

    356
    Reputation
    150
    Profile views
    842
    Posts
    1
    Followers
    3
    Following
    Joined
    Last Online
    Website meatbeats.com
    Location Los Angeles

    dannytaurus Unfollow Follow

    Best posts made by dannytaurus

    • Happy New Year! 🥳 🎉

      Just wanted to wish everyone a happy, productive and prosperous new year!

      posted in General Questions
      dannytaurusD
      dannytaurus
    • Goals for 2026? 🚀

      Anyone care to share their overall plans and goals for the coming year? 🚀

      My main goal is to start releasing HISE plugins. I've been learning HISE for a while and it's time to start exporting my efforts!

      1. A series of 4 free synth plugins, first one Sublime posted here for design feedback, and another 3, each based around one simple preset concept. Sublime is all about bass.

      2. Then I have 2 collaborations I want to work on, both with UK house music producers. One is a multi-output drum plugin based on a series of expansions, the other is a chord synth with some interesting features.

      3. I also have a lot of vintage reverb impulses recorded and processed, which I'd like to turn into a suite of free reverbs.

      My user base is mostly house music producers & related genres - rave, techno, classic house, etc. I've built a decent brand and I think my customers will love the move from Maize-based ROMpler plugins to way more fully-featured HISE-based plugins.

      What are your goals?

      posted in General Questions
      dannytaurusD
      dannytaurus
    • [PR] Overlay image toggle button

      I like using overlay images to ensure my Figma design is translated properly to HISE. Currently, the only way I know to toggle the image visibility is to select/unselect the image, or quickly slide the alpha slider, which is difficult because of the 'invert' half of the slider.

      This PR adds a toggle button between the image dropdown and the alpha slider. It uses an existing image icon for the button and respects the alpha slider value.

      This allows me to toggle the image without taking my eyes off the interface, making it easier to spot changes.

      PR here: https://github.com/christophhart/HISE/pull/825

      HISE-Overlay-Image-Toggle.gif

      posted in General Questions
      dannytaurusD
      dannytaurus
    • RE: Look & Feel - ComboBox Background.

      @David-Healey I just had a go at fixing this. Is that what you mean?

      HISE-PopupTransparentBackground.gif

      HiseSnippet 1112.3ocsVs2aaaCDmJIJKwacqEne.H7e4roYH+pIcACMO8pwxCi4rhMDDTPKcxhKRjFRTMwXneH12z8MH6ndXKO6klZfI.av6Eue2wi2w9QRGHNVFQLpb0jw.w3qLGLQn7O1mwEjdmPL9ZyyYwJHhlw5nIiYwwfKwvX8eRyvX6MHoe+8aNhEvDNvLVDx6jbG3LdHWMia+C9YdPPWlKbEOrj1sOnmiTbrLPlf3YcSaxXlysrQvELsZqYRdKK1mX7sl1scX60zqSqVu9061wcH330.FtqCytCyqCC41l0tSi1DiMO0kqjQCTLEDia5QR2IC7k2Ixbv63w7gAflnAY.54L1ji84At8KRNwDhwF8mkpVOKU8Ryy4t7o7mkxddp.5LKJmzLV6wfTiOCHYTBRajAoWXNvIhOVMShFOeoYOAdB5wvylxPISWxZ+05lGKQMDp5gragtQHwTKp0z11hh+sy9UpfmOwJZ.yi9izBSbh.LRNS5vBNSJu8PgaW.BpoUGUrdDLhqqe5lHbTbonVU2H1c8kiSFeNHRNBOhGEISDtUsndE5LxhJG9G6T4OqPwuQ0iAUVcQsp12am+UEcQlXOrd5W.GUsqssrsz.F+cCJ9iOQTzSAg+29+CrHJCiXjUcFFs3dVvdLy8PjCJ7Z1012P+NZSKJ65FSW07F52SaqW0Jc0M6uPHo2Vd7a4i7CveJvk9FZln35ih.PP+gozCCRf4CacpCb0QOSLJ.pkiHK5d6TBmJ3dUAPy0HCt6YUDCHnmsNE1Md0LFstYIHu.U24yUyfEJuKVaTq5IfGKIPgI1FsqaOUtNyeHFpBv8JDVowuFeVSQoEsZ.3opVbBlU1crLbn7H48MJU7MRikvwRAnc3TMzVNkPCnEJOwhhc1u37lJEWHUvkhZ5i7sq7wJz+sHOukJSiiHYP.DsTw5FbQOlg0DIgCgHK7PRexVnHdgd9tDa9z5R3jkVJonTzSvUWNFxo6JCb0290qWrmBIOup6tjiPTUUZukmm2aoHuR3t5VKSSyjzPnbyexu16DlhUrY39h9ZLDo35Px3D3C3vgrFWaadBDeqRNF6yO8.kXrUlqeVQaMl.BR86VloqaPturCmTl.KICKFlr8lDxCOLO2lkYeG2U4OyZ9A9f9tXYNjR35KdhoDDclFMyPlowKwEgrTdqunO+8CzXCSLei4kBnxU2IqbkOd8GGXtPedbBizMIfoleridfbt.rJatd8594hXtZR4A1eFyhrezYQOUH9By9bki+xw3ZKAiXsy+GXLeB9yLO0yC6bNCfaX182V0w0eB2icpUbwnyYpHttF3hjvAXYnCfdWf0xw55h0z2Ayns0z5Lv.P3lR7.9kKrgl1HWXiBgX0kSj78NY2b0uQXqTNHlDougZa7wbHMcIWVCwmr7dGm42pELr4pZXqU0v1qpgcVUCe0pZ3tqpg68oMT+hxCSTxvrqMDx48OMs4pgwoBFVAlVsR9GztgJYG
      
      Content.makeFrontInterface(200, 200);
      
      const laf = Content.createLocalLookAndFeel();
      
      laf.registerFunction("drawPopupMenuBackground", function(g, obj)
      {
          g.setColour("0x00000000"); // any transparent colour
          g.fillRect([0,0,200,200]);
      });
      
      laf.registerFunction("drawPopupMenuItem", function(g, obj)
      {
          var a = obj.area;
      
          var padArea = [a[0] + 2, a[1] + 2, a[2] - 4, a[3] - 4];
          g.setColour(obj.isHighlighted ? Colours.green : Colours.blue);
          g.fillRoundedRectangle(padArea, 8);
      
          var textArea = [padArea[0] + 8, padArea[1], padArea[2] - 16, padArea[3]];
          g.setColour(Colours.white);
          g.setFont("Default", 14.0);
          g.drawAlignedText(obj.text, textArea, "left");
      });
      
      const ComboBox1 = Content.getComponent("ComboBox1");
      ComboBox1.setLocalLookAndFeel(laf);
      

      The drawPopupMenuBackground object should probably include an area, and the popup menu items still have a subtle drop shadow. But they're both fixes for another day.

      PR here, if it's useful: https://github.com/christophhart/HISE/pull/805

      posted in General Questions
      dannytaurusD
      dannytaurus
    • RE: Turn a unit on/off

      @bendurso Today I learned that right-clicking a module in edit mode shows a different context menu to right-clicking not in edit mode. 😀

      posted in General Questions
      dannytaurusD
      dannytaurus
    • Prevent Waveform Floating Tile paths clipping at the tile bounds

      Posting this in case it helps anyone else. I just banged my head against a brick wall for too long before I realised how simple this was! 😂

      When using a Floating Tile with content type Waveform (to display the waveform of Sine Wave Generator or Waveform Generator, for example) the default waveform path is a filled shape.

      You can override this with LAF function drawAnalyserPath and draw a line path instead of a filled path:

      laf.registerFunction("drawAnalyserPath", function(g, obj)
      {
      	g.setColour(Colours.white);
      	g.drawPath(obj.path, obj.area, 5);
      });
      

      However, this means that the path is clipped at the bounds of the floating tile, especially at wider line thicknesses:

      CleanShot 2026-01-14 at 23.30.35@2x.png

      To prevent the clipping, I fudged around with it for longer than I want to admit before I realised the answer is to simply reduce the area that the path is drawn in, by half the thickness of the path:

      laf.registerFunction("drawAnalyserPath", function(g, obj)
      {
      	g.setColour(Colours.white);
      	g.drawPath(obj.path, obj.area.reduced(2.5), 5);
      });
      

      Voila! No more clipped paths! 🙌 Top row is using obj.area, bottom row is using area reduced by half line thickness:

      HISE-Unclipping-Waveform-Paths.gif

      You might want the left/right of the path to bleed out of bounds, in which case change the reduction from all-round to y-only:

      obj.area.reduced(5) 👈 all-round
      obj.area.reduced(0, 5) 👈 y-only
      

      Note: you might need to compile with HISE_USE_SCRIPT_RECTANGLE_OBJECT=1 for the reduced and other Rectangle helper functions, as per the docs: https://docs.hise.dev/scripting/scripting-api/rectangle/index.html. Not sure if it's still the same, or if it's built-in to all new builds.

      posted in Newbie League
      dannytaurusD
      dannytaurus
    • Added phase offset to Waveform Generator

      PR that adds StartPhase1 and StartPhase2 to Waveform Generator.

      Coded for my own needs but someone else might find it useful.

      Works great for setting a random phase offset on MIDI note-on.

      Works independently for Osc1 and Osc2.

      https://github.com/christophhart/HISE/pull/792

      EDIT: from this conversation https://forum.hise.audio/topic/13720/free-running-or-randomised-phase-for-waveform-generator-oscillators/9

      posted in General Questions
      dannytaurusD
      dannytaurus
    • RE: How/Where do you actually market/sell your plugins?

      I'm fortunate that I started with a (small) audience, and I'm selling to a focussed crowd. My plugins serve a very specific niche and the producers there are always hungry for more authentic products.

      I've never done any paid ads. I might do an experiment on Instagram one day. I see a lot of adverts for plugins in my feed and I'm curious how effective they are.

      I sell on Gumroad. They take about 15% fee, then you pay payment processor fees. I haven't done the maths for the total cut but I'd say it's less than 20%.

      It's a good deal for me because it includes basic web presence, file hosting, secure delivery, payment processing (cards, Apple Pay, Google and PayPal), email marketing and analytics.

      I started selling in September 2022. I'd done a couple of free plugins before that through various platforms like SimpleGoods and SendOwl but didn't take it seriously until later.

      When I started selling I posted each new product on my Facebook and Instagram accounts. The engagement was pretty good to start with but I noticed that over time, I got more results from sending emails to my ever-growing email list. When I launch a new product now, I only send it to my email list at first. Then later I post short clips to Instagram but they're supplemental to the email list.

      You NEED an email list. They say "the money's in the list" and in my experience, that's 100% correct.

      Free products are a great way to build your email list. Most people stay subscribed and as long as you don't flood them with emails, they're happy to receive them.

      This is my email strategy:

      • Launch email for every new product with 20% discount code, valid for 2 weeks
      • Reminder email 48 hours before the launch discount ends
      • One email per month with 20% discount off a single product, valid for 2-3 days

      That's it. I don't like to bombard my list with too many emails. I'm on some Gumroad seller lists where they send continual discounts, sometimes daily. This would be way too much for me as a customer.

      Gumroad includes email marketing, which is a bonus because when your list gets large things like Mailchimp, ConvertKit, etc get into the $100's/month.

      I can target emails to people who have or haven't bought specific products. Very handy for offering a discount only to those who haven't bought something. Or offering a discount for a product Y to those who have already bought product X. You can also target by how much someone has spent, so you can offer extra discounts or free stuff to your most loyal customers.

      Gumroad also includes extra features like affiliates (having others push your products for a % split), collaborators (where you can split a products revenue with someone else), email automations (for sending drip emails to customers - I don't use those) and upsells (recommended products at checkout).

      It does have some downsides. The download links in the receipt emails sometimes don't work and you have to send a link manually to the customer (Gumroad have so far refused to acknowledge this as an issue). I also find their fees to be expensive compared to other services, but for what I get built-in I still think it's worth it for now.

      Something else that might be of interest is that Gumroad recently made the source code available, so if there's a feature you want to add and you're handy with Ruby on Rails and JavaScript you might be able to contribute.

      posted in General Questions
      dannytaurusD
      dannytaurus
    • RE: Any interest in a SemiTones control for Waveform Generator?

      Happy to report this has been merged in to develop branch! 🎉

      posted in Feature Requests
      dannytaurusD
      dannytaurus
    • RE: Colour Palette

      @ustk Just made a quick proof of concept in Claude. Haven't read all the code yet, so no idea if it's well implemented or performant, but it does look kinda nice!

      CleanShot 2026-01-08 at 21.39.06@2x.png

      posted in Feature Requests
      dannytaurusD
      dannytaurus

    Latest posts made by dannytaurus

    • RE: Agentic coding workflows

      @Christoph-Hart Haha, you're in the honeymoon period! 😂

      And I suspect you're diving way deeper with it than most of us are.

      posted in AI discussion
      dannytaurusD
      dannytaurus
    • RE: Making a basic 2-op FM synth in ScriptNode

      @DanSound Not that I remember. But this was just the very start of my next synth, so I didn't get too deep into it.

      Rae you using ScriptNode or the FM Modulation of a Synthesiser Group?

      posted in ScriptNode
      dannytaurusD
      dannytaurus
    • RE: Agentic coding workflows

      I'll also say that although I've seen many horror stories about how much people are spending on AI coding subscriptions, I'm working very happily within a $20/month Cursor plan.

      I use Cursor for 2-4 hours a day, pretty much every day, and I haven't hit the plan max since I started paying 18 months ago (Aug 2024).

      I do think the fact that I'm mostly using it to work on a Rails app (see post above) helps moderate token usage, and also I keep conversations fairly short, moving to a new chat when the context changes.

      Thorough rules files help too, although I'm still fighting to get it to follow certain rules. Seems a bit picky!

      posted in AI discussion
      dannytaurusD
      dannytaurus
    • RE: HISE Transformation to the new age

      @David-Healey said in HISE Transformation to the new age:

      Tell me that again in 5 years

      I'm marking my calendar 😜

      posted in AI discussion
      dannytaurusD
      dannytaurus
    • RE: HISE Transformation to the new age

      @David-Healey said in HISE Transformation to the new age:

      This is what people have been telling me for years :)

      Nah, this is the start. The last few years were just getting LLM to get the language working.

      posted in AI discussion
      dannytaurusD
      dannytaurus
    • RE: Agentic coding workflows

      @Christoph-Hart One of the reasons that AI coding works so well with Ruby on Rails web apps is because Rails has a huge amount of convention. It's heavily opinionated, uses standard libraries for lots of stuff and has a clearly defined directory structure.

      This means AI spends way less time (and tokens) deciding HOW and WHERE to implement a feature than in something like a vanilla Node project, etc.

      HISE has a similarly opinionated and well-defined structure, so I think that can be used to our advantage.

      posted in AI discussion
      dannytaurusD
      dannytaurus
    • RE: HISE Transformation to the new age

      @David-Healey said in HISE Transformation to the new age:

      I mean users who don't understand the code they are "writing" because the inner workings are being hidden from them.

      Yes, but it's all just abstractions all the way down to the metal. JUCE is an abstraction of pure C++ APIs. HISE is an abstraction of JUCE. And AI agents coding will be an abstraction of HISE.

      One could argue that HISE scripters are ignorant of the inner C++ workings of the plugin they're building.

      I see a lot more threads popping up asking me to fix AI slop

      This is very much the start. Give it time.

      posted in AI discussion
      dannytaurusD
      dannytaurus
    • RE: HISE Transformation to the new age

      @David-Healey said in HISE Transformation to the new age:

      Do we really want more ignorant scripters

      Like it or not, this is the way everything is going. At least, what I believe you mean by 'ignorant'. I feel the same.

      It's a hard pill to swallow that all the years we've spent learning to code amounts to little when AI can produce excellent results from fairly simple prompts.

      posted in AI discussion
      dannytaurusD
      dannytaurus
    • RE: Agentic coding workflows

      @Christoph-Hart I find ChatGPT to be surprisingly good at generating HISE scripts, but that might be the accumulation of dozens of prompts and my resulting corrections.

      Also, I use Claude in a Cursor project of the full HISE repo. I ask it things like "In HISE script, how would I do XYZ?" and it usually gives a very good answer.

      I believe that asking a model that has access to BOTH the full HISE source AND your current project would produce high-quality results.

      posted in AI discussion
      dannytaurusD
      dannytaurus
    • RE: getPopupMenuTarget

      @ulrik I asked Claude/Cursor and it said it's an internal C++ function that doesn't have much use in HISE script. 🤷

      What it does behind the scenes:

      When you set up a popup menu on a component (using popupMenuItems and allowCallbacks = "Popup Menu Only"), the engine shows a popup menu on click and then fires your callback with two arguments:

      • argument[0] — the component (this is the return value of getPopupMenuTarget)
      • argument[1] — the selected menu index

      So the engine already calls getPopupMenuTarget for you internally and passes the result as the first argument to your callback. You never need to call it yourself.

      The practical scenario it supports:

      The main reason it exists is for ScriptDynamicContainer (the ScriptContainerComponent). In a dynamic container with child elements, if each child has a popup menu, you need to know which child was right-clicked. The override ensures your callback receives a reference to the specific child rather than the parent container. But again, this happens automatically — you just receive the correct reference in your callback.

      Why it's in the docs:

      It appears in the public API docs because HISE auto-generates documentation for all methods on script component classes, including internal/virtual ones. The description "Override this if you want to change the component parameter" is C++ language leaking through — you can't override virtual methods from HISEScript.

      TL;DR: You wouldn't call it in HISE script. It's an internal plumbing method. What you would use is the popup menu system itself — setting popupMenuItems, popupOnRightClick, and allowCallbacks on a Panel or Image, then handling the result in your mouse callback where the target component is already provided as the first argument.

      posted in General Questions
      dannytaurusD
      dannytaurus