Guest User

Untitled

a guest
Jul 18th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. void envelope(int patch, float attack, float decay, moduleData *data)
  2. {
  3. if(data->initflag[patch] == 0)
  4. {
  5. int i;
  6. float total, Nattack, Ndecay;
  7. data->initflag[patch] = 1;
  8.  
  9. total = attack+decay;
  10. Nattack = (attack / total) * ENV_SIZE;
  11. Ndecay = ENV_SIZE - Nattack;
  12.  
  13. //printf("\ntotal: %f\nNattack: %f\nNdecay: %f", total, Nattack, Ndecay);
  14.  
  15. for(i = 0; i < ENV_SIZE; i++)
  16. {
  17. if(i < Nattack)
  18. data->envTable[patch][i] = i / Nattack;
  19. else
  20. data->envTable[patch][i] = (Ndecay - (i - Nattack)) / Ndecay;
  21.  
  22. //printf("%d: %f\n", i, data->envTable[patch][i]);
  23. }
  24.  
  25. data->envTable[patch][0] = 0;
  26. data->envTable[patch][ENV_SIZE] = 0;
  27.  
  28.  
  29. data->tempvar[patch] = ((1/total) * ENV_SIZE/SAMPLE_RATE); //tempvar = table increment
  30. data->tableIndex[patch] = 0;
  31. data->tempout[patch] = .0001;
  32. }
  33. //printf("increment = %f", data->tempvar[patch]);
  34.  
  35. data->tempout[patch] = data->envTable[patch][(int)data->tableIndex[patch]];
  36. data->tableIndex[patch] += data->tempvar[patch];
  37. }
Add Comment
Please, Sign In to add comment