Advertisement
Yuriha

Synthesizer V Microtonal Finetuning

Feb 5th, 2023
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. var SCRIPT_TITLE = "Finetune Pitches";
  2.  
  3. var deviations = [
  4. 0,
  5. 117.10785766895648 - 100,
  6. 193.1568569324174 - 200,
  7. 310.2647146013739 - 300,
  8. 386.3137138648348 - 400,
  9. 503.4215715337913 - 500,
  10. 620.5294292027478 - 600,
  11. 696.5784284662087 - 700,
  12. 813.6862861351652 - 800,
  13. 889.7352853986262 - 900,
  14. 1006.8431430675826 - 1000,
  15. 1082.8921423310435 - 1100,
  16. ]
  17.  
  18. var fadein_blicks = 10000000;
  19. var fadeout_blicks = 70000000;
  20. function getClientInfo() {
  21. return {
  22. "name": SV.T(SCRIPT_TITLE),
  23. "author": "Yuriha",
  24. "versionNumber": 1,
  25. "minEditorVersion": 65537
  26. }
  27. }
  28.  
  29. function getTranslations(langCode) {
  30. return [];
  31. }
  32.  
  33. function run() {
  34. var notegroup = SV.getMainEditor().getCurrentGroup().getTarget();
  35. var curve = notegroup.getParameter("pitchDelta")
  36. var i;
  37. var output = [];
  38. for (i = 0; i < notegroup.getNumNotes(); i++) {
  39. var note = notegroup.getNote(i);
  40. var index = note.getPitch() % 12;
  41. var dev = deviations[index];
  42. var start = note.getOnset() + fadein_blicks;
  43. var end = note.getEnd() - fadeout_blicks;
  44. output.push([start, curve.get(start) + dev]);
  45. output.push([end, curve.get(end) + dev]);
  46. var points = curve.getPoints(start, end);
  47. var j;
  48. for (j = 0; j < points.length; j++) {
  49. var p = points[j];
  50. output.push([p[0], p[1] + dev]);
  51. }
  52. }
  53. for (i = 0; i < output.length; i++) {
  54. var p = output[i];
  55. curve.add(p[0], p[1]);
  56. }
  57. }
  58.  
  59. function main() {
  60. run();
  61. SV.finish();
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement