Jump to content

LFO 1/2T 1/4T 1/8T 1/16T......


Waxx
 Share

Recommended Posts

Hi, i'm making a stereo MidiboxSid, it's almost finished, just need a box, bankstick, dout module, and a second din module.

I've started to play with my Midiboxsid, and i've got a problem with the LFO's, it seems the LFO's don't do 1/4T 1/8T 1/16T etc, or 1/2P 1/4P etc

It just does the regular 1 1/2 1/4.....

Are the LFO synced by the SID chip or is it in the mios in the pic ?

Can it be added in the mios ?

Thank you

(I've started to look at the asm files, and for now i don't find a part with LFO)

Link to comment
Share on other sites

I added your request to the Wishlist (end of the CHANGELOG.txt

sid_lfo_table.inc has to be enhanced (see end of this file) + the preset offset in sid_se_l.inc (search for "if LFO synched via clock, replace 245-255 by MIDI clock optimized incrementers")

In addition the appr. CS code + Rutger's and Nils Editor have to be adapted.

And the documentation has to be overworked of course.

Best Regards, Thorsten.

Link to comment
Share on other sites

  • 10 months later...

Hi everybody !!!! i'm trying to add the new lfo's value to the sidbox :

So, i started by searching the real values, i'm not shure of it:

1/2T=1/3=0.333333333

1/4T=1/6=0.166666667

1/8T=1/12=0.08333333

1/16T=1/24=0.0416667

1/32T=1/48=0.0208333

1/64T=1/96=0.0104167

1/2.=3/4=0.75

1/4.=3/8=0.375

1/8.=3/16=0.1875

1/16.=3/32=0.09375

1/32.=3/64=0.046875

1/64.=3/128=0.0234375

Edit the sid_lfo_table.inc at the end, i take 1024/divisor, exemple: 1024/(1/2)= 2048, 1024/(1/16T)=1024/(1/24)= 24576.

;; alternative table for MIDI clock

;; (overrules entries 231-255 of normal LFO table if SID_I_LFO_MODE_CLKSYNC flag is set)

SID_LFO_TABLE_MCLK

dw 16 ; 231: 64/1

dw 32 ; 232: 32/1

dw 64 ; 233: 16/1

dw 128 ; 234: 8/1

dw 256 ; 235: 4/1

dw 512 ; 236: 2/1

dw 1024 ; 237: 1/1

dw 1365 ; 238: 1/2.

dw 2048 ; 239: 1/2

dw 3072 ; 240: 1/2T

dw 2731 ; 241: 1/4.

dw 4096 ; 242: 1/4

dw 6144 ; 243: 1/4T

dw 5461 ; 244: 1/8.

dw 8192 ; 245: 1/8

dw 12288 ; 246: 1/8T

dw 10923 ; 247: 1/16.

dw 16384 ; 248: 1/16

dw 24576 ; 249: 1/16T

dw 21845 ; 250: 1/32.

dw 32768 ; 251: 1/32

dw 49152 ; 252: 1/32T

dw 43691 ; 253: 1/64.

dw 65536 ; 254: 1/64

dw 98304 ; 255: 1/64T

After that, edit the sid_se_l.inc file at:

;; if LFO synched via clock, replace 231-255 by MIDI clock optimized incrementers

movlw SID_Ix_LFOx_MODE

BRA_IFCLR PLUSW0, SID_I_LFO_MODE_CLKSYNC, ACCESS, SIDSE_L_LFO_Rate_NoClkSync

SIDSE_L_LFO_Rate_ClkSync

movf IRQ_TMP1, W

addlw -231

bnc SIDSE_L_LFO_Rate_NoClkSyncValues

TABLE_ADDR_MUL_W SID_LFO_TABLE_MCLK, 2

rgoto SIDSE_L_LFO_Rate_ClkSync_Cont

SIDSE_L_LFO_Rate_NoClkSyncValues

SIDSE_L_LFO_Rate_NoClkSync

And now, compil again and upload to the Midibox Sid, for now i'm testing and it's working :D, but i think it could be better to make duplicate values for a better midi control, it's 25 values for 255 midi steps so each value repeats 10 time :

dw 16 ; 1: 64/1

dw 16 ; 2: 64/1

dw 16 ; 3: 64/1

dw 16 ; 4: 64/1

dw 16 ; 5: 64/1

dw 16 ; 6: 64/1

dw 16 ; 7: 64/1

dw 16 ; 8: 64/1

dw 16 ; 9: 64/1

dw 16 ; 10: 64/1

dw 16 ; 11: 64/1

dw 32 ; 12: 32/1

dw 32 ; 13: 32/1

dw 32 ; 14: 32/1

dw 32 ; 15: 32/1

dw 32 ; 16: 32/1

dw 32 ; 17: 32/1

dw 32 ; 18: 32/1

dw 32 ; 19: 32/1

dw 32 ; 20: 32/1

dw 32 ; 21: 32/1

dw 32 ; 22: 32/1

dw 32 ; 23: 32/1

dw 64 ; 24: 16/1

dw 64 ; 25: 16/1

dw 64 ; 26: 16/1

dw 64 ; 27: 16/1

dw 64 ; 28: 16/1

dw 64 ; 29: 16/1

dw 64 ; 30: 16/1

dw 64 ; 31: 16/1

dw 64 ; 32: 16/1

dw 64 ; 33: 16/1

dw 64 ; 34: 16/1

dw 128 ; 35: 8/1

dw 128 ; 36: 8/1

dw 128 ; 37: 8/1

dw 128 ; 38: 8/1

dw 128 ; 39: 8/1

dw 128 ; 40: 8/1

dw 128 ; 41: 8/1

dw 128 ; 42: 8/1

dw 128 ; 43: 8/1

dw 128 ; 44: 8/1

dw 256 ; 45: 4/1

dw 256 ; 46: 4/1

dw 256 ; 47: 4/1

dw 256 ; 48: 4/1

dw 256 ; 49: 4/1

dw 256 ; 50: 4/1

dw 256 ; 51: 4/1

dw 256 ; 52: 4/1

dw 256 ; 53: 4/1

dw 256 ; 54: 4/1

dw 512 ; 55: 2/1

dw 512 ; 56: 2/1

dw 512 ; 57: 2/1

dw 512 ; 58: 2/1

dw 512 ; 59: 2/1

dw 512 ; 60: 2/1

dw 512 ; 61: 2/1

dw 512 ; 62: 2/1

dw 512 ; 63: 2/1

dw 512 ; 64: 2/1

dw 1024 ; 65: 1/1

dw 1024 ; 66: 1/1

dw 1024 ; 67: 1/1

dw 1024 ; 68: 1/1

dw 1024 ; 69: 1/1

dw 1024 ; 70: 1/1

dw 1024 ; 71: 1/1

dw 1024 ; 72: 1/1

dw 1024 ; 73: 1/1

dw 1024 ; 74: 1/1

dw 1365 ; 75: 1/2.

dw 1365 ; 76: 1/2.

dw 1365 ; 77: 1/2.

dw 1365 ; 78: 1/2.

dw 1365 ; 79: 1/2.

dw 1365 ; 80: 1/2.

dw 1365 ; 81: 1/2.

dw 1365 ; 82: 1/2.

dw 1365 ; 83: 1/2.

dw 1365 ; 84: 1/2.

dw 2048 ; 85: 1/2

dw 2048 ; 86: 1/2

dw 2048 ; 87: 1/2

dw 2048 ; 88: 1/2

dw 2048 ; 89: 1/2

dw 2048 ; 90: 1/2

dw 2048 ; 91: 1/2

dw 2048 ; 92: 1/2

dw 2048 ; 93: 1/2

dw 2048 ; 94: 1/2

dw 3072 ; 95: 1/2T

dw 3072 ; 96: 1/2T

dw 3072 ; 97: 1/2T

dw 3072 ; 98: 1/2T

dw 3072 ; 99: 1/2T

dw 3072 ; 100: 1/2T

dw 3072 ; 101: 1/2T

dw 3072 ; 102: 1/2T

dw 3072 ; 103: 1/2T

dw 3072 ; 104: 1/2T

dw 2731 ; 105: 1/4.

dw 2731 ; 106: 1/4.

dw 2731 ; 107: 1/4.

dw 2731 ; 108: 1/4.

dw 2731 ; 109: 1/4.

dw 2731 ; 110: 1/4.

dw 2731 ; 111: 1/4.

dw 2731 ; 112: 1/4.

dw 2731 ; 113: 1/4.

dw 2731 ; 114: 1/4.

dw 4096 ; 115: 1/4

dw 4096 ; 116: 1/4

dw 4096 ; 117: 1/4

dw 4096 ; 118: 1/4

dw 4096 ; 119: 1/4

dw 4096 ; 120: 1/4

dw 4096 ; 121: 1/4

dw 4096 ; 122: 1/4

dw 4096 ; 123: 1/4

dw 4096 ; 124: 1/4

dw 6144 ; 125: 1/4T

dw 6144 ; 126: 1/4T

dw 6144 ; 127: 1/4T

dw 6144 ; 128: 1/4T

dw 6144 ; 129: 1/4T

dw 6144 ; 130: 1/4T

dw 6144 ; 131: 1/4T

dw 6144 ; 132: 1/4T

dw 6144 ; 133: 1/4T

dw 6144 ; 134: 1/4T

dw 5461 ; 135: 1/8.

dw 5461 ; 136: 1/8.

dw 5461 ; 137: 1/8.

dw 5461 ; 138: 1/8.

dw 5461 ; 139: 1/8.

dw 5461 ; 140: 1/8.

dw 5461 ; 141: 1/8.

dw 5461 ; 142: 1/8.

dw 5461 ; 143: 1/8.

dw 5461 ; 144: 1/8.

dw 8192 ; 145: 1/8

dw 8192 ; 146: 1/8

dw 8192 ; 147: 1/8

dw 8192 ; 148: 1/8

dw 8192 ; 149: 1/8

dw 8192 ; 150: 1/8

dw 8192 ; 151: 1/8

dw 8192 ; 152: 1/8

dw 8192 ; 153: 1/8

dw 8192 ; 154: 1/8

dw 12288 ; 155: 1/8T

dw 12288 ; 156: 1/8T

dw 12288 ; 157: 1/8T

dw 12288 ; 158: 1/8T

dw 12288 ; 159: 1/8T

dw 12288 ; 160: 1/8T

dw 12288 ; 161: 1/8T

dw 12288 ; 162: 1/8T

dw 12288 ; 163: 1/8T

dw 12288 ; 164: 1/8T

dw 10923 ; 165: 1/16.

dw 10923 ; 167: 1/16.

dw 10923 ; 168: 1/16.

dw 10923 ; 169: 1/16.

dw 10923 ; 170: 1/16.

dw 10923 ; 171: 1/16.

dw 10923 ; 172: 1/16.

dw 10923 ; 173: 1/16.

dw 10923 ; 174: 1/16.

dw 10923 ; 175: 1/16.

dw 16384 ; 176: 1/16

dw 16384 ; 177: 1/16

dw 16384 ; 178: 1/16

dw 16384 ; 179: 1/16

dw 16384 ; 180: 1/16

dw 16384 ; 181: 1/16

dw 16384 ; 182: 1/16

dw 16384 ; 183: 1/16

dw 16384 ; 184: 1/16

dw 16384 ; 185: 1/16

dw 24576 ; 186: 1/16T

dw 24576 ; 187: 1/16T

dw 24576 ; 188: 1/16T

dw 24576 ; 189: 1/16T

dw 24576 ; 190: 1/16T

dw 24576 ; 191: 1/16T

dw 24576 ; 192: 1/16T

dw 24576 ; 193: 1/16T

dw 24576 ; 194: 1/16T

dw 24576 ; 195: 1/16T

dw 21845 ; 196: 1/32.

dw 21845 ; 197: 1/32.

dw 21845 ; 198: 1/32.

dw 21845 ; 199: 1/32.

dw 21845 ; 200: 1/32.

dw 21845 ; 201: 1/32.

dw 21845 ; 202: 1/32.

dw 21845 ; 203: 1/32.

dw 21845 ; 204: 1/32.

dw 21845 ; 205: 1/32.

dw 32768 ; 206: 1/32

dw 32768 ; 207: 1/32

dw 32768 ; 208: 1/32

dw 32768 ; 209: 1/32

dw 32768 ; 210: 1/32

dw 32768 ; 211: 1/32

dw 32768 ; 212: 1/32

dw 32768 ; 213: 1/32

dw 32768 ; 214: 1/32

dw 32768 ; 215: 1/32

dw 49152 ; 216: 1/32T

dw 49152 ; 217: 1/32T

dw 49152 ; 218: 1/32T

dw 49152 ; 219: 1/32T

dw 49152 ; 220: 1/32T

dw 49152 ; 221: 1/32T

dw 49152 ; 222: 1/32T

dw 49152 ; 223: 1/32T

dw 49152 ; 224: 1/32T

dw 49152 ; 225: 1/32T

dw 43691 ; 226: 1/64.

dw 43691 ; 227: 1/64.

dw 43691 ; 228: 1/64.

dw 43691 ; 229: 1/64.

dw 43691 ; 230: 1/64.

dw 43691 ; 231: 1/64.

dw 43691 ; 232: 1/64.

dw 43691 ; 233: 1/64.

dw 43691 ; 234: 1/64.

dw 43691 ; 235: 1/64.

dw 65536 ; 236: 1/64

dw 65536 ; 237: 1/64

dw 65536 ; 238: 1/64

dw 65536 ; 239: 1/64

dw 65536 ; 240: 1/64

dw 65536 ; 241: 1/64

dw 65536 ; 242: 1/64

dw 65536 ; 243: 1/64

dw 65536 ; 244: 1/64

dw 65536 ; 245: 1/64

dw 98304 ; 246: 1/64T

dw 98304 ; 247: 1/64T

dw 98304 ; 248: 1/64T

dw 98304 ; 249: 1/64T

dw 98304 ; 250: 1/64T

dw 98304 ; 251: 1/64T

dw 98304 ; 252: 1/64T

dw 98304 ; 253: 1/64T

dw 98304 ; 254: 1/64T

dw 98304 ; 255: 1/64T

Sorry for my bad english

And thank you again for all your work

Edited by Waxx
Link to comment
Share on other sites

  • 4 months later...

For the records: with V2.039 the MIDI Clock Sync feature has been enhanced. The final solution looks a bit different from Waxx' proposal, but it works 100% accurate over long time, even when the LFO isn't reseted via Key Sync because the usage of "uneven values" is avoided.

Best Regards, Thorsten.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...