Commodore 64 like Pulse Width

Hello again,

On my way diving into the sounds of the good old Commodore 64 and the SID chip I stumbled upon another effect which is called Pulse Width. It can be applied (has effect) only on a rectangle (square in ReNoise) waveform, and it has to be applied in order to hear anything. It can have a value from 1 to 4095. I wrote a small basic program which plays the note C-4 and changing the pulse width with a step of 16:

Of course my question would be how to recreate this in ReNoise and can it be controlled within a track. I found a couple of topics here with some demos, but all links are unfortunately dead.

One idea was to create a simple square sample with a forward loop, duplicate it and apply Invert Phase on it. When you play this you should here complete silence. BUT changing the loop starting/ending point on the second sample will produce something similar to pulse width.

Unfortunately I didn’t found a way to control the loop start/end point from a track. It’s also strange that ReNoise is not offering this out of the box as a part of a sample modulation.

I’ll appreciate any help (please with detailed steps, since I’m a new to ReNoise).


I remember BitArts made this awhile back, try search the forum for it. But to make it sound fat and beautiful like the c64 is hard, probably even impossible as you can’t recreate its filter?

Initially I found this thread → Realtime Pwm Synthesis With Xrni

But the link with the examples is dead.

And he didn’t quite explain if it’s possible to change the “pulse width” in a track. There has to be a solution, ReNoise is so powerful. Otherwise I have to make 256 samples per octave to achieve this effect :smiley:

One of his links still works

sounds great

I’ve achieved something similar with my two samples where the normal one loops forward and the inverted one ping-pong. Sounds great. BitArts uses same loop type but the inverted sample has Transpose and Finetune set which sounds like totally off tune in my case. BUT, in both examples you can’t actually control it in a track.

Here’s a screenshot of the C64 output where you can see the same instrument playing with different pulse types (different starting point on voice 1 and 2, even with different step in voice 3).

Screenshot 2021-03-04 at 19.37.08

I’m crying for this feature in ReNoise or any other workaround how to achieve this.

dunno, how’s this?PWM test.xrni (4.4 KB)
spin the macro

there is a tool for that: afta8’s “loop control”

Thanks for all the tips & tricks and examples. I found also the Loop Control tool from afta8, sure I’ll check it out, but in order to be in full control when looping I have to do some calculations if the tool is applied to very short samples (like a simple square with additional inverted sample).

The solution I came up with now is very easy to use with no extra tools and no additional sample settings. I’ve sampled a C64 square with a pulse width from 0-4095 and with a step of 16 and I’m using the start offset effect to play the desired note with a desired pulse width. ReNoise divides a sample in 256 pieces which matches with my step count 4096/16=256 :slight_smile:

So a C-4 0C20 on C64 is a C-4 SC2 in ReNoise :slight_smile:

Of course if you sample a C-0 and try to play a C-6 it will progress through the pulse faster so either you have to make every step longer and have a huge sample, or you sample all 7 octaves and assign them to appropriate Keyzones.

Nice. Will you share the xrni? :slight_smile:

(Personally, I very much like to do similar modulation in steps on new notes rather than sweeping PWM. Because I like the flavour of static waveforms, but with variations.)

Sure, as soon as I clean it up a little bit and figure out the ideal length of a step I’ll share the instrument here.

Meanwhile I’m still searching for a ideal solution for simulating a C64 Ring Modulation:
Commodore 64 like Ring Modulation :slight_smile:

i know youve worked this out but heres my approach. food for thought maybe…

2 square waves
2 fx routings
fx1 is empty
fx 2 has a phase inverter and some kind of delay device set to 0 feedback 100% wet

pulse width is set by the delay time on fx2
n you can use the custom waves on the LFO device to create envelopes. banging!

if i recall the chorus device allows smoother tweaking of delay values than the delay or multi tap