Readit News logoReadit News
holy_city commented on Ableton Connection Kit (2016)   ableton.com/en/packs/conn... · Posted by u/Tomte
teilo · 6 years ago
This is not a valid comparison.

Bitwig gives you no access to their DSP technology in its scripting language, so it is not remotely comparable to Max in that regard.

Max, on the other hand, gives you no access to Ableton's UI or API.

I have both, but prefer Bitwig. But there is nothing out there quite like Max. Not even Reaktor covers the same territory.

I am hoping that the next big thing in Bitwig will be to open up their DSP API, and give us the ability to create our own Grid modules, and, beyond that even, our own native instruments and effects. But I do not believe that extending their Javascript API is the way to do this.

holy_city · 6 years ago
technically there is a DSP scripting language in Bitwig that isn't public but you can find some examples floating around online.

That said mixing DSP + UI is hard, and if you want to make the scripting user accessible it makes sense to keep them totally divorced.

holy_city commented on Audio Processing for Dummies   adventures.michaelfbryan.... · Posted by u/gkbrk
holy_city · 6 years ago
I wrote this crate [1] as a compressor in Rust which is the opposite of a noise gate, as in gain reduction is applied after a threshold is passed instead of gain reduction applied if it is under a threshold.

If you want a really great approach to noise gating, a fixed threshold is fine but it works better when you apply it to the difference of two envelope followers - one with a short attack, long release (tracks input) and long attack, short release (tracks noise floor). Takes a bit to set it up, but it's a stupid simple way to get extremely effective gating and is easy to fine tune for your application. A lot of Voice Activity Detection (VAD) works this way; it's just a matter of tuning the coefficients and thresholds for your input.

Also useful reference for envelope following are the DAFX text [2], Will Pirkle's textbook on audio in C++ [3] and Zölzer's text [4]

[1] https://github.com/m-hilgendorf/rusty-compressor

[2] https://www.amazon.com/DAFX-Digital-Effects-Udo-Z%C3%B6lzer/...

[3] https://www.amazon.com/Designing-Audio-Effect-Plugins-C/dp/1...

[4] https://www.amazon.com/Digital-Audio-Signal-Processing-Z%C3%...

(pdfs can be found around the internet)

holy_city commented on My favorite Rust function   blog.jabid.in/2019/10/11/... · Posted by u/jaseemabid
holy_city · 6 years ago
I wouldn't say std::mem::drop acts like free at all, it's the equivalent of a destructor in C++. Mostly useful when you're dealing with manually allocated memory, FFI, implementing an RAII pattern, etc.

One cool thing about Drop (and some other cool stuff, like MaybeUninit) is that it makes doing things like allocating/freeing in place just like any other Rust code. There may be some unsafe involved, but the syntax is consistent. Whereas in C++ seeing placement new and manually called destructors can raise eyebrows.

holy_city commented on Designing a COM Library for Rust   msrc-blog.microsoft.com/2... · Posted by u/arunc
pjmlp · 6 years ago
Here are some good COM books.

Essential COM by Don Box

https://www.amazon.com/Essential-COM-Don-Box/dp/0201634465

Inside COM by Dale Rogerson

https://www.amazon.com/Inside-Microsoft-Programming-Dale-Rog...

Then if you have access to public libraries, maybe one of them has one of the several Microsoft Systems Journals issues, later MSDN Magazine, with plenty of low level COM articles.

COM is from the days where good documentation was to be found in books, not on the Interwebs.

holy_city · 6 years ago
thank you!
holy_city commented on Designing a COM Library for Rust   msrc-blog.microsoft.com/2... · Posted by u/arunc
barrkel · 6 years ago
COM is an ABI standard. The structs are defined in terms of C with Winapi (stdcall) calling convention. Very little needs reverse engineering - it's all pIntf->vTable->func(pIntf, ...). You can explain it on a whiteboard in a couple of minutes.

The way MSVC does it may need reverse engineering (it may be patented btw). I could explain how Delphi implements COM interfaces, but any specific implementation is actually more complicated than the ABI, because they're trying to add implementation ergonomics on top of the basic calling convention.

holy_city · 6 years ago
Is the ABI documented anywhere? Every time I google around for it, I just get information like "COM is ABI stable and language agnostic" but not what the ABI is. I've successfully implemented implementations of single COM interfaces and get the basics, my trouble was in implementing many interfaces for the same implementation and running into copious segfaults when testing the Rust implementation through a reference app written in C++.
holy_city commented on Designing a COM Library for Rust   msrc-blog.microsoft.com/2... · Posted by u/arunc
pjmlp · 6 years ago
COM layout is followed upon most mainstream Windows compiled languages, namely major C++ compilers, .NET, Delphi, Eiffel, Ada, so it is not MSVC++ keeping ABI compatibility under the hood on their own.
holy_city · 6 years ago
My issue isn't ABI stability but the ABI itself w.r.t vtable layout. Best I can tell it should be similar to Itanium's spec? [1]. It's been months since I did this, but iirc my problems stemmed from having multiple interfaces on top of the same implementation and the ordering/layout of those interfaces, though the IUnknown interface which is supposed to handle that.

[1] https://itanium-cxx-abi.github.io/cxx-abi/abi.html#vtable

holy_city commented on Designing a COM Library for Rust   msrc-blog.microsoft.com/2... · Posted by u/arunc
holy_city · 6 years ago
This is similar to the work done in winapi [1], com-imp[2] and my own tangential work on porting VST3 [3] to Rust [4]

I'm really glad MS is doing this. What needs to be a bit clearer to me is how they maintain ABI compatibility under the hood of MSVC for COM interfaces (which uses the vtable layout of an inherited class) and how that's compatible with MinGW/GCC stacks on Windows, mostly what can break it. I got stuck porting VST3 with multiple inheritance, and it was a headache trying to reverse engineer the appropriate struct layouts for COM implementations.

[1] https://github.com/retep998/winapi-rs/blob/0.3/src/macros.rs

[2] https://github.com/Connicpu/com-impl

[3] https://github.com/steinbergmedia/vst3sdk

[4] https://github.com/m-hilgendorf/cli-host (sorry for the messy code, it was a weekend of hacking away trying to host a VST3 in pure Rust)

holy_city commented on Miscellaneous unsolicited (and possibly biased) career advice   erikbern.com/2019/09/12/m... · Posted by u/heroHACK17
SamuelAdams · 6 years ago
> Statistics. Seriously, I really wish I had studied more of it in school. Basically goes for anyone in the STEM field, IMO.

I really wish more people invested in statistics and data analysis classes. People take you more seriously in a business setting when you can say "Email A resulted in a response rate of 80%". I usually hear "We think Email A is better because we feel it in our gut".

Ok, not those words exactly, but that's the point. Looking at data, understanding it, and directly applying it to your job is a hugely underrated skill.

holy_city · 6 years ago
A bigger issue I've seen is that "gut feeling" comes from a misplaced sense of confidence. Like say, sample size. I can't tell you how many times I've heard engineers say "the data isn't significant because the sample size is too small." If you have the data, calculate the confidence interval!

Most of the time you don't need hundreds to thousands of data points to be reasonably confident, just a few dozen. I remember the example distinctly from my sophomore engineering stats course, I don't know why everyone else has forgotten it.

holy_city commented on After 'South Park' Censorship Episode, China Deleted the Show from the Web   vice.com/en_us/article/yw... · Posted by u/dgelks
s3r3nity · 6 years ago
I love this in every way.

I'm curious to see if their relationship with Ubisoft gets strained, though, given some recent news with gaming companies trying hard to maintain good relations with China, and because I believe Ubisoft is partly owned by a Chinese company.

(FYI - Ubisoft / Obsidian made the Stick of Truth games, and I believe a mobile game or two with the South Park license.)

holy_city · 6 years ago
Tencent has about a 5% stake iirc. They also have small interests in Activision-Blizzard and a big chunk of Epic. I have no idea what 5% of a company buys them.
holy_city commented on macOS Catalina   apple.com/newsroom/2019/1... · Posted by u/css
Eric_WVGG · 6 years ago
Another way of looking at that might be, developer of pro audio apps are notoriously bad at preparing their apps for new OS releases.
holy_city · 6 years ago
That's fair. Pro Tools crashing during a session has been a meme for awhile, despite it being pretty stable for the last 5-ish years.

But keep in mind these companies are usually pretty small, a lot of sole-proprietors out there, and their revenue comes from new products/sales not maintaining projects. So there's logistical and incentive problems in deploying fixes quickly.

u/holy_city

KarmaCake day970February 19, 2019
About
Audio software/DSP engineer in Los Angeles
View Original