@robertsyrett reminded me of another nice topic for an Audulus tutorial - FM - but I get the sense you are already on it. Would be good to include something around simplified automation of the modulator frequency multiplier.
Do you mean like how to index frequency modulation?
I’m thinking about how to set and maintain the modulator frequency at a selectable multiple of the carrier freq. Perhaps this is simple in Audulus - I just haven’t worked through it.
If you mean what I think you mean, I just recently made a utility for making FM patches where one signal is split out to a bunch of outputs and then you can set the ratio for each output. It’s in the alpha stage, so there basically isn’t an interface but it’s pretty straight forward. In fact I even use it to make fm ratios for my eurorack system with a little translation module I will also include here.
Linear ratio splitter.audulus (20.3 KB)
I just posted a single operator sine wave PM module if it would help in a future tutorial uPop DX Phase Modulation Operator
Yes I would appreciate to have some more info on the uPop DX Phase Modulation Operator. Some short vids on these amazing little modules that keep flying off the press around here would be a fantastic resource for learning and inspiration. I really like the know your nodes vids, they are great.
@RobertSyrett posted a link to an excellent series on PM synthesis on the old forum. The series uses a Yamaha DX7 emulation called Dexed available for free at: http://asb2m10.github.io/dexed/ but it can easily be applied to the UPop DX using a suitable EG. It covers all of the basics of PM synthesis and will operate basically the same using the modules included in the uPop DX demo (you might want to use a keyboard MIDI node from the library as input. I built a more accurate version of a DX operator tha includes the keyboard tracking and DX7 style envelope generator, but it’s a bit CPU heavy so I thought a simplified version would be more useful. The original DX op is the collection from the old forum, but I would be glad to post it if anyone is interested. I’ve been trying to keep my designs as simple and lightweight as possible, to fit in with the uModulke approach and because I find that building patches is easier if modules are single purpose
I have been working for a little while with KQ Dixie, which can actually load all of the DX7 banks collected everywhere. One thing that I like about it is that it is very CPU light and I can stack up many AUv3’s in an iOS Daw and not have issues with the processor on the iPad Mini 4.
One thing that I don’t like is how I personally have a long way to go in understanding the complexities of the DX7 layout. I was not aware that the DX7 also used PM synthesis. I am hoping that by working with your module a little I can broaden my abilities to generate more future forward sound than the usual classic patches that are everywhere on the internet.
While I do appreciate 6 operators, the Digitone from Electron is a much more streamlined interface and I imagine the presets people are making with that are phenomenal.
One question: Why is this KQ Dixie 6 operator synth so light, and the Audulus interpretations on the DX7 paradigm so heavy?
I’m not familiar with the KQ Dixie, but it sounds similar to dexed but on the iOS platform. Like Yamaha themselves, the developers of KQ Dixie and Dexed describe the DX7 as an FM synth, while technically it does not use frequency modulation at all, but phase modulation. The two are similar, but are not exactly the same. While Yamaha has never explained why they chose to use the term FM rather than PM, personally I thinks it’s because the term FM was already in common use for radio. I can’t say for sure, but I would guess that the Dixie benefits from being a single purpose design with very simple graphics. Audulus has an absolutely beautiful UI (IMHO) but you pay a price for a dynamic, scalable platform that uses visual programming. Also the core of Audulus is multiplatform and so can’t take full advantage of the iPad hardware. The oscillators like the uPop are actually pretty lightweight, but the EG seems to be pretty CPU hungry. I’ve tried several different approaches and spent a couple of weeks banging away at it but was never able to reduce the load much. Partly it’s the result of having to use a fair number of expressions to do the necessary calculations. Expression nodes are not very efficient at this point although I’m hoping that will change. The ADSR node is pretty lightweight, but the best I’ve been able to do creating one from scratch uses at least 10x the CPU. If you took any Audulus patch and hand coded it in a procedural language like C++ you could make it run much more efficiently. When I first started coding many years ago, we had to write critical sections of code that were time sensitive in assembler because the higher level languages of the time (FORTRAN and COBOL mostly) were just too slow. On the other hand, Dixie does just one thing and Audulus does a bunch. When AUv3 for Audulus finally comes out it should be easier to mix and match.
PM patches are some of the most computationally light full synth voices you can design in Audulus with full polyphony topping out around 10% when using 4 operators. This is compared with the 100% that 16 voices of the library’s ‘smol synth’ which is your basic 1 oscillator running though a virtual filter. So learning to patch with PM will definitely allow you to layer more voices.
All the things @stschoen says are true in regards to the benefits of doing one thing well in terms of programming. I would also add that programming in assembly language is still a technique for squeezing the last bit of optimization out of specialized hardware, it’s just relatively less critical at the scale most enterprises require now that computation has become so fast.
One of the reasons I reduced the full-blown DX operator clone to the uPop DX was to reduce the number of necessary components. With the complete operator you have an EG and keyboard tracking logic running whether you are using them or not. By separating the oscillator unit from the other parts of the operator you can use just what you need. If the standard ADSR will meet the needs of the patch, then it’s certainly the way to go. The DX7 EG is also linear, but has an extra stage and the ability to decay to a value other than zero. This can often be accomplished using the modulation attenuator and offset found in the utility/modulation section of the library. I added a brief intro to PM synthesis as addition to @RobertSyrett’s excellent “Know Your Nodes” segment on PM. Introduction to Phase Modulation Synthesis using the uPop DX module No video’s but a few knobs to twist.
Honestly, more than anything i’d love to see more speed/workflow examples. the iOS ui/ux has clearly gotten more love over the Mac/PC desktop app, but there’s so much more capability, in terms of CPU, DAW/plugin support, and keyboard shortcuts that could really be a huge improvement in workflow. I really wish I could have some of the newer features in the iOS app, on the Mac… paired with a TON of keyboard shortcuts. Having to set my own shortcuts for menu items is ok, but definitely takes away from workflow.
So… how does everyone else make devices quickly? Thoughts on more tutorials/examples for workflow?
Did you want a patching to make music or patching to make modules type of workflow?
What shortcuts do you use? I only use cut, copy, paste, and select all.
both, honestly. thanks!
I come from max for live, so being able to have a quick key to open the module list instead of right click (because trackpad) would be really nice. also, things like “insert oscillator”, etc. would be really helpful. There are a handful of items in the menu that are several layers deep, which would be really nice to just hit ‘n’ (to open a searchable dialog box to add a new item) and type ‘clock’ to have all clock options show up in a quick access menu, use arrows to find the option i want, then hit enter and have the module appear. also, use arrow keys to select different modules already in place, hit spacebar to open up devices, and esc to go back out of said device, etc. coming from a very programatic background (i live in a terminal), i use the mouse cursor as little as possible, whenever possible. i get that the app is very mouse heavy with wiring/routing, so i can understand if this type of workflow doesn’t seem all that necessary, but i’d love to see quick [customizable] keyboard shortcuts to help navigate around the interface.
I am brought back here form the 3 Operator PM Synth post. One thing to think about – if you have an iPad – is that KQ Dixie is only $3.99, has 6 operators and runs all the .syx banks. As far as exploring synthesis goes I find it is nice to move around, interacting with various interpretations of particular kinds of synths.
I am able to run a bunch of AUv3 copies of Dixie at 16 voice polyphony while running other AUv3’s in Cubasis or Beatmaker3 with multiple tracks and effects on an iPad Mini. So it is the most functional synth I use for producing on an iPad because it is so low on CPU.
At the same time, I am learning much more about how it works by patching around in Audulus. I really wish we could export a patch to a locked, optimized plugin. It is an exciting thing to have AUv3 on iOS, but there has to be some way to convert the code into a light iteration.
When you use Audulus as an AUv3, you can just close the window and you’ll save a lot of CPU from that. It’s like running it in the background. You can also set your refresh rate to 60Hz as @stschoen detailed in this post:
I really REALLY wish someone would do a z-1 filter tutorial in Audulus. I can barely understand how this works. Maybe it’s something @robertsyrett can do at some point. It’s my major failing as far as Audulus design goes, and I wish I understood it more so I could make more filters for everyone.
Sequencers and logic-based stuff is definitely more my forte!