Forum
    • Categories
    • Register
    • Login

    Recent commit to Processor.cpp breaking old project

    Scheduled Pinned Locked Moved Bug Reports
    16 Posts 3 Posters 448 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Christoph HartC
      Christoph Hart @David Healey
      last edited by

      @David-Healey can you upload a snippet? Processors with dynamic parameter count should rebuild their parameter ID list but that looks like a order of initialsation issue.

      1 Reply Last reply Reply Quote 0
      • David HealeyD
        David Healey
        last edited by

        In this example I add a knob on the UI and connect it via parameter/processor ID to a knob in the secondary script. Upon reloading the project the connection is still shown but doesn't function.

        HiseSnippet 828.3oc6VssSaCCF1tslQ6Nnwzd.h3JXBM0VZoEMMQG8.qhUnhvP6NjqiC0pI1QItLJS6t87rmg8pvavdC1rSRaSGkAqab2xEQ5+7m+82us65KHzf.gO.l63QdT.7QHyQbY+58wLNncC.7AHIMPV.r6HObP.0B.go2SaDlMCH7666rK1AyIzop.fSDLB8cLWlbpVuZ6ybbZgsnGybS3coZsIBdcgiXnBHoQ4AdXx.7YzCvZ2Rg.uEGzG.eAp7lUqPoa2iVofMgXUF2qRohUpVrrcuRaUMeuhXx1EKkm.fK0zhIE9lRrB9.XlcEViL6K9HOp.mvBX8bnZgB.SUkiT2R3XoWhZsf58YNVcG2gB.przcZ+JcT+54nNLK1D8S6aOMzfwzHR1.golEdomAdERBu7If2bfTpDPJSDjVAYR7YdxoVz34gn1bI02Fq1mRBkHeAvugpKTNvkuzEOf1xWILIf01Je9MLT+V+U1C4DISvMD7CDR5g70VO2mxkM2myY7qlrsmqMcY7ENNT+4ZVSM7+cAtFenaOp+FFmicFRm3nZ4OaOEcy8zja4jnUcBGE71bl7POJ+lHBf3Vkp+CiQkxUYX2+IwceSGlE0GvrziP6yE8J.BA7XZ+W26pc.uucCrDONMpLpphG0WxzK.XC54pgnnM0rnFzfARgWnutdBtt9vku0hdwj4rZGUazDACRMWlkkCsqHfoavIGdCjTOS1kiwZsqt7K63Md82Vk7mEWuDzaOruZZUQXz1WBMPUb.3tRNmS9lOGUsaEHMzI230FiIrXKK8ZcsU05W8+bzEgiFuiMCEM76ulhtzsUyKRVuQIE9yXnygsoNDVXMzAKm8jY88WwFz4MIUSelGWUuQIue6e1w02UHtBpKSR5OeLlZNXTeSv8.Fiuj6wnl11ThbJ.yfZ8g6maz.GIFJY7y5fk9LE0.cvPWS0CCHTU04bpidrAlRSvijyqk0c.SJ2JT3GpuXiEzxvXiEFaD3hI9hSIQiE5qQWNTiBS7vmbjE0QKaT35CDJNI6TBY1Tcs.KtnAt4hFXoEMvxKZfasnAVYQCr5sGn9QWuYnT3FM1..c51L7.LHrIGqXfgrUvOAvOSfv
        

        In this example I have two MIDI processors (script1, script2). script2 has a knob on its UI. script1 has a reference to script2 and during on init sets the knob to a random value.

        HiseSnippet 853.3oc6V0saSCCE1tsdPK+HlDO.Q6pVzzTaW6ZmlP6m9CTMZWEYLwcStNtqVMwNJwYPGh63AgGE3ddI3Mf2.vNIcME5XSULwMKWDkye97ky24jS56IHTeegG.l63ItT.7gHyIb4nFivLNnSS.7dHI0WVBbvDWruO0B.goeg1HLaFP30O18.rMlSnyTA.mHXD5qXNL4Lst6cHy1tM1hdLyIg2U1qCQvaHrEAJfjFUD3hIiwmQ6g0tkBAdI1eD.9LT0MqWiR2d.sVogDhUU7fZUJWqd4pCGTYq5EGTFS1tbkhD.bkVVLovyThUvG.ybfvZh4Hw63QI3DlOafMUKTBXpxbj51BaK8qnVKnwHlsU+oUHef5T5OqdkNpd8TTWlE6R8ypaOIzfwrHRV.golGdomCdkRBuhIf2BfT5DPJSDjVEYR7XtxYVz34AnNbI0aHVwSIgRju.3WPMDJG3xMbvios8TBWFP9sJVbcC0sB6LLfSjLA2Pv6Ijzi34Kj6C4xl6i4L9cSCGtPa5z3IrsodKzrt0v6uEXddfy.p25FmisCnW5n50e9ZJ5pqoIobRzacBGE7Nbl7HWJ+pZD.wkJ0SuoSSrDqHBXrNketTOISCAXS54pwfHZIKpI0erT3B.2TNKKxOTaoEwXofPjB79RiHmJa7bivY2MNiJmqoL+ZwdrVgcxkK94M7ox8kRO1f.IM+Tki4hAqazEqNEOL2R3juvcb9+ENu7BmR+ZLkq4IEeOcjEaYcnRS90z5UrrwcT1bTVDSoPkxUYXw+wwEeSalE0CvTU4UP5pGHDuwKm9buxea2khu0953J35zCW45x46St5bRRAGlkkMsuvmoKuIs3KotlrKlB0899EeZ2Ezko1CIrBrwx4WNoWgGaPetI60ze1mqx2jjq3+msw5lBwUQ8YRxnEiwTK.iJ941.iw64eDp0vgThbF.yfZ+1amk5fWKBjL9YpOC6wTsFndANlp+MhPUYmyo15wFXJcCdjbQsrtBXR4VgB+TcEarjVFFarzTi.GLwSbJIZrP+mD2OTiBS7v+5JKpqV1nzbCDS6IYmRHyeT+QfkW1.2bYCrxxFX0kMvsV1.qsrAV+5CTu6e+.ovIZrA.51uU3GvfvVbrpCLraE7K.FmFX3A
        

        Free HISE Bootcamp Full Course for beginners.
        YouTube Channel - Public HISE tutorials
        My Patreon - HISE tutorials

        ustkU 1 Reply Last reply Reply Quote 0
        • ustkU
          ustk @David Healey
          last edited by

          @David-Healey @Christoph-Hart Could the fact that not having the MIDI Learn button available as parameter be related?

          Screenshot 2026-04-16 at 12.37.41.png

          Hise made me an F5 dude, any other app just suffers...

          David HealeyD 1 Reply Last reply Reply Quote 0
          • David HealeyD
            David Healey @ustk
            last edited by

            @ustk Has MIDI learn ever been available as a parameter?

            Free HISE Bootcamp Full Course for beginners.
            YouTube Channel - Public HISE tutorials
            My Patreon - HISE tutorials

            ustkU 1 Reply Last reply Reply Quote 0
            • ustkU
              ustk @David Healey
              last edited by

              @David-Healey No idea, it's an absolute coincidence that I'm working on this today...

              Hise made me an F5 dude, any other app just suffers...

              David HealeyD 1 Reply Last reply Reply Quote 0
              • David HealeyD
                David Healey @ustk
                last edited by

                @ustk I don't think MIDI learn is related to this bug

                Free HISE Bootcamp Full Course for beginners.
                YouTube Channel - Public HISE tutorials
                My Patreon - HISE tutorials

                1 Reply Last reply Reply Quote 1
                • David HealeyD
                  David Healey
                  last edited by

                  Another issue I just noticed, CC mods don't work

                  Peek 2026-04-16 17-58.gif

                  Free HISE Bootcamp Full Course for beginners.
                  YouTube Channel - Public HISE tutorials
                  My Patreon - HISE tutorials

                  Christoph HartC 1 Reply Last reply Reply Quote 0
                  • Christoph HartC
                    Christoph Hart @David Healey
                    last edited by

                    @David-Healey Yes I've actually fixed that already on my local state. The metadata switched the default value parameter range from 0...127 to 0...1.

                    1 Reply Last reply Reply Quote 1
                    • David HealeyD David Healey referenced this topic
                    • David HealeyD
                      David Healey
                      last edited by

                      Similar problem seems to be present when using Script FX in the latest version, it's unable to find the parameters in my script

                      HiseSnippet 1221.3ocuWssSiaDFdLjIcIaWT2p9.3xUYqVAIPHfzppMPHoMc4PZR1svUzI1iISwdFK6wa2TDR8MnW2dUeKp5c7.zmkp9Fr8eFam3.YgPDs9hnL+mO9M1sCDVzvPQ.xnPug9TjwGi6NjKGTe.gwQs1CYrL9.RnjFXFSZ2g9jvPpMxvXwuRQvXobH8y+7xcItDtEcLID5MBlEcelGSNlpesWwbcaRro8XdYjtRsVVBdcgqHBhmEwkP9DqyImQOjnDaAL5qIgCPFeA1tRUJoREaK55NzJauY+s1XisspVojcopqS2rpCozlaUwoBxHeCalTDzURjzPjQtcE1C6NP7i7XG7FVHquKUcnLpK34XxMEt1pTTQEUe.y0tcZgJDAVo83x1hwksOCe.ylMh93x2mnYXNVirEPiElL7Vbhvq7GJ7lRHYjIjxEGROE20Jf4KGyQEOOF2hCcSGBzmxFJwxhV3OLv0EfDb4pdjyoMCfCiznX0RkdtI7yydQgBPuJTZFqWyiM+RS8fypmQkMbbnVxhqDyyr4wqnjes09byWwE8Kmno9+fZotCTrtvyWvgCEWQyUom9OqFpXxkAB25DW29vbQQAWyJgrxCLtKiSMch3VRlfaNoDEsRs9yMeKwMh9rBWTXoz3W4gcjx.V+HIs3HppQ7TweQgKKjw1GJjzi3E0VA3XdcVNNSkWRz3RClJa0JQvsoXQdjWeZP1bPIHz1mbVJ+rMKYEW8yHnf2hyjG4SSNe6KCnj1mZFLIBAQk5IvkSl.65xroAHFXjOBqaIHcvmr5+8NNKeE50s1iHIolArH3EeZfjoRFi8nuE.RhGrWBuGM7bovWKaROEY7j6zouaLVyg0FN5vO+s0BkCUkl7ZAQdLaaWZaQHSU5Gqz5WA.g9cY+jNx+seU87muzKKH3IW4QdWV.vvHGGFPAiMs2E4vb8BggL+Vd.tFx3SwuNjZZScHQtRyvyASAivmSs6Iz.ddB6jD1h0m5hP2bMG.XD1QtD4jnNpA2DFpbH6ptZclC41vrX2WGJJ2Gd7ozLiTNqg6SwsYRqASOdWXJwKLl7ec7l.r+DbLZ13fMGt4w2JJ9CRnLMD8B3TboDn7Q.rSCJ23H7EMNtWiNGty9m1sdmVs6c4Es6bz2znduSadz960nykcFP7CE1rP4Z0EAz0Rs+ZG.yiLHm4bpqZTZ0e.RL7CzsUnNhHIie1ADXUPsabXjWW3ReKZhGU9xXAE3R74RpyptdWJ2Ve38vSByxpyFILKmxLCtTtY.WJudgYBXI34QWglAcg9fmPHG.Yz0LPMQMzLAJ9cLa4fq68SlIkWBm9ZWWSc3YtvTykASc46pfo5dFE.WMLsEcGPo4+62G+begRKV6gEJMQx2LkN9LbkR1dttF76ydMn.FV3HvlhMZpEgLYcseYTVCov8MkmZJByjwkh7X8qemMee7cNhpy0pF2i9scxr3DMS1CdZEusLCctw6K5b4utG4x3K0yz1Ru.81lcOYT5tHd+4bxEiaS3++.c5QrBDmZEi8ntK5QZJPzy0eI1RvmDBmMKeSHGnlwN0xZRScCEWedUbi4UwJyqhaNuJVcdUbq4UwsuaEUeK5NQRgW7aYgPGztg9JBCiF7XHI3EHP+aEpp1y
                      

                      Free HISE Bootcamp Full Course for beginners.
                      YouTube Channel - Public HISE tutorials
                      My Patreon - HISE tutorials

                      Christoph HartC 1 Reply Last reply Reply Quote 0
                      • Christoph HartC
                        Christoph Hart @David Healey
                        last edited by

                        @David-Healey hmm, works, your snippet didn't include a network with a Gain parameter though - can you load this one?

                        HiseSnippet 1534.3ocuX80TabCDWmMBBNoYZloe.byzGb5jwXCDfYxzACF6T2veb4bnvST46jwpbmjm6zEvMMS62f9bdqeM5a7onO2OB4aP5Jo6ruCLDOdRiYFvRq1U+Vs69a2j1ABGZXnH.YUnyvATj0Cv1C4x906SXbTqcPVODuGITRCJZ1Z6gCHggTWjkU9Wn1vZw4P5OueysIdDtCc7VHzQBlCcWlOSNd2A0dIyyqIwk1g4m5zqVqkifWW3Ih.7jGWAMf3bN4L59D0wxgQeOIrOx5awqs9F8VsBsJwoR0UVaipqubkkojUd15qub0UVY8Uc6sV2JNarLxZ9FtLoHvVRjzPj0baKbGZ2WbA2bAGwBYc8npEUQ1vMa1tovyU4hpcQ06y7bam7PEh.qzd7yVdyy1Wg2i4xFs+3muuTKn3XMR+.ZkKK7xmAdUSCuJof2DfjUJHMmAROBa6DvFHGKQgm6iawgnYOBDmRCEyYQ49GKbcAbBtrrO4bZy.XwHMJsVkJOsH7qm77BEfXUnrnQulGW76JpSbJeFU1nWOpirziMxJ173GqN+RK80EeIWzsZrl5uCpkbcfh0E9CDbXQoGqkpzS+kxgJgbYfvqNwyqKjWTRv0hh2VcCvWCEdzxCBXfIRPVYUZpRLi6w3zh8h3NRlfWLqAJ4jb4Os3qIdQzmT3MEVbjQ..rkTFv5FIoYMcxwedg2VHks2WHoGvKosBHo30E0q2DkEiFOZvDEqpXBtKEKwi76RCR6CpCBYEYS0v2dpV5JAGSvI0AE7Vbl7fAT9sUefhinpzxXTAGUpSJeXbRosGykFfXPt2BXcX.oAbLav+9geeyqPup0NDIIwLfEgaY.MPxTNf0NzWCbKlb8Ew6PCOWJFnOabbD3z9nW5kioe1u1vQK9ierlOy00i1VDxTOviO1xWArgCrY+ZBV+q28t+dS+zLgmbkO4xzrfgQ85wfcv3htai7EtwP1g0k5gP2r1EXMDtQdDYVpDU5Vr.ElRW+ppQ4.VGllP9SF+xzBwGgayjN8mLFyMALBA2+OvXLq7WfMTQiA3b3lG+4iBt.NgoHl6cDi3j3dsN.+lFG2owg6u0tmZW+vVs6712z9vC9gF06bZyC1cmFG91C6SFDJbYgxkpKBnKkX+k1KxSx.+jyodpzjx+R3M59ke5p4mvS6ghHIie1dDfATkGuejuMzk1gFeiJBEqbpRey5Jp0pnqMk6pW7A3Srvpp0VwBqlHLEqwbSAqw75hgLjFvm6cEZJzEhC9BgrO3QWy.0D0PSEk0Owbk8u9sexTo7h3j4jtl5JNHp7BQv45zo3uirtmI2ITanS6cIZKOOwEJZNVbQFjCo2qsva3f9BNyQsk4DIgns7EQJNQSbZbE51dBmyMzYlPFLjUGBySUvZGEB77tGvsA6nmryJ+QzfP8ct.tRY3Gn.deMg1BMINPx1v1D3kAXBTsNfPDMnrynxuzdQ5J.yDdokprYxnfFbAtiulUGFDTkD2lD.ZASlnZFjyJeplClhQ0JfpIm5he.tU3QJoNDOzQl2c3gPcKlGasKLu5nXrejGJiyT.6C+srZ+ahZy4ua7ZkKM5PoftBpIqfWf8X7itdVwdjKu1dueS6r8fzerOmdgA1oOoxkV.aLPG5kxNB82gD0WC3Qeo3Wwco8fPkKfryLiZaG08EAhnA5E2352g1i.DN2X+shjB3oxP2e6tYAEnhqf+z6wPtc1HQiKgakS7R0VBBo6vBI.62s4yYbQyHHbpdXqvrKiK.Z4ljJLxQa4N9oGssPbtOQWaOaC1LWpAat+GiWL03GeSsL8a+zMWSoZ28bMtSLIQSQOxQVbpHoScotSm2.ybMIuIE7q8m0lH.gV.FGYdr9edZZztvGsivX6+ygSGROoVlGU1jQko2xTLX63tKiM5U+1L9noKmtqTfSFkBjGuabB.F2lv+7LxfOwIPbpiomqpr7d5c.zv0TyKh2SstX0a1pEdCXm53j0T2PwkmUEWYVUb0YUwmMqJt1rp35ypha7wUT8eZRbyDUJJzRncCMmokUCtg1FZ.i9ODdN.kA
                        

                        (the 300 extra bytes indicate that this includes an embedded network).

                        David HealeyD 1 Reply Last reply Reply Quote 0
                        • David HealeyD
                          David Healey @Christoph Hart
                          last edited by David Healey

                          @Christoph-Hart said in Recent commit to Processor.cpp breaking old project:

                          your snippet didn't include a network with a Gain parameter though

                          You don't see this?

                          71421f83-bdf5-4891-8008-b2d6ae021278-image.png

                          With your snippet I see this:
                          3e899213-f6a7-4270-8974-3bd29758fa06-image.png

                          Free HISE Bootcamp Full Course for beginners.
                          YouTube Channel - Public HISE tutorials
                          My Patreon - HISE tutorials

                          Christoph HartC 1 Reply Last reply Reply Quote 0
                          • Christoph HartC
                            Christoph Hart @David Healey
                            last edited by

                            I saw it until I added a DspNetwork with a Gain parameter.

                            I totally overlooked that you added UI controls to the script FX like only a madman would do... Why?

                            Also the script FX doesn't contain a setForwardParametersToNetwork(false) (or whatever it's called) call so they are dead in the water anyways?

                            What's your use case? I think there's a valid issue with the metadata system only looking in the DspNetwork to build up the parameter metadata list (so the fix would be to also check the UI controls in there.

                            David HealeyD 1 Reply Last reply Reply Quote 0
                            • David HealeyD
                              David Healey @Christoph Hart
                              last edited by

                              @Christoph-Hart said in Recent commit to Processor.cpp breaking old project:

                              I totally overlooked that you added UI controls to the script FX like only a madman would do... Why?

                              Haha, I'm using the scripting side of script node :p I made this years ago, I didn't need any of that fancy node graph stuff.

                              @Christoph-Hart said in Recent commit to Processor.cpp breaking old project:

                              Also the script FX doesn't contain a setForwardParametersToNetwork(false) (or whatever it's called) call so they are dead in the water anyways?

                              I don't know what that is, but the effect was working fine up until the latest commits. I'm not compiling it to a DLL, if that makes a difference.

                              @Christoph-Hart said in Recent commit to Processor.cpp breaking old project:

                              What's your use case?

                              I wanted a simple gain that can handle multiple channels.

                              Free HISE Bootcamp Full Course for beginners.
                              YouTube Channel - Public HISE tutorials
                              My Patreon - HISE tutorials

                              Christoph HartC 1 Reply Last reply Reply Quote 0
                              • Christoph HartC
                                Christoph Hart @David Healey
                                last edited by

                                Did you use the actual processBlock method where you shuffled the buffers into a Libraries.load() module?

                                Also the script is completely empty, all you're doing here is declaring some parameters in the XML.

                                I wanted a simple gain that can handle multiple channels.

                                If you were stuck with the "script" part in scriptnode, use that instead:

                                HiseSnippet 1249.3ocuW8zSiaDEelDb1krzpcUaumaksBgBfS.odfPHv1nVfHbJp8Dch8jjQwdFK6w.oU8du0y6s9QnW6M9Nz9AoeCnuwyjDmD1.Dw1fDxu2ad9868+wshDtz3XQDBWr8vPJBulkyPtr+g8ILNpYCD9SsNgDKoQkzrpOLjDGS8PXb92oXfWcET5u+c+5DeB2kNgEBcgf4R+NV.SNgaXsuk46eLwi1lEj4z10Z5J3GJ7EI.dxaUFERbGP5QOknNVNKz2Ph6ivekkmcUJw11yktcWp8dU5r6N6rmaU6xdkqtMsR0tjxU10tqMBW3HOlTD4HIRZL7RqK7F5zWbMWafKXwrN9TEwVHGvxZ1nC6y78ZMJ3DiP3UZMITkWGp9bqSXdrw7mDxdcpfRSzHaPCmaQPZqm.jvYfzJZH8FKG2HVnbhDEddkUSNjA6RfbSVnnOKBeq0gB3.b4lAjAzii.hwJrd0xk2nD7u290cS3tRlfWRvOUHomwW+sE+khqV7WKVZVQc6duxTlIR36SitWwpxgnEo357jfNznMJcEwOgN9ff6OcLsviKl5p85LGTvaxYxyBoF5iE9dpXk544y.HSXCd56a1fHIpjhgGbtPZjjofCtA8JnMPmhV0pAMdfTDhPym+fJGgWhOQNc4jpQyH.hGSkCUIJdLSNLai3SnFq7BqwdrP7MVsXR292OFycOXDhTeLvnoy7SrNpaWpqbB.Ww53eXYaCK+jaCKZZCAap6+zjklACi5+9MqI05gQzPRDssnkOY35wjfPe54.D2nTGeg6.G1OSmuAITif5pSrtaeBmS8iWl9nBOSylPmKRjLduSHxH1MPB4zj.GXrtK8PC5PXKbAUKjltrhVUV3P4doD2A+LB2RQiMB2ZFgaqnyYDt8LB2QQm2HbmYDZqnWwHzdFgUTzVFgUFILSG+oT40hnAoU.lmQ3WpS2woI1K6dC5.eew0GJBBYl9BHsmxqkveXXeAm4pXoOwnfyAAhDvFF+ZRSU8QU.iBVv9v1DlupGyIIFlZ4cF2AdOoKgw4ufFEmZyWXUdS3Onm6TgGH5EGSbgz7vVDYeUyqZPHzoPi1zcbGSVuHaQqdYbVop24ns1ZbAtSfJJo1YqJeZQh.sfMJpgg4v4yLbT2+nnfoC4TFdMqlwWnj5R7QWnJPUJkZEcvN0EJnNZAqdJ3Nk27Jvahna1a1KqnwsQiECYbtr.DkA8P89XJvTmv3F.NZt1Od6IjalgGTCIog57VJu+38u+u12Y.8ZMvMbus2e9E0zdU5EqZSuQ1Vj9tfptq.3nroZ8gKqC0GfUO8shbR57tHQRXJwb1tAsKIwWNG+CRjh.nMOcBMJiWUbduBJBm0qp860dTd0O8YM968MCACDBYeXpvGv0JXkdevGkeYW698K6ZOfq7bjfVy5bZL0X5Oxoooq9vYbt0xTq776mvTmoaPN5Fvpbhelc7vdtFrXBrQv6C3lS4UOXnJKb+m6t6KuM81TbZ51qXykqLjlYYM8F2SONzn4kFWP0EhAAjzwzK2cz9edQFZQKxvKZQFZQKxvysHKf3FItzUee.Ur8kobfAb7zAkqBe1GPWZKzUyVDE.ebykttS+plSwsWVE2YYUzdYUrxxpX0kUwcWVE26gUT8smlg6p9DX1cqiRK7w3i35lUXcH5+.8tIYVB
                                
                                David HealeyD 1 Reply Last reply Reply Quote 0
                                • David HealeyD
                                  David Healey @Christoph Hart
                                  last edited by

                                  @Christoph-Hart said in Recent commit to Processor.cpp breaking old project:

                                  Also the script is completely empty, all you're doing here is declaring some parameters in the XML.

                                  Not sure what you mean

                                  a3c8b145-6d2a-498c-8e9e-7cfb616e3c57-image.png

                                  c6710f15-5439-4161-8381-4a189005c274-image.png

                                  Free HISE Bootcamp Full Course for beginners.
                                  YouTube Channel - Public HISE tutorials
                                  My Patreon - HISE tutorials

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  16

                                  Online

                                  2.3k

                                  Users

                                  13.7k

                                  Topics

                                  118.8k

                                  Posts