If you're watching this vod and you feel like noting down some timestamps for when things happen in the video, leave a comment with the timestamps and I'll add them to the description. Thanks
What you explained around the 1:55:00 marker: Admittedly, I am ignorant on the subject, but this makes the developers or Max seem completely incompetent. How does this follow any logic? First of all it reads the actions from Right to Left?!?!? *facepalm* Second of all, why would we need to bang the cold inlet? What is the cold inlet even for? I'd guess maybe if you want to send a part of the signal to the silent ether... But why not just allow a user to right click on the inlet and choose whether it's cold or hot? That would legitimately be a 10x UX improvement over what I am seeing here. I am experienced in Python, but Max is new to me. With that said, there are few moments in Python where I shake my head and think "why the hell would anyone design this to work like this?" I am planning to learn Max to wrap some plugins that I use frequently, but I am worried I'm gonna get in there and wonder what kind of idiot designed this thing hahaha Anyway if I'm completely wrong, go easy on me - I did admit I am completely ignorant to M4L before I rambled my opinion 😅
The bang is sent to the hot inlet, not the cold inlet. The bang triggers an output. Or you could say, the bang "calls the function". Certain inlets are cold on purpose so you can set values without triggering the calculation/output. In my example I'm showing an addition object. Imagine the two inlets as variables and the addition object as the function. Changing the hot variable calls the function and triggers and output. Changing the cold variable doesn't call the function. This is helpful because imagine my cold variable is rapidly changing which is common in audio land. I might not want to call the function thousands of times a second. Instead, the rate at which my hot variable changes determines how often the function outputs a new result. The way I'm using the TBI object in the example is like changing the sequence of code. Instead of calling the function and then changing one of the variables, I'm changing that variable first, then calling the function. It might seem inconvenient at first, but this is intentional and makes the addition object and other objects more versatile. A good example for why you can't and shouldn't be able to change inlets from cold to hot is the peak object. It has two inlets, one hot and one cold. The cold inlet sets the threshold. The hot inlet is compared to the cold inlet. If hot inlet is larger than cold inlet, cold inlet is set to the new value and that value is outputted. So we end up with an output of the largest number since the last time the threshold (cold inlet) was manually changed. How would this objects logic break from having 2 hot inlets? Well, as you know, when you change a hot variable it also calls the function. So manually changing the threshold would also trigger a comparison between the 2 inlets. If the other inlet is higher, my threshold will immediately be set to that. Effectively, I am now unable to reset the threshold! As for reading right to left, I'm not sure how to explain the logic behind that one haha! But you get used to it. Hope that makes sense and thanks for the interesting question.
@@Slynk Brilliantly explained! I completely understand and should always assume that whoever built the utility knew better than me haha. From the detail of your reply it's clear you have a passion for engineering and perhaps education too. You could excel in any of it! Thanks for taking the time :) ( PS: I purchased DuckBuddy2 and love it)
If you're watching this vod and you feel like noting down some timestamps for when things happen in the video, leave a comment with the timestamps and I'll add them to the description. Thanks
3:25 - Overview
5:30 - Troubleshooting
10:30 Debugging
1:04:20 - Q&A
1:06:30 - Confirming Bug Fix
1:07:30 - Rm Explanation/Demo
1:13:00 - Multiband Sidechaining with Duck Buddy
1:15:00 - Q&A
1:26:00 - Plugin Delay Compensation
1:38:00 - Lookahead Settings
1:40:00 - Previous Sidechaining Method
1:43:30 - Where To Get It
1:47:40 - Tips For New M4L Users
Awesome thanks so much! I'll update the description when I get back to the studio.
@Slynk happy to help, I appreciate all the tips and tricks
Lot of good points about multiband, 3 bands is definitely overkill and even 2 bands is pushing it
Yeah. I dunno who's told every producer that multiband sidechain is needed because it's not. Lol
Looking forward to your journey into Bitwig. See you on the other side.
What you explained around the 1:55:00 marker: Admittedly, I am ignorant on the subject, but this makes the developers or Max seem completely incompetent. How does this follow any logic? First of all it reads the actions from Right to Left?!?!? *facepalm* Second of all, why would we need to bang the cold inlet? What is the cold inlet even for? I'd guess maybe if you want to send a part of the signal to the silent ether... But why not just allow a user to right click on the inlet and choose whether it's cold or hot? That would legitimately be a 10x UX improvement over what I am seeing here.
I am experienced in Python, but Max is new to me. With that said, there are few moments in Python where I shake my head and think "why the hell would anyone design this to work like this?" I am planning to learn Max to wrap some plugins that I use frequently, but I am worried I'm gonna get in there and wonder what kind of idiot designed this thing hahaha
Anyway if I'm completely wrong, go easy on me - I did admit I am completely ignorant to M4L before I rambled my opinion 😅
The bang is sent to the hot inlet, not the cold inlet. The bang triggers an output. Or you could say, the bang "calls the function". Certain inlets are cold on purpose so you can set values without triggering the calculation/output. In my example I'm showing an addition object. Imagine the two inlets as variables and the addition object as the function. Changing the hot variable calls the function and triggers and output. Changing the cold variable doesn't call the function. This is helpful because imagine my cold variable is rapidly changing which is common in audio land. I might not want to call the function thousands of times a second. Instead, the rate at which my hot variable changes determines how often the function outputs a new result. The way I'm using the TBI object in the example is like changing the sequence of code. Instead of calling the function and then changing one of the variables, I'm changing that variable first, then calling the function. It might seem inconvenient at first, but this is intentional and makes the addition object and other objects more versatile.
A good example for why you can't and shouldn't be able to change inlets from cold to hot is the peak object. It has two inlets, one hot and one cold. The cold inlet sets the threshold. The hot inlet is compared to the cold inlet. If hot inlet is larger than cold inlet, cold inlet is set to the new value and that value is outputted. So we end up with an output of the largest number since the last time the threshold (cold inlet) was manually changed. How would this objects logic break from having 2 hot inlets? Well, as you know, when you change a hot variable it also calls the function. So manually changing the threshold would also trigger a comparison between the 2 inlets. If the other inlet is higher, my threshold will immediately be set to that. Effectively, I am now unable to reset the threshold!
As for reading right to left, I'm not sure how to explain the logic behind that one haha! But you get used to it.
Hope that makes sense and thanks for the interesting question.
@@Slynk Brilliantly explained! I completely understand and should always assume that whoever built the utility knew better than me haha. From the detail of your reply it's clear you have a passion for engineering and perhaps education too. You could excel in any of it! Thanks for taking the time :) (
PS: I purchased DuckBuddy2 and love it)