Steve Mohican
@Steve Mohican
Best posts made by Steve Mohican
-
RE: How to Emulate Hardware or Software Instruments/FX in HISE
@iamlamprey said in How to Emulate Hardware or Software Instruments/FX in HISE:
There's a lot to this topic so finding basic tutorials and such won't help. The main things are hardware-analysis tools, complex maths and DSP (digital signal processing).
There are several approaches (simplified):
White Box
- Analyze hardware unit to find out how it works.
- Discretize using an algorithm (make it simple enough for a computer to handle it).
- Reconstruct algorithm in C++ (Christoph is working on a new tool for this, SNEX Workbench).
Black Box
- Analyze hardware unit.
- Try and recreate the sound with filters/compression/saturation/delays etc
- Test and iterate.
Circuit Modelling
- Analyze circuit.
- Recreate circuit in some sort of software.
- Export circuit as algorithm -> import into something like Matlab.
- Reconstruct as C++
Basically it takes a lot of analysis, testing and some hardcore maths to get accurate modelling. I just take principles of analog modelling ("warm sound, punchy vibe, whatever") and try to incorporate those into my plugins (saturation, EQ curves etc).
I'll probably make a "how to make analog plugins in HISE" thread properly some day, but eh
There's some posts on the forum about analog modelling / hardware plugins
https://forum.hise.audio/topic/1322/about-rule-tec
I believe @dustbro modelled some of his hardware, not sure if he used HISE for it or just Matlab and JUCE. Also not sure if he wants to give away his secrets
Good explanation. Thank you for the information.
-
Vst and Aax plugin categories
All of the Hise made vst fx plugins are showing on "other" category in Cubase.
Could you add vst category?
Also it is very useful to be able to select 2 categories at the same time. In Juce that is possible. Is there a way to add this multiple category feature for both vst and aax plugins?
-
RE: Converting strings to integer and sum?
@d-healey Awesome, Perfect as always... and Thank you!!!!!!!
-
RE: Script FX Filter Knob
@DanH On the connections section make the skew factor 1. This means knob value and target value will be matched if the min/max values are the same.
-
2 Linked Knobs with 1 Shared Function without doubling the codes
Left and Right knobs are linked with a button. These 2 knobs have the same shared function, indexes and equations. Only difference is "Left" and "Right". How can we write a shared function without doubling the codes for Left and Right individually?
inline function sharedFunction() { local Node_BoosterValue_Left = 2.288*(Knob_Left.getValue()); local Node_BoosterValue_Right = 2.288*(Knob_Right.getValue()); local index_EQ_Gain_Left = EQ_Left.Gain + 0 * EQ_Left.BandOffset; local index_EQ_Gain_Right = EQ_Right.Gain + 0 * EQ_Right.BandOffset; EQ_Left.setAttribute(index_EQ_Gain_Left, Node_BoosterValue_Left); EQ_Right.setAttribute(index_EQ_Gain_Right, Node_BoosterValue_Right); }
I am asking this because I have lot's of equations and controls. Doubling them will be a huge mess. Below is the simple snippet. Any help will be appreciated!
Note: I know it is about the arrays but I just can't figured it out.
HiseSnippet 1500.3oc4X8taaaCDmJNpq1sYncHCneTHnevoKKv1oqs.AC00N1EAM+wKNKc6CCoLRzwDQlzShJqAEEXO.6gXOA6YXOB6QXO.6C8MX6nnjEkqjqpaSwVW9fQ3w6N969wi7NpddbahuO2CYT9vKFSPFW2r+ELwv1CwTFZ6sPFKatyA8Gh8HNVcCX1BJm4iZcwXruOwAYXT5wRMMJuHJ7uW8vVXWLyljHBgNhSsI6PGQEIR607ITW2tXGxgzQZZe2laayYs4t7..UkLqgFisOCeJYOrTsELQFWoiCUv85KvBhOxXwVbmK5Oj+SLk9GQ8om3RjCpi5CNRItK20QhXoTT6gTWmdwQuOBYX1KgKJo3hkM2k5PmHOgStQ3DVIVnyGFKLK3UWGd0JN7Lzf2hJ3cSy91dzwhjYjX6ZlayDDuAXXKPGVJcQK7WWwrMGzfIVeD9LRWOXvDKptwF0VypQiZqt4RUVpBrQ3KrNG6Y04aNdGx.g0WaEldr9oDQmACH1hpqDM0JRSRYvAzSGlmEgyshZURuR6PYmcbq.gfy.aigJXca9nwbFLn5JZ5D4CJykxHVChxPs3LMcjNwi6V0N1CqAqja.Y0kp7hkpXA+QGXUMVTYofmv3mn.459DwQxopFJSFpRznDspb0CMvO7HR7IjpJT8xveKPLHWjHT1F65dBjwWMqPHgvzorI.KWBahF4RWSz3MSV5+JINMXpyLyfIUNbyxJ+jG+MK1SKfxl6lNdlAyEmmNiUROcMGtKTkKExKLkaZt6cf1hBlYva5whNwkU3OMBxLRc41XWq83Njiaw49vsMgASbRai0a7fGbmbNfUHGEuGp6IURWttRFLItjxbHO+X3lIY4rXbEc015RYVegUMq6LQTKLyY+AC.NbyWGeocVL1hu1aJ2ojki+T+FunvrORH7nmDHHUecDuVNL7paNwMSNHlmeBUXs7X3Um.tWpmSncVXOtfrOjFT4EUJW4kUrldpACxbtnjMWhWlSKaQvaVFVkEL5DhW7wsXEgZkoKFalewX8dErUmdzTjy1lQE6OlvxqDMJ5HGTrtTDpf+SDVp9SiJU22k5P7PTGYc5Io6nPPq2vDp.N35lIY4uEdPcWSnGVxT61mocwqdH5a2dKr.Ka9HJzfvcLwSPkLowVjygt5TshT1bKh+YB93vXO55FjwmTnn+4IK58adQxfVMGo2Y4s+8QXMUuMLqiiKoG2mJyElJ3K.FRQfId9mIu+AwhEbOPy0+fFJ90m0D858+AcgxcBbwhzslJOFGMgDQ58.J6yiAH8B8s4Kk9UKJbuoYOpvdX13cgLvKjMdYi2nt+WxT0uZBXWzr62Mus5m8KQpkUq9KngkJwmuZG3cNoyOFhixlQEDRAl8BF0k5B2WKulyvPl6B0TpoScRA0iD7re6W99lRAMR+3MlyFSK3tIBtQytcOrCCCQkhAJklAJULFHiMfC3ABJ6zcwPcI3XfIDN8gm.ZS.9mwHtgQ0BxiUpw0jikPpOILJMM9a3unIqGOVN4jAn2DwVwLtD46ByZcuacz+iY1kUL60LeJ9bR3a+B41OOb7.t2HqGSXDO48.0mwGR3OJ5GRXbg+PB6aK.HbnGl4Ol6Spq64olqg9baQDArzpqDkRKY30EBOM8tZyXgMzE1CyR4LXbJOsKUqNve9PURQeBDMN66aCAqj6zSk5E35SdJ0QLrttgIhanKd5Lq25as9O32O4CW4yRECtugOwS4XL1mNZrKoC6bhKz6UHF+LnYqA3.WQrzzGi1ky3iGxYTa8bpCHvo+SOkjJuIy.BdY.7TvDIK27.hKA6Sza6AZZgf8.dhLmbQ8hyEyZ+5VlJ3ZIO6a8wQaOk9HpsmKiSnv0i+KXm98eUUinISpp9gXMFgs83Gaqdsn7n2UCk.wMK7CtW1bW4Xq5wOPzzr150Pv6dnGaaKyN9Rfex1lFygMaLG1b24vluZNr4dygM2eNr4AyzFYsyGEH3iT4+ffdcBentggV+in+AfHDlu3
-
RE: if/else statements inside the scriptnode
@iamlamprey said in if/else statements inside the scriptnode:
@Christoph-Hart I don't have a core.pma node
using latest scriptnode
I think it will be available in "SNEX workbench" later.
-
RE: Beta Testers Needed <<<<<<<<<<<<<<<<
@orange Wow Sounds Great! You have done very well bro! I am totally mesmerized
-
RE: Which kind of sample based instruments
@iamlamprey said in Which kind of sample based instruments:
I write metal/rock/electronic hybrid stuff and make instruments to suit my own needs, such as guitars/bass/synths.
Basically if someone else's instruments don't fit my purpose I just try and make my own
Your Atlas and Cloudburst Kontakt instruments sounds very cool by the way
Latest posts made by Steve Mohican
-
RE: 6 State Paint Routine Button
@d-healey I am very very confused and I am on this for a couple of hours, I really don't understand. Can you please show me your fix?
That would be much more helpful to learn.
-
RE: 6 State Paint Routine Button
When I add
else if(event.hover)
when mouse is over the button, color doesn't changenamespace SixStateButton { inline function createWidget(name, x, y) { local widget = Content.addPanel(name, x, y); Content.setPropertiesFromJSON(name, { "width": 200, "saveInPreset": 1, "allowCallbacks": "Clicks & Hover", "opaque": 1, "stepSize": "1" }); widget.data.hover = 0; widget.data.on = 0; widget.data.down = 0; widget.setPaintRoutine(function(g) { g.fillAll(0xFF24A8E0); }); widget.setMouseCallback(function(event) { if(event.clicked) { Engine.openWebsite("https://forum.hise.audio/"); this.data.down = true; this.repaint(); } else if(event.hover) { g.setColour(Colours.darkgrey); } else if(event.mouseUp) { g.setColour(Colours.darkgrey); this.data.down = false; setButtonValue(this, 1 - this.getValue()); this.changed(); } else { this.data.hover = event.hover; this.repaint(); } }); return widget; }; inline function update(p, value) { p.setValue(value); p.changed(); p.repaint(); } inline function setButtonValue(p, value) { p.setValue(value); p.repaint(); } }; // Create two buttons const var b1 = SixStateButton.createWidget("b1", 0, 0); function onNoteOn(){} function onNoteOff(){} function onController(){} function onTimer(){} function onControl(number, value) { // Update the buttons in the onControl callback SixStateButton.update(number, value); }
-
RE: 6 State Paint Routine Button
Ok I edited the tutorial but hover still doesn't work
namespace SixStateButton { inline function createWidget(name, x, y) { local widget = Content.addPanel(name, x, y); Content.setPropertiesFromJSON(name, { "width": 200, "saveInPreset": 1, "allowCallbacks": "Clicks & Hover", "opaque": 1, "stepSize": "1" }); widget.data.hover = 0; widget.data.on = 0; widget.data.down = 0; widget.setPaintRoutine(function(g) { g.fillAll(0xFF24A8E0); }); widget.setMouseCallback(function(event) { if(event.clicked) { Engine.openWebsite("https://forum.hise.audio/"); this.data.down = true; this.repaint(); } else if(event.mouseUp) { this.data.down = false; setButtonValue(this, 1 - this.getValue()); this.changed(); } else { this.data.hover = event.hover; this.repaint(); } }); return widget; }; inline function update(p, value) { p.setValue(value); p.changed(); p.repaint(); } inline function setButtonValue(p, value) { p.setValue(value); p.repaint(); } }; // Create two buttons const var b1 = SixStateButton.createWidget("b1", 0, 0); function onNoteOn(){} function onNoteOff(){} function onController(){} function onTimer(){} function onControl(number, value) { // Update the buttons in the onControl callback SixStateButton.update(number, value); }
-
RE: 6 State Paint Routine Button
@d-healey This is filstrip image. Actually I need panel button.
At least, how can we make it 2 state button with text?
-
RE: 6 State Paint Routine Button
@d-healey I deleted it because it was a whole mess. I tried to used this but did not work unfortunately.
if(event.clicked) { } else if(event.mouseUp) { } else { }
-
6 State Paint Routine Button
Here is a paint routine panel button. I tried to make it a 6 state website opener button (also text in center) but I couldn't figured it out.
Please any advices?
HiseSnippet 879.3ocsV00aaaCEkzwpq1adXEX+.DxCCxXcJxsocEnnnNwwt0XKoFyYc8sBFoqrHhDo.EURMBx+48On8RQaK6L2hVCLlWx8iC0gWdtW5IJYHTTHUDZqymmCD5O3LctPmLHgwEjwmPn+nyorBMnbstNddNqn.hHT5dux3f1pIoZ8uu7XVJSDB0tHj2J4gvexy35ZuS5+G7zzQrH3bd1ZYeX+wgRw.YprD4ydNAjbV3krYvYLSZMbHz6MLhqkpoZlFJvbNVFMeZh7ZgM+2xK3WjBFidjo3FYcSFjvSilr7rVPHzlSpO46YO4+ryo7H9J+0UfepJfaMh0qAzFaRolaPodeNJMRlFY1fOC8nqQulV58.mogJdttNhgaeuyXAd4Dyvx95zxlKoQqFNCjXFBseF6RXjBMVgv6oAAOz8IAAcedm1l+vxeg18JlxcBS.o8beg6Rzy.8.YVtTfFd6aCuuEm0vu.zSvRl9ujkZt.7hKEgZtT3Mqam12zosKtl4GiW8Gkl5E7gQidzgG8rgUe7au6Ncprr.FvRSu.k.0aEbE94q2Ndrq0keXJO7RHpq0+MtqVVGl0PwLjV9xbP7OvEEbM3s+AGDKUkY9I7BvmUFwkGTcnVhQiA7UPt4b40842cauciOP0wXIUckhyjZ3MButsuocq12118tghi2ZLSEWISSA0VCa5YTeIfdhxrK.0Cw6wzRXUhnPZSk5895TpgVAvZIJEiEb8av5n0tVK2aKZYxBED9e+83SXZlQduvGlWNnzbCcnm.WgyJrh8VNm.EWpk4U4tP1QnemtJZmksBF4Bgie566XkNjOTON479yWYz+c8Qsj75kJpBSW8.ilov8Wbes7JPQtlGoSHTG59TBIA3yRzFqesZj0+ocDGJHiJSY5MmTXFItH.dorQKoosSfxt4qOx7aX7QvVGer0R9WIcefyDtNLY67swV3Kd08+MeWLLtiyv3XHTWS1lNid2tN48afJ1oWyNkoUbTL4bVY1T78nP.Yh.kXEFMQCir1ZGXrMUlofHpx3i3ZQvdFa5hf8VFjjwBUx2GZaWMi6uekGjShpW5ZgO4h1t8HUsvHNm.+.RF9Jz6CCMkheC491w7nc.yi2ALGtCXdxNf4o6.leeGv7ruHFyO.3nRsLy1lfNlLrZVFkNTvPUVkhj7IfDAj2V
-
RE: FileSystem - wheres "CreateFile"?
@Lindon
Are you using Woocommerce REST API for customer login?
Which REST API method do you suggest for this (verifying purchases, license status...etc)? -
RE: Fetch data from json file to wordpress
@orange Wow! That's it man
Thank you so much!!!!