1 (edited by Shiru 2017-02-28 02:42:12)

Topic: Special FX (Fuzz Click) on Arduino

Yes. That was the most challenging engine to port, considering its design and the need to re-implement it using timer interrupts, but also the most interesting.

I used the same ideas as for Tritone engine, but the interrupts train system is more complicated. Just like the original, there is the main loop running at the sample rate, consisting two equal halves for each channel. When 8-bit counter overruns, a pulse of a fixed duration is generated. However, duty cycle of the pulse (the amount of time for 1 and 0 in that pulse) changes depending on the sustain parameter, creating pseudo volume decay. The pulse is generated using timer interrupts as well, setting up the timer to desired values. To get enough timer resolution (the pulses can be pretty long compared to the sample rate), I had to use prescaler 32 rather than 8, like it was in all previous ports, which affected to the sample frequency, making it a bit off.

The drums were done just like in Tritone port too, using pulse coded samples of the original drums.

I think that's the last port in the line, as all other engines use one of the techiniques of already ported engines, nothing more to explore.

Post's attachments

arduino_fuzzclick.zip 21.65 kb, 21 downloads since 2017-02-26 

You don't have the permssions to download the attachments of this post.
website - 1bit music - other music - youtube - bandcamp - patreon - twitter (latest news there)

Re: Special FX (Fuzz Click) on Arduino

Impressive! Never managed to port this engine to TI because of the interrupts. But I guess the variable timer interrupts on the Arduino come in very handy in that case.

So, what's next, any plans for a custom Arduino engine written in C?

Re: Special FX (Fuzz Click) on Arduino

Yeah, I think the next logical step would be creating all-new custom engine that would actually play around strengths of the platform. Have no idea what it is could be just yet, though. Maybe a super scaled Phaser or Tritone like one, to begin with (authoring tools should be considered too). One thing that would be easy to do on Arduino is the clean vibrato and portamento that ZX engines usually don't have.

website - 1bit music - other music - youtube - bandcamp - patreon - twitter (latest news there)

Re: Special FX (Fuzz Click) on Arduino

Thought I'd drop by to say that I'm damn impressed by your recent conversions, Shiru. Very cool indeed. Been playing about with them today. They're pretty elegantly ported to C and very accessible to beginners and AVR C programmers.

5 (edited by Shiru 2017-02-27 01:15:44)

Re: Special FX (Fuzz Click) on Arduino

Thanks, PROTODOME. That's the point of this project, to make the 1-bit music accessible for more people, with more modern tools and hardware.

website - 1bit music - other music - youtube - bandcamp - patreon - twitter (latest news there)