PageSourceSearch

https://notagen.ai/_next/static/chunks/5760.f4616b313643952f.js

js notagen.ai collected 2026-10-05 12:20:56 UTC 5,445 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5760],{45760:(t,e,n)=>{n.d(e,{midiToMusicXml:()=>s});var a=n(48403);let i=[16,12,8,6,4,3,2,1],r={16:["whole",0],12:["half",1],8:["half",0],6:["quarter",1],4:["quarter",0],3:["eighth",1],2:["eighth",0],1:["16th",0]},o={C:0,G:1,D:2,A:3,E:4,B:5,"F#":6,"C#":7,F:-1,Bb:-2,Eb:-3,Ab:-4,Db:-5,Gb:-6,Cb:-7},l=[["C",0],["C",1],["D",0],["D",1],["E",0],["F",0],["F",1],["G",0],["G",1],["A",0],["A",1],["B",0]],c=[["C",0],["D",-1],["D",0],["E",-1],["E",0],["F",0],["G",-1],["G",0],["A",-1],["A",0],["B",-1],["B",0]];function s(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(t){var e,n,a;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{notes:r,ppq:o}=t,l=null!=(e=i.timeSig)?e:t.timeSig,c=null!=(n=i.fifths)?n:t.fifths,[s,u]=l,h=o/4,f=t=>Math.round(t/h),m=Math.round(16*s/u);(!Number.isFinite(m)||m<1)&&(m=16);let g=[],k=[],v=0;for(let t of r){let e=f(t.startTick),n=Math.max(1,f(t.durTick));v=Math.max(v,e+n),((t.staff?1===t.staff:t.midi>=60)?g:k).push({start:e,dur:n,midi:t.midi})}let M=Math.max(1,Math.ceil(v/m)),b=p(d(g),M,m,1,1,c),w=p(d(k),M,m,2,2,c),y="<attributes><divisions>".concat(4,"</divisions>")+"<key><fifths>".concat(c,"</fifths></key>")+"<time><beats>".concat(s,"</beats><beat-type>").concat(u,"</beat-type></time>")+'<staves>2</staves><clef number="1"><sign>G</sign><line>2</line></clef><clef number="2"><sign>F</sign><line>4</line></clef></attributes>',C="<backup><duration>".concat(m,"</duration></backup>"),D="";for(let t=0;t<M;t++)D+='<measure number="'.concat(t+1,'">')+(0===t?y:"")+b[t]+C+w[t]+"</measure>";let T=(null!=(a=i.title)?a:"").replace(/[<>&]/g,"");return'<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.1 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.1">'+(T?"<work><work-title>".concat(T,"</work-title></work>"):"")+'<part-list><score-part id="P1"><part-name>Piano</part-name></score-part></part-list>'+'<part id="P1">'.concat(D,"</part>")+"</score-partwise>"}(function(t){var e,n,i,r,l;let c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=new a.Midi(t),u=s.header.ppq||480,h=[],f=function(t,e){if(!e||e<=0||t.length<=1)return t;let n=t.map(t=>t.notes.length),a=Math.max(...n);return 0===a?t:t.filter((t,i)=>n[i]>=a*e)}(s.tracks,c.minTrackShare),p=function(t){let e=!1,n=t.map(t=>(function(t){let e=(null!=t?t:"").toLowerCase().replace(/[^a-z]/g,"");return"rh"===e||"right"===e||"righthand"===e?1:"lh"===e||"left"===e||"lefthand"===e?2:null})(t.name));for(let a=0;a<t.length;a++)if(0!==t[a].notes.length){if(null===n[a])return null;e=!0}return e?n:null}(f);for(let t=0;t<f.length;t++){let e=null!=(l=null==p?void 0:p[t])?l:void 0;for(let n of f[t].notes)h.push({midi:n.midi,startTick:n.ticks,durTick:n.durationTicks,...e?{staff:e}:{}})}h.sort((t,e)=>t.startTick-e.startTick||t.midi-e.midi);let d=(null==(e=s.header.tempos[0])?void 0:e.bpm)?Math.round(s.header.tempos[0].bpm):120,m=null==(n=s.header.timeSignatures[0])?void 0:n.timeSignature,g=m&&2===m.length?[m[0],m[1]]:[4,4],k=null==(r=s.header.keySignatures)||null==(i=r[0])?void 0:i.key;return{notes:h,ppq:u,bpm:d,timeSig:g,fifths:k&&k in o?o[k]:0,trackCount:s.tracks.length}}(t,e),e)}function u(t){let e=[],n=Math.max(1,Math.round(t));for(;n>0;){var a;let t=null!=(a=i.find(t=>t<=n))?a:1,[o,l]=r[t];e.push({dur:t,type:o,dots:l}),n-=t}return e}function h(t,e,n){return u(t).map(t=>{let{dur:a,type:i,dots:r}=t;return"<note><rest/><duration>".concat(a,"</duration><voice>").concat(e,"</voice><type>").concat(i,"</type>").concat("<dot/>".repeat(r),"<staff>").concat(n,"</staff></note>")}).join("")}function f(t,e,n,a,i,r,o){let s=u(e),h=s.length-1;return s.map((e,s)=>{var u,f;let{dur:p,type:d,dots:m}=e;return u=0!==s||r,f=s!==h||o,t.map((t,e)=>{let r=u||f?"<notations>".concat(u?'<tied type="stop"/>':"").concat(f?'<tied type="start"/>':"","</notations>"):"";return"<note>".concat(e>0?"<chord/>":"").concat(function(t,e){let n=Math.min(127,Math.max(0,Math.round(t))),[a,i]=(e<0?c:l)[(n%12+12)%12],r=Math.floor(n/12)-1;return"<pitch><step>
1".concat(a,"</step>").concat(i?"<alter>".concat(i,"</alter>"):"","<octave>").concat(r,"</octave></pitch>")}(t,i),"<duration>").concat(p,"</duration>").concat((u?'<tie type="stop"/>':"")+(f?'<tie type="start"/>':""),"<voice>").concat(n,"</voice><type>").concat(d,"</type>").concat("<dot/>".repeat(m),"<staff>").concat(a,"</staff>").concat(r,"</note>")}).join("")}).join("")}function p(t,e,n,a,i,r){let o=[],l=0,c=null;for(let s=0;s<e;s++){let e=s*n,u=e+n,p=e,d=[];if(c){let t=Math.min(c.remaining,u-p),e=c.remaining-t>0;d.push(f(c.pitches,t,a,i,r,!0,e)),p+=t,c=e?{pitches:c.pitches,remaining:c.remaining-t}:null}for(;!c&&l<t.length&&t[l].start<u;){let e=t[l],n=Math.max(e.start,p);n>p&&(d.push(h(n-p,a,i)),p=n);let o=u-p,s=Math.min(e.effDur,o),m=e.effDur-s>0;d.push(f(e.pitches,s,a,i,r,!1,m)),p+=s,l++,m&&(c={pitches:e.pitches,remaining:e.effDur-s})}p<u&&d.push(h(u-p,a,i)),o.push(d.join(""))}return o}function d(t){var e,n;let a=new Map;for(let n of t){let t=null!=(e=a.get(n.start))?e:[];t.push(n.midi),a.set(n.start,t)}let i=new Map;for(let e of t)i.set(e.start,Math.max(null!=(n=i.get(e.start))?n:0,e.dur));let r=[...a.keys()].sort((t,e)=>t-e);return r.map((t,e)=>{var n;let o=null!=(n=r[e+1])?n:1/0,l=Math.max(1,Math.min(i.get(t),o-t));return{start:t,effDur:l,pitches:a.get(t).sort((t,e)=>t-e)}})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.