• Custom peak meter doesn't work in a DAW

    General Questions
    4
    0 Votes
    4 Posts
    19 Views
    K

    @ulrik It's still broken ):
    I just changed all locals to var anyway,

    It just seems like it doesn't take in the inputs

    Content.makeFrontInterface(332, 550); Engine.loadFontAs("{PROJECT_FOLDER}Fonts/Px437_Portfolio_6x8.ttf", "Portfolio_6x8"); const var PeakIn = Synth.getEffect("PeakIn"); const var PeakOut = Synth.getEffect("PeakOut"); const var Gate = Synth.getEffect("Gate"); const var HPF = Synth.getEffect("HPF"); const var Dynamics = Synth.getEffect("Dynamics"); const var inputPanel = Content.addPanel("pnlInput", 130, 111); const var outputPanel = Content.addPanel("pnlOutput", 275, 111); const var MAX_PEAK_HOLD_FRAMES = 45; const var MAX_PEAK_DECAY_RATE = 0.5; Content.setPropertiesFromJSON("pnlInput", { "width": 15, "height": 333, "opaque": false }); Content.setPropertiesFromJSON("pnlOutput", { "width": 15, "height": 333, "opaque": false }); inputPanel.data.currentLevel = -60.0; inputPanel.data.maxPeakdB = -60.0; inputPanel.data.holdCounter = 0; outputPanel.data.currentLevel = -60.0; outputPanel.data.maxPeakdB = -60.0; outputPanel.data.holdCounter = 0; inline function dbToY(db, panelHeight) { var clamped = Math.range(db, -60.0, 6.0); var percent = (clamped - (-60.0)) / (6.0 - (-60.0)); return panelHeight - (percent * panelHeight); }; inputPanel.setPaintRoutine(function(g) { var w = this.getWidth(); var h = this.getHeight(); var floor = Content.getComponent("knbFloor").getValue(); var slack = Content.getComponent("knbSlack").getValue(); var fade = Content.getComponent("knbFade").getValue(); var slackLevel = floor + slack; var fadeInLevel = floor + fade * 9; var fadeOutLevel = slackLevel - fade * 9; var rawLevel = PeakIn.getCurrentLevel(1); var LeveldB = (rawLevel > 0) ? Engine.getDecibelsForGainFactor(rawLevel) : -60.0; var peak = dbToY(LeveldB, h); var maxPeakY = dbToY(this.data.maxPeakdB, h); var floorY = dbToY(floor, h); var slackY = dbToY(slackLevel, h); var fadeInY = dbToY(fadeInLevel, h); var fadeOutY = dbToY(fadeOutLevel, h); g.setColour(0xFF433151); g.fillRect([3, maxPeakY - 1, 9, 2]); g.setColour(0xFFE5007F); g.fillRect([3, peak, 9, h - peak]); g.setColour(Colours.withAlpha(Colours.green, 0.2)); g.fillRect([0, floorY, w, slackY - floorY]); g.setColour(Colours.withAlpha(Colours.whitesmoke, 0.5)); g.fillRect([0, fadeInY - 1, w, 2]); g.setColour(Colours.withAlpha(Colours.whitesmoke, 0.5)); g.fillRect([0, fadeOutY - 1, w, 2]); g.setColour(Colours.withAlpha(Colours.red, 1)); g.fillRect([0, slackY - 1, w, 2]); g.setColour(Colours.withAlpha(Colours.green, 1)); g.fillRect([0, floorY - 1, w, 2]); }); outputPanel.setPaintRoutine(function(g) { var w = this.getWidth(); var h = this.getHeight(); var rawLevel = PeakOut.getCurrentLevel(1); var LeveldB = (rawLevel > 0) ? Engine.getDecibelsForGainFactor(rawLevel) : -60.0; var peak = dbToY(LeveldB, h); var maxPeakY = dbToY(this.data.maxPeakdB, h); g.setColour(0xFFE5007F); g.fillRect([3, maxPeakY - 1, 9, 2]); g.setColour(0xFF433151); g.fillRect([3, peak, 9, h - peak]); }); inputPanel.setTimerCallback(function() { var rawLevel = PeakIn.getCurrentLevel(1); var leveldB = (rawLevel > 0) ? Engine.getDecibelsForGainFactor(rawLevel) : -60.0; if (leveldB > this.data.maxPeakdB) { this.data.maxPeakdB = leveldB; this.data.holdCounter = 0; } else { this.data.holdCounter += 1; if (this.data.holdCounter > MAX_PEAK_HOLD_FRAMES) this.data.maxPeakdB = Math.max(leveldB, this.data.maxPeakdB - MAX_PEAK_DECAY_RATE); } this.repaint(); }); outputPanel.setTimerCallback(function() { var rawLevel = PeakOut.getCurrentLevel(1); var leveldB = (rawLevel > 0) ? Engine.getDecibelsForGainFactor(rawLevel) : -60.0; if (leveldB > this.data.maxPeakdB) { this.data.maxPeakdB = leveldB; this.data.holdCounter = 0; } else { this.data.holdCounter += 1; if (this.data.holdCounter > MAX_PEAK_HOLD_FRAMES) this.data.maxPeakdB = Math.max(leveldB, this.data.maxPeakdB - MAX_PEAK_DECAY_RATE); } this.repaint(); }); inputPanel.startTimer(30); outputPanel.startTimer(30); const var allEffects = [Gate, HPF, Dynamics]; const var bypassKnob = Content.getComponent("btnBypass"); inline function onBypassToggle(component, value) { for (fx in allEffects) fx.setBypassed(value); }; bypassKnob.setControlCallback(onBypassToggle); const var title = Content.getComponent("UTAU"); const var titleh = Content.getComponent("UTAUh"); const var readout = Content.getComponent("dynamics"); const var readouth = Content.getComponent("dynamicsh"); const var floorKnob = Content.getComponent("knbFloor"); const var slackKnob = Content.getComponent("knbSlack"); const var fadeKnob = Content.getComponent("knbFade"); const var lowcutKnob = Content.getComponent("knbLowCut"); const var amountKnob = Content.getComponent("knbAmount"); const var colorKnob = Content.getComponent("knbColor"); const var clampKnob = Content.getComponent("knbClamp"); const var boostKnob = Content.getComponent("knbBoost"); const var allKnobs = [floorKnob, slackKnob, fadeKnob, lowcutKnob, amountKnob, colorKnob, clampKnob, boostKnob]; const var IDLE_TIMER = Engine.createTimerObject(); IDLE_TIMER.setTimerCallback(function() { title.set("text", "UTAU"); titleh.set("text", "UTAU"); readout.set("text", "dynamics"); readouth.set("text", "dynamics"); }); inline function setTitle(text) { title.set("text", text); titleh.set("text", text); }; inline function setReadout(value, unit) { var formatted = Engine.doubleToString(value, 2) + unit; readout.set("text", formatted); readouth.set("text", formatted); IDLE_TIMER.startTimer(1000); }; const var knobConfig = [ { id: "knbFloor", module: Gate, index: 0, title: "FLOR", unit: " dB" }, { id: "knbSlack", module: Gate, index: 1, title: "SLCK", unit: " dB" }, { id: "knbFade", module: Gate, index: 2, title: "FADE", unit: "" }, { id: "knbLowCut", module: HPF, index: 1, title: "LWCT", unit: " hz" }, { id: "knbAmount", module: Dynamics, index: 0, title: "AMNT", unit: "" }, { id: "knbColor", module: Dynamics, index: 2, title: "COLR", unit: "" }, { id: "knbClamp", module: Dynamics, index: 1, title: "CLMP", unit: "" }, { id: "knbBoost", module: Dynamics, index: 3, title: "BOST", unit: " dB" } ]; inline function findConfig(id) { for (cfg in knobConfig) { if (cfg.id == id) return cfg; } return {}; }; inline function onKnobChange(component, value) { var cfg = findConfig(component.get("id")); cfg.module.setAttribute(cfg.index, value); setTitle(cfg.title); setReadout(value, cfg.unit); }; for (k in allKnobs) { var mods = k.createModifiers(); k.setModifiers(mods.TextInput, [mods.rightClick, mods.noKeyModifier]); k.setControlCallback(onKnobChange); };

    Here's my module tree

    4e875357-7755-4261-a625-09261dd275d8-image.png

  • Native WoA Compatiblility

    General Questions
    1
    0 Votes
    1 Posts
    9 Views
    No one has replied
  • [DEVLOG] Pro EQ

    C++ Development
    8
    11 Votes
    8 Posts
    85 Views
    K

    This is genuinely amazing

  • Audio Waveform/Convolution - Knob for Range

    Scripting
    2
    0 Votes
    2 Posts
    52 Views
    ulrikU

    @svkpowa

    HiseSnippet 2507.3oc2Yz0aabb7NKcolzwINAoEsus3PPAUjDIOY4OZbsMknjhYsjEgnhcLTDbVd2RxE53sr2cjRBIFv8kh9yx+DBP+Ez+A4k9r6L6dGu8DonkUabaJg+f678L6ryL6xlgBWVTjHzvr39mNfYX9gVsNMHtW8dTdfQiMLLutUcQvHg+vXtHvX8SGPihXdFlly8UHIlEl2P94md35TeZfKKCjgwSEbW117973LnMq8Xtu+VTO1979ZTuZsFthf5BewPvblyppw.p6QztrmPQxthkwinQ8LL+BKWuUcW081sW0gR6bGm12l09tN2wgcW2a48Gbcot2psqyMuI0v7C1ziGKBaESiYQFlyutv6zV8DGGnTvS4Q719LbgiQKPyJvaI78PWDgZTuG22qYZbJxvvzpYVTaNUT6yr1g6wGCOK5cCIBRFG5APyqj27lKm44nadU0LuoXRlZlz7JS5SrZ4FxGDmgAsmqY0HHlE1gB6S5lhhViq7Oja2wrf3x8oGw1JDVLliR2tZ0kHv+rv8JVD1qhhIM1ibehLiobWV7ZC83hVz9C7YiUaI6F6YCLnn+YzQrsDg8AtR0CvWcQ+Ah.XQI6TBryzwHZHABQgwMC7OW9RIHSUHaaF3MKlTnkpRio8nAcY.7HfuCdaZaohjo+Y1Z7PPkgrtjHYvZaVP23df5pBfqTgrdnf54Rif3Nwi0gGvwCeZlXHi5IC1PlFXrQqWGXdyft7.VYW.YLSSDk9dvFs4d1eIwdRFsQOvlF1MBvefsapsZuDwlMB+xgRJhoJJNr3KWPYkz3XpaORrfHoif4cEmTAkUzsuXbXXGwvH1lHOQkNHaG+PPi084tGEsD4QhQfu+6IaDR6BdUWzZj6SSS9ddayAGM.bUajPjFhqBOrtyv.WL9UZrusjxhWn32Wr.uCojbUYdDpscC7OcghE.LER2kKGwheJ0eHKSB31pLOQRSoE.SSi9P1.n...Fgp1xmkL.JRjPBs57+xhiC3WnzBUtz6TBQJKmIUXP5QXLlxC7XmfeYD5Du64Do5HW1fO6jMnwzR1xczs39rxIGa.Mc.V3.yIplayOSPSca2WhVeWWtKChMR.hePHFWs8gXAjUQBXGS5.pEkdghENyowF6gaQ6Kho9JXMBTE2hj6LEKVXbohCpdHtCWxtOEiR5BZYGYAyInUkMLIJUhqmREZnbNWMjWDNZRelTooH41Wwh7.eHgYbniHBRSowskPgu9QHYhfL3lkgCVGOvNA2hNnJgfHfPE2jpujD4RI0lwHrxVwS.uDLi2VEWTbIlScpueaXHgRSXnmm+nT5L8F8S8oQaI1kOG+YLCYtRp7lkGk1JX59SNCU4Mv4qB2ehOjG+jcWmzD5Ce1OIEFdbPaDa1AhtR2DqWPAvw83Qnkssvk5utXXfWjJoDIPzoyyAZVopLWrqxTwAzJkxVI61cUfrkkv5VFNO4uGJGl2dL2XHD4yJc.L3.JrkHzCV4P7eu4gKi.fu6TcgYHddLqedE3EROdRErRhFVbEkNVd0pZpY4UAEAXbRUEZk6GxSXdUEoUVY4UWDIuBP5cg+.LsCElsoYiuvo7sx7uLNkpxYk2N+qn3O0AVym2Mf4sO6jXMmMFVByTPvv0p4hUn8a6BINg.ShA1JaIKfo9unxG2CBXmmhFPCiXv3bi0X5IOPiWf3Wp9sSxqmV9nJcbm5qOY9XtTRIEY4jY8iwzti0xKeF2KtWRwvrd0t3bBLOxO7CpFMnq1Mos8DTAvkHJHkoGzwor73olVRBDXOXoELJEWF0Rb3eyj+Ij+Hb1.EegBJHQ83ch2.lfm7PPFKeeH4tJ4KIiVd46cVVe.43kmEyKNl4EWbrtk1z3x6xbqPUQ0kHYoQXQ3ExA.phsfZDCkHzax.iXHE94LIjJzgAELFCwkIM1rsfug7EIVsFr6MSK+raJKJ0y+dtyKk4mcDgjRCH7frQ5koXCTk1ghshiSK4hCJZuluOIC.JLIoMwgwfJNwPyjRxxoiQIGkcbYaUdMd5nnVOmmHhY6lLGBfgbVTc5LUbI098gwalFZ7xygyhwRAC62lEp2ZCIDtfX9acZc925T+RwtplXZDJBZ.Sft6.Vv4cUYijNe3MTSrJ3N4wx6m9qStepbzO7N.vtUeCNbazhVoWIvPZ55On.lmXX9sVU95HVXTkg9g7iZK7XAU1YXD2sxi3QrJOpQqMgNh69m1r99spz5IMZ1bS3KqAW1MNpx3YMipvCeQDGaj+hPHcMrc4ioiLBGOVODaLeEnzvjgzw0W4aMML95F3XqodE3ffSOfEFyw3o4FrQbWl5V3Er1fEcTrX.D1G262v7W8NDCNQ+IRNMawmW6Xrz3X.+3eoVOFuaOsmZ440FOCeCPnya0XObOYrYbMkYb8zmJfFv7STe5PM5peCM0W66Ni5e0ASn9Mpk+Hlg4Gak6HlQ5rC.OevCdvCdCxUVCeD5adya9qHT3Hepfuwq+m0vFkPXTYl47oO777oqZoloRyidUm+a6QVP1zULTdiEZfF80dTMx2US20tZdWaaZ6DW6izg3nuk0PyAec2y3fFAS3fOHIx96rZg02IxB7vs45C2GmbBTY2fAEOnx5ClyYL4yNcCqcDdC8ow4eEL7sBSPb1mQDedofHd7o5uk3+wdZrKpI9IVM4wt8ltMdkoXivo+eNrwjGT75Va1oCLbalANu0Vey6gWO7SS0u9q9pzOT7PW+aDdZ9W.94u9Yr37fLL1FLt.2bwsF8GLzOJ4Vo5a5IlQifACi0gC05WGNb0MDG5e+d3870kWSXjTlOMmNdDutlL9a+8Za.WXCtwuNMas09IEoS.8Y0v1Bpma9m0VLxy3pdKIUAv1J9Bwfb8cP.ZscLm6Bug6L67M0rLcggvB4n5exv9sfpStL7Q0f5kQRUh8uUqqpJTYXzhE3IW.EwdSBRGbsYBRmTj54zejJLeMqVv.TxGKVlQ8ajqkOIL4qvmwAOQ5Liehge7h9SLL3B+SLrKb+wQr8gN7QCDQ4DbKVe99Pk2HcfPNwVgr+7dXIBc30E3UqlBpe5gaAN4T4oEMdXnrVyZ8gL63b0VlaV+xENWxe4h4+ete4heAzAIW4wBo1XK4g5MCFw7gQ+j13mBy50gNzONEZ9b4cDAhA8DAbW8M58XvYvtcYg519Tcn0vGN8H8pU6w7YT8j1Ou11PxFMDhSrKYrv4c9GZZp6W+VKk4RvCfje414et+uty+6kFAuOzQepan3EtpqXh4oWUBA76.Y27BV6fqINSdix9PUtW35lWTSv3JWVFu4kkwUurLdqKKi29xx3ctrLd22NiXSn0FFK5qNZZXrSyMkW91zby.7dHxSDF+KfGvTIE

    convolution.gif

  • 0 Votes
    7 Posts
    77 Views
    lalalandsynthL

    @dannytaurus Yes, I have concerns , but its absolutely amazing for doing dynamic graphics.

  • IPP Mismatch on Windows

    General Questions
    2
    0 Votes
    2 Posts
    43 Views
    David HealeyD

    @eschirle that message is saying you haven't built HISE with IPP

  • Need help for Export on Mac

    General Questions
    5
    0 Votes
    5 Posts
    136 Views
    K

    @LUIS29

    I can give the mac compiling a go and try if it compiles ok.
    No guarantees. You need to codesign it afterwards thou on every mac machine it is running.
    it's not too hard, just running some code through terminal on mac.

  • 13 Votes
    123 Posts
    28k Views
    A

    @Chazrox its very helpfull for people like me. Thank you bro=]

  • 1 Votes
    12 Posts
    273 Views
  • 9 Votes
    3 Posts
    557 Views
    observantsoundO

    @CyberGen I was just going to make a similar post.
    My main wish is to make the right click option "Fold All" assignable as a shortcut.
    Many of the other right click options are there already.

  • 0 Votes
    24 Posts
    204 Views
    A

    @David-Healey oh my god. thank you really. i'll wait for solve. good night that kind man

  • How do I add gain?

    ScriptNode
    4
    0 Votes
    4 Posts
    64 Views
    Oli UllmannO

    @Kalliopei
    I think you can simply set the MaxValue for the gain to 24.0 in your network's XML file. Use a text editor to do this. Then it should work.

  • Hise general and compiler settings not saving

    General Questions
    11
    0 Votes
    11 Posts
    865 Views
    K

    @Christoph-Hart
    Yes, you're quite right, that probably is the real cause.
    Still a bit weird, since an older install worked as should.
    Although it was the one with an .pkg, or was it .dmg, installer from the website,
    so that might have to do with it as well.
    And as the admin and the sole user of the machine, the writing rights should've been ok.

  • "An error again :("

    General Questions
    2
    0 Votes
    2 Posts
    65 Views
    David HealeyD

    You just need to run a command to tell the system where xcode is.

    Make sure your xcode app is in /Applications (not the user folder, the system one). Then run the command

    sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
  • Flex Ahdsr laf improvements

    General Questions
    1
    5 Votes
    1 Posts
    48 Views
    No one has replied
  • 6 Votes
    28 Posts
    4k Views
    lalalandsynthL

    I was not planning on making another one today as I am deep diving into glsl, but got an idea and had to flesh it out. 🥧

    So this is "KOMPRESS"

    Minimal with a central large knob, Figma design.

    This one uses quite a lot of blur for the glow on the black knob which is a HISE problem but since its stationary on the knob , I could move only the line indicator on the knob and just either print the blur or if keeping as vector see if I can get away with one blurred component?

    KOMPRESS UI

    KOMPRESS Final.png

    KOMPRESS DAW

    KOMPRESS DAW.png

    KOMPRESS D16:9

    Wide AD.png

    KOMPRESS 4:5

    Long ad.png

  • Flex Envelope Visual Bug

    Bug Reports
    1
    0 Votes
    1 Posts
    65 Views
    No one has replied
  • where do I find the 4.9.2 hise version?

    General Questions
    13
    0 Votes
    13 Posts
    398 Views
    C

    @Christoph-Hart haha thanks man! i dont know what to say. im too new at this stuff, its all hieroglyphes for me.

  • Oriental Drummer

    General Questions
    10
    4 Votes
    10 Posts
    2k Views
    A

    @combamusic Thank you!

  • Global Cables Don't Work when compiled

    Solved Bug Reports
    32
    2 Votes
    32 Posts
    9k Views
    ustkU

    @Christoph-Hart Nice one! It seems to work but I can't fully confirm at the moment because something in my network makes a hard crash as soon it loads in a HCFX...
    But it is definitely not the C++ node and compiling it with a fresh network removes the global cable not found warning 👍