3 ms·
GenExpr: The Codebox Operator
- imglorp 6y ago> GenExpr is the internal language used by gen patchers. Great, what's a gen patcher? Go up a level, looking for context. > Max Online Documentation Great, what's Max? Still no context, but something about music. Here's a clue from midi.org General MIDI's most recognized feature is the defined list of sounds (or "patches").
- skrebbel 6y agoThis is a deeplink into technical documentation, what did you expect? This is like complaining that the Java ClassLoader reference doesn't begin with "Java is a high level programming language which lets you yadayadayada".
- qmmmur 6y agoIt is pretty clear that because it's software aimed at creative purposes people are over vigilant about it. Happens quite a bit yet fluffy blog posts about basic things like yarn vs npm receive hundreds of comments and remain on the front page for a few days.
- eythian 6y ago> This is a deeplink into technical documentation, what did you expect? I think better question would be: why is a deeplink into technical documentation without context being posted here? > This is like complaining that the Java ClassLoader reference doesn't begin with "Java is a high level programming language which lets you yadayadayada". It's more like complaining that a link the Java ClassLoader reference was posted on HN with nothing explaining what it is or why it's interesting/relevant.
- skrebbel 6y agoI have no idea why this is on HN, but for context: this is tech docs of Max, which is kind of a meta-music software. Just like Roblox lets you relatively easily make 3D games, Max lets you relatively easily make VST instruments and the likes. At its core it's a visual programming language and it's been around very long, pretty well known in music circles. https://cycling74.com/products/max https://cycling74.com/products/max
- twic 6y ago> These objects analyze the expressions written in them and automatically construct the the appropriate number of inlets and outlets Like Python-style implicit variable declaration, but for parameters! In pure text, this would be hairy, but in a graphical language, i suppose it's obvious when you've accidentally created an extra input with a typo.
- qmmmur 6y agoFor context to anyone who is not familiar with Max, it is a visual programming language that connects inlets and outlets of boxes that each have distinct functions in order to program both simple and complex DSP routines. Gen~ is a subset of Max that focuses on providing its own set of 'boxes' which can be hooked together accompanied by its own nuances and quirks that overall aim to smooth the process of coding complex DSP graphs, particularly with single sample feedback (provided by the history operator). GenExpr is a text-based representation of these DSP graphs that allows you to describe the connections between objects using traditional programming patterns (for, if, while). The strength is that is still a 'box' and is inter-operable with gen~ code that is written outside the Codebox. As a bonus, gen~ can compile to C++ code easily which can be useful for porting prototypes to standalones, VST's or embedded.