This prevents me from using this feature properly

Best posts made by CatABC
-
When I clicking this button, a bug occurs
-
RE: Directly fade in and out samples from two samplers on one MIDI note?
@d-healey OK, thank you for your guidance. I think I can achieve the effect I want in the near future.
-
RE: Setting the alpha of a color individually?
@d-healey Ahaha,god,It's so simple
Feeling mine so stupid。,Thanks very much David, you solved my problem again. -
RE: User-defined background?
@Oli-Ullmann Yes, thank you very much for your help.
-
RE: How to set the text color of Combobox?
@mmprod They are universal, you just use LAF
-
RE: How to set the text color of Combobox?
@Oli-Ullmann cool,I don't know what I did wrong, my
g.setColour();
didn't work, but I deleted all the code and rewrote it according to the code snippet you gave, and it worked. I want to give you a hug to express my endless gratitude.
-
How to customize the sound library location interface?
How to customize the sound library location interface?
The button is too small, I wish it was bigger
-
RE: How to customize the viewport row background color?
@Soundavid Thank you so much, I learned it and I'm so excited!:beating_heart:
Latest posts made by CatABC
-
RE: Using HISE to request server issues
@d-healey
Well, this seems to be a dangerous approach.Thanks for the reminder
-
RE: Using HISE to request server issues
@CatABC I really have no other choice. I now use webview to create a check update function through HTML+JS.
-
RE: Using HISE to request server issues
@Christoph-Hart Yes, I asked GPT for help
I have no idea how to implement this feature
-
Using HISE to request server issues
I use Strapi as my server backend. I have a version field in the product collection type in the backend. I want to request the data from the backend through HISE to implement a check update function, but there is an error I can't solve. Can anyone help me? I will be very grateful!
This is the Console.print of HISE! UpdateChecker.js (47): Found '{' when expecting ';' {SW50ZXJmYWNlfFVwZGF0ZUNoZWNrZXIuanN8MTQ5Nnw0N3wxNA==}
Here is the complete code:
namespace UpdateChecker { const var UpdateButton = Content.getComponent("UpdateButton"); const var localVersion = "1.0.0"; const var apiUrl = "http://localhost:1337/api/products"; const var apiToken = ""; // ================== Version Comparison ================== function compareVersions(latest, current) { var latestParts = latest.split(".").map(function(v) { return parseInt(v); }); var currentParts = current.split(".").map(function(v) { return parseInt(v); }); for (i = 0; i < Math.max(latestParts.length, currentParts.length); i++) { var l = i < latestParts.length ? latestParts[i] : 0; var c = i < currentParts.length ? currentParts[i] : 0; if (l > c) return true; if (l < c) return false; } return false; } // ================== alert ================== function showUpdateAlert(message) { var btn = MessageOverlay.showYesNoWindow("CheckVersion", message); btn.setButtonText("Yes", "Download"); btn.setButtonText("No", "Close"); btn.onResult = function(result) { if (result) Engine.openWebsite("https://your-download-url.com"); }; } // ================== request ================== function requestCallback(request) { if (request.getStatus() == 200) { try { var response = JSON.parse(request.getResponseText()); if (response.data && response.data.length > 0) { var latest = response.data[0].attributes.version; if (compareVersions(latest, localVersion)) { showUpdateAlert("New version found" + latest); } else { showUpdateAlert("Currently the latest version"); } } } catch (e){ Console.print("JSON parsing error:" + e.toString()); } }else{ Console.print("Request failed, status code:" + request.getStatus()); } } // ================== Check update main function ================== function checkUpdate() { var fullUrl = apiUrl + "?sort[0]=version:desc&pagination[pageSize]=1"; var request = new WebRequest(fullUrl); if (apiToken != "") { request.setHeader("Authorization", "Bearer " + apiToken); } request.setRequestType("GET"); request.setContentType("application/json"); request.setCallback(requestCallback); request.performRequest(); } // ================== Button callback ================== inline function onUpdateButtonControl(component, value) { if (value) { Console.print("Starting to check for updates..."); checkUpdate(); } } // ================== initialization ================== UpdateButton.setControlCallback(onUpdateButtonControl); }
-
RE: Generate RSA activation code for machine code on the web page?
@Christoph-Hart I think I succeeded, thanks
const d = BigInt('0x' + dHex); const n = BigInt('0x' + nHex); const modulusBits = n.toString(2).length; const modulusBytes = Math.ceil(modulusBits / 8); const requiredHexLength = modulusBytes * 2; const messageBuffer = Buffer.from(machineCode); const reversedBuffer = Buffer.from(messageBuffer).reverse(); let value = BigInt('0x' + reversedBuffer.toString('hex')); let result = 0n; const modulus = n; while (value > 0n) { const remainder = value % modulus; value = value / modulus; const encryptedChunk = modExp(remainder, d, modulus); result = result * modulus + encryptedChunk; } let hexStr = result.toString(16).padStart(requiredHexLength, '0'); const finalBuffer = Buffer.from(hexStr, 'hex'); return { activationCode: finalBuffer.toString('hex') };
function modExp(base, exp, mod) { let result = 1n; base = base % mod; while (exp > 0n) { if (exp & 1n) result = (result * base) % mod; exp = exp >> 1n; base = (base * base) % mod; } return result; }
-
RE: Generate RSA activation code for machine code on the web page?
I found this in the source file of HISE. I think if I use JS to write a program with the same logic, I will give it a try.
RSA.cpp -
Generate RSA activation code for machine code on the web page?
I want to let users provide the machine code on the web page. The server backend uses the private key generated by HISE to generate an activation code for the machine code. After the user gets the activation code, he fills it in the plug-in to activate it.
But I don't know the RSA key signing logic of HISE. Can anyone help me?
This is the implementation steps I thought of:
1.Generate RSA key file in HISE and obtain PublicKey and PrivateKey
2.Put the PublicKey in the plugin
3.Put the PrivateKey on the server backend,
4.After the user logs in, fill in the machine code input box in the account
5.Click Submit Activation, the server uses PrivateKey to sign the machine code and generate an activation code
6.Fill in the activation code obtained into the activation code input box of the plug-in
7.The plugin uses the "FileSystem.decryptWithRSA(code, pubKey);" provided by HISE to verify the activation code
-
RE: [bug] Timestretch causing pops and white noise
I encountered this problem not long ago. If Sampler enables timestretch, using Pitchbend will also cause this problem.
-
RE: Directly fade in and out samples from two samplers on one MIDI note?
@d-healey OK, thank you for your guidance. I think I can achieve the effect I want in the near future.