Forum
    • Categories
    • Register
    • Login
    1. Home
    2. soundsync
    3. Best
    • Profile
    • Following 1
    • Followers 1
    • Topics 106
    • Posts 674
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: AU Compiles but not visible

      @d-healey You were right, it was the bundle identifier.

      posted in General Questions
      soundsyncS
      soundsync
    • Soundsync Beta: HISE Ecosystem | UPDATE: Auto-Detect + Dynamic GUI Sizing

      Hey Gang,

      I wanted to start a cleaner updated thread for SoundSync and keep this one focused specifically on the HISE ecosystem/workflow we’ve been building around it.

      SoundSync started as a platform to help audio/plugin developers handle the pieces around releasing a product: licensing, customer accounts, serial activation, product delivery, storefronts, checkout, and customer libraries.

      The HISE side has now grown into a much bigger part of the platform, so I want to use this thread to share walkthroughs, updates, screenshots, and short examples of how the HISE workflow is coming together.

      The goal is not to replace anything inside HISE.

      The goal is to help with everything around releasing, selling, activating, supporting, and managing a HISE-built product.

      Some of the HISE-focused pieces currently being tested or polished:

      Product setup and delivery files
      Storefront and checkout testing
      Customer library / download access
      Serial generation and activation
      Plugin-side validation
      Offline grace handling
      Suspend / deactivate / reactivate flows
      Reseller, imported, and unassigned serial activation workflows
      Branded activation UI
      WebView-based in-plugin storefront
      “My Products” customer view inside the plugin
      Developer support links/pages
      Customer/product ownership checks
      Basic customer and purchase management

      Right now the platform is still in test/beta mode. Stripe checkout is in test mode, so no real payments are processed.

      For checkout testing, Stripe’s test card is:

      4242 4242 4242 4242

      Any future expiration date and any CVC should work.

      What I’m mainly looking for from HISE developers:

      Does the setup flow make sense?
      Is the HISE package/drop-in workflow clear enough?
      Does the activation/licensing flow feel reliable?
      Does the WebView storefront/customer area feel useful inside a plugin?
      Are the customer/product/storefront tools helpful or too much?
      What would make this safer, clearer, or easier before real launch?
      What support/docs/walkthroughs would make the HISE side easier to trust?

      This is still not meant to be a polished public launch thread. I’m mostly looking for a few HISE developers willing to test the workflow, create a demo product, run a fake checkout, generate/activate a serial, and give blunt feedback.

      If you’re actively building or selling HISE plugins and want to test it, you can sign up here: https://soundsyncsolutions.biz/developer

      You can also schedule a meeting with me here for any questions, walk-throughs, etc: https://www.soundsyncsolutions.biz/demo

      I’ll keep posting HISE-specific walkthroughs and updates in this thread as the package gets cleaned up.

      Best,
      Aaron

      posted in General Questions serial protection beta
      soundsyncS
      soundsync
    • RE: Taking my Mailing list seriously, so a first question....

      @Lindon My subscriber list for my Plugins are roughly the same as yours (around 18k). Ill be as open and honest about what Ive done, results, etc since beginning my current plugin company 1 year ago.

      My main focus for marketing is collecting emails. I do this in various channels (resellers, free giveaways, exclusive blog discounts, affiliates, etc).

      Whenever I have a new release, my email subscribers get it first. Whenever I have a deal/bundle/sale, my email subscribers hear about it first and/or get a special/addional discount.

      Any purchase recieves a thank you along with he downloads.

      Some amount of time later, usually 5-7 days, i automate an email checking in on how they like the product and if they would leave a review. Leaving a review gets you a small discount/gift card to be used in the store.

      As far as campaigns, it depends on what Im aiming for. A new release will get "hype" emails, 1-2/week, for a couple weeks. Then the actual launch and deal will recive 2 emails/week. The final 48 hours receive 2 emails as well for urgency purposes.

      Bundles, deals and sale may get a similar treatment just less "hype".

      My audience is pretty used to my email format and layout. Im usually pretty straight to the point with a bit of sarcasm. I think being yourself and not bullshitting is pretty important.

      I typically can make $2000-$4000 from my email list each release/deal. These deals are usually 2 week periods.

      Hopefully something in this ramble while im rocking my daughter to sleep s helpful.

      posted in General Questions
      soundsyncS
      soundsync
    • RE: Apple altool vs notarytool

      For anyone doing it it manually, here is the code.

      Thanks @d-healey as always!

      Codesigning Plugin
      codesign --remove-signature "MacHD/User/Desktop/PluginName.vst3"
      codesign --remove-signature "MacHD/User/Desktop/PluginName.component"
      codesign -s "Developer ID Application: YOURTEAMID" "MacHD/User/Desktop/PluginName.vst3" --timestamp
      codesign -s "Developer ID Application: YOURTEAMID" "MacHD/User/Desktop/PluginName.component" --timestamp

      Build Installer

      Sign Installer
      productsign --sign "Developer ID Installer: YOURTEAMID" "MacHD/User/Desktop/PluginName.pkg" "MacHD/User/Desktop/Signed/PluginName.pkg"

      Notarize Installer
      xcrun notarytool submit --apple-id "YOURAPPLEID" --password "App-Specific-Password" --team-id "YOURTEAMID" "MacHD/User/Desktop/Signed/PluginName.pkg"

      Wait For Upload To Complete

      Staple Installer
      xcrun stapler staple "MacHD/User/Desktop/Signed/PluginName.pkg"

      Check Status (Accepted)
      spctl --assess -vvv --type install "MacHD/User/Desktop/Signed/PluginName.pkg"

      FYI: Just a tip coming from the altool manual notarizing. I used to have to enter my TEAMID including my name like "My Name (GD78YHD87G)" but with the notarytool, it seems you just need the actual TEAMID Number, not the name as well.

      Also, I dont think this way sends the Notarization Email Confirmation. I did a fairly small upload a while ago and have yet to receive it. I've had it take hours before, but for a much larger file. Typically it sent the email within 10 or so minutes with altool. (it does not send the email. Once the upload is complete, youre good to go).

      posted in General Questions
      soundsyncS
      soundsync
    • RE: Notarisation for dummies

      All hail @orange

      posted in General Questions
      soundsyncS
      soundsync
    • RE: control.Timer crashing plugin in DAW

      @trillbilly If anyone hits the same problem, I got around it by using a tempo-synced ramp and a couple compare nodes to simulate the timers engagement.

      Simple and works.

      336f515f-ea93-490f-9e7b-57a63772fade-image.png

      posted in ScriptNode
      soundsyncS
      soundsync
    • RE: Preset Crashes DAW

      @Lindon @d-healey @Dan-Korneff @Matt_SF @DanH I did another rebuild and managed to get things saving correctly (so it seems). I messed with a few settings and properties so Im not 100% sure what it was but it's working so thats that. I appreciate all the help and input fellers!

      posted in General Questions
      soundsyncS
      soundsync
    • RE: Making a Simple Rompler?

      @daniel89ep Ya, @d-healey videos are great. I think this is with a Sound Generator but essentially you do the same with the Sampler.

      https://www.youtube.com/watch?v=2C4psWqleRs

      posted in General Questions
      soundsyncS
      soundsync
    • RE: Sample Editor Functions + UI Control

      I dug the forum again and found a little trick about naming the Sampler for instances of 2 const var calls.

      Im horrible with scripting and new to this so excuse the shitty code, but hey, it did the job! Here is the code if anybody wants to try it out. It allows you to control the editing functions of the sampler (Loop Enable, Reverse, Loop Start/Stop, etc).

      HISE SNIPPET:

      HiseSnippet 2171.3oc4Z0sbaabEFPRPIj1owIStn2jYvvoWPkQVgT1wtM+TSQJoLbhjLCorSlwMSxRfkjvFbWLKVpeZGOSeD56Pauu8MvOB8t9Z365ktm8G.rfBjBRwIwSKuQd28bN624Cm8bNXg6wnd33XJyxtxwmGgsruoyfyI7IclfBHVc20xtpyQ3Sc6P8wVsOOBEGi8srsW8KEqaWYMK4uW9f1nPDwCmMkk0ioAd3CBlFvylsWquJHLbejO93foFRe2Vc8njNzP5L.Kq5zvJB48LzX7QHgXq3XYu9d9AbJa.GwwwV1q0l5e9fIzSIJ4ebPbvvPrXPSqAfgTSuOMzWfXwrVclDD52Kwmisrrc5kw.qpXfOv4v.+fz4yXhaIWvMSCS9vdk7va0bvqoI7ZX.uBfjsAjVSAo2yYfGKHhmsh.O2voKgiYiPd4eznj0Zk+dUmNTPBBeqonmg2mACR0ndysazXS262nwFeV0pe7GOXmC6cvd8ca5t+iNpywce3QCpVEdjDycOAwbGflFEhYMc+BWY7wViwb8b0qkrXMsoTCAScasdt.qv3teEgNrZ.ILffcGMi3wCnDWJQIiTDAdYzv5dzoQTBf7MgcObFdip+optvuQTV8X2.RJd1xigABe.NDKMW8Za8Q01XCovJUD+BodnP2P.7QHVLFHg5wBOnt1Lao96dD+M.WHQq3shufHRTpAk6G4FpE+4UeN35IrMX4NINPB6HUr1FBSpcxNnvvgPPd8hXfExj.FWNOBB7FOKBhjwgau8u6N2+dklHAcWNMlQ.WjDOfRiVdvnPhKMTrhfAQWWFjYxfnKmAQ4XvT.lwfrRPdopsHxadGeAj2Rh+Dq+lczmFgWsyuZkVFucogbeqnh2x3Mo.ugybRLd04NoZKi8L88EF0gfhm9tsmw4TR0EPhpUuzCt+xPgM0QeRG4pyhJeaYzXNuWvi.QJDws1oPk+w0RbYQXj9eeHJJtfh74pxKaPQN5BE5ikCml2HwoVVXEM8j1s.L+AAw75JC.OhFRGROykP43O00a5PPGBzwmKcjaxhW.fwJ4VVQBgHBPlMR9nnV.GOMt1lFfbqmRCfG5+AfZUX5HITR3pL3nmYg0cEaxRC8RiCBoH+T1ndFTdhT1a276.fbYUAUN3xJCZfGgiYfWgG9PRcInp97ptyuznQEtl1XhN9JZYQ+7rkoXcxroCwLSJQHHzja9NmcVbmylM16oXGCAojtj.9CivjE0tuklRgtrqnQEHJW1i8uR2i8fv.eLyJ.Zk9cbLZLyRBay2uwpDl3FNo0Uyaf+8e8EOnLFnhit.y7p+udP42eYF1R3.2RafNhidsomIMwMcxBnl2FubwfPkNRZg20oO9DLj2TOW4YxbF4gDL7zl+iwH2zIKS4UvWxQnoo5Kv.Op6tHNR7Rb5HMH5KBy3Ah.a6cwm.uQr5U5p3rKN9YbZD7F1omtgf+RFLdV111s04oC9yOtEGeFWZ.i27RvMkXKLCVWvF7hg5MPwjEX90KQnblwew3hLdUmjdMs7wiPyB4OtfmUk1iTg+KviZ8z7djR3BL+ke3vXGNxXGrtaKYcGK62xoMh7TZNqeCt9VGTVeen5.OfL93.HkmJt2bpllahkkA2wZoC4TwWuqSOFFJOzlQOMFXigiStbkJqCh+eD5HPU1r+yW8WdU9Y2VKr7mLvdkudEGQWQ0DocGfNQeht1m5xYyvalrxdmEgHwP1+3chASMapPhQnv3LQj2KCqX0EUghufFhpDJ4iMUHaZnvE3vvZMajpzN99EuG8whB6Eu1tPyf7Er19nSnLfhDWWk4ZZj0EbaebaJCbtbdvQylpXBA3aJmRM9aB74S5COfovBOQ1KXistyb+17JNOL82I2CQyV6.c3lxM5cXyh9SpVJj0mdZOjuOD4UV8FfQLuIsQr1zYDegm9D0BIrlhkLVs5ysNUP.voL6+lsk0Dbv3Ihyb1qYak6bxaU5xKYmP9gyLyM9D8A8JIxaEkzaPWeQRmjNzrfl7gfCNVOuVb+b3oRoqTsH770sztdx44enUh6mLymmlPDLoqvlkCyURfvxx7un5hK.uV+dMXVWJbIS5aVu7LyjtETzJIY5xS7ewqG8VNGR8mEh34usVwUTqW.REk6JREWCJbRketokm+JbWqbWg6xug4xB22yoW.2aRw3ckBvKzjwO03Ueg3uiydiFAucbFXWyY+uco298qcn7gJn79NC3P1roPNIcfu9aTjdL30v2nHpzeiBnDq7k4B9iFh8hVsmA7EK+r+iVxsZmoPtub6kF48wQXD+PwmYIcw2tU+9eIiNKZdsd4CjAKGyfW3CnByERN2a3icXz33Qf6HsUr4R8lwFK3prYRy0YLmn10DDgfCEudlsHw7ihEMhxC7NDwYA45IQtKMNFIeduhiZby4Fu8biuybiu6bi+j4Feu4Fe+rwouZsHxHoiq4eIyJk6kLAqzCA9sgjsCFmtCpYLihS4ZIdL97TeCzrzHJapgkFf4h15hMlpfOGz5+T8Ep9YM81O9rwud9fZURv3f.UUoSfSvvLBL99vqjIq4jLa9rIGRIznITRfW9yKP7+3wXlI1Kzg1gygiqYy7As5C8YhhMNv+aZcP.A5gJeZfqDWz7J+wEK740u1QAWWQJP2+2nJ5p+eeUzkQcyciAuY+b9lNxr9tx2U+WHn1mNSj9No.nCTkb.zYfG1rV4Jh5upwMDiE.Z.l3KG7J3mdwlIEVEK1LYQKuDSA9l9eKeOb6UwpOjfn4vPnjcnYHcLz+g.RPwveVP4TjGi98dpKOSf02VNCfRh7+8FUbNTL1sYxMl43zXqFVSgZUeumm3fvsAFtXc19ZnyctF5b2qgNex0Pm6cMz49WCc9sKUGQaB6LiSmpRRBSzaOUfk8doAVqZ8eY0VljD
      

      SCRIPT:

      Content.makeFrontInterface(1200, 700);
      
      //SAMPLER 1 FUNCTIONS
      
      const var Sampler1 = Synth.getSampler("Sampler1");
      
      //Sampler 1 - Sample Start Knob
      inline function onSampleStartControl(component, value)
      {
          for(s in Sampler1.createSelection(".*"))
          {
              local l = parseInt(s.get(Sampler.SampleEnd));
              s.set(Sampler.SampleStart, value * l);
          }
      };
      
      Content.getComponent("SampleStart").setControlCallback(onSampleStartControl);
      
      //Sampler 1 - Sample End Knob
      inline function onSampleEndControl(component, value)
      {
          for(s in Sampler1.createSelection(".*"))
          {
              local l = parseInt(s.get(Sampler.SampleEnd));
              s.set(Sampler.SampleEnd, value * 229376);
          }
      };
      
      Content.getComponent("SampleEnd").setControlCallback(onSampleEndControl);
      
      //Sampler 1 - Loop Start Knob
      inline function onLoopStartControl(component, value)
      {
      	for(a in Sampler1.createSelection(".*"))
          {
              local r = parseInt(a.get(Sampler.SampleEnd));
              a.set(Sampler.LoopStart, value * r);
          }
      };
      
      Content.getComponent("LoopStart").setControlCallback(onLoopStartControl);
      
      //Sampler 1 - Loop End Knob
      inline function onLoopEndControl(component, value)
      {
          for(s in Sampler1.createSelection(".*"))
          {
              local l = parseInt(s.get(Sampler.SampleEnd));
              s.set(Sampler.LoopEnd, value * l);
          }
      };
      
      Content.getComponent("LoopEnd").setControlCallback(onLoopEndControl);
      
      //Sampler 1 - Loop XFade Knob
      inline function onLoopXFadeControl(component, value)
      {
          for(s in Sampler1.createSelection(".*"))
          {
              local l = parseInt(s.get(Sampler.SampleEnd));
              s.set(Sampler.LoopXFade, value * l);
          }
      };
      
      Content.getComponent("LoopXFade").setControlCallback(onLoopXFadeControl);
      
      //Sampler 1 - Loop Enabled Button
      
      inline function onLoopButtonControl(component, value)
      {
      	for(s in Sampler1.createSelection(".*"))
          {
              local l = parseInt(s.get(Sampler.SampleEnd));
              s.set(Sampler1.LoopEnabled, value * l);
          }
      };
      
      Content.getComponent("LoopButton").setControlCallback(onLoopButtonControl);
      
      
      //Call "wrong" Sampler for SampleMaps
      const var Sampler11 = Synth.getChildSynth("Sampler1");
      
      //samplemaps
      const var sampleMaps = Sampler.getSampleMapList();
      
      //combobox note: cmb = name of combobox
      const var Samplescmb = Content.getComponent("Samplescmb");
      Samplescmb.set("items", sampleMaps.join("\n"));
      
      //Note: Sampler = name of Sampler
      inline function onSamplescmbControl(component, value)
      {
      	Sampler1.loadSampleMap(sampleMaps[value-1]);
      };
      
      Content.getComponent("Samplescmb").setControlCallback(onSamplescmbControl);
      
      
      
      posted in General Questions
      soundsyncS
      soundsync
    • RE: Notarisation for dummies

      @orange Ive gotten to waiting for the email. Ill post update after.

      UPDATE: Success. Thanks again!

      posted in General Questions
      soundsyncS
      soundsync
    • RE: Export Error - JUCE VST3 Wrapper

      @orange it looked a little different as I had downloaded the newest SDK. It had some extra folders but everything else looked the same.

      @d-healey Thanks for the Password. Now that I am able to use the included sdk.zip contents, it has completed an export of VST3.

      The help is much appreciated!

      posted in General Questions
      soundsyncS
      soundsync
    • RE: Dropdown for Floating Tile

      @d-healey Perfect, appreciate it man!

      @MikeB Im already on it!

      posted in General Questions
      soundsyncS
      soundsync
    • RE: Envelope follower intensity

      @Ben-Catman My first thought would be to just boost the signal before the follower and then reduce it after.

      posted in ScriptNode
      soundsyncS
      soundsync
    • RE: Can't Add Positive Gain in HISE – Am I Missing Something?

      @the-red_1 try changing the type from decibel to "unknown" or whatever the top selection is.

      Then you can change it back once you set the value if you need.

      posted in AI discussion
      soundsyncS
      soundsync
    • RE: HISE Build - "This application is not supported on this Mac"

      @d-healey Then my job here is done.

      posted in General Questions
      soundsyncS
      soundsync
    • RE: Creating Multiple Samplemaps

      @d-healey I figured out that it was looking for samples titled differently. Maybe I'm misunderstanding the script. Once I changed all my sample names, it worked.

      posted in General Questions
      soundsyncS
      soundsync
    • RE: Transpose/Detune Incoming Audio

      Thanks for all the replies. I have yet to use an outside library like RNBO or Faust but maybe its time I give something a shot.

      I figured out a way to get a detune effect (sort of) by modulating the Delay of a Simple Gain effect. Not perfect but for small, subtle changes is ok.

      I will check out these libraries and try to dive a bit deeper into one of them.

      Beast and thank you.

      Aaron

      posted in General Questions
      soundsyncS
      soundsync
    • RE: Get Sample Filename from Sampler using custom Sample Maps.

      @d-healey I know, I can feel you've basically given me the answer and yet its like I'm blind, deaf & dumb. However, of those may be true. I'm looking right over it. I'll go back and figure it out. I need to take a HISE break to work on another HISE project. The cycle...

      posted in General Questions
      soundsyncS
      soundsync