Clicking a draggablefilterpanel controlling a ParametricEQ within a panel that is disabled will hard crash HISE, and Cubase + Logic once the plugin is compiled. This is a real bummer as my latest plugin uses panels to display a series of effects which users can enable and disable, disabling the panel makes it visibly obvious the effect is off, but if a user was to click the panel they'd hard crash their DAW.
Posts
-
RE: The big bug tier list
-
RE: Compiling SNEX Shaper to DLL? Any scriptnode with SNEX in it fails to compile
@LozPetts So - following the instructions, wrapping the SNEXShaper as it's own DSP Network fails with the same error but does produce a Project.SnexShaper node - placing this in the project, the node says to click it to wrap it and all effects as a DLL to use the node, clicking this also produces the above.
I've never had any issues with scriptnode before, I've spent all day on this and I'm pulling my hair out -
RE: Compiling SNEX Shaper to DLL? Any scriptnode with SNEX in it fails to compile
@LozPetts Updated to the latest commit - same issue
> Create files > Sorting include dependencies > Creating C++ file for Network snex_shaper > Compiling dll plugin Re-saving file: /Volumes/RHR Audio/Development/Mosaic/DspNetworks/Binaries/AutogeneratedProject.jucer Finished saving: Visual Studio 2022 Finished saving: Xcode (macOS) Finished saving: Linux Makefile Compiling Mosaic ... /Volumes/RHR Audio/Development/Mosaic/DspNetworks/Binaries/batchCompileOSX.sh: line 9: /Volumes/RHR Audio/Development/source/repos/HISE1/tools/Projucer/xcbeautify: Bad CPU type in executable ** BUILD FAILED ** The following build commands failed: CompileC /Volumes/RHR\ Audio/Development/Mosaic/DspNetworks/Binaries/Builds/MacOSX/build/Mosaic.build/Debug/Mosaic\ -\ Dynamic\ Library.build/Objects-normal/x86_64/Main.o /Volumes/RHR\ Audio/Development/Mosaic/DspNetworks/Binaries/Source/Main.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'Mosaic - Dynamic Library' from project 'Mosaic') CompileC /Volumes/RHR\ Audio/Development/Mosaic/DspNetworks/Binaries/Builds/MacOSX/build/Mosaic.build/Debug/Mosaic\ -\ Dynamic\ Library.build/Objects-normal/arm64/Main.o /Volumes/RHR\ Audio/Development/Mosaic/DspNetworks/Binaries/Source/Main.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'Mosaic - Dynamic Library' from project 'Mosaic') (2 failures)
It's literally just a blank scriptnode project with a SNEX shaper in it
-
RE: Compiling SNEX Shaper to DLL? Any scriptnode with SNEX in it fails to compile
@LozPetts @Christoph-Hart looking through the GitHub I can see a change a few days ago referencing a fix for DLL and C++ compilation - is that relevant here?
Also, thanks for adding custom font support in CSS, I got it done with regular LAF in the end but that'll be super helpful in the future!
-
RE: Im trying to made Slicer like a fruity slicer and got stock on chopping, cant really do that in sample.
@Lindon Yeah that would be how I would do it too - I did see someone post a snippet for a basic transient designer a while back, OP could potentially use that as a starting point - certainly above my experience level at the moment!
-
RE: Im trying to made Slicer like a fruity slicer and got stock on chopping, cant really do that in sample.
@HarveySmith That's an interesting one -
"Fruity Slicer uses beat detection to slice a wave file into pieces and make them independently playable from the Piano roll or from a controller. If the wave file contains slice/region data this will be automatically used instead of beat-detection. Fruity Slicer offers playback, reordering of slices and time-stretching capabilities optimized for drum loops."
So if I'm correct, it divides up the signal into chunks depending on the tempo and note value, and then resequences them as you play in MIDI?
You could do that in HISE but it'll be tricky, you'd need to script getting the tempo, doing the maths on the length of note values in ms, 1/8th=120ms for example, and then somehow assign these as playable samples(?) and script cycling through them or triggering them at random with MIDI I guess?
I have no idea how to do transient/beat detection in HISE but I'd bet it's possible.Would be a real cool project, especially if you've got some experience already.
-
Compiling SNEX Shaper to DLL? Any scriptnode with SNEX in it fails to compile
I've read Christoph's instructions on this but it's failing - I've created a Scriptnode that is just a SNEX shaper in the stock container. Trying to compile this I get:
> Create files > Sorting include dependencies > Creating C++ file for Network snex_shaper > Compiling dll plugin Re-saving file: /Volumes/RHR Audio/Development/Mosaic/DspNetworks/Binaries/AutogeneratedProject.jucer Finished saving: Visual Studio 2022 Finished saving: Xcode (macOS) Finished saving: Linux Makefile Compiling Mosaic ... /Volumes/RHR Audio/Development/Mosaic/DspNetworks/Binaries/batchCompileOSX.sh: line 9: /Volumes/RHR Audio/Development/source/repos/HISE1/tools/Projucer/xcbeautify: Bad CPU type in executable ** BUILD FAILED ** The following build commands failed: CompileC /Volumes/RHR\ Audio/Development/Mosaic/DspNetworks/Binaries/Builds/MacOSX/build/Mosaic.build/Debug/Mosaic\ -\ Dynamic\ Library.build/Objects-normal/arm64/Main.o /Volumes/RHR\ Audio/Development/Mosaic/DspNetworks/Binaries/Source/Main.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'Mosaic - Dynamic Library' from project 'Mosaic') (1 failure)
Is there a setting or something I'm missing here? Following Christophs instructions I get to the point where I need to wrap the SNEX Shaper in a DLL, I try this and get the same error so I'm unable to proceed to the next steps.
Any ideas?Latest HISE build, macOS
-
Possible to feed Granulator audio from outputs of my plugin?
Title is rubbish but I can't word it any better.
Say I had two oscillators going and I wanted to run that audio directly into the Granulator in scriptnode - is that possible?
On similar lines - is it possible to implement granulator as part of an effect that processes incoming audio - like a reverb or delay plugin would?
I love granular synthesis and I really want to experiment with it but relying on set audio files and sample maps is a little bit limiting at the moment. -
RE: Customise Combobox font with LAF?
@LozPetts Additionally, would I need to draw the combobox using LAF or can I keep my current combobox and style it with LAF?
-
RE: Customise Combobox font with LAF?
@d-healey That's fair enough - this is my first time getting into CSS, I'm surprised I even got it working haha.
Could I achieve what I've done via CSS using regular LAF? I read from either yourself or Christoph that CSS is best for Combobox's, I literally just want the font in Baskerville and aligned centrally - the changes I've made to colours etc are a nice to have but not critical right now. -
RE: Customise Combobox font with LAF?
@LozPetts I think it's something to do with the fact that i have added the combobox and styled it using a LAF inlinestylesheet rather than drawing the combobox with LAF from the off. If i remove the LAF i can actually change the font via the font setting on the combobox in the HISE UI (as opposed to scripting) but with LAF active i cannot change the font (in windows) and i cannot set it to load the font from my project folder.
Even on macOS it seems to be using the system font Baskerville instead of the Project folder version i've added to avoid OS level font issues (exactly like this one, for example) -
RE: HISE supports gif images
@CatABC Not sure what you're trying to do but this might help - if you want moving images in HISE what I did to get this working was:
CSS Sprite Generator - CSS Portal
Welcome to CSS Sprite Generator, the fastest way for you to make CSS sprites.
(www.cssportal.com)
Extract the frames from the GIF as PNG files - https://ezgif.com/split
Convert all the PNGs into a filmstrip with the above CSS Sprite Generator
Add your filmstrip to your project images folder
Attach filmstrip to Panel in HISE.You'll need to tweak the timer and speed values to get it looking how you want.
/** Looping Video Panel */ inline function createHeadSprite(name, x, y) { local widget = Content.addPanel(name, x, y); Content.setPropertiesFromJSON(name, { "width": WIDTH OF SINGLE PNG, "height": HEIGHT OF SINGLE PNG, "saveInPreset": true, "allowCallbacks": "Clicks, Hover & Dragging" }); // Asset Strip widget.loadImage("{PROJECT_FOLDER}FILMSTRIP.png", "filmstrip"); widget.setPaintRoutine(function(g) { // Calculate the index (the filmstrip has 100 slices, each ???px high var index = parseInt(this.getValue()*197.0); g.drawImage("filmstrip", [0, 0, this.getWidth(), this.getHeight()], 0, index * ???); }); // This is the sensitivity of the rotation widget.data.sensitivity = 300; // Save the down value as reference for all drag deltas widget.data.downValue = 0.0; widget.setMouseCallback(function(event) { if(event.clicked) { // Store the current value for reference when dragging this.data.downValue = this.getValue(); } if(event.drag) { // Use both axis to allow diagonal drag behaviour var delta = event.dragX + -1.0 * event.dragY; // normalize the delta using the given sensitivity var deltaNormalized = delta / this.data.sensitivity; // Calculate the new value and truncate it to 0...1 var newValue = this.data.downValue + deltaNormalized; newValue = newValue - Math.floor(newValue); // Update the panel this.setValue(newValue); this.changed(); this.repaint(); } }); return widget; }; const sprite = createHeadSprite("LOOPPANEL", X, Y); // timer for animation (FPS) reg count = 0; sprite.setTimerCallback(function() { count = (count+1) % 24; this.setValue(count * 1/24); this.changed(); }); //Speed sprite.startTimer(62); //Play with this to set speed
-
RE: Customise Combobox font with LAF?
Okay so i've spent a while longer on this.
I've set a global look and feel just to set the font to Baskerville, this has worked on all the popup menus (MIDI assignment etc) but has not effected the combo box.
I've set the font on the combobox to Baskerville about 12 times in different ways in my script and none of it has worked - this is literally the last thing i need to do before i can package this up and release my first plugin (I need to check some licensing questions but i'll do that in another thread) - can anyone have a look and lend a hand?HiseSnippet 11766.3oc680DabjjkdUI0YKwR+zRpU2ilecrbmwMYuTj0e7OocVUjrJJUSyeplEo5V6ti6NYUQwJGlUl0jYVjhSagQK7N.Cfg8BXa.iwmZ.aC3SKVCeXgOMbgswBCLWr8gcO3CsgALfwZazW7Y63m7mHxLiLyhrHaJ0o5d5QUlQ9hW7du3EuuW7xHaXn2BZZpajIatsOpOLS1qK07HMqtqzUVQKS8pYxNlzS2bscVuVyLKeTeYSSX6LYyd4Giuc1wdiLj+7kOZYYUYsVPuKkIyS0UZAWSomhk2UaT4CTTUWUtMbakdLstbk5sz0VQWUe.hUtrT9L8kasu7dvMjwM6RRYdhrY2LYeeoYKVpU41y2tXwYWbtVxyAWribmNEJ0tb44VXwBkVTt7ByAyOalruYs1JV5FMsjsflYx9FKq29nlc0OTi1AOUwTYWUH9GExzD0yzKuptZa7PDe0LqzUQscCGYjYlLYucCOI1koRr6JstRaE2q6I4tE4F.umfU.l8R7r2k4XuBrrWdF1KDVJKCK8FTV51RMaYnz2x6NX94ZR00rfFcjQ5IVVg11LWZxOPZlYrU1yLyCyMyLz+8o5pC5AMAJl.YvAJFVCjUAJZlVFnKqYYBr5JaAFXhZB748k0LUz0PWTGnpK2FzVoSGnApc.S4d8UgfckQ8K6yOMnpaaXIaW4CfHZCUL.HwBXm5.K4cMmBr5GOMl4B8glBna.rY3o.xFPBSf5uCTjY3toAa2EMbfZxHYLd..AxsQ5Cz8.5c.8zQOnyvV+.nAvBYtBlX6t5C1qKlSZHqAUI7B.Z0BzafoEXWBQP8EZnioXe0A6ongD.FvVVpGMEv.9SGnXnnsGPVCLneajle5ImFMT1tqW2g4YyCUrZ0EQoAljVCLgFJXVoCnqBpKz.6NvxBMNlB2QlPmeBPShrLzUIc+ATKHPeLqNEnGxVr2.j9GQFMacgAVF0xR4.Dm.L6CaozQok8XBKh7HLhf8LgpG3mA00lQuSGa97.Y0AnFzefpJ5VcLz6gX8Uz6sq9t5OGLAcD1DphDG5FShDBswBBkN.S7jfdTUIPw58PCDYU0cQt.vRm5.4dHcmkApIpGAzfGhkvsgG.U06iepo.JuWOflNxDa.h4PDDwt3+B1fEQas1xFsAGJeDV.1Q2nmrkEleQlJpxGQ9aCrPxt1vYjA8Mz+IHFbJ7PmHG2E0MGB5IuOZnYB0PRaTu2CNcNDqs7.zrQf6zpYNG9StUP5XzfdZLGspA5Gtc+DkKL+Tf4VX1Ie3CeXtZZHqO3zFvcwL4JxX8UCccUyIl7gXdesMWpJn1G2XoMZVeyMZNy4Byi5VrSgZNyDAOAocPFh4PVtnoPGHa3cO6aA9g.6gRKCHxNw+8QCmGlC+fLNebej8fVtseMESKRiQbARHZpqBmtOZ5n0DVFXom2yO4jXGLMgVfFPCzBXVPVVF6i0zwblNeXUEjajM0TOZF7eaYrGtIy4mQm1DZsjJxXB118VDZMwePfl5RlerMCiYlZdCP7bmlj4vl.xRVFlgIBwRBLoZdjIZBFVZPa7DLWbo98qJaIOI9tjUWv2ahw8nw3HogGso8ZCzbShX1ykJ+iO8S1pPXOHs+S.aYO5n1pqpP7UPW1.4ZvlX.Ba7vfRZ6l4dcz7jdMnQTLAy.XJfnNbKXGCnYWVII17ALgYKzuYubG5.B43BIHAXII1ECwK0zO4iqC5fMMH7NdkHpmzPrMLncnGgsmkVSqkwQ8sloJj7+SHDYJji4m2SDpA.gqiX5.yC4Z+qIiI7OD7G7iYtKYYD6qZ.2yq03gLhUwC5IfX4.emOYtOK2XDBfdVBGfhJoOzvBsfFdLNFe2Nc+Alcmn+z3.+P28EHQ.MNBrVeoAsUzoS1nKuf8OStH8Zq5nKrWAF6tCLQCz5QlXFq9Vl3U1lzw0HltdOMxMpN9APLEHmiip+1.7DOzB9qt4Fae93ibnbjtBJvCjbXUcb.SriK7UVxbhw+rFas4Op1Ja+Iqt4ZUqs0KHsblsFX0UANskUmwmBLN8W3YqIf.HuR6CMN.EFO79aA2afprgCcXt0JMalP5QYnjQ0ghja7z02pNxKfRqPnD8FCE8pM.GMMJ9JOBxboghTqqqqgBkzzUC3dggiiddK0An.NcYG6eON00wiU02EEo9ZKsJXBjUL1UEMBq958GzGEBi1.64CdyxUk63a4VJUnXDVSWe+kzZuJDhmkjC0X7ZZzVfYoI3TVSAJTByIHVYocpVeSPyOp91q7j5a7Xvx019ipUaCfKZiuJlBQcyigPzBZufB2pnMUvxg8VV+P0UPAshVjHeAjOLB9X2U6H+ZhwCqs7K+UGEpFR5XJlFdsPvSVL1mrnfmrTrOYIAOY4Xexx9VlGgbWQV8IxF8z0TZEw3MXKigRESLkJFCkJkXJUJFJUNwTxmbZoA6g7c+XCzB5hEQbMZbbnfdDX4sZZgASFgDloI7ct2MJF+yVbb2Xhrmrfyqw5DrjQNcY80YINWVRBaFy5qGtM35qyOB8QH1lIj.ESFAJJj.kRFAJIj.kSFAhY1TLxhvZdrDr3vQvhwRvRCGAKEKAKObDT7LsXDe9Zof4LwPDt1IlDESHIBN6a0OFiGjN8Afm+.rm.gaF1TBfskByLror0.CYKcC19tVmNvVVdFgtMJbSYTrxVvHI.sE1rss5A3pehPS27mN.B+YvvnsflFskC92vmBM1MQTzow1LN0V.PLFB2XZyNcPQ+DFsCzHaZVLe4EA1p1vLKDwqbMvlVHLIu2xKsxGTaipu2EhHqxwjpX2TRYmnzHWl.MhcxoEdMH8d800f3fIC1zvMIER.mFDsYh392WCE5VQHEXZi.OABeT2VDX9umvsoSJa+.M8cMCk936TL9NgzrwsiV2qqbzmaIiAduLMYvr8CsAEn2QX2v0JdAA8VESDAJJl.kRDAJIl.kSDAJKl.ylHBLqGAPBZbLTf.dHQ2RQSEg.CzYfVK5dRnEXYNziRo0Jzb9OQKm9ZJZh3IIdQ7igQt8Tb6ln.NKL3+DQia0UVaOXaLpuWf3ujMew64GeRb2YyoqXma+IRvnhJmbdBSRp0B0nz04iis38AgtDYPIK2iEsvLf+noM6penyyPa3CCqcquNI4uVnIa6h04SDZST1SS2vd7i.OiFBdjLQplwrQtiDWanaAMQK9DsFy2DyvURgIfn5E9Iu2G3F7QNgx4hIPN631NboKa799jpb2JBoIaD+hIQwDRhRhIQoDRhxhIQYwjfgFtAsgIjyl6BlnPHcGM7Lws6L0TqXRL0JJzTqj2j6.wUJzjqzIvOofI1gGEZxkktAYJ9QBWtNVrR1RIQxVRnjsrqjkKvWgB0xIPnxD8S3xSe3s7MIv+c+px8X4jHYKKTxNqqjkK7egR1YSfj0MtsvkqbPP8IU4uWDxTNPnQPjhIhHQazelp+lMI5uYCS+QvPAZVasZqr8laMgSoLLICdq2a0s1biswfv9JIA1OFR2RPbJ8UwUwAdauZYymAhQ0o1KhIHUmlgiRk+JXI3DiOvDR22oF3MRX7o.VFD0XXsUwB1yD0De6x2OQWQahw+CQJE6zDXcjJk4IB4k4XdU4NEXXY59RrldKY0faHQgDriDrcGkaAUMz62V+PMOZTmL8jzvlcg3gRNSZa+rb.vt5FsgF22.EB5.yG.x2+4ODc0V5p5FO.rqJxxB+693hJRauG.lkdeK3ysturJZ9xC.38MBZfuJ1NbOC8AZsuuMAL1aW4IxOEv9emt3jODLy6CVFSWvgJVcQtR9A.c7jFqi.u+LtLzC.E5+bfotpRavucqVsHcpAVvicw7f.cEh1kLAPYSHtk38G59cj6ondzC.LxMWVmPJbAz7.vf98gFsvOHlyVWdeHvV7fao2swb2KxYK5dPWRwT8YhGzEKM+TfhEWD8ev0xR9oKS1D3by79uOsjsLwJDZEagDfJFPFJgKuG7Mv6r0z3NdZ5Ncw2eh5ohh6IEs1JGnzlT2aX6Y7lnI6uatO9VA5KhHquLtN0hzBoH0B4jqB1wUhi4Ka9jJ7oCIjegAFX9P8H.QO.ayrSfjGv+nIT8UnlmmJVulFotsbXJhbzzR9HS+lQimC6sHnal.9BvShsSlAYaxwJQpIHh9tthHdNokxlaM8IdcYmNLxElsWgBuPCUX6VLDdsG6ysNZLtMRnLAx+G..PPbIKy4U6D4xMlRG.cIcvO7GBJOIXrwxMFpKFye0KM9ypQ1rcf8ebSNLC5RziwAiiC8OPP5j8+LrKEOFWn5djKOgbLHA82xPHRIADIXL99eBNh4OHBRNsnqBQKzy1nE.5HqZBCs4ifTi3vdkCe.wEYs+1FBYlMbxvEFo+1xRlWjiyDpzj.GCHGrfhMKxyvGCi9uPH2Lgp7Wk0tmT0Io+SrFbVGM3XgswJiEixLJsYDSmCd2vdxRBDtQnQSlJ0N1xwRlJMerM0iEhlGBYTTNRoS4HjNBU8Qn6Cn8KNoqx2mmjKR587iH8t2T4gYtbRmIKRiV3zpQEqOGyu9r.ReN1mgVvF8+QW2l0yN45NKoGk9M71v1yjaGolNrVHhBkhkBkDRggSyG9yHT6GayEMhJG6HpbLTX1HXnnsHHI1KYfwiJ8E9BNE6by6evugICPgzhk1baum2U8.aiuF9RByQfSCFmfjNPEzQHfnBChzgr08fdabZK7UOP3VIp34hfB7MRTMzkDBTLBBTJIDnjMABuj5RBEJGBEBVvbQIOCswwUgcCCAKl.BVZXHXoDPvxCCAKGjfbUTWDzJP6DW8cQPEesRXQ3kHR3JueH6DZmR.2wkPH3WclwlzM2D2dZJvPS+MUrNJ3luQGOw0nhIoQkRRiJKrQgj83HYtvMiSZiKMLMNRlNfAl.p5yDJ1VEwvQbhx87oG9hL9rfrqPpcwu1bz003lhgudLUCASa7M+DeCRlXh9YIMgVvJAM3YndzaPkKkBceTDKu3X+vEYA4AByxrsBMpsR8UquBXkMqV6hxqUhfJKj5ywKoNObXqrOUk1Pi7ERboV47.DMb7UCiSyGp83kY2ac2ZqID0HLuZPJOys6heQszUaOE39waoHdfkrJhw2HyesfERIYEZL1IVv6VHXQTPttQTmXpxVIPIRgRXiH0lXjvDzvn+Ge9PccJNV3vsBqHo8WdNg0D9s4jh2CDN8JFO8BrsoQQuRwSuRCC8JGO8JGjdXB9B+h0hS5nHFMx0BiX4Z9K9x0vDqkFsVqEtfasl+bxZs7Ebq0K5dAx6Zs9Bb5oGlU9rWYIYK6w5+2di7Z1XoUpuzZfmrzVqu4F0WoIX8c1tFXBx+co0VCbevSHGNFSNJKf1OKWvUQFcSKcWpZzYAEGIOAFQwQxSfcjKIegO4ad6jbOhVjlsVjFgyRS.YOISVS.YOI9BYI6KFxYsirZ3laKKXBgEE6JGT3okMsyj3DSNMMovagK6fsz2UQaBmbCK9QvhG7QZC7wF5C5SRDqu27FL3kORosUW+o9zqX0noRO5WEGZaDkVH6bom.RTTPHw7uaFIqb.sYJdHMAtKYvOUXEoGkgh7wK5+wEaK4+sKIb6mPGmDe9LBCb89so1DjQatWjC3+V3JALj6YSMhkQH2FeHjYD0CNg1fd6BMXk03FlI6ave5cII9z6h8vEqEULwzPcs5ZJVa1GpI5HGKisrMSlrusMWgZpE4b95F1myW06IuGLiRaDeIs7iyPXV1ihsL9evaZ+fTzkjm7JRX4egS1CeaI2BQmbwRbjoRoR+2ezIgLk8wMU90URBYFSp4NKiGM9GL0ONIO92RRDHb+za7JmJ5UzG8d4pIh+9FRgFsjel6KEKxotmID66HI1+sKEeyrCgsv2PJvq+XX5hjQr2QxqTiUdNz3TXiFFoBHzplHMvsj3cZ4mJOqRxnBsNU2VmlbUeTo+e9PQkZs5pGfJe9u5W8uMgy7rOmOvufBgvLubofBlaYSFmJ10lc32Px.5pDMntgMU.gY4buDoixI4jz5PLW1oN9TKBe3IZ6c06LIBcspvCTZAoGkhiIUEZtukdez7X2k1xj8pBmP8VRbaDelmy1wGw9iCwqix3bpRWnxdcsXuBt9h0IAxvNu1T9.XcsFFPzTKmiEROVarXYshAYs5UFMrVaXG4ApzMAO4rb7RyRAY4mU47PZdkXYsxAXsi2cnYsSqJc1fxGkglInQaiOKBVCJaXeNoFjyDoiCQiJH.EFQUin3xuXfetr6uHfnpPF7QrF8fh8dRANtpd7z801iSZdCddir+ODd6tRAKb1SGut6dNmos4jJL27yOewBylAWeyrG0sd+tH8B3pkNjmCumC0M2B2GqnpzZe6CJWb0Zuol+Ke.64Ga1bLC+2I1P.8FxurCyP9SedEeFQOy+PtxOuROYt4nn.nwqT12z6h2sROk1sUgMzouVBrlfdBLdIi.Ikpdq8cNsdaaHuWUxYsJgl4jdJ1gdKY0LH0X+lJ+LNiUjMSOSLiQMMy9aEvxAKK9jpx6h9WhIDdGBI17j25ErzZoc0O.lg7dBv0e1kxTHJB5KB.ixHTStPl5GbhzMYuBqNKSYVyzC8oyd4RAzYcq3MA59RyriIzvbFU8eVenkk4LUQXUHmbgyPsT.H.OVfBDQxY0X6FRq93Ugx3SwUyBIdEzPmAlLtxS.7CBXGr5i2F+hK3vOjANdFJdT+9bimqyOdVSdWaGKWUZ65auVMgCkOsak3FJn4FIanv5735RkKN+BEVLe9ExmA+9YPGiWUhdh+QtD+Di5UnCs2UJrsANCDg5U1UiyN1uknwtanbj9lw0RUFyzW966W.zOf.3YQyZQNt4GjUqDhrf0UB4QnSqGSx93Hz2XuGZEPEbJanOwoblvshXAd1KwZA8olryymxuu4xADfyEi2UVIXndaSX7AJlqCsjaHafDvVPiPDPbNHGdoUNQ9MFSpt19eDTUUj6vuPwmXpR.6ruf0c3jReVsOtwCdPXVbu.0W.bmQ7HjrQg3UFXGe2U3JzeaVht4APCU4in2laU6UXFxfO0+J.q5eH2ueB8sDbotd5sg3SV9Uwms4PsVGkoG6GF.EtvA5+WVw2RwU9u8y9iCGyv+j+hPhItuSdwp2l7QA.ujL9snBC9jz.wF3iIUpzryVtbIdy5wjJTnvBkWnfnftX0Ku8IPuThQuTYeVWdeRr5EvO8DqWhPxHHRzSp.JzX4H4cvS0i94+wvTyjlk.0bHFMIJNh2gUXUs1RU+fM1bYVeCeLiB43eteExGFHTocRpBAoCXVv4KdjmKkuWv.MQLEl4B.T45h.pjyMOoW3gmviCYLlQ2cFhrIynx9D1QoteU1GDvctRPUFi3K3LmXkI3fKJUrvByleQeyUv2oPg7KTnXg43Mheao.GTK3ULnKPhav0kruAdNjH3Qewi7uDcHyoHIamap2+yGEvaPxVsIX538zC.VjgYLhWOz8rPOL+ByVXwRkVTjMYnKsT4WKB.5u7eC25U+x+cU7sZV.AYXPKCMLINygaIweX7vaKvtZZhxoBKbohiX3RL5ngEjTD4bI.zHN1d9JQ.MpuURfFwx1g.xwK9+aHwbHdmjk93vVPQjbCI.n9VatAX4kZ1LBLR2IA6X0ncwIdsGWBOlLfNz9HirQsMVo9Z3EkdJEkevT3b7mTgrB2pxjT7y3fha9xyNlKYPe+iEl2miCOmh0OlaZim+H6LuxOu4MkHeUpBaJYf4s3D+GOt8a5nVnWRvLKzBuwoaxTLntwSmyZMxbvID8JugXGJgoXD1eBGmuq+Eb8Ode41rHJ56Gq41AFu+dwNkLrAbLiuqHUcq5OsVFxInROBQeSIUXGqQwXtr+w7wcYiV+y7qiW+7YLeUoUqu1101J93IDKCDia4dtzQLnkOkQLTQOVPKe9vFvUf4lhC+wWXMhh9gGQQ1K6GOgph19v1aqGVjlmY3jxjnTvKPgvF40mGcjWATHur6YjBAGsjXv9nfmDE8Ub5mv7fKVmU97QmcMQfwtSfJn3BDnLwaCzacRp+ElU.YcK749cKDb6EQw+GUL9WQZtYKleg.A3uP9EJi9uKjgKRhoEtCR2KYgnGXBQHJwvCI4tUhHusIqne7FHeA6TYPfoxONPBgBYpbHbN27ousjvCgR9vmFS5ifVjHnhJHteuiGpjMMlzrytvbyOagfZ1Rymu7hEErcxzRgZ31onRiXnOgHYGM6STbfgJMh2mnvFHA.EsHCnnqI49AI5DBI5skB75AdRBR6ukPWQ9iVqxVm9HTCQNwyymvX3PQ5+g6Tq1ueXQtFwRLIPLTb3BZ83fhgpmmhgGu0ROs91OKSxbgJpNGGsPjCYzNL.dO4vpCILKtOoxbtcuUkvVFSTk33tMSRjB2jCrqPiruS3h6yBnuhzrNvXWZ8FmVStP1uvgs5WOUUtWRryBqdzxTQjR8Drcgf.8Yxf4AhGl2wJIZHdJf6cuJ9h4ST.YwAm3LCdPz3ThHL5jANOFsGKlviiLPxLOwu16S6dB0dQGZnnP4RNf7HBa97aKMinVC7f8cC1xb+BDhurWIIUJAW0icZ1yf9GEzRhWz3Ey72OvZikVg74ukddeTLXMkwUuDC8dgT9zAHXXC1OF4vvToXkGwH.7oQbWL8skVSYWCHXHhh6lRKsyi2o41.TvbaTMTfDhCz+1C8aMxnMXu.VlmCaIhuD2FXXxiB+pR1WUzxhaDLCGAfVO2ByWd9YmKbOjb9r+6TIoAGFp54rI3vvsDNwIPeyUWsYssi.940DW+HLrRUnb6yCSxjUmHrUXBoLZRVokcmHJgIVwtnRKqxOlsZ5z7GnwlATv+j3FwQkUvDUC39qIhDGf4FURdbIhLJ8MYJoUKlHQsvjC9E+z3iHu6vKpespLw7zV2kcX6f0IQIy+ZduYeuRjEegAR7M7FH1yhC3qt.6f5IwmpnPxXFq3JAEddPG23L+ud8Ot1Vm5RiM72TTtYmLYFKvFVrQ.HRJQObi+EHYe7oynYeCjVVPPCYdXHAMP1BSNa66H4+cvOzBeHJrYYD5Eb5iCYGSNgEiUwRkxuv7B14ju+wIaKPC+8zU.V2JFwpHyzcTqHEnyBU+FkRo7wIZypDt9Ee0w7VRberkDs4NmPkazaWC88ld3PmM6Hd6Z7oSOwkpVbXylcDiMiiuccUdKoZOuk5f1v10sjUUZ4h9h8jLYXdoWhBVlvg72Jj4hj6x4Yc8n15kWln8bXDrPx0jZ9rM19I01t9JCUEBcigdvWbDugKifAu2dqD2PmOXthys37yVnTBWi8a5wnBQH.XSjbF+HDdYfTQB1OZARBVcR7Ra9VCL4w6GdzDmgQGysJQRV.8cGZsTQQuXu2J9JO33XVD8Tjm+MNNl0HOUUKT3QSbloH81v+jrN4MS9ILxnMoCbptvSaUno35rZ2NeF+d8nHXuddVByV063S5cVjlp.ZHmzM0rwV0Vp5vmtpXe2ZSxQHCyL7cFZyjuh12atIzWmYDI90hf03oxeBecG9eQTwg0+OObyJz0SpYEuz9rwrxmF8TZGQsJeSos2biZILU7ANQgdNaF+FVip.ugT3WZmEJWpXX05WghkJGxN84KEQhykjnjG8UPl9uNiTj2PVRBsRTlgyjyQWbVZx4pucRLSsUdxlMGkNxtyPb9S4MFaXMzFcwtEIyuvbysXgxymwWvF9BEYHfi+xkDr82Kc7ovW4Pr1Lm02MXkmhREPxLAeW+plyBavf5+S76HB9bBtVxw64k62qK488f3zk7WJqjjROAOBVr7hyMewEmM3KSp6cDDsI8i96VjOBwrrn3W51HNNY7F7bmPSihTyvIYipd.no2zb4G2PEYfRlBHq1uqrM0O9+6D+udThpXxayziXGAhOEYThOoMGE2HZXMUYvnecIx6dHFrReaS3aKsADgaqmtADrzf1J5YNQCYgU0wmterC4iO7DNjiZjEwrVDj0AJpVfAl3SYiezNqTC76.dR8l0NYCcwEPcuXG5u7fy2gdIopJl1m0tsACzvGwROtwZGTBnpfnhIDHaBjAcLfP.xEe6AsrNYBEwUCS+XEJUFb9NEXWoUz6ejAlGveTuWxDg82DLgrpJPA6xxbJfp9d5ljufyx34HSBTLAFPKjaCjXb2i.9lCMyZxCnexTZfOVqlNYo.zuLTXte+bi3mSYbBkgACn+DHQ2Rpgqg0ZDCK7LMLfJECH9oLA8UweH3AcTznevr6OXWUEytHwoIp2ZQL+9I3uv6Hoi9gOHjbLOdkSjk4bBkpGF+z08G0VlT40OWZIPOYSSkCfHggr19GoO.XoCVoqAZ5pd+t2+IxFVSAZO8SfnXzNhXIhM4NBwD.xmMcYKhXD6FCrptwfdfN5F.DcL.cgp8weD46IuOVMXurGZZtAhXJVGMsPsYhRaueA77hDvu7ua7BX4XDvCcFqi1P86I0bP+95FVUbmASl.OcK8oGreDw0kKoRiENKkFr0VGyflaSbtuDxb.YanilscXWcvg5FlcU56XvHiORHvt8zzULSXIt+VCyQxKSRh3hscCeC+ubPH0..NHUTvlqwsQT43Nc+89NgE5mU9fuYP9qKBuvlCLyLzaHHGsCLgzONh1mXiRYwuNDgd3tQfAJkUBc+vems9VI7rJloTo9PVY687uO0KFP196VQwrg5.j.y2YmF6QSGGd06cr3C8xXq0D9xrRnr0rE9.z+i5BgpBpuJSnVaBl2M0phXG6WXiypxi.gA32vmokaJstLxtxfpFRToQHXqHJebxeKatWXYxOnym2l05.D3sVamnrQB4LF3gUbRyr8nMZ+MAWhNeEF6+qJY2tjeRSvZKJ1W76jjikaASUd4RwOU4AUNEEIXHq1+lDtJif4ehLWxvaWcOea2XkHNQZCbVxtLNlpy3YMQdLPcSwKe58slMZ62k8a+9iDZ+ZKvEYeFiE8I15k2hM52FS6kTuqs.YUUcYKzZYaqnBsWVc85UqCpq0FoR4WV8O64rhk652dtP.wR9J1mC8aaqDHeBaPABtFZtlXScwKBdcoBklaw7KLaoRkBTgrjy99rPoOKG.LN9iQB4rpBqZG+Azu95SguC6UGGOVGmb4cLImsUMjs5x0bjtBNWYlaM934dAm+hUCQaiul+.DSDzrqIswSWeK.1dl8PQM5idckPBnIAwuF1qIQPS2xUbyeSsmVaq02bqZfk1oZ8M8Y1krJcTXMTkiLvWCA+k8PAgqLT1N1Cp6LxUbpZFhXjPNuLyAB32gzpl8jsOtSSDNuaJ4.rIRsDvG29o6EHp6eTEmxbwlhmxi4308ULTI63f5ZRKWa6k7OXdIaIwiBhymOvJgr3U.HD9jTmpWPm2jvkghNW7B1w4r6FRa1D7Avi1UW1P3a61D+83cikSx8I3inegxyO2hkVf2Y10jJOawEQAtWpPByDtqurK8iyRclg5OxWmJj2mhkmNOwuTUEy9pxGsYKK4CfaP9dNw42ZM8CQOF5RkWf76mnP+47EI+jhf.AroeWDTEtmrJMvvk52GhBXPqEDcWKiA1tCUkasOhRagOSGQ2H+zysH4OKrP94WL+7EHsZa881SEttdaX.WuqzUVSi37sfie2mRvuwvKt8F5lqpJSWYjmRMp4nD7e8lVxFVd8RQmqWSqMSeOGxIdrYHeqJA8s+kOxuu+n7yeEQt6PS51byOnYi5aTKw6JAxpLpWmu2On2M2jEtrt99fl8UzngWw4XP7oz8MjX9beyxl+Vrac4eTrmRNnPcCqVcbE.I7D3N46+TffkisBm7Gh5uS.gIinfTosj3SiZ6LSl226vJiibOHSxan+hg9xxvnDiOQN7dzJWZwREVvM6AJgb.FvO+X9JYb+NukI6arscBbP9BFnhimDMGDgtndUxFzi9q12.CkX4i5KaZhmZk8x0wNbQHSNhclW1Kw+8o6xh+9zkm46SWHe84RHKdaoFJVs5FNOdoP3wLYNS3wK6D.M8isnGC9FRq9wbxsQV2mcLl9eLZ+eGoF5pG0uKN8V1GwqXlfq3lXYF51w6Ia7pzIlhT5C8dYC9adz5jCdcuLG7gCHIN1At2+6+3+x+hkU5qqJabZE9Ehdz+FIzB4c8JeKvEbSYr13hMO9MkrUt.rP8hMudSoO7qdFL54kANOlYcdwO2r3wAmaV4W6M2L2ekTknmaRFjoyMSmalN2jxfWgxfWSx6rrEyagcF2xNuj4.ym4kv6ifVK0SeflEKaihM1+JrMzMs7esrWdTMwKaBk+eCli8+uhTDagB4EgzecYTT538.CgPtIY69sw.h+5Fm8R3Owpzem24TEqITqM4G++P+w9lEb1jM7MK3bSVk8cbRMP0izj6g27O5bl.G6OH2QveFzmmXKXMmjm4o1vWd6tH3O3u.E9uwRVVx3uEEdhN7U2BRp0A1DjgABXPXx.cwW9HuaFRGM9wd2lf1m8Xay6VbbB4aXByi4ieN1nxZJ8P.yLBY7ZemPGx12K3n19FAF3eeFNbc48g7eaLseJ+2XDNU47196ZT6uqHUEpJeDWT4jJ0lclGoI3uQ3qg2a.l746dis3AUd2JqBgsweWyYdBvu3u4+zibtN6C.9C+S9O+n0zOrANtCzREruBCOQIvUyTsBotw8pp8sgHrqMORqEmmgWU0L2wA51J5ZGnqNf3HDqe3qkYNEjwQ98g6Vaydke8ZHAAa3Z37Azq+.USjdUaO1zDfWofvO005OfaEjcLgKiTe6YfVZoMdlmbaeKvzlXOwzGOQYEFZfzoUk60WAmSIFbdqts8mYXOKH2zT8cs+3iwVaEu3I3Lven7AzsdjJusKdga8u9RYT006Sxqmy8vWnlVam6+5m0QTmuwrKdjDakUufZq7E+leyiNNRakuYfrvUcomIvN4K+2OUj1I36+5mch+iGggz1HS0WY8i7dArMZdntQavOReu8fF.rzPfkRl+qRQZofu+qrVJWkJwttTSkd8Uo.DnXh3JmHwoo6dGW0ut5i7usqKKqh2XHNaFsCfFVMvHD8C7+xm2.+eU.O8cngpcQmIIp9K1L4sjZH+0DXleWm78gb4CQ3L01qoLdVtgc9tB9MaLeAQS0+zNc9+7nPlH+TckVPBBI1WkhOPQUcU41PL7.1ZCodKcM1ccC4pG+Y0leOgNtxxC5zAZve0+rJjtxedM5WwdLsErOT1hOqiWsxVaQNZoCIaH3cpYaCzxPbqh7kOZSMHR2ZwNFWwP2zrCZ3PnE2KYViAF6wCLcK7tnZxeMjdlUCiUZn0.w1SJsbLFXPri6k7aS21rKIQ+cAe+tnueWx2uK662y562y462y68ap.cc49XqjBQ8w+MnATy0Qy93mt7lIyANp+HEONSKWVYOWdwYCzUa6rY5g3w+MCtIX2UhTLVNWm0O.9F.um3rYewxFjktFomwmw5hmHt9577yHK9B6ZSAmfc7e0PGWPyB2R+aJormltgygA+A9ON1yj.Z7VRcTddSqAs1eCcLy6iHCim6ux1AXN03XN7HMloZnPYT0QWwYcZR8v3bUdGpqqqoS23EdWFHW.3vPY48PGP9Ro0KqVwetr9W8KprlhFT1f2S3PIKFQ408dRT1EfWE.7p6N2e4y1ctmSdJ4jYXzDKSKYzDUJ6w3gfTyvwxd1a+BFX2HSy+UcMFjMw6k4ayJvBtclWNtsy7K9mc2+CtamIwjL1sy73kR2NyzsyLc6LSBCRipCPynxEOF75RjPhAXDLutAOrkCoPiG6+N8Mg3xtUje1KohvvnxclAh.jgYID5fjCv75t6csXXke928+wecJrxu9Aq7csgU59Vx9hMatRgTriCK1wa5NGa808MKKEy3qpXFKdVhY7p+iCfYrxe+TLiu1gY7VLq9lBYLp855NtRJ5tcINZEx4Ob59ckteWo620Ew86JEzYJnSFPmEivM9WlB5LEzIAzYwTPmmJPmESAc9ZAnyxmkfNIOKOny+5+gofNecFzYwTPmICzY9hwVjkofNSAclB5LEzYJnyK7fNKkB5LEzIKnyuQ.PmaPNQiSQcdZPcVJE04qEnNm8bF04u6+nTTmuNi5rTJpyDh5rTznNq7m9d0RQclh5LE0YJpyTTmWzQcVNE0YJpSVTmuS.TmM2Y4TLmmJLmkSwblh47Df47V+CRwb95LlyxoXNiBy4s8UdsQEqR8THmoPNSgblB4LEx4ERHm2Mv4LXjurDoPO+ZHzyefyIFj+uvouXYzpyqfhMVK8TB5DcJA4apW5a74qMPRm6LER5cqDxIdcJjzW2fjduPVbNEZZzmxozK.vWQXfLf+p+4emJo3RSwklhKMEWZJtzWQvkl91elhKcHvkVUwv5nTboiHboouTnudfKc9Tboo3ROCvkl9xglbbohCj4eQ+uc59klhKMEWZJtzTboupfKM8EDMEWJGtzeag3R2oY5tkNJQkl9Ri95ApzERQklhJ8L.U5Wee4QSiaMMt0XhaM8ULKMt0DG2Z5toLJiaM8EO60i3VWLMt0z3VOChaM8EPK46lhvzu8x69md2zcSIc2TR2MkzcSIEU5ERToukzRC1afo0iMjQrW5KdVJfTN.ouuMfTpQBfXk7BFKF6viMSwkN73RuM6TuWQdwyrI2WGfjdofgAmS5oHGVsvcI8.Ax4m.WduX7rHZtu8rMVzn33c4caTE1RYWnJuOMjKW69jPC5xBnYsmInOhBI9a6GIdg7myPw+d+KSgh+ZGT72lOdju9hB+RA0m4r8zh5y.hpM6zwDxGmNswYx9Kk.cFn0BqqA8Mf8kMfaq2.gVbBSxpragX0o.6h7prONlqIy8Y4FK2Kxw9PDNYYbKlvI1zfMCGaGYogIzFzaWnwT.hee2FhVmdToaNOBB2cYyLa.sNT2XehAr8eOS1qHRE7TT7e3oUYuhT9oQ+SlkTU0ObE8d8UrmvgzMjq0PW8HGWjYuLsENi.mPVoCimHatsrhJ1.u4.y9H9bSslnFShFGY0kcChKvqrpbKj78nFx3DrbaIT31VHSUnwzsbMYi1pgXVhzHMjMj6AQQpXR0FaHiijOrmE2yNwzSkwnAROrfirrzkw2mJ4Hr3ah4gqgiO3SZSRLDGKeKDKa.m16t7bFkKXe5X58KwLNX+EhOVWQ6ozvRjv5ITbnO292WQpXd7UZZA6SAgbWTKJjm9mBkWLegBygLP2GdHk4oMnT9B4KgZvhKtP4EmGEMGcjRxKCAHzRCrz6Ia4FGKC2HIlatpTg7EKywNRREP+FS9bRtvrbY9YKTDcWr6q9nPJTfDeYrhgrLcLwJ9pR15x3kIb21N..2qUXDHzxlEMuSCR7nPXVuehTfX0c817l.tiF5M7j2bh.xRO3egV33R1mzmlOEe2VxpNCKzbscpSBoh1w34+LDIa1pvCPfPodiGC0Ul6ao2maoBQIL8trScnGZWBAa+4+pe03oubzooMMMsoooMMMsoWHSa5MjVdKzMPWM8z5JMoo9RZ531IMsX9xKBrsRdAi8RZxRG9jk9VdS3ROitdUs5cBlyvBmymazp+pzbF9ZWNCuM6hwo0sSzerhbEUw.B0dKHRAglBBMEDZJHzTPnWrAgldzbkBBcX.gVLED5oEDZ5Ax0qIfPKdNW3Js+mlBB80ZPnoGEWCGHzhofPSAglBBMEDZJHzW4.gNljyuRAflB.kA.Jt96RAXdRV+3UQLTkReO7SwPkdbLkF2xWwwsbdvk8jaYn+Isn4UCyqWkbEDWpQJPcDfWYqAFzIXAxkVOzZMeRqV7Ty8YkjVxr6v9PnAd5SH7IvKtaW68XERlLq2nF0pJaMWqpKm4+OPY04ck
-
RE: Customise Combobox font with LAF?
@d-healey Hi mate - yes I have, I've got a bunch of fonts loaded in using Engine.loadFontAs and all working perfectly - just not working in the LAF for my combobox!
-
Customise Combobox font with LAF?
I've got a combobox working great in my plugin but I need to change the font to Baskerville, I've customised the combobox with the following CSS, it works great in macOS, but not Windows! I've added my fonts to the project with Engine.loadFontAs in an attempt to avoid font issues across OS's and machines - how do I reference my fonts in CSS?
Again, this works great in macOS but I'm now thinking that as it's not working on other platforms it's not referencing my specific font files.
This is what I have so far://Combo Box //Get and populate the combobox const var VolumeSelector = Content.getComponent("VolumeSelector"); VolumeSelector.set("useCustomPopup", true); VolumeSelector.set("items", expansionnames.join("\n")); //Style the ComboBox const var laf = Content.createLocalLookAndFeel(); //Style the Select Dropdown laf.setInlineStyleSheet(" select { border-radius: 0px; color: black; padding: 5px; text-align: center; background-color: rgba(0, 0, 0, 0.2); /* Black with 20% opacity */ border: 1px solid #ccc; transition: background-color 0.3s ease; font-family: Baskerville; text-transform: uppercase; /* Make select text uppercase */ } select:hover { background-color: #f0f0f0; } /** This styles the entire background of the menu. */ .popup { background: rgba(237, 229, 217, 0.3); } /** This styles the individual items in a menu. */ .popup-item { background: transparent; font-family: Baskerville; color: black; padding: 2px; text-transform: uppercase; /* Uppercase menu items */ } /** The currently hovered popup menu item. */ .popup-item:hover { background: rgba(0, 0, 0, 0.2); font-family: Baskerville; text-transform: uppercase; /* Ensure hovered item stays uppercase */ } " ); VolumeSelector.setLocalLookAndFeel(laf);
-
RE: Simple ML neural network
@Orvillain said in Simple ML neural network:
@Christoph-Hart Looks like Jatin has made some progress with this:
https://github.com/jatinchowdhury18/RTNeural/issues/143#issuecomment-2472915024So does this bring us closer to being able to load NAM models into RTNeural inside Hise???
Has there been any more on getting this going in HISE? I’m following this quite closely, being able to load NAM models into HISE would be a gamechanger, especially if (as someone mentioned before) it was similar to loading in convolution reverbs in terms of ease of use and control.
-
RE: Packaging my first instrument - LinkOSX question?
@d-healey Understood - I've spent the last hour pouring over the relevant documentation and can't see any mention of how to actually declare the location of the HR files in a script that HISE will then pick up for extraction - any ideas on how to do this? I can point the plugin to the containing folder, and get the HR file, but then there doesn't seem to be any info on injecting this into that extraction process on the first run, unless I'm being blind.
-
RE: Packaging my first instrument - LinkOSX question?
@d-healey Surely if it's installed by a package I could pop the HR1 in the App Data/Application Support folder and set that as the location for that and then simply ask the user where they want the samples to be extracted to? That way the location of the HR1 file would always be the same as the installer would always put it there?
When you say use a custom system, where do I look at how to do this/ implement this? I didn't know this was an option!
-
RE: Packaging my first instrument - LinkOSX question?
@d-healey Is it possible to pre-load/script the location of the HR1 file so that I can install it to a set location via the package? That way users only need to extract the samples to their sample folder rather than extract the individual HR1 files for each expansion every time there's an update/new expansion.
-
RE: Packaging my first instrument - LinkOSX question?
@d-healey Okay -
I'm trying to bypass the need to extract an HR1 on first install and simply have my .ch1 files be in the /Samples/ folder of each Expansion, is that possible? Can LinkOSX/LinkWindows just be bypassed and the paths be set by using the above to grab the Expansions folder and then scripting that to be where the samples are in each expansion folder?
I hope that makes some degree of sense.