My new plugin/app, Rhapsody, is finally released into the wild!

Best posts made by d.healey
-
I released my project!
-
Export tool
I'm currently building an app which I hope will allow batch exporting of HISE projects, auto notarization on Mac, and auto-generating installers. So far I have the basics working on GNUx. I need to finish the interface and add the batch handling, but that shouldn't be too difficult, then I'll tackle the other platforms.
This app should make it much easier for everyone (and especially beginners) to export their projects from HISE and build installers.
This is what it looks like so far (it's an ugly work in progress).
-
Time to update Visual Studio?
It's becoming hard to find VS2017, I can no longer see the community edition at Microsoft's website, only a pro version trial.
@Christoph-Hart Is it possible to bring HISE into the new decade and add a VS 2022 export option?
I know we can already use VS 2022 with a bit of fiddling around, but it's not straightforward and requires additional steps for every export.
-
Universal HISE Downloader/Installer
A couple of years ago I proposed making a general purpose downloader/installer app. In the time since I've created a downloader/installer for my own libraries and it works really well. I thought I'd see about adapting it to be an option for more developers.
I'm currently prototyping some things but before I get too deep with it I want to know if any of you would actually use it.
Unlike other similar apps (Pulse, Conduct, etc) what I'm creating is decentralized. Your customers will log into the app using the account they have on your website and downloads will be served from your servers. The app will of course be free software.
The app is more limited in scope than those other options. I don't intend to include an integrated shop and I don't plan support for non-HISE formats - but who knows what the future will bring.
The benefits for you is it's very cheap (you don't need to pay a middle-man), you don't have to develop your own downloader, new customers will discover your products when exploring other plugins available through the app, it's HISE focused and will support expansions and additional presets, etc..
The app supports serial keys to limit access to downloads. It does not (and cannot) provide any DRM but you can include this in your plugins if you wish.
It can integrate with any website, you just need to setup some endpoints and make sure they return the correct data. If you're using a Wordpress/WooCommerce site I can (for a fee) supply you with a Wordpress plugin that will integrate seamlessly with the app - this is the plugin I'm using on my own site.
So is this something any of you would use? If so I'll continue developing, if not then I won't bother, I don't want to be the only one using it :)
Here's a preview of where I'm at with it.
-
Show and Tell: Grid based layout system
Just wanted to share something I'm working on. It was briefly discussed last month here.
It's a grid based layout system, inspired by html and other layout languages. The idea is you define your components once in a JSON type format, pass it to the layout engine, and it will do the rest. It can layout components in a vertical or horizontal stack, or use a flexible grid.
If no dimensions are passed components will stretch to fill the available space. Dimensions can be passed either as numbers or percentages relative to the parent/column/row.
By default components are centred horizontally and vertically within each grid cell but you can specify their alignment (top/bottom/left/right). For stacks components butt against each other, I have plans to add some alignment options here as well though as well as margins/gutters.
If you want to add multiple controls you can define one control and specify a number of clones, and they will be created and positioned automatically.
I think it will make it easier for me to transfer layouts between projects as well as quickly build complex projects. I have a lot more functionality planned.
-
Preset browser additions
I've made a few additions to the preset browser which some of you might find useful. These are available in my fork and I've also opened a pull request for Christoph to merge them into the main source. Nothing I've done should break anything although I've made the favourite icon in the preset column take the text colour instead of the highlight colour which may be important to you. Really I'd like this to take the
itemColour2
property but haven't figured out how to do it yet.Added Data properties to:
- Show/hide the Add, Rename, Delete buttons
- Change the bounds (x, y, w, h) of the search bar
- Add vertical padding to the rows of each column. Fav icon in preset column is not affected.
- Apply vertical offset to y position of edit buttons, so you can move them up. The list box is adjusted accordingly.
- Apply offset to bounds (x, y, w, h) of the list boxes, so you can make them shorter, longer, fatter, thinner, etc.
Also
- Fixed a bug where selecting or deselecting an item in the expansion column didn't clear the other columns correctly.
- Use column area instead of list area for painting the column background - this might have the effect of visually shifting the edit buttons down slightly (they are actually in the same place but will look lower) you can counteract this with the edit button vertical offset property I added.
-
RE: Export tool
Status update:
GNU/Linux: Fully working (standalone, vst2, installer). x64 only
Windows: Fully working (standalone, vst2, vst3, installer). x86/x64
MacOS: Fully working (standalone, vst2, vst3, au, codesigning). Needs a bit of tuning but almost there (installer). x64 only.When I say fully working, that's in my own tests, I expect many a bug report when I release it into the wild.
It's quite possible that AAX plugins will compile just fine on Windows and MacOS too, I've implemented it in the app but haven't tested it.
If all goes well I should finish up the tuning of the MacOS build tomorrow and it will be ready for my patrons to test this weekend!
@Christoph-Hart Could you merge my juce_template pull request (if all is well) as the mods there are needed for my app. The mods are also useful for regular exporting from HISE, bigobj is enabled by default and the VST3 SDK is set correctly to the one that is in the JUCE folder.
Latest posts made by d.healey
-
RE: Intel Performance Primitives
@Adam_G When building HISE just click each error message and it will jump you to the relevant spots in the source code. There were only 3 I think.
I'll try my suggested fix tomorrow, if Christoph doesn't get there first, and make a pull request.
-
RE: Intel Performance Primitives
@d-healey said in Intel Performance Primitives:
#if IPP_VERSION_MAJOR >= 2021 && IPP_VERSION_MINOR >= 10
Looks like this was Christoph's attempt to support newer versions of IPP. @Christoph-Hart Please fix :D
My suggested fix
#if (IPP_VERSION_MAJOR >= 2021 && IPP_VERSION_MINOR >= 10) || IPP_VERSION_MAJOR >= 2022
-
RE: Intel Performance Primitives
@Adam_G said in Intel Performance Primitives:
wow that was very impressive detective work!
I just clicked the error message in visual studio ;)
-
RE: Intel Performance Primitives
@Christoph-Hart @Adam_G I've found the root cause of the issue I think...
There are a few places like this in the source code
#if IPP_VERSION_MAJOR >= 2021 && IPP_VERSION_MINOR >= 10 #include <ipp/ippcore.h> #include <ipp/ipps.h> #else #include <ippcore.h> #include <ipps.h> #endif #define JUCE_IPP_AVAILABLE 1 #endif
And the version check is not working.
IPP_VERSION_MAJOR
has been set correctly to 2022 but the minor version is only 1 so it's going to the else and looking forippcore.h
instead ofipp/ippcore.h
If I replace the paths then it "seems" to work.
-
RE: Intel Performance Primitives
Ok I think I solved it, it's an issue with the IPP integration with VSIn Visual Studio:
Go to Tools > Options > Intel Compilers and Libraries
Next to Intel IPP, change the selected library to Intel Integrated Performance Primitives 2022.1 (or whatever version you have)Let me know if it works...Nope that didn't do it :(
-
RE: Issue with .getLocalBounds() ?
getLocalBounds will always return 0 for the x and y because it's the "local" bounds, not the global position on the UI.
You either want
.get("x")
or.getGlobalPositionX()
depending on what you need. -
RE: Intel Performance Primitives
@Adam_G Possible it needs to be added here too, in which case I don't think this is a good solution and I have an idea for another which I'll investigate now
-
RE: How many lines were written?
@Oli-Ullmann Perhaps there is another solution, why do you want to know the number of lines?
-
RE: How many lines were written?
@aaronventure But the point of using
drawMultilineText
is you don't know how many lines you want - you don't know where you need to break, you want it to happen automatically based on the size of the rectangle and font.If you're manually putting in line breaks then you don't need to count them because you know how many you have, and you should probably use the markdown renderer instead.
HiseSnippet 1010.3ocsVstaZbDEdVr2nXZSUiTe.FwufJDEbrM0JpsNFa2fpwAUbRqTUTzvtGXG4YmYyLm01np7.02t9FzdlcACt1xIAoxOVMmqy2dt7sLzZh.myXYAUOeVFvB9xvQyzXRuDgTy5eDK3qBGHbHX4kpNbVlv4fXVPvF+rWQvVaxJ982+zgBkPGAKUwXuwHifSkoRbo1gG7KRk5DQLbtLcEu24f9QFcOixjS3Yiv1rLQzEhovYBuaUBYuT3RXAeaX616tKDsc2chmPG2SPOf82e79c51sy9c1dumMt63ts8H4QGGKQicDJPvQI8PS7rQIlqzkWvajN4XE3E5vFQ2boZVuDoJd3hhiiwB1b3xR0FkkpuIbfLVdi9kkrutv.eYDqVzBp7PPpymAjBVARaVBomFNJxJyvkV734KB6qoN3DAUQVEJk9xp7WUB6YHOzXqTwEvIVR3lHpuW61M4ziFOuZUp+3P9kBKenPCpN7efuHxo.1yjlYzjP8Zklq4io7XKGfCoBD9qlbTpg5Sx0QnznqOsQ0+r5VSaMgFJdgRUub.v0JVXuXpElQ4fr57o2a3F6WkHQvar5Vd.gv0HAmZmZrPJWl4xS4wjqVtShbZBBax8vGhP.ysbQrLS5hj5obPIIiTQgBfCxbWpIlxG8xX4RcD0Kiy0HOG4JwXJ8b.KSMvSES0BtPIeetnE+0HGzxTJ27To+vkjnHsI+84RGWabnMOlCWC1HI09o2ddtRIRiLkY16D0982TQJkYjybPP.Okvjo7EftJrUshW7oshshqFjqP4oTQ8bpFT2WHZx+CpogIRmuu7RPNMAq2f+c7se6R0+lLFSp2nIulBlf0Zx6TTM+Pimun2vM5yLH7Jc8hdT0OTk+eMMYx8ZyOUXMJEXuWy9Ee6CEXccd5Xv1jl0T4vMNRC52d64QeZaOQkCoq3nQ2WKwWkAykOwnh8aE9y2cWiMeJmN859GIPge8atNxuLvhRObBNBtjH7JWF2J7HvcAZxJ7c9pAAYrv5SVrp5WOXR5pebX4pB65kbhGcvrkB+3AW4aYrfv.a.ikTzV8R5BZ06vFP7Pl3bk.uM4jm1dtApleKFA+Vul1WlsJs9mAiU6Gjw5SEhOMbnDiRteLV4dvH0M9+.iy44eR3wSlPzFKA3lgm76qKo9G45KoGmNPfVIMGDdVd5HhtKBnaWSSGNe+thehrTtsW1WAFA53Bg+g9M2XGubvbicVXjkJhrl2EUto4+RxiKzPXRW7k1snO4Sx7NrhsuUqyoDY36hhtcptSfautA9r0MvcV2.2ccCbu0Mvtqafe+GOP++63E4nIsbsgwFL73B5pffi0BZBrXZk8u75dWqI
-
RE: How many lines were written?
@aaronventure I think with multiline text it automatically splits the text without the need for a return character.