@Lindon ....

Best posts made by Lindon
-
RE: The world of HISE
@MikeB -- Lindon, Hull UK, Audio Developer, before that I worked in Telecommunications (real time and all that - not as complicated as it sounds) and before that I was a record producer....before that I was a starving/failing musician.
-
RE: The definitive feature request & bug fix roadmap
Feature Request
@Christoph-Hart - Please can we have bus effects (send and receive) as per this discussion :Feature Request:The Case for Bus Containers
OK, so the current routing matrix system is very very flexible (a very good thing), but is convoluted to set up and (for me at least) not so intuitive and er...
Forum (forum.hise.audio)
-- wow I just re-read the thread I pointed to - I've been a pita about this .....sorry.
-
Happy Holidays..
So happy holidays to everyone who has them at this time of year.. Anther great year for HISE and this community, tho I did get too many t-shirts this year...
-
RE: The definitive feature request & bug fix roadmap
Feature Request
MIDI out.
-
Happy Holidays
......Ok that's me done for 2023, so wishing you and yours a safe and festive holiday season and a prosperous, healthy and happy 2024...
Thanks to all of you for making it a great community..... now where did I put that T-Shirt?
-
LED - with peak line - and red warnings...vector version.
So I've seen a few posts here asking how to "do" an LED-style control, and there's been a few answers - all of which seemed to require adding in a png for the LED itself.
So as I needed (or wanted) one of these that used vector drawing, and one that had some level of "red-line" warning as well as momentary peak measurement too I coded one up. You might want to use it - or adapt it to your needs.
So caveat no.1 : as @ustk has said elsewhere - this is not really a gain meter - its approximates one as it uses 100 milliseconds between each measure - so it may miss some peaks. But in any case:
HiseSnippet 2093.3oc2Y0uaajaDeks2qwJmARJtCs+IQPAtUWTj2Uw1IFF2EYaI6Hb9CAKmjVTbHfdWJIhrhTXWJ63FXf9H1Gg9HbuA2MjbWsbkWaqSsIMoBIVlbFN727AmYHcmHtOINlGYUZ4SubDwpzWa28RlXvtCvTlU6lVktm8QjKNnUSqctbDNNlDXUpzh6KoVZ4krTe9kWrCNDy7IYSYY8ZN0mb.cHUjMamF+DMLbOb.4T5PCtWqQaeNaWdHeLfjEscsFg8eGtO4HrjsErsJ8UsBnBdTWAVPhsJszN7fK6NfeASy+qowzyBIxAdVcAAomdOdXfDwxYs1c.MLnSpFGaYUxtSl9unV++F6CoAzIymYGdfh.JaEl1iRKbavyyDdtyN7JY.ukzv6g1c8iniDYTjX691sYBRTOL3BLgklWqErtu8tbfCln1P76H6EAClrBmMbcqhV20sxVqTdkxqtJxmObHmghHi.kWPY8QQ7wv2DIcvQEKPmiiPur8As2+kmt6wGb7qNA8CH22+7MWq9NdMWaKS11Y6c+ICd1au5pO43oUy8akimMTexwCDCty1mbZ6CaA73UeZZcjXkDAz5Ml4KnblS+JqT9CqTFgj+GA5SeTHnEfSJRrkdtUW0GG5iNCjQrbZzSPjyIQWhDP.JRLfFif+EP60iDAVuLAAqPIGX+jbUqOQ7RBs+.gSEPFNNdttnGOgzqwgiINUp78Rf5Kpjr6oX.Q6gnhXDFM.DAnDmK4GVMlgBwfNJQSsZIaOvrR9OdZoi9QT17AXAt1.phVkJ5U9A8WIaZDYHY3YvtoTyb6LlE.jiIvNOfnLZnzXgIvP94Z6jg4HAUaUD2RItKeLSZ9bS33pIVi2QHi.aguhAdOEFXiUPUNBrEwnK.2DJHBeAaBD0qufM4wOt.68EjuahDnBzPdThAWKNHuE3GSrAbEefUgbQlKnHs4GMhRqbWJtWAnRt4ZWPlKgGowKhQHARvDQ5A.a.51wxO.6Pg98gXw.ez3QRQI2OYvuZOqNkeOFxnA6nhVlDlbDBTgzSAaMOgDWQBiI4g13Xh4Nqh8UVA047aDF20IvbmEl5L3UxjZ4bCJesDE8fhU.JNCpE0Gx.xBzrzuljv1ggNYo1prUgRP6JAqT5JASqtLmStrmofQK5SH9Bm+ta0Tqa0T86Mz.w.mJUmVeeRJm+70xrLAJR6UtTHYFPHsg1lf9djmaAIKLws9q3ZWLfJH2jqrnE.NzJ4Op2ulDcG.3vAp.MsRl4gy8q0Mynj56LUTnTULMffHA8IW2rmUoIylKWZpM2sp2FUqud8etJxqVRIwqT+Lo3X6ifTgLRX9ZgsYxVhfPQU2SR0nETx.D4izTdjVRYKX6wATdaFX2OfzSFCmVftuDpCGwYv.mGkmMkTJRFmHiClAgn3SIk7BVZfTEPOQWn2IqfZdlUB3N3NeYYeItlZ2LBcWENldc3LU9imLMSZXTLWS4XNpizaci1lD5JaRxuKUOY+oQ6hCCkG9clzQQZCEHz0se5jasX8kGzfMoIwmdFbtXOdjLBXOrOjTyQGNn.w3nH.BG.ExBcfScowiEXr+ORzdEIZEnSZvy4l1YS5vQ1blH4gQkQRlmsRhYO0Ng3ri3BxwfAq7GJub4qJillTudERS5jh3PZ2nBIq2waYgN59Dppy7NgQn+47MnaeyMnad+AecLiAibVaFUb7HB6lZa2JIPC9sW0tIDhJ6jOYNfuQjHAUBgRMImCWQR2W+x1MIwuSvGo3MI5DZrWnntRZW+RauEMPxehmv58StF0+7sMtL6NUNMtPlHcxDMNsw.0YtL9iabFOJfD0k9OHl2lSO6I3.53XyqzAI7GldIsu19od0qu4lart2yLHTeJJBx6E4VxyV+oaT+oqAWpyPMKeSp4CryGxZnsvkFMz1WzXDVFxaHzLSTdCgk60LD7F4wYcuMe1y8Vu9lqa86yBYMKJ0Csm5floVs+miZ00uGJbaXdv3PrH+UjkIfRH.GKycWT48MYwTwkl63Gk6MOqv8g1cnB+AEi2EJ.uvA4O13M4UHVwV29PFXWxdu+579jCE+hHt20SNbuIuHDc3nPx9YuHjtRys7hPVVMIg3blt2jOb8u0nf2LpMCt6snCODGMsgew7Z6hyl1VfFtzLGcn5n6Kln4+nsxj+kDfUgDe4.3GXCId+L.t5tt6eHVDQgJG1GMdXWHEuOAfJCpLHauozBxhQ5wtxwR.0kvBTC9U3SBQO43RID8RIZZR9VsI491uAeNQc8Fk03aUi6wiFh1mvHQRak2sjR3eMqOR7nY9QhO1W.P3zHLKdDOl3YJ4onUOetIwXVd10SkiKo5AMXOzfu60Hcx5lSBgE4DFLNmjNjZTf+e+hVLL3z6R.sI33XePYk1Ny3lNigqSqNc3YtvroqaN8KwQAfew+1xW96t5PgOH8W8Y86k+oqMkEmM3VfEbgNW6u3xCRpu1BJ9EBWOXR17d3wghzYyez5PNiOZ.mQy4zOg.YD52mjKVpPEZag.tWa1LeSiSHgDbrwws+RC4Cyfi.6DYNsE2Qk3Ryn+5OaqgKRlO3yqxE+AMrKa+ZvI4K2ccpwzgnIpi2ci1WESNEqfyzcDIWjYtJ0s+y6Xtduoysi4+J8Ou3+G0+7GiTPPMgub574OYC0opiTtaz+682eJZ.5SwdLD6Gwequ9kqjYDumZFPuYp+t2KaenbLxyR8ZVv5rcq4ZMDpq9VeeYL8S.6Swqo9brlmNGqYs4XMqOGqYi4XMOaNVyyu00HaoY6wB9Pc7OLQmVpm3qTIcWcpiBV+FfT1+WL
I'm pretty sure the code could do with re-factoring so I'm always interested in a better version if you want to comment or contribute...
-
RE: Have a nice christmas and new year vacation!
Happy holidays everyone...have a fun safe time.
Latest posts made by Lindon
-
RE: UI Design - AI?
@d-healey said in UI Design - AI?:
I was working on a redesign for one of my instruments. I gave an existing design to chat gpt and asked it to give me a version that was blue with a 1920s vibe.
Im a complete Chat-GPT novice - I've like only asked it a very few questions - in the free version.
How did you ask it to do this?
-
In plugin help system
So Im thinking of adding a help system to one or more of my products - and of course Im thinking of using the documentation/markdown system in HISE, so 2 questions:
- is this the current preferred way to do this?
- If the answer to 1. is "yes" then is the docLink api call available yet? - I cant see it in the online documentation.
-
RE: Basic JSON Question
@JulesV start here:
const var externalDat = { "Option 1": A, "Option 2": B, "Option 3": C, "Option 4": D }; inline function CheckOnLoad() { local data = Engine.loadFromJSON("../MyFile.dat");); Console.print(trace(data)); //data = externalDat; //Engine.dumpAsJSON(data, "../MyFile.dat"); }; CheckOnLoad();
-
RE: PLUGIN DELIVERY: Latest & Greatest?
@Chazrox said in PLUGIN DELIVERY: Latest & Greatest?:
@Lindon That sounds like an awesome code!
All great advice.
@Lindon said in PLUGIN DELIVERY: Latest & Greatest?:
and Im always open to license requests by the way..)
I dont think I can make use of this code specifically. Do you have other types of codes that you license?
Well there's a range of things, and not trying to get too salesy here, this is the list:
- The download/Install system
- The Authorisation system (RSA based and includes the key generator)
- the tag based browser system(s)
- the slot-based multi-fx system
- the chord player system
- the arp pattern builder
-
RE: PLUGIN DELIVERY: Latest & Greatest?
@Chazrox said in PLUGIN DELIVERY: Latest & Greatest?:
@tomekslesicki Wow. Thats pretty cool that you made that, and sad that they treated you like that. Thanks for the insight. Crucial.
Well I work with the Pulse guys(as Sample Logic) on a pretty weekly basis and this isnt my experience at all, they seem very professional and considerate. In fact they use my HISE based approach in PULSE for their own products because the existing HISE solution wasnt something they felt comfortable using, no idea why.
-
RE: PLUGIN DELIVERY: Latest & Greatest?
@Chazrox said in PLUGIN DELIVERY: Latest & Greatest?:
Whats up! Im getting close to completing my first plugin so I wanted to start reading up on the latest methods of delivery that you guys are using.
Well I think I do things a bit different from everyone else - apart from those amongst you who've licensed this code from me(and Im always open to license requests by the way..) -- so here goes:
Things im wondering about:
- How do you distribute licenses #'s?
Depends, mostly - from my own site the plugins use an RSA key which, just like everyone else I use a WP plugin to send out the code with the user purchase. I have a small utility (written in HISE) which generates RSA serials as and when I need them for each product. I then just import them in WP plugin.
For stuff with Tracktion - its waaaay more complicated - and use their backend service - so its a call to that etc. Essentially I do nothing about serials here - I just ask for this user id/password for this product do they have a valid license for today? and the server responds appropriately..
- What are the main differences in methods for Mac vs. Windows?
Well here's where I do it a bit differently from most others. So my plugins download and install all their own samples, images, metadata etc. etc. from Within the plugin itself. So on first start up the plugin does the authorisation and then behaves like a download/installer program setting up its own required files/locations etc. Both online and offline versions available to the user - for those 7 people left on the planet not connected to the internet...So it asks the user the usual stuff .. where do you want the samples placing? etc.
I do this because well, my plugins use a custom tag based browser system for presets, wav files, and sample(map)s. These require their own meta data files, plus there's meta data about what expansions are available to buy, and images for these etc etc. It gets to be a big list pretty quick, and requires installing in several different places...so I find its easiest on me and the end user if the plugin is smart enough to know what it needs and deals with the download install process itself. Essentially its doing the same things Dave's Rhapsody installer is doing (I think). On second and subsequent starts the plugin checks the install has been done correctly (e.g. it checks all the ch1 files are where the user asked them to be placed) and runs as per normal.
One of the upsides of all this is that the Mac(White Box) and Windows(inno) installers only have to install the plugin itself, so they are pretty simple to write..
The other upside is it does expansions pretty easily too...
I also have a version of this that works with Pulse - so Pulse does the inno/Whitebox part and the plugin does the rest as usual - I use it for the Sample Logic stuff (they are the same people who own Pulse, as well as APD and VSTBuzz)
- What is your favorite platform for online distribution?
Well its probably no surprises that its Tracktion - but Id have to warn you the chances of getting on Tracktion Presents are (these days) very very slim, they are pretty slammed with our stuff, Dawsom and their own releases. But otherwise yeah Loot, Plugin Boutique etc. for regular distribution, APD and VSTBuzz for "sales"
Also if there's anything else I should be aware of crucial to delivery process please feel free to fill me in.
Install setup will likely be your biggest single support call topic...get it as bullet proof as you can
I do plan on getting an apple developer account so I can properly code sign everything. I've been walking people through beta installs for a couple months now and I can see how things can get messy so i'm trying to prepare for that.
I appreciate all the great advice as always!
Thank You in advance!
Bless!- Rox
-
RE: Modular slotFX with programmatically assigned knobs, not possible?
Let me be more specific...
@whoopsydoodle said in Modular slotFX with programmatically assigned knobs, not possible?:
I have 6 hardcoded fx and my original idea was that I would have a GUI that lets the user choose one, then it would load that dsp and programmatically draw knobs for each parameter in the fx. Each fx dsp has the same first 3 parameters and then after that some have 1 more, some have 2 or 3 more and those additional knobs are different for each dsp.
It doesn't seem like this is possible in Hise.
As I say - def. possible...
Issues i've run into:
- Knobs can't be added after init. This sucks but isn't a deal breaker. I can add the max number of knobs needed on init and then hide or show them as needed while reassigning their function for the currently active dsp.
Correct. You will need to define a max number of controls used in your fx set and create that many controls - hiding them as required..
- Biggest issue, slotfx seems buggy. If I have one fx loaded and I switch to another, it loads with default parameter values but if immediately send a knob.changed() for the knob that's controlling those parameter for some reason it's not always receiving that old knob value. Sometimes it stays at the default until it's moved by the user, sometimes it gets the changed() and updates to the knob value.
Cant say i've found this - but Im loading a "new" fx and instantiating the knobs to their default position - are u doing that? You may need to wait until the FX is actually loaded - so a timing issue.
- Despite calling a setAttribute by name, it needs each parameter to be in the same order or it gets messed up. If my first parameter is Mix and my second parameter is Depth on my 1st FX, if I swap to a different FX and Depth is now the 3rd parameter, it messes up and despite calling myFX.setAttribute(myFX.depth, value) it will try to adjust the 2nd parameter, not the one called depth.
You will need to define the attribute(setAttribute) that is used by each control in each FX and reference this index in the controls callback (see Control Target Number below....)
- .setAttribute() seems to only work with my fx defined by Synth.getEffect()
While .setEffect() seems to only work when defined by Synth.getSlotFX()
So I am defining the same FX slot both ways at the same time and calling each type as needed. This feels wrong but it seems to work?
- if it works....
- Odd behavior but an easy work around, if I try to programmatically check how many parameters are in an fx it will always return true even for ones that don't exist. If my fx has 3 controls and I ask if there is a 4th it returns true with a name of blank "".
as I say define a data record for each FX, and reference it when the FX changes, here's my latest example
{ "FXName" : "Spectral Tilt", "EffectHardCodedName":"SpectralTilt", "NumControls": 3, "ControlText": ["Tilt","Frequency","BandWidth"], "ControlArc": [2.5,2.5,2.5], "ControlPopUp": ["Above","Above","Above"], "ControlTargetNumber": [0,1,2], "ControlMinimums": [0,0,0], "ControlMaximums": [1,1,1], "ControlMultipliers": [1,1,1], "ControlModes": ["Linear", "Linear","Linear"], "ControlStepSize":[0.01,0.01,0.01], "ControlSuffix":[" %"," %"," %"], "ControlMiddlePosition":[0.5,0.5,0.5], "ControlDefaultValue":[0.2,0.5,0.5], "Layouts" : ["BAR","BAR","BAR"], "Colours" : ["STD","STD","STD"], "Primary": 0xFFCCCCCC, "Secondary": 0xFF333333, "Tertiary" : 0xFF003344, "AltPrimary": 0xFF114444, "AltSecondary": 0xFFAAFFDD, "AltTertiary" : 0xFF223399, "TextColour": [0xFF999999,0xFF999999,0xFF999999], "ControlXPos" : [110,110,110], "ControlYPos" : [145,290,435], "ControlSize" :[70,70,70] }
Theres a bunch of additional stuff in there to tell LAF how to draw this control Layouts, Colours etc.
There are other issues and odd behaviors but these alone have made me think I probably shouldn't try to do this and should just manually draw knobs and panels for each fx, load them all and then just turn them on and off since I don't actually need to reorder them.
Depends on how many FX you have - my current project is aiming at 60+ FXs so this approach will never work...(well it might but I would go mad..)
Oh one thing to note _ Im doiing all of this using HardCodedMasterFX in the slot.
-
RE: Modular slotFX with programmatically assigned knobs, not possible?
@whoopsydoodle nope not buggy as far as I can tell - I've had this working fine for a couple of years now...
-
RE: Expansion Installation Issue
@bendurso said in Expansion Installation Issue:
@d-healey That's a good point. Well, bad luck for the user, lol
hmm, avoid installing in any system folder if I were you...