MarioFan171

Chopsticks Brothers – 小苹果 (Xiǎo píngguǒ) [Little Apple] - Muse Labs Executable Remix

Jan 21st, 2026 (edited)
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Genre: Complextro / Trance
  2.  
  3. /*Universals*/
  4. BPM=128,
  5. sR=48e3,
  6. sPB=32768,
  7. tn=444,
  8. tr=7,
  9. edo=12,
  10.  
  11. gS=(BPM,sR,sPB)=>abs(BPM/((120*sR)/sPB)),
  12. gP=(sR,tr,tn,edo)=>(1/sR*256)*tn*2**((tr-9)/12),
  13.  
  14. r=t*gS(BPM,sR,sPB),
  15. p=t*gP(sR,tr,tn,edo),
  16.  
  17. /*FX Containers*/
  18. t || (lprfx=[],delayfx=[],cfx=[],sf=[]),lprfxi=0,delayfxi=0,cfxi=0,si=0,
  19.  
  20. /*Sequences*/
  21. s=(x,y,z=0,w=0)=>x[(z?y:(r-(2**y*w))/2**y)%x.length|0]||0,
  22.  
  23. ms=(...x)=>p*2**(parseInt(s(...x),36)/12)||0,
  24.  
  25. /*Effects*/
  26. lpr = lowPassResonance = (a, c, r) => (
  27.     lpr_fxii = lprfxi ++,
  28.     lprfx[lpr_fxii] ??= [0, 0, 0, 0],
  29.     lprfx[lpr_fxii][0] += (a - lprfx[lpr_fxii][0] + (r + r / ((1 + .1e-9) - c)) * (lprfx[lpr_fxii][0] - lprfx[lpr_fxii][1])) * c,
  30.     lprfx[lpr_fxii][1] += (a - lprfx[lpr_fxii][1] + (r + r / ((1 + .1e-9) - c)) * (lprfx[lpr_fxii][1] - lprfx[lpr_fxii][2])) * c,
  31.     lprfx[lpr_fxii][2] += (lprfx[lpr_fxii][1] - lprfx[lpr_fxii][2]) * c,
  32.     lprfx[lpr_fxii][3] += (lprfx[lpr_fxii][2] - lprfx[lpr_fxii][3]) * c,
  33.     lprfx[lpr_fxii][3]
  34. ),
  35.  
  36. delayMax = 1e6,
  37. delay = (signal, time, feedback = .5, dryWet = .5) => (
  38.     delay_fxii = delayfxi ++,
  39.     delayfx[delay_fxii] ??= {
  40.         buf: new Float32Array(delayMax),
  41.         idx: 0
  42.     },
  43.     dLength = min(delayfx[delay_fxii].buf.length, max(1, time | 0)),
  44.     d_out = delayfx[delay_fxii].buf[delayfx[delay_fxii].idx],
  45.     delayfx[delay_fxii].buf[delayfx[delay_fxii].idx] = signal + d_out * feedback,
  46.     delayfx[delay_fxii].idx = (delayfx[delay_fxii].idx + 1) % round(dLength),
  47.     mix = min(1, max(0, dryWet)),
  48.     d_out * mix + signal * (1 - mix)
  49. ),
  50.  
  51. hpr = highPassResonance = (a, c, r) => a - lpr(a, c, r),
  52. bpr = bandPassResonance = (a, hc, lc, r) => hpr(lpr(a, lc, r), hc, r),
  53.  
  54. crs=(In,v,d,e,m=256)=>{
  55. cfxi++;
  56. cfx[cfxi]??=Array(n=4096).fill(0);
  57. cfx[cfxi][t%n]=In;
  58. var out=0;
  59. for(let i=1;i<v;i++){
  60. out+=cfx[cfxi][(t+(e?1:-1)*((t/m*(d+(d*i))-(i/2)))|0)%n]/v||0
  61. } return out },
  62.  
  63. cv=(tone = t, note = [[0]], trnsp = 0, wave = input => (input / 128 % 2 - 1 + input / 256 % 2 - 1)/1.6) => {
  64.    let idx = chr = 0
  65.    let poly = 5
  66.    for (; idx < min(poly, note.length); idx++)
  67.       chr += wave(tone * 2 ** ((note[idx] + trnsp) / 12))
  68.    return poly ? chr / poly : 0
  69. },
  70.  
  71. thr = x => { throw x },
  72.  
  73. // Toggle UI / display mode
  74. disp = 0,
  75.  
  76. // Initialize all persistent state arrays on first tick
  77. // Arrays are kept separate so multiple meters / channels can coexist
  78. t || ([fxVU, fxVUdB, fxPeak, fxPeakHold, fxPeakVel, fxCorr, fxClipHold, fxVUFrame, ticks]
  79.     = Array.from({ length: 9 }, () => [])),
  80.  
  81. // Running indices for meter and correlation instances
  82. vufxi   = 0,
  83. peakfxi = 0,
  84.  
  85. // VU meter configuration
  86. vuMax   = 120,   // 0 dBFS maps to this position
  87. labelWidth = 5, // space reserved for channel labels
  88. headroom = 6,   // extra dB above 0 dBFS shown on the meter
  89.  
  90. // High-resolution time source (fallback-safe)
  91. now = (typeof performance != 'undefined' ? performance.now() : Date.now()),
  92.  
  93. // === render helpers: fixed-width VU Meter, peak marker and ruler ===
  94.  
  95. // Extra spacing to the right of the meter (labels live here)
  96. meterPadding = 0,
  97.  
  98. // Total visual width of the meter bar area
  99. meterWidth = (vuMax + headroom) | 0,
  100.  
  101. // Complete line width including padding
  102. totalWidth = meterWidth + meterPadding,
  103.  
  104. // --- VU meter core ---
  105. // Accumulates RMS per frame, smooths it, converts to dBFS,
  106. // and updates peak hold + decay logic
  107. vu = vuMeter = input => (
  108.     vu_fxii = vufxi++,
  109.  
  110.     // RMS smoothing coefficient + visual update FPS
  111.     s = .5, fps = 60,
  112.  
  113.     // Lazy initialization of per-instance state
  114.     fxVU[vu_fxii] ??=
  115.     fxVUdB[vu_fxii] ??=
  116.     fxPeak[vu_fxii] ??=
  117.     fxPeakHold[vu_fxii] ??=
  118.     fxPeakVel[vu_fxii] ??= 0,
  119.  
  120.     // Per-frame RMS accumulator (prevents per-sample flicker)
  121.     fxVUFrame ??= [],
  122.     fVU = fxVUFrame[vu_fxii] ??= { sum: 0, count: 0, lastFrame: -1 },
  123.  
  124.     // Accumulate squared samples for RMS
  125.     fVU.sum += input * input,
  126.     fVU.count ++,
  127.  
  128.     // Quantize time into visual frames
  129.     frame = floor(now / (1000 / fps)),
  130.  
  131.     // Only update meter once per frame
  132.     frame !== fVU.lastFrame && fVU.count && (
  133.         // Frame RMS
  134.         aAvg = sqrt(fVU.sum / fVU.count),
  135.  
  136.         // Reset accumulator for next frame
  137.         fVU.sum = 0,
  138.         fVU.count = 0,
  139.         fVU.lastFrame = frame,
  140.  
  141.         // Smoothed RMS (energy-domain smoothing)
  142.         fxVU[vu_fxii] = sqrt(
  143.             (1 - s) * fxVU[vu_fxii] ** 2 +
  144.             s * aAvg ** 2
  145.         ),
  146.  
  147.         // Convert to dBFS (+1e-12 avoids log(0))
  148.         dBFS = 20 * log10(abs(fxVU[vu_fxii] * 2) + 1e-12),
  149.  
  150.         // Map dBFS into meter coordinates
  151.         vuMapped = max(0, min(meterWidth, vuMax + dBFS)),
  152.  
  153.         // Smooth visual bar motion
  154.         fxVUdB[vu_fxii] += .5 * (vuMapped - fxVUdB[vu_fxii]),
  155.         isNaN(fxVUdB[vu_fxii]) && (fxVUdB[vu_fxii] = 0),
  156.  
  157.         // Peak detection and hold timing
  158.         isNew = fxVUdB[vu_fxii] > fxPeak[vu_fxii],
  159.         fxPeakHold[vu_fxii] = isNew ? now + 1e3 : fxPeakHold[vu_fxii],
  160.  
  161.         // After hold expires, peak decays with increasing velocity
  162.         shouldDecay = now > fxPeakHold[vu_fxii],
  163.         fxPeakVel[vu_fxii] = shouldDecay
  164.             ? fxPeakVel[vu_fxii] + 3.8 / 15
  165.             : 0,
  166.  
  167.         // Peak update logic (hold or decay)
  168.         fxPeak[vu_fxii] = shouldDecay
  169.             ? max(fxVUdB[vu_fxii], fxPeak[vu_fxii] - fxPeakVel[vu_fxii])
  170.             : max(fxPeak[vu_fxii], fxVUdB[vu_fxii])
  171.     ),
  172.  
  173.     // Return current visual meter value
  174.     fxVUdB[vu_fxii]
  175. ),
  176.  
  177. // --- Clip detection with short hold ---
  178. isClipping = i => {
  179.     fxClipHold[i] ??= 0;
  180.  
  181.     // If meter hits or exceeds 0 dBFS, latch clip indicator
  182.     if (fxVUdB[i] >= vuMax) {
  183.         fxClipHold[i] = now + 150;
  184.     }
  185.  
  186.     // Clip indicator persists briefly
  187.     return now < fxClipHold[i];
  188. },
  189.  
  190. // --- Render a single VU meter line ---
  191. renderVUMeter = (input, label = '') => {
  192.     vu(input);
  193.     wd = meterWidth;
  194.     fi = vu_fxii;
  195.  
  196.     // Determine clipping state
  197.     clip = isClipping(fi);
  198.  
  199.     // Build label with optional clip marker
  200.     tag  = (label + (clip ? ' ‼' : '')).padEnd(labelWidth, ' ');
  201.  
  202.     // Peak marker and bar length
  203.     p = max(0, min(meterWidth - 1, floor(fxPeak[fi] || 0)));
  204.     v = max(0, min(meterWidth, floor(fxVUdB[fi] || 0)));
  205.  
  206.     // Initialize blank meter line
  207.     arr = Array.from({ length: totalWidth }, () => ' ');
  208.  
  209.     // Draw filled bar
  210.     for (let j = 0; j < v; j++) arr[j] = '█';
  211.  
  212.     // Draw peak marker
  213.     if (p >= 0 && p < meterWidth) arr[p] = '│';
  214.  
  215.     // Draw label
  216.     for (let j = 0; j < labelWidth; j++) arr[wd + j] = tag[j];
  217.  
  218.     return arr.join('');
  219. },
  220.  
  221. // --- dBFS ruler below the meters ---
  222. dBFSRuler = _ => {
  223.     wd = meterWidth;
  224.     a = Array.from({ length: totalWidth }, () => ' ');
  225.  
  226.     // Major tick marks (musically meaningful points)
  227.     majors = new Set([-10, -6, -3, 0, 3, 6]);
  228.  
  229.     for (let d = -vuMax; d <= headroom; d++) {
  230.         // Map dB value to horizontal position
  231.         pos = floor(((d + vuMax) / (vuMax + headroom)) * (wd - 1));
  232.  
  233.         // Major / minor tick logic
  234.         if (majors.has(d)) {
  235.             a[pos] = '┼'
  236.         } else if ((d + vuMax) % 20 === 0) {
  237.             a[pos] = '┼'
  238.         } else a[pos] = "═";
  239.  
  240.         // Ruler ends
  241.         a[vuMax - 1] = "╬"; a[0] = "├"; a[wd - 1] = "┤";
  242.     }
  243.     return a.join('');
  244. },
  245.  
  246. // --- Numeric dBFS formatting helpers ---
  247. formatDBFS = v => (
  248.     a = abs(v),
  249.     d = a === 0 ? -Infinity : 20 * log10(a) + 6,
  250.     d <= -120
  251.         ? " -inf dBFS"
  252.         : ((d >= 0 ? ' ' : '') + d.toFixed(1) + 'dBFS')
  253. ),
  254.  
  255. renderDBFS = i =>
  256.     "〈 " +
  257.     formatDBFS(fxVU[i]) +
  258.     " / " +
  259.     ((p = fxPeak[i] - vuMax),
  260.     (p >= 0 ? '+' : '') + p.toFixed(1) + 'dBFS') +
  261.     " 〉",
  262.  
  263. // --- Stereo correlation meter ---
  264. corrfxi = 0,
  265. correlation = (left, right) => (
  266.  
  267.     // Unique state per correlation instance
  268.     cfxi = corrfxi++,
  269.     fxCorr ??= [],
  270.     fxCorr[cfxi] ??= { lr: 0, ll: 0, rr: 0 },
  271.  
  272.     // Smoothing coefficient
  273.     s = .125,
  274.  
  275.     // Running averages of cross- and auto-correlations
  276.     fxCorr[cfxi].lr += s * (left * right - fxCorr[cfxi].lr),
  277.     fxCorr[cfxi].ll += s * (left * left - fxCorr[cfxi].ll),
  278.     fxCorr[cfxi].rr += s * (right * right - fxCorr[cfxi].rr),
  279.  
  280.     // Normalize to [-1, 1]
  281.     den = sqrt(fxCorr[cfxi].ll * fxCorr[cfxi].rr) + 1e-12,
  282.     max(-1, min(1, fxCorr[cfxi].lr / den))
  283. ),
  284.  
  285. // --- Render correlation bar ---
  286. renderCorrelation = (left, right, label = 'CORR') => {
  287.     wd = 50;
  288.     mid = wd >> 1;
  289.  
  290.     // Map correlation value to screen position
  291.     pos = max(1, min(wd - 1,
  292.         round(mid + correlation(left, right) * mid)
  293.     ));
  294.  
  295.     // Base line
  296.     a = Array.from({ length: wd }, () => '═');
  297.  
  298.     // Frame, center, and indicator
  299.     a[0] = '├';
  300.     a[mid] = '┼';
  301.     a[pos] = '║';
  302.     a[wd] = '┤';
  303.  
  304.     return a.join('') +
  305.         '  ' + label +
  306.         ' 〈 ' + correlation(left, right).toFixed(3) + " 〉";
  307. },
  308.  
  309. // dB → linear gain helper
  310. // 20 dB per decade (audio standard)
  311. att = attenuate = (dB = 0) => 10 ** (dB / 20),
  312.  
  313. master = lr => (
  314.  
  315. r2=r-262144,
  316. r3=r-524288,
  317.  
  318. b=x=>(x)%256/128-1,
  319.  
  320. start=(r>>19)==0,
  321.  
  322. p0=(r>>19)>-1&&(r>>19)<3,
  323.  
  324. p1=(r>>19)>0&&(r>>19)<3,
  325.  
  326. p2=(r>>19)>4&&(r>>19)<7,
  327.  
  328. p3=(r>>19)>10&&(r>>19)<13,
  329.  
  330. sp1=(r>>19)>2&&(r>>19)<6,
  331.  
  332. main=
  333. (r>>19)>2&&(r>>19)<5|
  334. (r>>19)>8&&(r>>19)<11|
  335. (r>>19)>12&&(r>>19)<15,
  336.  
  337. m2=
  338. (r>>19)>8&&(r>>19)<11|
  339. (r>>19)>12&&(r>>19)<15,
  340.  
  341. bridge=(r>>19)>6&&(r>>19)<9,
  342.  
  343. br2=(r>>19)>7&&(r>>19)<9,
  344.  
  345. u1=s('11231248146114121',13),
  346. u2=s('12131124',14),
  347. u3=s('11121214',13),
  348. u4=s([13,15,14,12,11,14,15],14),
  349. u5=s('1121',14),
  350.  
  351. m0=ms('0 C A CF  E C A J H F C   A C   M J H FH  J   C A C J H F   C   C CEF H M K J H 7 7 A C   E F   J H F CF  H C A J H F C   A C   ',12)||0,
  352.  
  353. m0_a=p1|bridge?ms((r3>>18)%4>1?
  354. 'C CEF J H F E C E C E CEE       A ACE H F E '
  355. .concat((r3>>18)%4==3?'A J   J J  J  J     ':'C A A C ACC         '):
  356. 'F F F F F F F C F F F F F F F   A A A A A C A CCCCC             ',12,0,128):0,
  357.  
  358. mb0=ms(
  359. start|p2?'CCCCAAFF8A7C55AA':
  360. 'CC88AACC'
  361.  
  362. ,15)/8,
  363.  
  364. m3=ms('7ACF',12),
  365.  
  366. m5=ms(
  367.  
  368. '07CF'.repeat(8).
  369. concat(
  370. '5AEH'.repeat(4),
  371. '07CF'.repeat(4),
  372. '38CF'.repeat(2),
  373. '5AEH'.repeat(2),
  374. '25AE'.repeat(2),
  375. '07CF'.repeat(2),
  376. (r3>>16)%16>13?
  377. '38CF'.repeat(4).concat('5AEH'.repeat(4))
  378. :'035A'.repeat(4),
  379. (r3>>16)%16>13?
  380. '07CF'.repeat(8):
  381. '35AC'.repeat(4),
  382. ),12,0,4),
  383.  
  384. // Arp Melody
  385. ma=ms('037353A5A5A232AC',(lr?(r2&16384?13:10):12),0,128),
  386.  
  387. ma2=ms('0357AC',r2&8192?9:10),
  388.  
  389. m4=ms('7 CCA C A C F C 7 CCA C F E A C 7 CCA C A C A C 7 CCA C F E A C ',12),
  390.  
  391. // Bass Melody
  392. mb=p3?ms('CA',17)/2:p2?mb0*4:ms('CCCCAAFF8A7C'
  393. .concat(
  394. (r3>>16)%16>13?'8ACC':'88AA'),15)/2,
  395.  
  396. mb2=ms(
  397.  
  398. '07C03F0C'.repeat(4).
  399. concat(
  400. '5AE5AH5E'.repeat(2),
  401. '07C03F0C'.repeat(2),
  402. '38C38F3C',
  403. '5AE5AH5E',
  404. '25A25E2A',
  405. '07C03F0C',
  406. (r3>>16)%16>13?'35A35C35'.concat('5AE5AH5E'):
  407.  
  408. '35A35C35'.repeat(2),
  409. (r3>>16)%16>13?'07C03F0C'.repeat(2):'5AE5AH5E'.repeat(2))
  410. ,12),
  411.  
  412. s1=sin((p^r>>12)*PI/(lr?(r&65536?32:4):(r&16384?16:8))/(2**s([8,4,3,1,3,7,6,5],12)/(1+(r>>12&3)*2)))*cos(r%(r&16384?8192:4096)*PI/(r&16384?16384:8192))**(lr?(r*u2&8192?7:(r*u1&16384?3:5)):(r*u1&16384?3:(r&8192?1:5))),
  413.  
  414. cp0=cv(p,
  415.  
  416. s([
  417. [0,3,5,7,10,15],[0,3,8,10,12,15],
  418.  
  419. [-2,2,5,7,10],
  420.  
  421. [0,3,5,7,10,15]
  422.  
  423. ],16,0,p2?8:0)
  424.  
  425. ),
  426.  
  427. cp1=cv(p,
  428. s([
  429. [0,3,7,10,12],[0,3,7,10,12],
  430. [0,3,7,10,12],[0,3,7,10,12],
  431. [-2,0,3,7,10],[-2,0,3,7,10],
  432. [3,7,10,12,15],[3,7,10,12,15],
  433. [-4,0,3,7,12],[-2,0,3,7,10],
  434. [-2,2,5,7,10],[0,3,7,12,15],
  435. [5,7,10,12,14],[5,7,10,12,14],
  436. [-2,0,3,7,10],[-2,0,3,7,10]
  437. ],15,0,16)
  438. ),
  439.  
  440. cp2=cv(p,
  441. s([[0,3,5,7,10],[-2,2,5,7,10]],17,0,0)
  442. )*s('1  11 1 1    1  '.repeat(3).concat('1  1 11  1    1 '),12),
  443.  
  444. ss0=p1|p2|bridge?lpr(crs(p2?cp1:cp0,6,lr?1.1:1,1,(lr?255:256))*2*s('1  11 1 1  1 11 ',12),
  445.  
  446. p2?.99:((r3>>18)%4==3?sin(r%(2**18)*PI/2**19)*.99+.07:.1),
  447.  
  448. p2?0:(r3>>18)%4==3?sin(r%(2**18)*PI/2**19)*.55+.3:.3):0,
  449.  
  450. saw=inp=>atan(tan(inp*PI/256))/(PI/2),
  451.  
  452. l0=start|p2?lpr(sin(m0*PI/(lr?128:256)+saw(m0*(lr?2:4))+sin(m0*PI/(lr?1024:512))),p2?.95:sin(r%2**19*PI/2**20)**1.2+.008,.7):0||0,
  453.  
  454. l0_a=hpr((b((m0_a&64|m0_a/2&64)))+.2,.09,.5)*2,
  455.  
  456. b0=lpr((saw(mb0/(lr?2:1))/(lr?3.6:4)+saw(mb0/2^mb0*2)/4)*sin(r%16384*PI/32768)**3,start?sin(r%2**19*PI/2**20)**1.2+.005:1,.3),
  457.  
  458. cps=s([
  459. // Progression: i - II - i - IV7 - II - II - i - IV7 - II
  460. [0,3,7,10,12],[0,3,7,10,12],
  461. [-2,0,3,7,10],[0,3,7,10,15],
  462. s([[-4,0,3,7,12],[-2,2,7,10,14]],15),
  463. s([[-2,2,5,7,10],[0,3,7,12,15]],15),
  464. (r3>>16)%16>13?(
  465. s([[-4,0,3,5,10],[-2,2,5,7,10]],15)
  466. ):[-4,0,3,5,10],
  467. (r3>>16)%16>13?(
  468. [0,3,7,10,12]
  469. ):[-2,0,5,7,17]
  470.  
  471. ],16,0,8),
  472.  
  473. ss=crs(cv(p,p2?cp0:cps),6,lr?1.1:1,1,(lr?255:256))*2*
  474. (uf1=(r3>>15)%16==15?s('1 ',11)*2:(s('111 1 11  11 11 '.repeat(3).concat(' 1 11 11  1 11 1'),12))),
  475.  
  476. ss2=cbrt(sin(cv(p,p2?cp0:cps)*PI/128)*2)*
  477. uf1,
  478.  
  479. ss2=sin(cp0)/6*random(),
  480.  
  481. ss3=lpr((cp2+sin(cp2*4))/3,.95,.7),
  482.  
  483. // Main Melody 1: Vocal Motif
  484. m1=ms('J   F F H   C   J J F H   C     J J F F H   H   M J E   F   F E C   E F H   A A O MMJ H J     H '
  485. .concat(
  486. (r3>>16)%16>13?'F   H J H H A A C C C F C       ':
  487. 'F   H J H A A MM  M M M M M M M '),12,0,128)/2,
  488.  
  489. l1=hpr(cbrt(sin(m1*PI/32)+sin(m1*PI/(lr?63:64)))/2,.2,.01,.01)*cos(r%4096*PI/8192)**1.5,
  490.  
  491. l2=delay(max(min(sin(m0_a*PI/(lr?64:128)+sin(m0_a*PI/(lr?256:128))*2)*cos(r%8192*PI/16384)**9,.6),-.6)*2,16384,.3,lr?.6:.4)/4,
  492.  
  493. l3=saw(m4^m4/(lr?4:2))/2+sin(m4*PI/(lr?128:64)+sin(m4*PI/128))/2,
  494.  
  495. l4=saw((m5^m5*2+m5/2)),
  496.  
  497. b1=(
  498. bp1=s('11121113111411111111111311121114',14),
  499.  
  500. bp1=='1'?lpr(saw((mb)|mb/(lr?4:2))+saw(mb/8)+sin((r>>10^r>>12^r>>(lr?14:15))%48*cbrt(mb%1024)),abs(cos(r%4096*PI/8192)**3)*s([.3,.6,.4,.75,.6,.95],12),.6)*cos(r%4096*PI/8192)*sin(r%16384*PI/32768)**.7+saw(mb/8)/3:
  501. bp1=='2'?saw(mb/(lr?4:8)^mb/(mb&128?4:2)^mb*(1+(r>>12&3))/(mb&256?2:4))*s('1 ',11):
  502. bp1=='3'?sin(((mb*(lr?1.01:1)^mb>>2)+mb)*PI/256)*s('1 ',12):
  503. bp1=='4'?atan((lr?sin:tan)(sin((mb*(lr?1.01:1))*PI/512)*sin(r*PI/4096)*(lr?32:16)))/(PI/2):
  504. 0
  505.  
  506. )*sin(r%16384*PI/32768)**.6*(bp1=='1'?s(' 11111 1111 11 1',13):1),
  507.  
  508. bc=mb-mb%((r&2**u4?(round(abs(sin(r*PI/(65536/u3))**3*64))):
  509. ((r%(16384/u1))>>8)*(r&8192?1:u3)
  510. )||r)*(-r&65536/(r&32768?1/u1:u1)?1:sin(r*PI/(16384/u1))*(r&32768?2:4)),
  511.  
  512. yi=(lr,y=0,z=1)=>sin((lr*(bc-y)*z)*PI/256)**(abs(sin(r*PI/16384/u1))*(32*(r&32768?1/u1:u1)))*lr,
  513.  
  514. b2=((r2&128*u1?yi(1)||yi(-1):yi(1,(r2&16384?64:32)*u2,u3)||yi(-1,(r2&16384?64:32)*u2,u3))*sin(r2%16384*PI/32768)**2.5||0)*s('  11 11   1   11',13),
  515.  
  516. b3=(bc=(saw(mb2/(lr?4:8))+saw(mb2/(lr?8:16)))/1.5*sin(r%16384*PI/32768),
  517.  
  518. lpr(bc,abs(cos(r%4096*PI/8192))+.06,.8)/2),
  519.  
  520. s1=sin((p^r2>>12)*PI/(lr?(r2&65536?32:4):(r2&16384?16:8))/(2**s([8,4,3,1,3,7,6,5],12)/(1+(r2>>12&3)*2)))*cos(r2%(r2&16384?8192:4096)*PI/(r2&16384?16384:8192))**(lr?(r*u2&8192?7:(r2*u1&16384?3:5)):(r2*u1&16384?3:(r&8192?1:5)))*(main?s('  11  11 1  1 11',(r&16384?13:12)):1),
  521.  
  522. s2=r*u3&8192?0:sin((ma*(1+(r>>10&3^r>>13&1))&r>>6)*PI/(lr?128:64))*sin(r%16384*PI/32768)**1.75*(main?s('  1  1  11 1  1 ',13):1),
  523.  
  524. i1=delay(min(max(sin(m3*(1+(r>>12&3^r>>13&1^t>>15&1))/(r&8192?2:1)*PI/256)*cos(r%4096*PI/8192)**9,-.2),.2),16384,.4,.2)*cos(r%4096*PI/8192)**9*((r3>>18)%4==3?1:sin(r3%2**19*PI/2**20)),
  525.  
  526. s3=(
  527. sp=
  528.  
  529. p2?s('   0  1  23     25 5 2   0 2   32  34   55 2 11  5  12   2  32  ',13)
  530.  
  531. :s('   0  1  30   24 3 0 1  31 33 23'.repeat(3)
  532. .concat('  4 1   3  4 2 4  33  22 1   2 3')
  533.  
  534. ,13),
  535.  
  536. sp=='0'?sin((ma2=ms('030507A',9))*PI/((ma2)&64?64:128))||0/2:
  537. sp=='1'?sin(p*PI/(r/(p&128?32:64)^r/(p&256?8:16))*cos(r*PI/32768)*64)
  538. :
  539. sp=='2'?sin(ma2&(r&4096?64:128))
  540. :
  541. sp=='3'?b((p*(r>>(1+(r>>(r&6144?14:13)&15^r>>(r&12288?16:15)&7))^r>>(r&16384?9:12)|r>>(r&12288?12:14)^r>>17)&r)^(r*(1+(r>>(r&8192?(r&49152?10:9):(r&12288?(r&65536?16:14):(r&49152?15:12)))&7))^(r>>(r&4096?2:1))&(r*(1+(r>>12&15))/(1+(r>>12&15^r>>(r&12288?14:15)&3)))))*1.4:
  542. sp=='4'?b((r^r%16384/(r%16384>>8)*(1+(r*(1+(r>>12&7^r>>15&5)/(r&4096?4:1))>>8&63))*(1+(r>>8&(r>>13&3^r>>15&15^r>>17&7))))^(r&r%16384/(r%16384>>8)*4)|((r&r>>(r&4096?8:(r&2048?10:12)))/(r%16384>>8)*256/(1+(r>>8&7^r>>12&7))^r/262144)):
  543. sp=='5'?b(((r^r*3)>>12&21)*(mb/4&(mb/4&mb>>1)+(mb/4>>13)))
  544. :0
  545.  
  546. ),
  547.  
  548. g1=(
  549. gp=s('   11112   2111   1111  2222  212',12),
  550. gu1=s('1123242',13),
  551.  
  552. gp=='1'?sin((mb|mb/(lr?8.01:4.01))*PI/(mb&(lr?384:24)?128:(lr?64:256))+sin((mb*(lr?1.01:1)^mb/(lr?.5:2)+mb)*PI/(lr?511:512)))*cos(s([12,10,20,8],13)*cbrt(mb%(lr?1024:512)))*sin(r*gu1*PI/16384)**3:
  553.  
  554. gp=='2'?atan(tan(sin(mb*PI/(lr?1024:2048))*sin(r*gu1*PI/16384)*(lr?32:(mb&128?32:8))))*sin(r*gu1*PI/16384)/1.3:0
  555. )*1.2*sin(r%16384*PI/32768)**.8,
  556.  
  557. g2=atan(atan(tan(sin(mb0*PI/256)*sin(r*PI/4096)*20)))*((r>>14)%4==3?s('1 ',11):sin(r%16384*PI/32768)),
  558.  
  559. g3=sin((p|p/4)*PI/(p&64?256:128))*cos((p^p/8)*PI/(p&64?256:128))*2*sin(r*PI/4096)*((r>>16)%4==3?s('  1   1 1 1   11',12):s(' 1',15)),
  560.  
  561. s4=(
  562. sp2=s('   000 0   10  1111   1212 212  ',11),
  563.  
  564. sp2=='0'?saw((mb^r/2)/(r%2048>>8)*8)||0:
  565. sp2=='1'?sin((ma2|r>>8)*PI/(ma2?128:64)):
  566. sp2=='2'?saw(p*p/1024):
  567. 0
  568.  
  569. ),
  570.  
  571. sb=sin(mb*PI/1024+sin(mb*PI/2048)),
  572.  
  573. ls=(
  574. lsp=s('1248',17),
  575. N=1e3*cbrt(r*lsp%8192),
  576. ((N&128?saw(-N)/2:saw(N))-.5)*sin(r%16384*PI/32768)**3
  577. ),
  578.  
  579. k=tanh(sin(14*cbrt((main?r2:r)*(ku=p1|br2?(r3>>18)%4==3?s('11112248',16):1:1)%16384)**.7)*2/max(r*ku%16384,1)*1024)*cos((main?r2:r)*ku%16384*PI/32768)**9*((z1=(p1|br2?((r3>>16)%16!==8)&(r3>>15)%32!==31:1))?1:0),
  580.  
  581. h=max(min(((((t*(441/480))&1)-.5)*random()*sin(t/(lr?1.35:1.3)))/max((r2%(r2&(r&32768?16384:12288)?4096:8192))*96,384)*1e5*s(' 1',13),.65),-.65),
  582.  
  583. c0=p0|bridge?b((t*atan(tan(p>>3|t*(lr?1.01:1)>>4))/1.4)+128)*cos(r%8192*PI/16384)**21*s('  1 ',13):0,
  584.  
  585. cl=tanh((((b(t*tan(t*(lr?.99:1)|t*(lr?1.01:1)>>3)+128)*sin(r2|t>>4))*sin(r*PI/8192))/3+sin(13*cbrt(r2%8192))/max((r2%8192),1)*512)*1.5)*s(main?'  1 '.repeat(15).concat(' 1 1'):'  1 ',13)*(!start?1:0)*(z1?1:0),
  586.  
  587. cm=(random()-.5)*cos(r2%8192*PI/16384)**.7,
  588.  
  589. rs=lpr(atan((random()-.5)/1.5*atan(tan(t))),abs(cos(r*PI/2**20/1.5))**9+.005,.78)*sin((main?r2:r)%16384*PI/32768)**.7,
  590.  
  591. rs2=(ps,exp=16)=>(r3>>15)%16==ps?lpr((random()-.5)*atan(tan(t)),abs(cos(r*PI/65536))**.7+.005,abs(cos(r*PI/65536))**.7*.55+.2):0,
  592.  
  593. rs3=lpr(random()-.5,abs(cos(r3*PI/2**(main?19:20)))**5*.92+.04,.75),
  594.  
  595. /*Master*/
  596.  
  597. (r>>19)<16?(tanh(
  598. /*Mezzo*/(
  599. tanh((
  600. g1*3.2+tanh(ss*1.3+ss2)*2.4+b1*1.6
  601. +delay(l1,16384,lr?.6:.5,lr?.5:.4)*2.6
  602. +delay(s1+s2*1.5+s3*1.3,16384,lr?.45:.5,lr?.35:.3)*2+sb/5+(k*1.6+h*3+cl*2)*2+cm*1.4+rs/4+rs2(15)*1.3+rs2(0,20)*2+rs3/6
  603. +(m2?l4+b3*3:0)
  604. )/32)*4.5*(main?1:0)+
  605.  
  606. /*Bridge*/
  607. tanh(lpr(delay(ss2*(br2?sin(r%16384*PI/32768)**1.5:1),16384,.3,.4)*9,.1,.7)+l2+i1+
  608. ((z3=(r3>>15)%32!==31)?(rs/4+rs3/3):0)+
  609. (br2&z3?k+c0+ss0+b0+g2/3:0)
  610. )*(bridge?1:0)+
  611.  
  612. /*Interlude*/
  613. tanh((ss0*6+b1*3+b0*2+k*9+h*9+cl*6+s3*3+g1*5+sb/2+delay(l0+s1*1.6+s2*1.5,16384,.3,.4)*2.6+rs3*2)/32)*2.3*(p2?1:0)+
  614.  
  615. /*Bridge 2*/
  616. tanh(
  617. (delay(l3*cos(r%4096*PI/8192),16384,.5,.4)*1.3+g3/1.4+s4+ss3+b0+b1/2
  618. +k*2+h*1.6+cl+cm/2
  619. +((r3>>17)%8>3?ls*2+s2+g2/2:0))/8
  620. )*5*(p3?1:0)+
  621.  
  622. /*Intro and Intermezzo*/
  623. ((r>>15)==47?delay(l0_a/4,16384,.2,.2):(((tanh((l0_comp=delay(l0/3+l0_a/2+(p1?s1:0)/2,16384,.3,.4))+b0*1.4+rs/2+(c0+k)*(start?0:1)/1.5+ss0*1.3))*(p0?1:0))))||
  624. l0_comp+rs/2+(start?b0:0))/(main|p2?1:1.75)) /*For some reason, the Zeroth lead glitches by displaying NaN values for the first 7 seconds before the Intermezzo starts, so this "||" condition is put there.*/
  625.  
  626. /1.2)*1.3:0
  627.  
  628. /*2133634 - Mezzo*/
  629. /*3600514 - Interlude*/
  630. /*5041923 - Bridge*/
  631. /*7923585 - Interlude 2*/
  632. /*9364354 - Ending*/
  633.  
  634. ),
  635.  
  636. // Metadata
  637. artist = "Chopstick Brothers",
  638. title = "小苹果 (Xiǎo píngguǒ) [Little Apple] (Muse Labs remix) - Multilanguage",
  639. genre = "Complextro / Trance",
  640. key = ['C','C#/D♭','D','D#/E♭','E','F','F#/G♭','G','G#/A♭','A','A#/B♭','B'][tr%12],
  641.  
  642. // Lyrics (taken from the Xongkoro System)
  643.  
  644. z5=(r>>19)<16,
  645.  
  646. lyrics_zh = z5?s(
  647. Array(8).fill('*start*').concat([
  648. '我种下一颗种子',
  649. '终于长出了果实',
  650. '今天是个伟大日子',
  651. '今天是个伟大日子',
  652. '摘下星星送给你',
  653. '拽下月亮送给你',
  654. '让太阳每天为你升起',
  655. '让太阳每天为你升起',
  656. '变成蜡烛燃烧自己 只为照亮你',
  657. '变成蜡烛燃烧自己 只为照亮你',
  658. '把我一切都献给你 只要你欢喜',
  659. '把我一切都献给你 只要你欢喜',
  660. '你让我每个明天都变得有意义',
  661. '你让我每个明天都变得有意义',
  662. '生命虽短爱你永远 不离不弃',
  663. '生命虽短爱你永远 不离不弃',
  664. ])
  665. .concat((lzh=[
  666. '你是我的小呀小苹果儿',
  667. '你是我的小呀小苹果儿',
  668. '怎么爱你都不嫌多',
  669. '怎么爱你都不嫌多',
  670. '红红的小脸儿温暖我的心窝',
  671. '红红的小脸儿温暖我的心窝',
  672. '点亮我生命的火 火火火火',
  673. '点亮我生命的火 火火火火',
  674. '你是我的小呀小苹果儿',
  675. '你是我的小呀小苹果儿',
  676. '就像天边最美的云朵',
  677. '就像天边最美的云朵',
  678. '春天又来到了花开满山坡',
  679. '春天又来到了花开满山坡',
  680. '种下希望就会收获',
  681. '种下希望就会收获']))
  682. .concat(Array(16).fill('*instrumental*'))
  683. .concat([
  684. '从不觉得你讨厌',
  685. '你的一切都喜欢',
  686. '有你的每天都新鲜',
  687. '有你的每天都新鲜',
  688. '有你阳光更灿烂',
  689. '有你黑夜不黑暗',
  690. '你是白云我是蓝天',
  691. '你是白云我是蓝天',
  692. '春天和你漫步在盛开的 花丛间',
  693. '春天和你漫步在盛开的 花丛间',
  694. '夏天夜晚陪你一起看 星星眨眼',
  695. '夏天夜晚陪你一起看 星星眨眼',
  696. '秋天黄昏与你徜徉在 金色麦田',
  697. '秋天黄昏与你徜徉在 金色麦田',
  698. '冬天雪花飞舞有你 更加温暖',
  699. '冬天雪花飞舞有你 更加温暖',
  700. ])
  701. .concat(lzh,Array(16).fill('*instrumental*'),lzh,Array(8).fill('*end*'))
  702.  
  703. ,16):'*end*',
  704.  
  705. lyrics_mnc = z5?s(
  706. Array(8).fill('*start*').concat([
  707. 'Emke use tarifi',
  708. 'Emke pingguri banjiki',
  709. 'Eneggi absi saikan sembi',
  710. 'Eneggi absi saikan sembi',
  711. 'Sinde buhe ningge usiha',
  712. 'Sinde buhe ningge genggiyen biya',
  713. 'Sini jalin dekderengge tere xun sembi',
  714. 'Sini jalin dekderengge tere xun sembi',
  715. 'Yendere ergen banjirengge turgun ai seci',
  716. 'Yendere ergen banjirengge turgun ai seci',
  717. 'Yendere mini beye saikan i simde eldeki sembi',
  718. 'Yendere mini beye saikan i simde eldeki sembi',
  719. 'Jidere unde ineggi labdu sini jalin banjimbi',
  720. 'Jidere unde ineggi labdu sini jalin banjimbi',
  721. 'Jilakan i sinde hvlaha ningge mini sargan obuki',
  722. 'Jilakan i sinde hvlaha ningge mini sargan obuki',
  723. ])
  724. .concat((lm=[
  725. 'Haji mini mini aijige pingguri',
  726. 'Haji mini mini aijige pingguri',
  727. 'Hasa mini jakade tucinjiki',
  728. 'Hasa mini jakade tucinjiki',
  729. 'Sini cira be emgeri sabuha bisi',
  730. 'Sini cira be emgeri sabuha bisi',
  731. 'Simbe onggome muterakv oho ho ho ho ho',
  732. 'Simbe onggome muterakv oho ho ho ho ho',
  733. 'Haji mini mini aijige pingguri',
  734. 'Haji mini mini aijige pingguri',
  735. 'Hasa mini ubade sujume jiki',
  736. 'Hasa mini ubade sujume jiki',
  737. 'Alin tala de ilha ilaka erin de',
  738. 'Alin tala de ilha ilaka erin de',
  739. 'Age simbe gaifi boode bedereme genembi',
  740. 'Age simbe gaifi boode bedereme genembi',]))
  741. .concat(Array(16).fill('*instrumental*'))
  742. .concat([
  743. 'Simbe daci eimerakv',
  744. 'Simbe sindame jenderakv',
  745. 'Sinderi fakcara kooli akv',
  746. 'Sinderi fakcara kooli akv',
  747. 'Simbe emu mudan sabuha de',
  748. 'Simbe emu mudan ojo de',
  749. 'Sinderi fakcame muterav oho',
  750. 'Sinderi fakcame muterav oho',
  751. 'Muse saske yabure jugvn de niyengniyeri edun bi',
  752. 'Muse saske yabure jugvn de niyengniyeri edun bi',
  753. 'Muse saske uculere jilgan juwari agai adali',
  754. 'Muse saske uculere jilgan juwari agai adali',
  755. 'Muse saske maksire okson de bolori i bargiyan bi',
  756. 'Muse saske maksire okson de bolori i bargiyan bi',
  757. 'Muse saske tebliyeci tuweri ele halukan sembi',
  758. 'Muse saske tebliyeci tuweri ele halukan sembi'
  759. ])
  760. .concat(lm,Array(16).fill('*instrumental*'),lm,Array(8).fill('*end*'))
  761.  
  762. ,16):'*end*',
  763.  
  764. lyrics_en = z5?s(
  765. Array(8).fill('*start*').concat([
  766. 'I sowed a seed',
  767. 'It finally yields fruit',
  768. 'Today is a great day',
  769. 'Today is a great day',
  770. 'I pluck stars down for you',
  771. 'I pluck the moon down for you',
  772. 'I let the sun rise up for you every day',
  773. 'I let the sun rise up for you every day',
  774. 'I turn into a candle to burn myself, only to light you up',
  775. 'I turn into a candle to burn myself, only to light you up',
  776. 'I dedicate my everything to you whatever you like',
  777. 'I dedicate my everything to you whatever you like',
  778. 'You make my every tomorrow meaningful',
  779. 'You make my every tomorrow meaningful',
  780. 'Life it short, but I\u0027ll love you forever never giving you up',
  781. 'Life it short, but I\u0027ll love you forever never giving you up',
  782. ])
  783. .concat((len=[
  784. 'You are my little apple',
  785. 'You are my little apple',
  786. 'I can never love you too much',
  787. 'I can never love you too much',
  788. 'Your red face warms my heart',
  789. 'Your red face warms my heart',
  790. 'Lighting the fire, fire, fire, fire, fire in my life',
  791. 'Lighting the fire, fire, fire, fire, fire in my life',
  792. 'You are my little apple',
  793. 'You are my little apple',
  794. 'Like the most beautiful cloud in the sky',
  795. 'Like the most beautiful cloud in the sky',
  796. 'Spring arrives again, and flowers bloom all over the mountainside',
  797. 'Spring arrives again, and flowers bloom all over the mountainside',
  798. 'I reap the hopes that I sowed',
  799. 'I reap the hopes that I sowed']))
  800. .concat(Array(16).fill('*instrumental*'))
  801. .concat([
  802. 'I never dislike you',
  803. 'I like your everthing',
  804. 'Every day is fresh when you\u0027re there',
  805. 'Every day is fresh when you\u0027re there',
  806. 'The sun shines brighter when you\u0027re there',
  807. 'Dark nights are no longer dark when you\u0027re there',
  808. 'You\u0027re the cloud and I\u0027m the sky',
  809. 'You\u0027re the cloud and I\u0027m the sky',
  810. 'In spring we walk among the blossoming flowers',
  811. 'In spring we walk among the blossoming flowers',
  812. 'At summer nights we watch the twinkling stars together',
  813. 'At summer nights we watch the twinkling stars together',
  814. 'At autumn dusks we enjoy the golden wheat fields',
  815. 'At autumn dusks we enjoy the golden wheat fields',
  816. 'In winter when snowflakes are flying, it feels warmer when you\u0027re there',
  817. 'In winter when snowflakes are flying, it feels warmer when you\u0027re there',
  818. ])
  819. .concat(len,Array(16).fill('*instrumental*'),len,Array(8).fill('*end*'))
  820.  
  821. ,16):'*end*',
  822.  
  823. lyrics_ug = z5?s(
  824. Array(8).fill('*start*').concat([
  825. 'مەن بىر ئۇرۇق چاچتىم',
  826. 'ئاخىرى مېۋە بەردى',
  827. 'بۈگۈن ئېسىل كۈن',
  828. 'بۈگۈن ئېسىل كۈن',
  829. 'مەن سەن ئۈچۈن يۇلتۇزلارنى ئۈزۈۋەتتىم',
  830. 'مەن سەن ئۈچۈن ئاينى ئۈزۈۋەتتىم',
  831. 'مەن ھەر كۈنى قۇياشنىڭ سەن ئۈچۈن چىقىشىغا يول قويدۇم',
  832. 'مەن ھەر كۈنى قۇياشنىڭ سەن ئۈچۈن چىقىشىغا يول قويدۇم',
  833. 'مەن ئۆزۈمنى كۆيدۈرۈش ئۈچۈن بىر شامغا ئايلىنىمەن، پەقەت سېنى يورۇتۇش ئۈچۈن',
  834. 'مەن ئۆزۈمنى كۆيدۈرۈش ئۈچۈن بىر شامغا ئايلىنىمەن، پەقەت سېنى يورۇتۇش ئۈچۈن',
  835. 'مەن ھەممە نەرسىنى ساڭا بېغىشلايمەن، سەن خالىغان نەرسەڭگە',
  836. 'مەن ھەممە نەرسىنى ساڭا بېغىشلايمەن، سەن خالىغان نەرسەڭگە',
  837. 'سەن مېنىڭ ھەر بىر ئەتىمنى مەنىلىك قىلىسەن',
  838. 'سەن مېنىڭ ھەر بىر ئەتىمنى مەنىلىك قىلىسەن',
  839. 'ھاياتىم قىسقا، ئەمما مەن سېنى مەڭگۈ سۆيىمەن، ھەرگىز سەندىن ۋاز كەچمەيمەن',
  840. 'ھاياتىم قىسقا، ئەمما مەن سېنى مەڭگۈ سۆيىمەن، ھەرگىز سەندىن ۋاز كەچمەيمەن',
  841. ])
  842. .concat((lug=[
  843. 'سەن مېنىڭ كىچىك ئالمامسەن',
  844. 'سەن مېنىڭ كىچىك ئالمامسەن',
  845. 'مەن سېنى ھەرگىز بەك سۆيەلمەيمەن',
  846. 'مەن سېنى ھەرگىز بەك سۆيەلمەيمەن',
  847. 'قىزىل يۈزۈڭ مېنىڭ قەلبىمنى ئىللىتىدۇ',
  848. 'قىزىل يۈزۈڭ مېنىڭ قەلبىمنى ئىللىتىدۇ',
  849. 'ھاياتىمدىكى ئوت، ئوت، ئوت، ئوت، ئوتنى ياق',
  850. 'ھاياتىمدىكى ئوت، ئوت، ئوت، ئوت، ئوتنى ياق',
  851. 'سەن مېنىڭ كىچىك ئالمامسەن',
  852. 'سەن مېنىڭ كىچىك ئالمامسەن',
  853. 'ئاسماندىكى ئەڭ گۈزەل بۇلۇتقا ئوخشاش',
  854. 'ئاسماندىكى ئەڭ گۈزەل بۇلۇتقا ئوخشاش',
  855. 'يەنە باھار كېلىدۇ، تاغ باغرىدا گۈللەر ئېچىلىدۇ',
  856. 'يەنە باھار كېلىدۇ، تاغ باغرىدا گۈللەر ئېچىلىدۇ',
  857. 'مەن تېرىغان ئۈمىدلىرىمنى يىغىۋالىمەن',
  858. 'مەن تېرىغان ئۈمىدلىرىمنى يىغىۋالىمەن']))
  859. .concat(Array(16).fill('*instrumental*'))
  860. .concat([
  861. 'مەن سىزنى ھەرگىز ياقتۇرمايمەن',
  862. 'مەن سىزنىڭ ھەممە نەرسىڭىزنى ياقتۇرىمەن',
  863. 'سىز بار بولسىڭىز ھەر بىر كۈن يېڭى',
  864. 'سىز بار بولسىڭىز ھەر بىر كۈن يېڭى',
  865. 'سىز بار بولسىڭىز قۇياش تېخىمۇ پارقىرايدۇ',
  866. 'سىز بار بولسىڭىز قاراڭغۇ كېچىلەر ئەمدى قاراڭغۇ ئەمەس',
  867. 'سىز بۇلۇت، مەن ئاسمان',
  868. 'سىز بۇلۇت، مەن ئاسمان',
  869. 'اھاردا بىز گۈل ئېچىۋاتقان گۈللەر ئارىسىدا ماڭىمىز',
  870. 'اھاردا بىز گۈل ئېچىۋاتقان گۈللەر ئارىسىدا ماڭىمىز',
  871. 'ياز كېچىلىرىدە بىز بىللە چاقناپ تۇرغان يۇلتۇزلارنى كۆرىمىز',
  872. 'ياز كېچىلىرىدە بىز بىللە چاقناپ تۇرغان يۇلتۇزلارنى كۆرىمىز',
  873. 'كۈزلۈك قاراڭغۇ چۈشكەندە بىز ئالتۇن رەڭلىك بۇغداي ئېتىزلىرىدىن ھۇزۇرلىنىمىز',
  874. 'كۈزلۈك قاراڭغۇ چۈشكەندە بىز ئالتۇن رەڭلىك بۇغداي ئېتىزلىرىدىن ھۇزۇرلىنىمىز',
  875. 'قىشتا قار ئۇچقۇنلىرى ئۇچۇپ يۈرگەندە، سىز بار بولسىڭىز ئىللىق ھېس قىلىنىدۇ',
  876. 'قىشتا قار ئۇچقۇنلىرى ئۇچۇپ يۈرگەندە، سىز بار بولسىڭىز ئىللىق ھېس قىلىنىدۇ'
  877. ])
  878. .concat(lug,Array(16).fill('*instrumental*'),lug,Array(8).fill('*end*'))
  879.  
  880. ,16):'*end*',
  881.  
  882. // =======================================================
  883. // Output + UI refresh (console meter)
  884. // =======================================================
  885. out = lr =>
  886.     disp
  887.         // Refresh UI roughly once per second
  888.         ? (t / 48e3) * 60 % 1
  889.             ? master(lr)
  890.                 : (
  891.                     left = master(0),
  892.                     right = master(1),
  893.                     thr(
  894.                     `\n
  895.  ══════════════════════
  896. Priscilla's Volume Meter
  897. ══════════════════════ v1.0
  898.  ※ Licensed under CC-BY-SA-4.0 ║ https://creativecommons.org/licenses/by-sa/4.0
  899.                     \n˚₊‧꒰ა ☆彡 Now Playing: ${artist} - ${title} ♪ ☆彡 ໒꒱ ‧₊˚\n₊‧꒰ Time: `
  900.                     + floor(t / 48e3) + '.'
  901.                     + "".padStart(3, (floor(t / 48e3 * 1e3) % 1000)) + ' ・.Bars/Beats/Steps: '
  902.                     + ((r>>16)+1) + " | "
  903.                     + ((r>>14)%4+1) + " | "
  904.                     + ((r>>12)%4+1) + " |"
  905.                     + " ꒱‧₊"
  906.  
  907.                     + `\n\n  𓆩ᥫ᭡𓆪 Samplerate: ${sR}hz ׂׂ°。BPM: ${BPM} ׂׂ°。Key: ${key} \n        ׂׂ°。Tuning System: ${edo}edo ׂׂ°。Standard Tuning: ${tn}hz \n    ・❥・ Genre: ${genre}`
  908.  
  909.                     + '\n\n——— LYRICS ———\n'
  910.                     + "‧꒰ Chinese: " + lyrics_zh + " ꒱‧₊\n"
  911.                     + "‧꒰ Manchu: " + lyrics_mnc + " ꒱‧₊\n"
  912.                     + "‧꒰ English: " + lyrics_en + " ꒱‧₊\n"
  913.                     + "‧꒰ Uyghur: " + lyrics_ug
  914.  
  915.                     + ' ꒱‧₊\n\n——— MASTER ———\n'
  916.                     + renderVUMeter(left, ' L') + renderDBFS(0) + '\n'
  917.                     + dBFSRuler() + '\n'
  918.                     + renderVUMeter(right, ' R') + renderDBFS(1)
  919.                     + '\n\nNEW: Correlation Meter\n'
  920.                     + 'Correlation measures the similarity or phase relationship between two signals,\n'
  921.                     + 'usually the left and right channels of a stereo track,\n'
  922.                     + 'using a meter from -1 (opposite phase) to +1 (identical phase/mono)\n'
  923.                     + "\n" + renderCorrelation(left, right)
  924.                     + "\n"
  925.                     + (r>>19)
  926.                     )
  927.                 )
  928.         // Audio-only mode
  929.     : master(lr),
  930.  
  931. // Stereo output
  932. [out(0), out(1)]
Add Comment
Please, Sign In to add comment