[HN Gopher] Bespoke Synth 1.0 - open-source software modular syn... ___________________________________________________________________ Bespoke Synth 1.0 - open-source software modular synthesizer Author : paulshen Score : 232 points Date : 2021-09-14 19:21 UTC (3 hours ago) (HTM) web link (www.bespokesynth.com) (TXT) w3m dump (www.bespokesynth.com) | Jenz wrote: | Haha this is the most amazing feature matrix I've ever seen. | | On a more serious note, modular music is an extremely interesting | and growing area and just about every module is surprisingly | expensive; I'm curious to how well this translates to virtual | racks. | 41209 wrote: | Agreed. | | That alone makes me want to donate. | | Can it work as a VST plugin ? | yellowapple wrote: | If there's a plugin version of this I can see it giving | ZynAddSubFx a run for its money in my workflow. | 41209 wrote: | It's GPL so you can always create your own. | | I wouldn't mind feature bounties for a project like this. | armchairhacker wrote: | I've never heard about modular music, but I know must VSTs are | extremely expensive. And they're expensive to even seriously | try. | | I want to get into music production but a barrier is that | Omnisphere and FL Studio are $500 and have a super-limited | trial version. As a grad student I'm not going to spend $500 | for a piece of software I _might_ be interested in using. | | I would much rather have it be like software development where | almost everything is free. And instead of paying upfront, | synths / effects can make money by taking a cut of your revenue | (I don't think that's like software development but it means | synth producers still make revenue). | strenholme wrote: | I used to have a synth buying guide. For people just starting | out I would go for: | | * Get Reaper. It's a mainstream DAW, is fully functional, a | free download, and only $60 to register after 90 days. | | * Valhalla Supermassive for reverb: | https://valhalladsp.com/shop/reverb/valhalla-supermassive/ | | * The VST fork of VCVrack for a modular synth: | https://github.com/bsp2/VeeSeeVSTRack#downloads | | I would get a keyboard controller with full sized keys and a | 5-pin DIN MIDI out for just over $200, but that can come | later. | | One thing to avoid is the rabbit hole of concentrating on | what gear to buy over actually making music with the gear. | jasondoty wrote: | If you're not going to make money off it, my opinion is you | can use cracked VSTs without any concerns of "is it right". | | In fact, as with a lot of pirated soft/media the experience | is superior. Licensing and DRM of music software is a | headache - dongles, software centers and other bloat. Scene | groups like R2R even optimize performance and patch out bugs | in addition to cracking protections, making their releases | superior than that of the original developers. | | Otherwise have a look at Splice rent-to-own plugin licensing. | munificent wrote: | Take a look at Reaper, VCV Rack, Surge, Tyrell, Zebralette, | Dexed, and Helm. | yummypaint wrote: | Second for vcv rack. Waveform free has been working well as | a DAW for me recently, and it has a linux version. | quantified wrote: | Pricing plan you can understand! | 112233 wrote: | Is there a modular audio environment like vcv/reaktor/max, where | I could plug stuff together by typing text, instrad of mousing | pips? I honestly tried to get into pd, but it felt like typing | book using the character map. | adriancooney wrote: | I actually made something slightly like what you're looking | for: https://noise.sh | | It's certainly not as powerful nor polished as Bespoke but | might be worth a look. | pierrec wrote: | Yes, most audio programming languages allow you to create DSP | graphs by connecting nodes together. This is often done with | some kind of pipe operator (for example, ChucK has the "chuck | operator", Faust has a bunch of operators for connecting | batches of nodes in different ways). | | My favorite approach is in Sporth: because it's concatenative, | you don't need any operator, you just type the things you want | to connect. Shameless plug, I made a playground for it: | https://audiomasher.org/browse | kleer001 wrote: | Second vocal vote for that. It'd make it a more powerful tool | and be less of a pain at the same time. | | Or at the very least some kind of remedial hot key navigation | would be great too. | premek wrote: | sonic pi is not exactly like modular but easier than pd | lgas wrote: | If you like Haskell you might like Tidal Cycles[1] and if you | like Clojure you might like Overtone[2]. | | [1] https://tidalcycles.org/ | | [2] https://overtone.github.io/ | premek wrote: | there's also ChucK | | https://chuck.cs.princeton.edu/doc/language/ | yata69420 wrote: | There's quite a few actually. The term is "live coding". | | Supercollider sounds like what you're after. You can even use | vim :) | | https://github.com/pjagielski/awesome-live-coding-music here's | a list of related stuff | dewert wrote: | Saw a good talk at PyCon a couple of years ago about FoxDot, | which is a wrapper around SuperCollider. Bit foggy on the | details now, but it seemed like a good place to start. | PaulDavisThe1st wrote: | Here's a list/overview of all things "live coding": | https://github.com/toplap/awesome-livecoding | kennywinker wrote: | This looks very interesting, checking it out now (download links | were broken, but I found releases on github). For people new to | this type of software, definitely also check out VCV Rack for a | more skeuomorphic take on open source software modular. | [deleted] | pier25 wrote: | > _In a way, Bespoke is like if I smashed Ableton to bits with a | baseball bat, and asked you to put it back together._ | | LOL | rcarmo wrote: | This seems awesome. I've been playing with Bitwig's Grid and VCV | Rack, and it looks like something else to explore. | ruph123 wrote: | Another instance where "Linux == Ubuntu". At least regarding the | dependency install script which is just a bunch of "apt-get"s. | Sad that it has come to this. | codetrotter wrote: | Tbh I don't blame them all that much. Even as someone who is | enthusiastic about Linux and has been a Linux user for many | years I find it difficult to support other distros than the one | I actually use. And lately I've been booting my main Linux box | more and more rarely too, as my MBP M1 with macOS is suitable | for almost everything of what I do. | | So for example when I recently went to describe in a README how | to install some software that I'm workin on, I relied mostly on | my memory and secondary sources in order to try and give a | pointer to users on various distros for how to install the | dependencies in question. And for example from what I could | find for openSUSE Leap 15.3, both of the pieces of software | are/were not in the official package repos at the time so I | simply stated that, linking to the relevant pages under | software.opensuse.org that told me this, but not having run | openSUSE myself for years I am not sure the reason for it or | indeed if it's even completely correct. | | I guess there'd be room for some CI service where instead of a | specific Docker image like many use you'd instead list the | dependencies in a kind of meta format and the service would | install the corresponding packages and run the tests across | many distros. Then the service could generate scripts or readme | instructions for each distro. | | At the moment I think realistically in most cases it will need | to be that people who run various distros take it upon | themselves to sort it out and to submit pull requests to | projects about how to install and use on any given distro. | | My own preferred Linux distro for desktop is Debian-based too. | KDE Neon. | | But so, I think it may be worth it that you try and submit a PR | to the OP for adding instructions or an install script adapted | to your own distro of choice. | | Although ultimately, if the software grows big enough | eventually someone will add it to the package repositories of | each distro and then there will be no need for manually or | scriptually installing the deps, because the deps will be | specified in the package repos. And for example if you use Arch | I guess someone is bound to add it to AUR if it's there | already. | whateveracct wrote: | oh don't worry - someone will Nixify it at some point. Maybe | even me! | runjake wrote: | Yeah, it's a bummer. | | But at least its a short install list [1] and its probably not | too difficult to install the deps on your distro of choice and | fire it up. | | 1. Deps: g++ libfreetype6-dev | libx11-dev libxinerama-dev libxrandr-dev | libxcursor-dev mesa-common-dev libasound2-dev | freeglut3-dev libxcomposite-dev libcurl4 | libusb-1.0-0-dev libgtk-3-dev python3-dev | libcurl4-openssl-dev libwebkit2gtk-4.0-dev libjack- | dev | tomxor wrote: | I'm running Debian 11 and it still doesn't run. | | Thought I'd try build it and... | | > Use the "Projucer" from https://juce.com/ to generate | solutions/project files/makefiles for building on your | platform. [0] | | eh? | | https://juce.com/get-juce | | Is this really a FOSS project? | | [0] https://github.com/awwbees/BespokeSynth | ejarzo wrote: | Really well thought out interface, looks super easy to quickly | make a bunch of edits -- The SHIFT+Touch to connect modules is | nice and I love that you can always just export the last 30 | minutes. Looks like a ton of work went into the documentation as | well -- can't wait to dive in! | MrScruff wrote: | So this is of course very cool, but I would say that one of the | main appeals of a hardware modular is the tactile nature of it. | It feels very different to experiment with vs plugging virtual | cables in software. | Lucasoato wrote: | I'm a software developer right now but I've worked with DAWs as a | producer for more than 5 years. You can't even imagine how | frustrating is working with Digital Audio Workstation. One messy | plug-in and you can lose hours and hours of work. Preset | management is a nightmare, there are so many things that they | could do to go forward, but the Sequencer market is stall and | hasn't moved in years. | | Imagine if they applied something similar to a git versioning | system to music projects.... I don't even know if the VST | interface can be used or if it's licensed somehow from Steinberg. | | Also consider that there are no good audio drivers for Linux | (like Asio for example) so you're almost forced to stay in | windows or Mac... | | No plug-in or DAW has a CLI... I could go on for hours... | | I'm doing some digital audio processing for a startup idea and | the only thing I've came up with is using sox trough a Python | API. | Minor49er wrote: | > No plug-in or DAW has a CLI | | You might be interested in MrsWatson. Even though the | development on it has been discontinued, there is still a lot | of potential for its use: | | http://teragonaudio.com/MrsWatson | PaulDavisThe1st wrote: | > Also consider that there are no good audio drivers for Linux | (like Asio for example) so you're almost forced to stay in | windows or Mac... | | This is false. | | > Imagine if they applied something similar to a git versioning | system to music projects. | | People have done this. Using git itself is a little problematic | because it is very line-oriented and most project file formats | for DAWs are not. | | Regarding plugins, I know that I'm not the only lead developer | of a DAW who, if they possibly could, would refuse to support | plugins entirely. The problem is that most users want more | functionality than a DAW itself could feasibly provide (they | also sometimes like to use the same functionality (plugin) in | different DAWs or different workflows). | | There are things close to DAW functionality that have a CLI | (such as ecasound). You can also run plugins from the command | line by using standalone plugin hosts. You can use oscsend(1) | to control plugins inside several different plugin hosts. | | It sounds to me as if you've worked with a relatively small | number of DAWs on only Windows and macOS and are not really | aware of the breadth or depth of the "field". | dewert wrote: | > > Also consider that there are no good audio drivers for | Linux (like Asio for example) so you're almost forced to stay | in windows or Mac... | | > This is false. | | This was my immediate thought as well. Not sure what level | we're talking here, so sorry if I'm addressing the wrong part | of the stack, but JACK on Linux has been a great experience | for me in terms of latency and ease of use. I run into way | more day-to-day problems on Windows. | | What feature specifically are you missing on Linux? | | Re: plugins, DAWs with VST sandboxing are great. I use | Bitwig, and I've never lost work due to a plugin crash. | stevefolta wrote: | > Using git itself is a little problematic because it is very | line-oriented and most project file formats for DAWs are not. | | Ardour and Reaper use plaintext project formats that work | well with Git, at least for basic versioning. | | > Regarding plugins, I know that I'm not the only lead | developer of a DAW who, if they possibly could, would refuse | to support plugins entirely. The problem is that most users | want more functionality than a DAW itself could feasibly | provide (they also sometimes like to use the same | functionality (plugin) in different DAWs or different | workflows). | | I think the answer to this would be something like Reaper's | "JS" plugins, which are written in a small compiled language | and distributed as source code. Compared to "JS", it would | need to: 1) be open source; 2) be a better language; and 3) | support pretty skeuomorphic graphics ('cause people seem to | really want that in their plugins). Ardour seems to be | working on something like this using Lua (don't know about | the graphics, or if the plugins could be supported in other | DAWs). | wwweston wrote: | > This is false. | | Suffice it to say that it's non-obvious to me where to start | to go about getting a stable and mobile (ie laptop) | experience. I'd like nothing better than to receive a | response that makes me feel sheepish for thinking that Linux | is the problem, and if anyone can give out good pointers I'd | imagine you can. | PaulDavisThe1st wrote: | Well, first of all let's start with noting that hardware | can prevent you from ever getting a stable response. Some | explanatory background on that here: | | https://manual.ardour.org/setting-up-your-system/the- | right-c... | | On Linux you do not (as a rule) install device drivers for | your devices. They come with the system or they (generally) | don't exist. I know of only one audio interface | manufacturer who ever maintained their own drivers outside | of the kernel tree (i.e. not part of mainstream Linux) and | even they have had their drivers integrated now. | | Next, since you're on a laptop, you're relieved of the | unenviable task of figuring out whether to use a PCI(.) bus | device or a USB interface. USB is your only option. The | good news here is that any USB audio interface that works | with an iPad also works on Linux. Why? Because iPad doesn't | allow driver installs, and so manufacturers have been | forced to make sure their devices work with a generic USB | audio class device driver, just like they need to do on | Linux. With very few exceptions, you can more or less buy | any contemporary USB audio interface these days, just plug | it into your Linux laptop (or desktop or whatever), and it | will work. | | What can be an issue is a lack of ability to configure the | internals of the device. Some manufacturers e.g. MOTU have | taken the delightful step of doing this by putting an http | server on the device, and thus allowing you to configure it | from any browser on anything at all. Others have used just | generic USB audio class features, allowing it to be | controlled from the basic Linux utilities for this sort of | thing. And still more continue to only provide | Windows/macOS-native configuration utilities. For some | devices, dedicated Linux equivalents exist. Best place to | check on that would be to start at linuxmusicians.com and | use their forums. | | Beyond the hardware, it's hard to give more advice because | it depends on the experience/workflow you want to use. If | you're looking for something Ableton Live-like, Bitwig is | likely your best option. If you want a more traditional | linear timeline-y DAW ala ProTools, Logic etc., then | Reaper, Ardour or Mixbus would probably be good choices. If | you want to do software modular, VCV Rack is head and | shoulders above anything else (and runs on other platforms | too). | | There's a very large suite of LV2 plugins on Linux. Stay | away from CALF even though they look pretty. The others | range from functional to excellent. Your rating will depend | on your workflow and aesthetics. You will not find libre | plugins that do what deeply-DSP-oriented proprietary | plugins do (e.g. Izotope, Melodyne), though you may be | satisfied with things in the same ballpark (e.g. Noise | Repellent and AutoTalent). | | There's a growing body of VST3 plugins for Linux. If you're | looking for amazing (non-libre) synths, U-he has all (?) | their products available in a perpetual beta for Linux. | Great stuff. There are plenty of libre synths too. There's | an LV2 version of Vital called Vitalium which is more | stable than the VST3 version; this synth has had rave | reviews from many different reviewers. | | Sample libraries are a problem because most of them are | created for Kontakt. You have a choice of running Kontakt | inside a Windows VST adapter (e.g. yabridge) or using other | formats such as SFZ or DecentSampler, both of which have | both free and libre players. pianobook.co.uk has hundreds | of somewhat interesting sample libraries, many (but | definitely not even most) of them available in DS format. | | Hope this helps. | rudenoise wrote: | Things to check: | | For audio on linux: https://pipewire.org/ | | For a more code oriented audio workflow (python lib to load VST | and AU) https://github.com/spotify/pedalboard | PaulDavisThe1st wrote: | Pipewire is a layer above most of the really important stuff. | | Pedalboard is also _not_ a realtime audio environment (as was | clarified by one of its developers here on the HN thread last | week). In that sense it is extremely different from Bespoke | (and nearly everything else). | xbpx wrote: | Since you're a software dev you may have explored supercollider | and other environments where you can employ great tools. I've | been looking for a hybrid UI/UX + Audio programming environment | that would combine the freedom of code with the visual cues of | a DAW but haven't found the ideal fit. So far I've been rolling | my own with cl-collider, a common lisp client for Supercollider | which uses some lisp tricks (macros) to good effect. | WillEngler wrote: | Can anyone in the know compare and contrast bespoke's feature set | with Max for Live? (https://www.ableton.com/en/live/max-for- | live/) It also has a circuit diagram-ish UI and supports | scripting with Node. Put another way, does Ableton already offer | Ableton smashed to bits with a baseball bat? | | (fwiw, you have to pay for the $1k suite version of Ableton to | get Max, so Bespoke could still be a great alternative even if | they do a lot of the same things) | andrewmg wrote: | Standalone Max is available for $10 / month.[0] And the similar | Pure Data is open source.[1] | | [0] https://cycling74.com/shop | | [1] https://puredata.info | zwegner wrote: | I only found out about Bespoke a few minutes ago, but I will | say using Max as a programmer can be incredibly frustrating. | I've made a handful of nontrivial M4L devices and have run up | into tons of weird decisions, limitations, bugs, and plenty of | Ableton crashes. (Caveat: this information in this post is | mostly from a couple years ago and might be out of date, I | haven't gotten the latest Ableton) | | The JS support is really weird. It's only JS 1.6 (from 2005), | and had weird glitches (like loading two instances of the same | device causing the first device to stop working), and I | couldn't get the timing tighter than about 30ms. Ideally you | could write code that runs at audio rate. | | There's also "gen", which is a Max-specific scripting language | that is presumably real-time suitable through a JIT. | Unfortunately you need a separate Max license to use it, even | the full Ableton Live Suite doesn't give you gen support. You | can sorta hack around and use it by manually editing the | .maxpat files (which are almost JSON), copying from a device | that uses gen, but there are lots of weird glitches going this | route. | | A list of a few annoying things about M4L: | | * Documentation is pretty sparse and/or low quality, and | weirdly split into two (help and references). | | * All variables are global _across devices_ by default, local | (device-specific) variables need the prefix "---", which is | barely documented | | * Tons of annoying UX issues, like entering an invalid value in | the inspector just reverts to the old value. You can't enter an | empty string for parameter values, that reverts too (you need | to enter a literal ""). Certain functionality is only available | depending on whether the device is "locked", so you have to | lock/unlock the view all the time if you're working with e.g. | subpatchers | | * Abstraction is quite annoying to do. There's three different | types of patches, and it's not really clear what the difference | is between them. Creating subpatches and then duplicating them | creates _two different_ subpatches--changes in one are not | shared with others. | | * ...and a ton of other things. I have a big text document of | these gripes I was intending to turn into a blog post, but | haven't gotten around to it. | | Maybe I'm wrong and there's better ways to do some of these | things, but overall my experience learning M4L was pretty bad. | If it wasn't the only way to do certain advanced things in | Ableton, I'd never touch it again. | _eLRIC wrote: | Discovered a few days ago another nice music studio of the same | kind that I really liked : Sunvox | https://warmplace.ru/soft/sunvox/ | | I'll have to try Bespoke as well ... | tlhunter wrote: | Bespoke has some definite SunVox UI vibes going on. | ericfrederich wrote: | Never seen this warning from Windows before. Happened when I | tried to download this .msi | | Windows protected your PC Microsoft Defender SmartScreen | prevented an unrecognized app from starting. Running this app | might put your PC at risk. | | App: Bespoke-Windows.msi Publisher: Unknown publisher | serverholic wrote: | One thing I'd love to see in a DAW someday is houdini-like | functionality. It'd be cool if there was this node-based | environment that went a step further than just generating sound | and could generate midi clips, automation clips, etc. and have it | integrated into the DAW. Like you could see what was generated in | the arrangement view. | jcelerier wrote: | The sequencer I'm working on, https://ossia.io, has a plug-in | API which allows that. But no interesting "meta-creation" plug- | ins so far for it ^^' at some point I'd like to provide | primitive composition-like tools like some of the OpenMusic | objects for instance, and there has been work towards e.g. | segmenting a sound file with audio improvisation algorithms by | an intern. | gavinray wrote: | You can do this with scripts or native extensions in REAPER | https://www.reaper.fm/sdk/reascript/reascript.php | https://www.reaper.fm/sdk/plugin/plugin.php | mejutoco wrote: | Sounds a lot like Bitwig's grid. | | https://www.bitwig.com/learnings/getting-around-in-the-grid-... | gtvwill wrote: | Linked it to a mate...he had a wee geez :) | https://www.youtube.com/watch?v=GFcGtq_dM8k | [deleted] | squarefoot wrote: | Very interesting. A possible improvement could be some "knob | linkable objects" (can't imagine the correct name) that could be | tied to analog inputs (GPIOs, ADC connected to i2c or USB, etc). | The purpose would be to be able to modify certain parameters live | on the fly, should anyone want to create a physical synth out of | this software and a *PI like small SBC. | | Also, I like a lot the way it links inputs and outputs just by | dragging the mouse. Does anyone know if there is any general | purpose library to do that? I mean, Ideally I create some list | nodes, then use that library to link them in a certain order by | using the mouse. | capableweb wrote: | > Very interesting. A possible improvement could be some "knob | linkable objects" (can't imagine the correct name) that could | be tied to analog inputs (GPIOs, ADC connected to i2c or USB, | etc). The purpose would be to be able to modify certain | parameters live on the fly, should anyone want to create a | physical synth out of this software and a *PI like small SBC. | | This is usually called "MIDI mapping" or similar and is | available in basically every DAW these days. | | > Also, I like a lot the way it links inputs and outputs just | by dragging the mouse. Does anyone know if there is any general | purpose library to do that? I mean, Ideally I create some list | nodes, then use that library to link them in a certain order by | using the mouse. | | Something like qjackctl (with Jack, obviously) could do this | for you, as you can route things however you want in a drag- | and-drop UI. | marcodiego wrote: | Love the feature matrix. | PaulDavisThe1st wrote: | "Five dollars less in your pocket". Brilliant! | diskzero wrote: | I like it, I bought it! Lot's of nice features and a tweaky graph | UI. Added bonus for implementing the "kissing nodes" connection | idiom. | | I would love see more prefabs, especially ones designed to | emulate some classics synths. | | It also might be time to add undo. Everyone (especially me) likes | to save it for last. | | Keep up the good work! | detay wrote: | Genius work. There are real UX gems here, very intuitive. | smt923 wrote: | damn, I've been looking for something similar to Max/PPOOLL but | more accessible (especially on windows/linux) after reading about | Tim Hecker using it and this seems like it could get to that | point | PaulDavisThe1st wrote: | > I've been looking for something similar to Max/PPOOLL | | That would probably be PureData. | operatorius wrote: | > reading about Tim Hecker using it | | hey could you please share the link where you've read that. | Thanks! | Minor49er wrote: | You can see it being used here at :22. The original title of | this video is "Rewire - Studio Visit: Tim Hecker" | | https://scontent- | frt3-1.xx.fbcdn.net/v/t66.36240-6/10000000_... | fivre wrote: | damn, the audio wave visualization on the wires in the thing | that's like the Bitwig grid editor is just BRILLIANT. | | probably would be a bit much in a complex finished instrument but | that's amazingly intuitive for the building phase, or for reading | someone else's instrument. | | i wish there a way to translate old Reaktor library stuff into | more modern synth GUIs. there's some amazing gold in there but it | is nigh impossible to understand between Reaktor's uh... | challenging UI and the total lack of documentation for the signal | paths to try and explain them to a relative novice. you can very | easily see _what's_ built, but god help you try to understand why | on your own without adding a ton of scopes everywhere manually | thenberlin wrote: | This is incredibly cool. Looking forward to loading it up. | | Reminds me a bit of Reaktor's builder environment, but based on | that demo video, it seems like a more useable, better thought out | version (and you can't beat that price / feature matrix). ___________________________________________________________________ (page generated 2021-09-14 23:00 UTC)