Categories

  • General questions and announcements about HISE

    8k Topics
    70k Posts
    ChazroxC

    @dannytaurus Yee! My macbook pro is maxed out so im good too but I’ve used a friends older slower computer for HISE and his is so slow I would’ve quit by now 😂. Great tools make a huge difference! Congrats!

  • Scripting related questions and answers

    2k Topics
    16k Posts
    Oli UllmannO

    @ulrik
    Great, thank you! :-)

  • To share HiseSnippets, Interface Elements, GUI, UI/UX, Panel LAF etc..

    189 Topics
    2k Posts
    K

    @d-healey I do some modifications on one existing script, SynthGlide, which is as Snippet in Hise Doc…

  • All about ScriptNode DSP nodes, patches, SNEX and recipes.

    342 Topics
    2k Posts
    LindonL

    @HaizalD3 bot.

  • A subforum for discussing Faust development within HISE

  • If you need a certain feature, post it here.
    618 Topics
    5k Posts
    HISEnbergH

    @HISEnberg Friendly bump on this !!

  • Develop better software through collaboration and shared knowledge. Not just about coding —> covering the entire journey, from development to launching and promoting plugins or software.

    120 Topics
    968 Posts
    griffinboyG

    @PJSanre

    Nope not with visual coding.

    You need custom dsp for this. You can do those processors if you get hold of c++ stuff to plug into Hise, or get a developer.

    Autotune and good reverb is the kicker.

    Both of those are 'life's work' type effects that take years to develop from scratch, and so nobody likes to give out their implementations of those for free.

    Megaphone effect you can do in default hise using the built in convolver if you're willing to use convolution. EQ can be done that way too, or using the stock hise EQ (It's not an amazing eq I don't reccomend it) but it would work.

    I'm a perfectionist so take all of the above with a grain of salt. Maybe there is a mediocre but easy way to do it that I've never considered. But I'm fairly confident that you're out of the scope of the built in hise modules. 100% Definately out of reach if you don't want to code at all.

  • If you encounter any bug, post it here.
    2k Topics
    12k Posts
    d.healeyD

    @DJJD12345 said in xcpretty Not Detected After Install on macOS Tahoe M1: Compiling Fails in HISE Export:

    Termail said this:

    How did you download the HISE source code?

  • Post your example snippets that you want to add to the official HISE snippet database here. We'll revise it, upload it to the repo and delete the post when finished.

    19 Topics
    120 Posts
    HISEnbergH

    Dug up this old script which I am going to modify for my own uses but I thought it might be helpful for some beginners or at the very least a time saver for others.

    It's a very simple preset display bar (a lot of this looks like it was taken from David's videos, which is a good place to start). The script includes:

    Preset Name Display: Display the preset name in a panel Open/Close Preset Browser Previous and Next Buttons A few LAFs and Paint Routines some may find valuable.

    It's not much to look at but hopefully useful for someone!

    ScreenRecording2025-11-15at8.45.48AM-ezgif.com-video-to-gif-converter.gif

    Snippet HiseSnippet 3016.3ocyZrsaabbcorW2R0jlDz7PebCQPAUBixRRQa4ZXTck1BURlUT1wAFBFC2cH4TsbGhcWJa0DCz+fluf9Ozel9bepO225iomyL6kYuPxkLN.cW.ItyYNWmybNm4ROOtE02m6oUYyKucJUqxGn2+V2fwGNlvb0N4HsJ+J8ddTeZvADOsCtcJw2mZqUoxcdB1gJUuql34+7GNf3PbsnIMoo8BNyhdJaBKHo0d68GYNNcI1zKYST58N6chE28PtCeFHL2Q2TaJw5ZxH54Draanq8Th+XsJeg982cf4Cd3vcG1hRGLv5gDayNTp08ICF7.SRyV1Co6Z2ocasJ26XaV.2qe.If5CD8.t8s8GyeiqjAuf4yF3PwOZp0G3rrYsCGybr6EYY70zpb2dI1o6HsSep9YLaVb6I1qOV.vHACUiVkMVjH0bEDoJJhzckhzmn22xiMMHAhb76D2.p2PBL1nJJx9pswe+yzOjC8vMX6Ijqoc8fOhwn9NllMLZaZt0i1bSX7wOv3Fhmgkavqi8JLdrQDAFQCNjOYJ2E9ndsT8pFPgBIfG+M9zRQDYOqkVTFD3FB+b5aClKYR2szBSBL3u2TBRfcKMIl55DB6Hl+TGxsykJ45YZBcs6fPvBWDjFdbm4Rsh6dFSzojggc50GLKH.ZWgdVdT.wS4VDmS47q220tKk5TGofKLyyGlERMhGE2761r5W+0FOt3GEXFce94Gd4IO679F4fU.dLWGlK0X3LWq.F20HfOZjCUxVTRgIWTu5L+mMk5t0lUAov.dX9wvP.fVI6wijfy45r8PHrSh0S14FFCCCFsUHd4Fh11iNE3R.ZUp9tMEpRzHygDGmAPjJ+MERTF8f6l1wKDq5VQBQCXDxYFcKA1em3uB5LrtR63S0icGAjdaGNwFozyA8QR25CIN9nvicCjtkIGn266G4.oDiOye9xR07BRwtrEHIQixNnuog0LOO.pDSXjNTLvoCRHIBAlwndzfIanQ8L39XiZ01RBMjEEOpi5Ss.LbQizrOh1uS9OJnxuGIWob+NwkEvHNr+BUwCrZZmssCm7.l2n9TeNNjHkS6grLjU7hPjKdTsXhTbewHNnls+zoN2Zb59cKRcxEmJershUkxgnP.B+byp46BLRLh4C4F6F5OWulsG4MWJhVI6CL3F4rWeTCC9f+bhmrHyG2CBWcAwlMCCCuCxTDFv39ybuFhhgVoQd7Yt1Idv.Y11FpRHua6HT6dhGPOvepKTZU8WY91tca0AeE7eaBDh+UlWo7QyqZjPgBdPJz1DemOEL9xjuZeEFEElFbUASMhU.9MTuRq.M2Ee+on.sZiuuGTfxJxlCw2eJhbSB99STjGs8PPjt.cfn1WPsBHtf2Y8HDajxEbKE+uSbwvi9iIfmVDoF.N7tmRtEx9F3MKNEYgVf6aJeVGKf4aMWJ1f1uaVcdNJ6qTnAfVyrzQsgVWY7UFsZnZYwFtJsgBZpYBSGQl46yHtG3Lyqdqj1ot1Rikpc8INPQ2FzgCAwaI1ULBwHr6OkxFMFyyoJUegg416rnQfVc5JdVyQfkhMX4Tjt0arnUVJ1J6XwNMT4R9wgVyYbn4RFG12CJCzvO3VnjjQoishglL99u2XIwYkKOsNNU8nCw2RGsPAy86dXqCeXBlwx2QPpDCBJj9J4Kn3ZwdopmfYp3.fI6qMZ8nrX7spXjMxQFLD7rOVKgRBoHSCyVTwT1U+TfZhoBOEJJqdjL+kITtQrh7U4a7aKrwFFM2tSjYZNb3qJhCeYgDKhUofpvgEODt9bds0sRa8Jkt8tnxad7BdTW.Wu8O47KMt3YO+xSN+3xrJNYGD83EDOFYfCE7iSVF527zSt7XvCSjpT77HUvO6h8O+IQvO7A3K.GJ3Jd8Y.rVBjvFY9OEmzRAuSYXn31ytlvPnBAqGVGsADhJ.5fuwuy3LX4KoJgN0lVfybEnDhQ8jR6RWU2.LnGVOWvXlOtnDQ8lGHZstoZz8L0+sqR7oChK7yXTXf8EDqGpPqC91Hj4hX0g+bww4SpynHLAmnvemuBi4DgW1+4WXw4bFXjwk9LyitzJKH11BDpqLArFwY5XRseOj.zrihtUaB2kaM1iOgDvr.3HoTg6CCCztDq.tm.6G1IbFwRxUTTsPELHzItnkUcPvbgXhknb+xleMl.xjopDo0hq4LrqQYciG2wOKNuarA5R9TiwP9YGLG8BrPsMiJpX0sPKBSP4VKCTyLV4xaf.S6NEWTXxLXNrDvIkxtrTsScvX2EYmZ1orT58f8RUpZuR1tVK014YS87ULYJ0L0wDeSjaLYYoBC0PspcUZ1Nb92Rn46OeGUKWQ1hPIUlmtvcOpTYhHqQRncTAs56yVY1.iLokW48wPtTDwJXRs6DIsiE+ThMhHttgUdmHxJBQ6uvpHBq5VIjkmQItKKOmyL7B1D.kLeP6f2JNarnIN6VxINIK8NYM2IK1lrrIBueV87ptr4z1ayBZe8VBbxZeSVz6Oyq1UZ2hSEYf6CeQim6DlHpjpP6XUncrJ.IhalWvaWbf2l432B8e5jxMGHamX11zrP9l0A5R7bAs.16M2vQ3R+WVfgetW6OeJtwCxEvkYo4uT3IaJMBRUuS1ku+sh9jXnV3J7qlYImgbI0hKks0Hh5xYsxeKbeUVdYNJEgc5EjphsJUkTJ1TDl5AWtPhBfesuGEyt8J0IoQQT5HCobkpKWWNdDoCg+VCJ+vbkOQHoZsOL8wkZidQ0qcDcHYlCRuHApgQMb02feSsxuSBpzLknrL5tfpCDqjM9TVhKOfdCPEkiLETdQSaa4vrttHu8hO60OKaFbkMuPTug5gToXERX33h2+e0ExiAyKIcKz5VzlBrLhglz2soxATdNOf9L25agm0M.wHKngCKDV3wX4fggK.LtAFdKBw5tylLf5Ee7mgcTqxcSekQtW4txHVxy2WoibW7PCwwN42c4N13UAA+c9KXhV3ED.upIgRHz0.wEM4WGdQS56vfhDzX.Q9s5EepdZBsQ8RAo87SNhDPhnqv0mOk5EvPsqxQzaXVT4EZop9QT+qC3SANGer8fEPJEeXz0cg3RcDBwGomZ2azdqJeuU8i2vrCFqUQuxOTQSarHyK9UW.TJVsYZEVdDeBd8w5oOcREl8ulsmBy978hYVKMUlge4StgdhqjJ3kxYJAiEnH.YUIl+Y7I.DhGvhJaLQLoelm3Z.8o583fyMyczSIt1gspsxZCt+tpltO++S0lpyyM32nmK.op9b9bzmZUxpOPvT9ah2aPzJcHFzD22PQbFskpfXzbXFrduVoD8ew7E8bWZk44E+W+S6MGu3+M.8lnnBUtCNOKlyePP3sWSx4tNbBZhujA8UNERsol4XtdkEL8AYbNSRQpT3De4r7OROMvAihtEfUuGPv+KxPV.cRRq+ie7G9wzs1JryhGQ3kM9mani2ikZXDv9fiY3wyGsEggPN9sSIt9PfX+8g7aNylf8Pj5HtKh3jdEiNlPvOGMg30gWX.UPIMCoP.8EfAUvFgz911EyhKn38vpXXGQcnAyAVeJwyZLdy6T.zkbC2CLa3csLVJRDBUvoPaliSORv3H39oLRg55IfczlJ2FmTvOe1DooEQqsnI42eC5FcA3swA.uRbmgL2tclmFqX6PyWI3woLeQkTw5YHGZTz+hwRJYWveSOhsMLMnr3Eatk62BhlDvYbuvQnrPR7JyBIxNmC5luKUbj6s54imWNwK2aBIA1d+s8Thfnk+tl9w5mwsm4PBRe0WwKEbH.XNUp6aJdmRAOjfaUuzvqv8g0bg2G1xJhehdOVf03hkwMJPFgBB94PFCuEwen9whM1HQ.uqd2WttWY3kvd4VGN5LRfGCFp0g4k8gXmVTf6tPFHeLF9FXoexuMiB22m5ZK93GgmPfMwuqDBrYDPsIDKO9qsjNa38T9WJZAjIWw83tp9Y32FMyWX3DlM60VVoIUNDastH1dcQbm0EwNqKh2ecQ7AqKh6tbDwa099yBDmzFLsQS6rdGKxzVoxwt3g8J7V09ecu4xY. Code Content.makeFrontInterface(400, 300); const var cnt_PresetBar = Content.getComponent("cnt_PresetBar"); const var cnt_PresetBrowser = Content.getComponent("cnt_PresetBrowser"); const var btn_PresetNext = Content.getComponent("btn_PresetNext"); const var btn_PresetPrev = Content.getComponent("btn_PresetPrev"); const var pnl_PresetDisplay = Content.getComponent("pnl_PresetDisplay"); const var knb_PresetStateControl = Content.getComponent("knb_PresetStateControl"); const var Laf_Preset_Buttons = Content.createLocalLookAndFeel(); namespace PresetBar { // ======================= // ====== FUNCTIONS ====== // ======================= inline function togglePresetContainer(isOpen) { isContainerOpen = isOpen; cnt_PresetBrowser.fadeComponent(isOpen, fadeTime); pnl_PresetDisplay.repaint(); } // Control Callbacks inline function onbtn_PresetNextControl(component, value) { if(value) Engine.loadNextUserPreset(false); } inline function onbtn_PresetPrevControl(component, value) { if(value) Engine.loadPreviousUserPreset(false); } inline function onknb_PresetStateControl(component, value) { local currentPreset = Engine.getCurrentUserPresetName(); if (currentPreset == "") { pnl_PresetDisplay.set("text", currentPreset); } else { pnl_PresetDisplay.set("text", currentPreset); } pnl_PresetDisplay.repaint(); } // Initialize Callbacks btn_PresetNext.setControlCallback(onbtn_PresetNextControl); btn_PresetPrev.setControlCallback(onbtn_PresetPrevControl); knb_PresetStateControl.setControlCallback(onknb_PresetStateControl); // Apply LAF btn_PresetNext.setLocalLookAndFeel(Laf_Preset_Buttons); btn_PresetPrev.setLocalLookAndFeel(Laf_Preset_Buttons); // Buttons Laf_Preset_Buttons.registerFunction("drawToggleButton", function(g, obj) { var cornerRadius = 4; // Sunken background if (obj.down) { g.setGradientFill([0xFF252525, obj.area[0], obj.area[1], 0xFF303030, obj.area[0], obj.area[1] + obj.area[3], false]); } else if (obj.over) { g.setGradientFill([0xFF181818, obj.area[0], obj.area[1], 0xFF232323, obj.area[0], obj.area[1] + obj.area[3], false]); } else { g.setGradientFill([0xFF0f0f0f, obj.area[0], obj.area[1], 0xFF1a1a1a, obj.area[0], obj.area[1] + obj.area[3], false]); } g.fillRoundedRectangle(obj.area, cornerRadius); // Inset shadow g.beginLayer(true); g.setGradientFill([0x60000000, obj.area[0], obj.area[1], 0x00000000, obj.area[0], obj.area[1] + 8, false]); g.fillRoundedRectangle([obj.area[0] + 1, obj.area[1] + 1, obj.area[2] - 2, obj.area[3] - 2], cornerRadius - 1); g.gaussianBlur(2); g.endLayer(); // Glass effect g.beginLayer(true); var glassHeight = obj.area[3] * 0.4; g.setGradientFill([0x25FFFFFF, obj.area[0], obj.area[1], 0x05FFFFFF, obj.area[0], obj.area[1] + glassHeight, false]); g.fillRoundedRectangle([obj.area[0] + 2, obj.area[1] + 2, obj.area[2] - 4, glassHeight], cornerRadius - 2); g.gaussianBlur(1); g.endLayer(); // Arrow styling if (obj.over || obj.down) { g.setColour(0xFFDCDCDC); } else { g.setColour(0xFFAFC2C9); } // Draw arrows var centerX = obj.area[0] + obj.area[2] / 2; var centerY = obj.area[1] + obj.area[3] / 2; var arrowSize = 4; if (obj.id == "btn_PresetPrev") { g.drawLine(centerX + arrowSize, centerX - arrowSize, centerY - arrowSize, centerY, 1.5); g.drawLine(centerX - arrowSize, centerX + arrowSize, centerY, centerY + arrowSize, 1.5); } else { g.drawLine(centerX - arrowSize, centerX + arrowSize, centerY - arrowSize, centerY, 1.5); g.drawLine(centerX + arrowSize, centerX - arrowSize, centerY, centerY + arrowSize, 1.5); } }); // ============================ // ====== PAINT ROUTINES ====== // ============================ // Variables const var WHITE = 0xFF000000; const var ORANGE = 0xFFC7C7C7; reg fadeTime = 200; reg isHovered = false; reg isContainerOpen = false; // Paint Routines & Mouse Callbacks cnt_PresetBar.setPaintRoutine(function(g) { var bounds = this.getLocalBounds(0); var cornerRadius = 8; // Background gradient g.setGradientFill([0xFF353535, bounds[0], bounds[1], 0xFF1a1a1a, bounds[0], bounds[1] + bounds[3], false]); g.fillRoundedRectangle(bounds, cornerRadius); // Noise texture g.beginLayer(true); g.addNoise({ "alpha": 0.05, "monochromatic": true, "scaleFactor": 0.95 }); g.endLayer(); // Inset shadow g.setGradientFill([0x50000000, bounds[0], bounds[1], 0x00000000, bounds[0], bounds[1] + 16, false]); g.fillRoundedRectangle([bounds[0] + 2, bounds[1] + 2, bounds[2] - 4, bounds[3] - 4], cornerRadius - 2); // Top highlight g.setGradientFill([0x30FFFFFF, bounds[0], bounds[1], 0x00FFFFFF, bounds[0], bounds[1] + 6, false]); g.fillRoundedRectangle([bounds[0] + 1, bounds[1] + 1, bounds[2] - 2, 4], cornerRadius - 1); // Bottom highlight g.setGradientFill([0x00FFFFFF, bounds[0], bounds[1] + bounds[3] - 8, 0x15FFFFFF, bounds[0], bounds[1] + bounds[3], false]); g.fillRoundedRectangle([bounds[0] + 1, bounds[1] + bounds[3] - 3, bounds[2] - 2, 2], cornerRadius - 1); // Borders g.setColour(0xFF505050); g.drawRoundedRectangle(bounds, cornerRadius, 1); g.setColour(0x30000000); g.drawRoundedRectangle([bounds[0] + 1, bounds[1] + 1, bounds[2] - 2, bounds[3] - 2], cornerRadius - 1, 1); }); pnl_PresetDisplay.setPaintRoutine(function(g) { var a = this.getLocalBounds(0); var cornerRadius = 4; var currentPreset = Engine.getCurrentUserPresetName(); // Sunken background if (isContainerOpen) { g.setGradientFill([0xFF252525, a[0], a[1], 0xFF303030, a[0], a[1] + a[3], false]); } else if (isHovered) { g.setGradientFill([0xFF181818, a[0], a[1], 0xFF232323, a[0], a[1] + a[3], false]); } else { g.setGradientFill([0xFF0f0f0f, a[0], a[1], 0xFF1a1a1a, a[0], a[1] + a[3], false]); } g.fillRoundedRectangle(a, cornerRadius); // Inner border g.setColour(0x80000000); g.drawRoundedRectangle([a[0] + 1, a[1] + 1, a[2] - 2, a[3] - 2], cornerRadius - 1, 1); // Glass effect g.beginLayer(true); var glassHeight = a[3] * 0.4; g.setGradientFill([0x25FFFFFF, a[0], a[1], 0x05FFFFFF, a[0], a[1] + glassHeight, false]); g.fillRoundedRectangle([a[0] + 2, a[1] + 2, a[2] - 4, glassHeight], cornerRadius - 2); g.gaussianBlur(1); g.endLayer(); // Glass highlight line g.setColour(0x40FFFFFF); g.fillRoundedRectangle([a[0] + 3, a[1] + 3, a[2] - 6, 1], cornerRadius - 3); g.setColour(0x10FFFFFF); g.drawRoundedRectangle([a[0] + 5, a[1] + a[3] - 5, a[2] - 10, 1], cornerRadius - 1, 1); // Text color if (isContainerOpen || isHovered) { g.setColour(0xFFDCDCDC); } else { g.setColour(0xFFAFC2C9); } // Dropdown arrow var arrowX = a[0] + a[2] - 15; var arrowY = a[1] + a[3] / 2; var arrowSize = 4; g.drawLine(arrowX - arrowSize, arrowX, arrowY - 2, arrowY + 2, 1.5); g.drawLine(arrowX, arrowX + arrowSize, arrowY + 2, arrowY - 2, 1.5); // Preset text var textArea = [a[0], a[1], a[2] - 25, a[3]]; g.setFont("font", 20); if (currentPreset == "") { g.drawAlignedText("Default", textArea, "centred"); } else { g.drawAlignedText(currentPreset, textArea, "centred"); } }); pnl_PresetDisplay.setMouseCallback(function(event) { if (event.clicked) { togglePresetContainer(!isContainerOpen); this.repaint(); } if (event.hover) { isHovered = true; this.repaint(); } else { isHovered = false; this.repaint(); } }); }
  • Everything related to the documentation (corrections, additions etc.) can be posted here
    70 Topics
    475 Posts
    d.healeyD

    @weezycarter make a minimal test plugin with 4 channels. Then we'll have a baseline.

  • Collection of Blog Entries

    80 Topics
    751 Posts
    JulesVJ

    @Mighty23 It seems 1000 ms is very short for low bpm and 1 bar.

    Is it possible to increase the max delay time to 5000 ms?

  • The nerdy place for discussing the C++ framework
    173 Topics
    1k Posts
    OrvillainO

    And I assume these are the modulation colour references to use:

    HiseModulationColours::ColourId::ExtraMod HiseModulationColours::ColourId::Midi HiseModulationColours::ColourId::Gain HiseModulationColours::ColourId::Pitch HiseModulationColours::ColourId::FX HiseModulationColours::ColourId::Wavetable HiseModulationColours::ColourId::Samplestart HiseModulationColours::ColourId::GroupFade HiseModulationColours::ColourId::GroupDetune HiseModulationColours::ColourId::GroupSpread

    Is there any limitations around which colour a particular parameter should use? Or is it really just down to how you want it to appear in the module tree??

    And for the ParameterModes, would it be these ????

    modulation::ParameterMode::ScaleAdd modulation::ParameterMode::ScaleOnly modulation::ParameterMode::AddOnly modulation::ParameterMode::Pan modulation::ParameterMode::Disabled

36

Online

2.1k

Users

12.9k

Topics

112.2k

Posts