Akemie's Castle
  • I guess I will start the clone thread. Here are some links to reference material.

    manual - http://busycircuits.com/docs/alm011-manual.pdf

    I'm still working on the operator design with the various waveforms.
  • Here is a sketch of the waveforms. I wonder if @jjthrash might be kind enough to make spline wavetables out of these. A spline-based operator will have the advantage of being based on a lookup table so the shape of the waveform won't break down as it has in other PM operators I have made (including the ones in my attached patch). A spline-based approach will also naturally alias, which is part of the timbral character of the akemie oscillators.
    Akemies Castle Waveforms.audulus
    Screen Shot 2018-01-30 at 1.13.04 AM.png
    987 x 983 - 170K
  • @RobertSyrett I'll take a look. My wavetable builder works from samples, but I can easily generate samples from WAV files. My Mac Audulus has been popping a bit.. any chance you could build the WAV files for me?

    My builder also has anti-aliasing logic, but it should be easy enough just to use the base wavetable if you want the aliasing.
  • @jjthrash That would be amazing. I will upload a .zip of an MP3 a little later today :)
  • What kind of issues have you seen with your approach?
  • The logic expressions of the waveforms that have part of the sine wave removed seem to lose their phase alignment and introduce artifacts I don't hear in the demo video. Also, the spline node has artifacts that I want to add, so it's a two for one type of a thing.
  • @jjthrash Well that turned out to be more of an ordeal than I imagined, but attached is a wav file of all 8 waveforms at 440Hz. The wave file is 11.6 mb but the .zip file is 87k :-/ So let me know if it gives you any trouble, and thank again :D
    Audiobus 1.wav.zip
  • @RobertSyrett Great! I'll upload them when they're done. I was playing with the 2nd wave form and noticed something weird: http://take.ms/Phxpd

    Is the single negative sample a mistake, do you think?
  • @RobertSyrett I assumed it was a mistake. Interestingly, even though you did all the waveforms at 440Hz I didn't end up with the same table size for each. In some cases, the waveforms appeared to be rectified and I included two. In one case it took twice the time to get a single cycle for some reason. Anyway, consider this a first draft.

    I'm attaching the full wavetable nodes, but it's easy to pull out the base wavetable. I also included the source WAV files I pulled out of your recording in case that's useful.

    Incidentally, if you want more resolution you could re-sample them at a lower frequency, but it's probably not necessary.
    20180131 - RobertSyrett Akemie.zip
  • What the?! That one negative sample is really weird. It is definitely a bug. After a coupIe of failed attempts, I actually transferred the waves over Audiobus 3 to Auria. I think there might be a bug with the Audulus update in relation to Audiobus or Auria because it kept closing the file, so it thanks for taking care of it. I kind of forgot after all that hassle that indeed waveforms 5 and 6 are sub octaves, so that part makes sense! XD

    It all looks amazing, so I'll put together a draft version of the operator :)

    Thanks again!
  • Here is the first draft of the Akemie's Operator. What I found interesting is that when the in order to get something approaching a familiar Yamaha DX type or sound, the level needed to be dialed way back. Obviously the carrier signal needs to be full volume, but the amount of signal being enveloped was around .03. Maybe this can be addressed in the algorithm matrix?
    Akemie Operator v1.audulus
    Screen Shot 2018-01-31 at 7.35.24 AM.png
    979 x 668 - 93K
    PM Test Bed 20180131.audulus
    Screen Shot 2018-01-31 at 7.46.58 AM.png
    948 x 725 - 156K
  • Oh wow! Sorry for going MIA for a while there, I've been busy with other things.
    Thanks for moving ahead with this, looks and sounds awesome! Nice and buzzy...

    Now that you've figured out the more sophisticated stuff, I can build a front panel and then drop a bunch of these in my algorithm switcher and try to wire everything together.

    Amazing work, thanks guys!
  • @villis Cool! That chord thingy looks like it might be a bit of hassle, perhaps @stschoen's chord modules could be of use.
  • Yeah, I was wondering how they do that on those Yamaha chips. Is there a frequency divider or something in there or are there just a bunch of voices on the chip that aren't being used all the time?

    Also, there are 4 operators per voice, right? So four for A and four for B. I initially thought there were just the four for both, but at least in the DivKid vid there's a section where A and B are on the 1x2x3x4 algo but have different pitches. The final patch might get pretty CPU-intensive...
  • >The final patch might get pretty CPU-intensive...

    That's the thing about these eurorack emulations, they usually end up being impractical to use on a regular basis. But, having gone through the journey of exploration, you have the knowledge to reconstruct just the parts you need in your next patch after it. Like I pretty much never use the DPO clone or 0-Coast clone i made, but the I use the knowledge and building blocks I gained making them all the time.
  • I've been working on a non-wavetable implementation. This is my prototype. I did some research on the OPL3 chip used in this module and discovered some interesting info. The multiplier is fixed at 0.5, 1-10, 12 and 15. The indicator reads 0 for 1/2. I think I've replicated the waveforms (Not totally sure about waveform 8). All the waves are derived from a single phasor for each oscillator so I don't expect any phase drift. The UI still needs some additional work (graphics for the Algorithm selection etc.). The algorithms are as follows where * indicates phase modulation and + indicated mixing:
    1 - 1*2-A 3+4-B
    2 - 1+2-A 3*4-B
    3 - 1*2*3*4 - AB
    4 - 1*2+3*4 - AB
    5 - 1+2*3*4 - AB
    6 - 1+2*3+4 - AB
    I haven't implemented the chord section or feedback yet. I wanted to make sure that the basic design was sound before replicating it to add the additional notes and feedback. The freq A and B knobs are really more for testing. Set them to 0.5 for 1/oct at A=440
    The OPL3 info I used is at:
    Let me know what you think.
    Screen Shot 2018-01-31 at 7.22.55 PM.png
    1860 x 1478 - 279K
    Akemie's Castle Prototype.audulus
  • @viilis, the OPL3 chip has 36 operators total. In the mode used in the castle, there are a total of six 4 operator chains. Chain one is used for oscillator B and two to six are used for oscillator A. This is why you can get five note chords on oscillator A. The six chains are independent and can actually be programmed separately, but that would be an awful lot of knobs for a eurorack module. Each operator in a chain has a frequency multiplier. There are still and additional six two operator chains that are not used by the Castle. The chip also has tremolo, vibrato, percussion, an ADSR and more. In addition to some early Yamaha synths, these were used in some Soundblaster PC sound cards (remember the music in the original Doom).
  • @RobertSyrett, I agree with you completely regarding emulating eurorack modules. In this case, as I was putting it together I thought a single 4 operator stack would probably be a more useful module. I think the specific arrangement of the two oscillators was dictated more by panel space limitations than by the chip. I believe they decided that four operator control sets were all that would fit. You could actually have a separate set of operator controls for each oscillator but then you would need eight rows instead of four. I think I’ll build a single oscillator 4 operator stack as a module and you can use as many as you need.
  • @stschoen, the inside of your operator is like a swiss clock! I would love a single voice PM osc that could switch between the algorithms. I also propose the name "STS Sandcastle"

    I think I have a puzzle for you. The elektron digitone has a phase modulation synth engine that is similar to the OPL3 chips but instead of using the old TX81Z waveforms that yamaha cooked up it crossfades between waveforms that looks suspiciously like your uHarmonic V2.1 with simmed sine waves. Would it be possible to retrofit or rework the uHarmonic to be PM'ed?

    PS you can check out the digitone waveforms over at https://www.elektron.se/wp-content/uploads/2018/01/Digitone-User-Manual_ENG.pdf page 75
  • I patched this together using Robert's operator, it's just Osc A and probably needs a lot of work on the signal levels, especially the Multiplier math and probably the feedback path/mixing. (Can't really say I fully understand everything that's going on.) I just tried to get a sound out of it - and it does sound like a lot of fun already.

    @stschoen, thanks for the info on the chip! If your prototype is lighter on the CPU, it might be the way to go, my ipad runs at 50% CPU with just the first four operators.
    ACsketch v2.audulus
  • Here's the final (for now) version. I added some better graphics, fixed a couple of wiring errors, and added feedback for the A and B channels. The manual wasn't too specific about the feedback so currently it affects the first operator in each chain. So for algorithm 1 operators 1, 3 and 4 are fed back, algorithm 2 operators 1, 2, 3, algorithm 3 operator 1, algorithm 4 operators 1, 3, algorithm 5 operators 1, 2 algorithm 6 operators 1, 2, 4. be careful the feedback can cause some significant volume changes. I also removed the frequency knobs. I"m sill working on the single voice version
    Screen Shot 2018-02-01 at 1.17.40 PM.png
    1592 x 902 - 267K
    Akemies's Castle V1.1 demo.audulus
  • @stschoen Looks amazing! I think the key to making authentically yamaha FM sounds is to have take a very light touch with the operator levels, like below the one quarter. I am looking forward to a single voice version. Here is where I ended up with your demo, a dozen modulation sources later!

    @villis I can confirm that the spline-based operator is about 4 times as processor intensive. I reworked the operator I developed to slot into the STS Akemies matrix and it took quadruple CPU and sounded about the same but with a little aliasing. So if those artifacts are important to you, maybe just add a little bit crushing at the end of the chain ;)
    STS Akemies's Castle V1.1 demo with extra modulation.audulus
    Screen Shot 2018-02-01 at 1.19.43 PM.png
    1665 x 1009 - 457K
  • @RobertSyrett Love the demo. Some really great percussive sounds! I just posted the single voice version. Basically the sam module. I removed the first 2 algorithms since they were superfluous with only one voice and added some more graphics.
  • Wow, this is taking shape quickly! It’s fun to play with.
  • I didn't add the chord feature because it would have required adding 4 more 4 operator voices. The OPL3 has that and more but in this case I thought it would be better to keep the CPU load down and to build a single voice unit for those times when multiple voices are needed.
  • @stschoen Peopl can just add a uChord to one of the oscillator inputs to replicate the chord functionality and then use the quad to mono of poly to mono nodesat the other end of the module. You already solved this problem for use within Audulus :)
    Screen Shot 2018-02-01 at 5.33.53 PM.png
    1905 x 832 - 370K
    STS Akemie uChord example.audulus
  • That's the idea behind the single voice unit. Alternatively you could use a keyboard in poly mode oct even just multiple copies of the single voice. I learned something new from your demo. The B oscillator is running in poly mode, but the A is not. The whole module is obviously not duplicated, only the individual components in the audio chain.
  • >The whole module is obviously not duplicated, only the individual components in the audio chain.

    I ran into @taylor at a modular meetup last week and he was chatting with another member about some of the behind the scenes mechanics of Audulus, I wish you could have been there. Much of the technical jargon escapes me now, but I seem to remember that Audulus has some complex method (I wanna say "Graph Cloud" or something like that)of analysing which portions of the patch are most active and allocate them CPU. This was in contrast to VCV, which processes 1 sample from each module on each clock pulse.
  • I guess it makes sense when you realize that modules are transparent when the code is executing. I assume that the app is smart enough to ignore UI controls, lights and meters that are not exposed, but other than that the modules are really just an organizational convenience. The nodes are what determine the code that actually executes.
  • You missed the Perfect Circuit Audio demo @RobertSyrett ;)
  • Might as well throw Mylar Melodies #3ModuleChallenge in as well:
  • Does anyone have any background on the name for this module? Just curious.
  • There was an interview with dovkid where the guy who runs ALM talked a bit about his design aesthetic. I will look for it when I get back home.