PageSourceSearch

https://wavevisual.com/_next/static/chunks/pages/musical-scale-finder-dbaae4587231f78b.js

js wavevisual.com collected 2026-10-04 13:32:35 UTC 18,110 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1912],{6422:function(e,t,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/musical-scale-finder",function(){return s(55198)}])},92670:function(e,t,s){"use strict";s.d(t,{H:function(){return p}});var a,n=s(52322);s(2784);var i=s(83112),o=s(55351),r=s(70314),l=s.n(r),c=JSON.parse('[{"questionName":"How can I play my audio?","acceptedAnswerText":"After an audio is uploaded, you will see a play button on the top left corner of your screen. Clicking this button will start the audio and the sound wave playing animation."},{"questionName":"What is the export resolution?","acceptedAnswerText":"Images are exported in 300 DPI (dots per inch) to provide the maximum quality for printing. The exact resolution will depend on the canvas size you chose but in general they a width of 12000 pixels or 40 inches."},{"questionName":"Can I resell or use my designs commercially?","acceptedAnswerText":"Once you purchase your design by paying or using a credit, you acquire the right to use that image any way you see fit. This includes any commercial usage including reselling or placing them in other commercial products."}
1,{"questionName":"How can I download?","acceptedAnswerText":"Once completing you design. You can purchase it by going to the Download tab. After the payment, you will presented with download options. You will also receive an email with a link to your design so that you can come back and download it later."},{"questionName":"How does WaveVisual generate audio waveforms?","acceptedAnswerText":"WaveVisual analyses the audio file you upload and create a waveform of bars with various heights that represents the loudness of the audio at any given moment. For example if your audio starts relatively silent and gets louder as it progresses, the sound wave WaveVisual will generate will be a series of bars that transition from shorter to longer."},{"questionName":"Which audio file formats are supported?","acceptedAnswerText":"The following audio file formats are supported by our editor:\\nWAV, MP3, M4A, AIF, AIFF, FLAC, ALAC, OGG"},{"questionName":"How can I save?","acceptedAnswerText":"Designs are automatically saved and current browser location is accordingly updated. You can see the save status of your design at the top of your screen."},{"questionName":"I have a problem or a question","acceptedAnswerText":"The quickest way to contact us would be by using the live chat on our website. We\'ll respond as soon as possible; probably within an hour. We\'ll do our best to help you."},{"questionName":"What does the unlimited subscription include?","acceptedA
1nswerText":"Unlimited designs and digital exports while your subscription is active, within our fair-use limits (see the pricing page for details)."},{"questionName":"Can I continue editing my design after purchasing it?","acceptedAnswerText":"Yes, you can continue editing your design for 3 days after purchasing it. You can also download the design as many times as you want."},{"questionName":"What is the maximum video length I can export?","acceptedAnswerText":"Video exports are limited to a maximum of 60 minutes. This limit applies to the trimmed duration if you\'ve trimmed your audio, or the full audio duration if no trimming is applied. If your audio exceeds 60 minutes, video export is disabled and you can request a limit extension from the download menu. For longer content, you can also trim your audio to the most important segment."}]'),d=s(26140),u=s(9223),m=s(15453);let{siteURL:g}=(null===(a=l()())||void 0===a?void 0:a.publicRuntimeConfig)||{},h=[(0,u._)({src:"/landing/homepage-cover-3-photo-vynil-1-2",width:1200})],p=e=>{var t,s;let{title:a,path:r,type:l,data:p,faq:f,noIndex:y}=e,{description:w,images:x}=e,v=(0,i.Z)();w=w||v.formatMessage({id:"Home.Subtitle"}),(x=x?x.map(e=>e.includes("/img/d")?(0,d.Ww)({src:e,width:1200}):(0,u._)({src:e,width:1200})):[]).length||(x=x.concat(h));let b="article"===l&&p?(0,m.h)(p.publishedAt,null!==(t=p.lastUpdatedAt)&&void 0!==t?t:p.publishedAt):null,_={title:a,description:w,type:b?"article":"website",url:"".concat(g).concat(r),site_name:"WaveVisual",locale:"en_US",images:x.map(e=>({url:e})),...b&&p&&"article"===l?{article:{publishedTime:"".concat(b.datePublished,"T00:00:00.000Z"),modifiedTime:"".concat(b.dateModified,"T00:00:00.000Z"),...p.author?{authors:[String(p.author)]}:{}}}:{}},j=e.canonical||"".concat(g).concat(r);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.PB,{title:a,description:w,additionalMetaTags:[{name:"format-detection",content:"telephone=no"}],languageAlternates:[{href:"".concat(g).concat(r),hrefLang:"en"},{href:"".concat(g).concat(r),hrefLang:"x-default"}],canonical:j,openGraph:_,noindex:y,nofollow:y,twitter:{handle:"wavevisualcom",cardType:"summary_large_image"}}),"article"===l&&p&&!y&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.dX,{url:"".concat(g).concat(r),title:a,...(0,m.h)(p.publishedAt,null!==(s=p.lastUpdatedAt)&&void 0!==s?s:p.publishedAt),authorName:p.author.toString(),images:x,description:w,publisherName:"WaveVisual",publisherLogo:"https://wavevisual.com/wavevisual-logo.png"}),(0,n.jsx)(o.gR,{itemListElements:[{position:1,name:"Home",item:"".concat(g,"/")},{position:2,name:"Blog",item:"".concat(g,"/blog")},{position:3,name:a,item:"".concat(g).concat(r)}]})]}),(0,n.jsx)(o.Sv,{type:"Organization",name:"WaveVisual",image:"https://wavevisual.com/wavevisual-logo.png",url:"https://wavevisual.com",sameAs:["https://www.instagram.com/wavevisualcom/","https://www.pinterest.de/wavevisualcom","https://x.com/wavevisualcom","https://twitter.com/wavevisualcom"]}),"home"===l&&(0,n.jsx)(o.Mg,{mainEntity:f||c}),"article"===l&&f&&f.length>0&&!y&&(0,n.jsx)(o.Mg,{mainEntity:f}),"product"===l&&f&&f.length>0&&(0,n.jsx)(o.Mg,{mainEntity:f}),"home"===l&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.Gz,{name:a,type:"WebApplication",operatingSystem:"Web",applicationCategory:"DesignApplication",price:"0",priceCurrency:"USD",image:x[0],description:w||"WaveVisual lets you turn any audio file or Spotify song into personalized sound wave art, posters, or video. Customize colors, shapes, and text, then export high-resolution files.",url:j,featureList:["Upload audio files (MP3, WAV, FLAC, M4A, AIFF, OGG)","Search and import from Spotify","Customizable waveform colors and shapes","Add custom text and QR codes","Export high-resolution PNG, SVG, PDF, or JPEG","Video export (1080p MP4 at 60fps / transparent MOV)","Poster print ordering"],aggregateRating:{ratingValue:"4.8",ratingCount:"400",bestRating:"5"}}),g?(0,n.jsx)(o.uJ,{url:g,logo:"https://wavevisual.com/wavevisual-logo.png"}):null]}),(0,n.jsx)(o.VL,{name:a,id:j,image:x[0]}),"product"===e.type&&(0,n.jsx)(o.Qb,{productName:a,images:x,description:w,brand:"WaveVisual",reviews:e.reviews,aggregateRating:e.aggregateRating,offers:[{price:e.price.amount,priceCurrency:e.price.currencyCode,priceValidUntil:"".concat(new Date().getFullYear()+1,"-12-31"),itemCondition:"https://schema.org/NewCondition",availability:"https://schema.org/InStock",seller:{name:"WaveVisual"},hasMerchantReturnPolicy:{type:"MerchantReturnPolicy",refundType:"FullRefund",returnPolicyCategory:"https://schema.org/FullRefund",restockingFee:"0",returnShippingFeesAmount:"0",returnShippingFeesCurrency:"USD",returnInDays:e.returnInDays}}]})]})}},18228:function(e,t,s){"use strict";s.d(t,{l:function(){return p}});var a=s(52322);
1s(2784);var n=s(79130),i=s.n(n),o=s(7355),r=s(76349),l=s(97976),c=s(90583),d=s(66176),u=s.n(d),m=s(50249),g=s(20324);let h=i().bind(u()),p=e=>{let{children:t,fullWidth:s=!1,className:n,innerClassName:i,lean:d,name:u}=e;return(0,o.aC)(),(0,m.u)(u),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:h("page","relative pb-0 bg-white",n),children:[(0,a.jsx)(r.N,{}),s?t:(0,a.jsx)("main",{className:(0,g.m6)(h("mb-10 ".concat(c.kt),{"mt-4":d},i)),children:t})]}),(0,a.jsx)(l.D,{})]})}},10615:function(e,t,s){"use strict";s.d(t,{l:function(){return a.l}});var a=s(18228)},96284:function(e,t,s){"use strict";s.d(t,{i:function(){return o}});var a=s(52322);s(2784);var n=s(12524),i=s.n(n);let o=e=>{let{className:t}=e;return(0,a.jsx)("hr",{className:i()("my-4 text-gray-500",t)})}},55198:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return v}});var a,n,i=s(52322),o=s(2784),r=s(39097),l=s.n(r),c=s(79130),d=s.n(c),u=s(96284),m=s(92670),g=s(10615),h=s(85393),p=s.n(h);(a=n||(n={})).a="a",a.b="b",a.c="c",a.d="d",a.e="e",a.f="f",a.g="g",a.cs="cs",a.ds="ds",a.fs="fs",a.gs="gs",a.as="as";let f={a:"A",b:"B",c:"C",d:"D",e:"E",f:"F",g:"G",cs:"C#",ds:"D#",fs:"F#",gs:"G#",as:"A#"},y={c_major:{notes:["a","b","c","d","e","f","g"],title:"C major",key:"c_major"},c_minor:{notes:["c","d","ds","f","g","gs","as"],title:"C minor",key:"c_minor"},cs_major:{notes:["cs","ds","f","fs","gs","as","c"],title:"C# major",key:"cs_major"},cs_minor:{notes:["cs","ds","e","fs","gs","a","b"],title:"C# minor",key:"cs_minor"},d_major:{notes:["cs","d","e","fs","g","a","b"],title:"D major",key:"d_major"},d_minor:{notes:["d","e","f","g","a","as","c"],title:"D minor",key:"d_minor"},ds_major:{notes:["ds","f","g","gs","as","c","d"],title:"D# major",key:"ds_major"},ds_minor:{notes:["ds","f","fs","gs","as","b","cs"],title:"D# minor",key:"ds_minor"},e_major:{notes:["e","fs","gs","a","b","cs","ds"],title:"E major",key:"e_major"},e_minor:{notes:["e","fs","g","a","b","c","d"],title:"E minor",key:"e_minor"},f_major:{notes:["f","g","a","as","c","d","e"],title:"F major",key:"f_major"},f_minor:{notes:["f","g","gs","as","c","cs","ds"],title:"F minor",key:"f_minor"},fs_major:{notes:["fs","gs","as","b","cs","ds","f"],title:"F# major",key:"fs_major"},fs_minor:{notes:["fs","gs","a","b","cs","d","e"],title:"F# minor",key:"fs_minor"},g_major:{notes:["g","a","b","c","d","e","fs"],title:"G major",key:"g_major"},g_minor:{notes:["g","a","as","c","d","ds","f"],title:"G minor",key:"g_minor"},gs_major:{notes:["gs","as","c","cs","ds","f","g"],title:"G# major",key:"gs_major"},gs_minor:{notes:["gs","as","b","cs","ds","e","fs"],title:"G# minor",key:"gs_minor"},as_major:{notes:["as","c","d","ds","f","g","a"],title:"A# major",key:"as_major"},as_minor:{notes:["as","c","cs","ds","f","fs","gs"],title:"A# minor",key:"as_minor"},a_major:{notes:["a","b","cs","d","e","fs","gs"],title:"A major",key:"a_major"},a_minor:{notes:["a","b","c","d","e","f","g"],title:"A minor",key:"a_minor"},b_major:{notes:["b","cs","ds","e","fs","gs","as"],title:"B major",key:"b_major"},b_minor:{notes:["b","cs","d","e","fs","g","a"],title:"B minor",key:"b_minor"}},w=d().bind(p()),x=e=>{let{note:t,white:s,black:a,toggleNote:n,selected:o,highlighted:r,className:l}=e;return(0,i.jsx)("li",{className:w(t,l,{white:s,black:a,selected:o&&!r,highlighted:r}),onClick:()=>n(t),children:(0,i.jsx)("span",{className:w("note-name",{sharp:a}),children:f[t]})})},v=()=>{let[e,t]=(0,o.useState)([]),[s,a]=(0,o.useState)(),r=s=>{e.includes(s)?t(e.filter(e=>e!==s)):t([...e,s])},c=Object.values(y).filter(t=>!!e.length&&e.every(e=>t.notes.includes(e)));return(0,i.jsxs)(g.l,{name:"MusicalScaleFinderPage",children:[(0,i.jsx)(m.H,{title:"Musical Scale Finder",path:"/musical-scale-finder",description:"Free musical scale finder: pick notes on the keyboard and see matching scales and keys. Handy for producers and students using WaveVisual's music tools.",type:"other"}),(0,i.jsxs)("div",{className:"w-full mx-auto lg:w-1/2",children:[(0,i.jsx)("h1",{className:"inline-flex my-4 text-lg font-bold",children:"Musical Scale Finder"}),(0,i.jsx)("p",{children:"Select the notes you want to find the musical scale and key for. We will automatically filter the results."}),(0,i.jsxs)("p",{className:"mt-2 text-sm text-gray-600",children:["More audio and music ideas: the"," ",(0,i.jsx)(l(),{href:"/blog",className:"text-gray-900 underline",prefetch:!1,children:"WaveVisual blog"}),"."]}),(0,i.jsxs)("ul",{className:w("keys",{highlighted:!!s}),children:[(0,i.jsx)(x,{white:!0,note:n.c,toggleNote:r,selected:e.includes(n.c),highlighted:null==s?void 0:s.notes.includes(n.c)}),(0,i.jsx)(x,{black:!0,note:n.cs,toggleNote:r,selected:e.includes(n.cs),highlighted:null==s?void 0:s.notes.includes(n.cs)}),(0,i.jsx)(x,{white:!0,note:n.d,toggleNote:r,selected:e.includes(n.d),highlighted:null==s?void 0:s.notes.includes(n.d),className:"-ml-4"}),(0,i.jsx)(x,{black:!0,note:n.ds,toggleNote:r,selected:e.includes(n.ds),highlighted:null==s?void 0:s.notes.includes(n.ds)}),(0,i.jsx)(x,{white:!0,note:n.e,toggleNote:r,selected:e.includes(n.e),highlighted:null==s?void 0:s.notes.includes(n.e),
1className:"-ml-4"}),(0,i.jsx)(x,{white:!0,note:n.f,toggleNote:r,selected:e.includes(n.f),highlighted:null==s?void 0:s.notes.includes(n.f)}),(0,i.jsx)(x,{black:!0,note:n.fs,toggleNote:r,selected:e.includes(n.fs),highlighted:null==s?void 0:s.notes.includes(n.fs)}),(0,i.jsx)(x,{white:!0,note:n.g,toggleNote:r,selected:e.includes(n.g),highlighted:null==s?void 0:s.notes.includes(n.g),className:"-ml-4"}),(0,i.jsx)(x,{black:!0,note:n.gs,toggleNote:r,selected:e.includes(n.gs),highlighted:null==s?void 0:s.notes.includes(n.gs)}),(0,i.jsx)(x,{white:!0,note:n.a,toggleNote:r,selected:e.includes(n.a),highlighted:null==s?void 0:s.notes.includes(n.a),className:"-ml-4"}),(0,i.jsx)(x,{black:!0,note:n.as,toggleNote:r,selected:e.includes(n.as),highlighted:null==s?void 0:s.notes.includes(n.as)}),(0,i.jsx)(x,{white:!0,note:n.b,toggleNote:r,selected:e.includes(n.b),highlighted:null==s?void 0:s.notes.includes(n.b),className:"-ml-4"})]}),(0,i.jsxs)("section",{className:"w-full mt-20",children:[(0,i.jsx)(u.i,{}),(0,i.jsx)("h1",{className:"px-2 my-3 text-base font-semibold",children:"Scales with selected notes"}),!e.length&&(0,i.jsx)("p",{className:"px-2 my-3 text-gray-700",children:"Select some notes to find the scales for."}),!c.length&&!!e.length&&(0,i.jsx)("p",{className:"ml-2 text-gray-700",children:"We cannot find a matching scale."}),(0,i.jsx)("ul",{className:"flex flex-col mt-2 space-y-1",children:c.map(t=>{let n=(null==s?void 0:s.key)===t.key;return(0,i.jsxs)("li",{className:"px-4 even:bg-white odd:bg-slate-50 py-2.5 rounded-md grid grid-cols-2 gap-2 grid-rows-2 grid-flow-col",children:[(0,i.jsx)("h2",{className:"font-semibold",children:t.title}),(0,i.jsx)("ul",{className:"flex flex-row text-gray-500",children:t.notes.map(t=>(0,i.jsx)("li",{className:w("mr-2",{"text-sky-600 font-semibold":e.includes(t)}),children:f[t]},t))}),(0,i.jsx)("div",{className:"inline-flex items-center justify-end float-right row-span-2",children:(0,i.jsx)("button",{className:w("highlight-button",{"bg-violet-500 text-white":n,"text-violet-500":!n}),onClick:()=>a(n?void 0:t),children:"highlight notes"})})]},t.title)})})]})]})]})}},15453:function(e,t,s){"use strict";function a(e){if(null==e||""===e)return n(new Date);let t=new Date(String(e));return Number.isNaN(t.getTime())?n(new Date):n(t)}function n(e){let t=e.getFullYear(),s=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(s,"-").concat(a)}function i(e,t){let s=a(e),n=a(null!=t?t:e);return n<s&&(n=s),{datePublished:s,dateModified:n}}s.d(t,{V:function(){return a},h:function(){return i}})},26140:function(e,t,s){"use strict";s.d(t,{Sv:function(){return n},Ww:function(){return i}});var a=s(74304);let n=["beach2","storm","space","night-sky-XGIIg97kC6w","dream","nursery","mountain-sunrise","hydrangea","cotton-candy","stars-in-dark-Q_RBVFFXR","galaxy-4dpAqfTbvKA","looking-up-oMpAz-DN-9I","wave-on-rocks-Z12KkN","london-fog","summer-festival","dusk","cherry-blossom","tiffany-blue","ocean","pastel","vortex","on-cloud-9","angelas-euphoria-spotify","blush","aakashs-red-hots","moving-stars-1m8E6OTLzRk","snowy-mountain-3LXPDYb83MY","aqua","dunes-48bRZya67Po","bahamas","cathleens-dreamland","fantasy","summer-camp","sunrise","sunset","sweet-pea","highlighter","tulip","7up","firecracker","beach","rosebush","forest","grass","hawaiin-punch","periwinkle","lilac","meadow","metallic","natalias-pink-lemonade","rheas-sunny-lake-day","netherlands","citrus","autumn","peaches","pink-sands","retro","chocolate-strawberries","sky","sunshine","tie-dye"],i=e=>{let{src:t,width:s,quality:n}=e,{frontendVersion:i,isDEV:o}=a.feconfig,[r,l]=t.split("?"),c=new URLSearchParams(l||"");c.append("auto","format"),c.append("fit","max"),s&&c.append("w",s.toString()),n&&c.append("q",n.toString()),i&&c.append("v",i),o&&c.append("sandbox","1");let d=o&&!c.get("sandbox")?"http://127.0.0.1:8081":"https://functions.wavevisual.com";return"".concat(d).concat(r,"?").concat(c.toString())}},9223:function(e,t,s){"use strict";s.d(t,{_:function(){return n}});let a=e=>e.startsWith("/")?e:"/".concat(e),n=e=>{let{src:t,width:s,quality:n}=e,i=new URLSearchParams,o=a(t);
1return s&&i.set("width",s.toString()),n&&i.set("quality",n.toString()),"".concat("https://image-server-proxy.wavevisual.workers.dev","/v3").concat(o,"?").concat(i.toString())}},85393:function(e){e.exports={keys:"MusicalScaleFinder_keys__APdAt",highlighted:"MusicalScaleFinder_highlighted__Y38l8","note-name":"MusicalScaleFinder_note-name__EX7Np",white:"MusicalScaleFinder_white__Ux6un",selected:"MusicalScaleFinder_selected__xE5cy",black:"MusicalScaleFinder_black__Ynte9",sharp:"MusicalScaleFinder_sharp__RsxLX","highlight-button":"MusicalScaleFinder_highlight-button__rviVu"}},66176:function(e){e.exports={page:"page_page__NLmzS",text:"page_text__cjgfs"}},79130:function(e,t){var s;!function(){"use strict";var a={}.hasOwnProperty;function n(){for(var e="",t=0;t<arguments.length;t++){var s=arguments[t];s&&(e=o(e,i.call(this,s)))}return e}function i(e){if("string"==typeof e||"number"==typeof e)return this&&this[e]||e;if("object"!=typeof e)return"";if(Array.isArray(e))return n.apply(this,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var s in e)a.call(e,s)&&e[s]&&(t=o(t,this&&this[s]||s));return t}function o(e,t){return t?e?e+" "+t:e+t:e}e.exports?(n.default=n,e.exports=n):void 0!==(s=(function(){return n}).apply(t,[]))&&(e.exports=s)}()}},function(e){e.O(0,[3365,8127,2602,4396,8638,4358,324,5340,8948,2888,9774,179],function(){return e(e.s=6422)}),_N_E=e.O()}]);

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.