Author Topic: Second melody line?  (Read 48 times)

alefoot

  • Newbie
  • *
  • Posts: 9
    • View Profile
Second melody line?
« on: November 27, 2017, 09:48:03 AM »
Is there any realistic possibility that the process for saving a melody line might be duplicated to allow a bass line?

mario

  • Administrator
  • Jr. Member
  • *****
  • Posts: 52
    • View Profile
Re: Second melody line?
« Reply #1 on: November 29, 2017, 12:40:39 AM »
Bass line - great idea! 8) It is quite trivial to implement it into the internal music representation (and in the app), add settings to enable/disable it...

Harder problem is how to play it. Sampled sound? Two-three oscillators, to not steal too much CPU power? Might look at other open-sourced synths for inspiration - e.g. Dekrispator (4 OP FM, multisaw), Tiny-TS (PD), or wavetable like Patchblock's tek.waves (I'm not aware of any open-source synth of this kind). Or granular, that should work too.

alefoot

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: Second melody line?
« Reply #2 on: November 29, 2017, 08:04:28 AM »
FWIW, the idea was prompted by / "tested" using the lower end of the existing melody voice, so maybe stealing a couple of oscillators isn't far off :)
Not sure how similar [if at all] the engines are, but quoting from their site, "Groovesizers are... open-source... , the TB2 is a 4 voice paraphonic wavetable synth". Without more storage, isn't wavetable a bit limiting?
The eternal dilemma; Trading processor time against storage limitations - I'm pretty certain you will know what makes most sense :)

mario

  • Administrator
  • Jr. Member
  • *****
  • Posts: 52
    • View Profile
Re: Second melody line?
« Reply #3 on: December 02, 2017, 01:52:44 PM »
Thanks for mentioning Groovesizers, they are a great open-source project, definitely something to learn from! :)

Wavetable is much less memory hungry than storing complete samples, the MCU they use is ATMEGA328P which only has 32kB of FLASH and 2kB of SRAM... (well, maybe doesn't sound like much but it's plenty for a typical application on 8-bit MCU of this kind). I've ported some 8-bit code to Gecho before, for example channels #33-34 are built upon some of this Tiny-TS code (and documenting it is on my TODO list). They're not too much playable, maybe good for creating "drones" - so thanks for your suggestion, perhaps it's time to use that code for the bass line.

With a 32-bit MCU that has accelerated flash-memory reads and dedicated FPU unit, you can squeeze pretty much 30-times more power from equivalent code (after replacing integer arithmetic with floating-point). In practice you'll be able to get for example 15 oscillators running in parallel for each stereo channel, resulting in deeper, richer and more complex sound. Tiny-TS has great and fat bass sound already and kudos to the creator for packing it all into available memory and CPU power... Now imagine what it can become with more resources... :)
« Last Edit: December 02, 2017, 01:56:40 PM by mario »