Offline
buffalo, NY

So I've been doing a bit of experimenting with the wave channel and it's pretty mysterious.  I have a lot of ambitious things I want to try but the documentation I've found has been pretty scant, I've tried discussing it with Zef a little.

So essentially what I want to know is, what FRAMES are being called in loop or pingpong mode.  Through some experimentation I've gotten it to go:
0-F-7 in loop mode.   Now why would it jump from frame zero straight to frame F?  And then from frame F to frame 7?  And then where does it go?  You would think it would just go 0-1-2-3.... but that is WAY too intuitive. 

So loop mode with a length of 3 would go: 0-F-7-0-F-7.... ???
and ping pong mode with a length of 3 would go 0-F-7-F-0-7....???

Let's get this straight people.   HALP?

Offline

I've been trying to decipher the logistics of the wavetable manipulation for a long time now. Just when I thought I had a cohesive formula, Chipocrite shut me down and left me there on the curb, rueing the day that I ever discovered LSDJ.

Offline
Abandoned on Fire

I fully support this investigation... and also a fully described "order of operations" for commands accross all screens.

Offline
San Francisco

I think i can help you guys out. I got to wait till i can stop working and i will try to give you guys a proper response. haha if you cant tell the wav channel makes me supper stoked. I have spent way to many years fiddling with the thing.

Offline
buffalo, NY

I'll experiment more tomorrow

Offline
Madison, Alabama

I thought it DID go through the frames in numerical order in pingpong mode. 

You can hand-draw a nice PWM by making the first frame a square and making each subsequent frame narrower by 1 pixel-value-thingy.  Set it to pingpong, F for the repeats, and it will step through a pulse width modulation.  You can slow it down for some nice C64-ish leads and basses.

I used it in this song for the bass in the opening: http://chipmusic.org/roboctopus/music/the-belt-of-venus

[edit] unless I don't understand what you mean. big_smile

Last edited by roboctopus (Jan 27, 2012 2:28 am)

Offline
Tokyo, Japan
danimal cannon wrote:

So I've been doing a bit of experimenting with the wave channel and it's pretty mysterious.  I have a lot of ambitious things I want to try but the documentation I've found has been pretty scant, I've tried discussing it with Zef a little.

So essentially what I want to know is, what FRAMES are being called in loop or pingpong mode.  Through some experimentation I've gotten it to go:
0-F-7 in loop mode.   Now why would it jump from frame zero straight to frame F?  And then from frame F to frame 7?  And then where does it go?  You would think it would just go 0-1-2-3.... but that is WAY too intuitive. 

So loop mode with a length of 3 would go: 0-F-7-0-F-7.... ???
and ping pong mode with a length of 3 would go 0-F-7-F-0-7....???

Let's get this straight people.   HALP?

Length / Repeat / Loop mode are the three factors.and I THINK it does like this

Length : How many frames does the wav channel play. Ie 7 play from frame 0 to frame 7 then the loop more dictates what happens next

Repeat : How many frames back from then end of the period defined by length to repeat (depends on the loop mode)

Loop mode : What does the wav channel do after playing the pre defined length


Case 1 : L = F / R = F / Loopmode = Loop

Play frame 0 to frame F, then repeat (0 to F)


Case 2 : L = F / R = 4 / Loopmode = Loop

Play frame 0 to frame F, then repeat (C to F)


Case 3: L = F / R = F / Loopmode = Pingpong

play frame 0 to frame F, then repeat (F to 0 -> 0 to F)

- Edit -

This appears NOT to be correct. Set L = 8 / Repeat = 0 Loop mode = "loop"

I would assume this means "play then loop frame 0" or "play then loop frame 8"

but edditing fram 0 or 8 while the lopp is playing does nothing. It appears to be looping frame F wtf?

Last edited by Lazerbeat (Jan 27, 2012 3:56 am)

Offline
Madison, Alabama

Okay, for the sake of maximum nerdery, I have hand-drawn a PWM and recorded it at the absolute slowest LSDJ will let me (40 bpm, Speed F).

You can hear it step through each frame as the pulse gets narrower.  It advances through the frames sequentially.  At the end of the recording I play the same synth at the same BPM with a speed of 1 for contrast.

http://chipmusic.org/roboctopus/music/wave-channel-pwm

Last edited by roboctopus (Jan 27, 2012 2:21 pm)

Offline
Turku, FIN

This thread heart

Offline
England

I've never really understood how this channel works, eventually it just kinda agrees to make the sounds I want it to make.

Offline
Chicago IL

you can always set up a table with F/G commands

Offline
rochester, ny
Saskrotch wrote:

you can always set up a table with F/G commands

i didn't realize you could use F commands on tables.

Offline
Tokyo, Japan
roboctopus wrote:

Okay, for the sake of maximum nerdery, I have hand-drawn a PWM and recorded it at the absolute slowest LSDJ will let me (40 bpm, Speed F).

I did similar PWM nerdery here http://chipmusic.org/forums/topic/1779/ … m-in-lsdj/

Offline
Chicago IL
nickmaynard wrote:
Saskrotch wrote:

you can always set up a table with F/G commands

i didn't realize you could use F commands on tables.

okay

Offline
buffalo, NY

I thought about doing it with tables, but since they're so limited I feel shitty using one when I could just program the instrument correctly

Offline
buffalo, NY

The length seems to fuck with everything.  Results so far.
this is play mode: ONCE
length 0, only frame 0 plays.
length 1, frame 0, then F
length 2: 0, 7, F
length 3: 0, 5, A, F
length 4: 0, 3, 7, B, F
length 5: 0, 3, 6, 9, C, F
length 6: 0, 2, 5, 7, A, D, F
length 7: 0, 2, 4, 6, 9, B, D, F
length 8: 0, 1, 3, 5, 7, 9, B, D, F
length 9: 0, 1, 3, 5, 7, 8, 9, C, E, F
length A: 0, 1, 3, 4, 6, 7, 9, B, C, E, F
length B: 0, 1, 2, 4, 5, 7, 8, A, B, D, E, F
length C: 0, 1, 2, 3, 5, 6, 7, 9, A, B, D, E, F
length D: 0, 1, 2, 3, 4, 6, 7, 8, 9, B, C, D, E, F
length E: 0, 1, 2, 3, 4, 5, 6, 7, 9, A, B, C, D, E, F  (all but frame 8)
length F: ALL FRAMES

See the pattern?  What's it's doing is splitting up the 16 frames evenly between how many frames you want.  So a length of 5 has 6 frames (because zero counts as 1) that are evenly spaced between 0 and F.  Not the most intuitive thing, but definitely a pattern.

OK, so LOOP mode, the key here is the REPEAT command.
REPEAT: 0 plays through all the frames depending on your length (see above) and just holds out your last frame.
REPEAT: 1 plays through frames and loops your last 2 frames,
REPEAT: 2 plays through frames and loops your last 3 frames.
and so on. 

SO, if you want loop just loop through the frames you want, set repeat to the same number as your length or higher, then it will just loop through them all.  If you set the repeat higher than the length number it doesn't do anything extra, it just loops through the full length.

PINGPONG MODE! It loops, but when it reaches the end it plays through those same frames backwards. 

REPEAT also affects this the same way.
So,
repeat 0: holds out the final frame
repeat 1: plays through frames and alternates between final two frames
repeat:2: plays through frames and then ping pongs between last 3 frames
repeat 3: plays through frames and then ping pongs between last 4 frames...

AGAIN to ping pong between all the frames you want (length), just set the repeat to same value as the length or higher.  Again repeat values higher than the length don't do anything different.

SPEED, F is the slowest, 0 is the highest.




BOOOOYAHHHHHHHHHHHHHHHHH

Last edited by danimal cannon (Jan 28, 2012 3:52 am)