1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8707,3011],{33523:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/soundviz-alternative",function(){return n(3646)}])},3011:function(e,t,n){"use strict";n.d(t,{Qd:function(){return u},UQ:function(){return c},o4:function(){return d},vF:function(){return f}});var a=n(52322),r=n(2784),o=n(16170),i=n(77298),s=n(12524),l=n.n(s);let c=o.fC,u=r.forwardRef((e,t)=>{let{className:n,...r}=e;return(0,a.jsx)(o.ck,{ref:t,className:l()("border-b",n),...r})});u.displayName="AccordionItem";let d=r.forwardRef((e,t)=>{let{className:n,children:r,...s}=e;return(0,a.jsx)(o.h4,{className:"flex",children:(0,a.jsxs)(o.xz,{ref:t,className:l()("flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180",n),...s,children:[r,(0,a.jsx)(i.v4q,{className:"text-muted-foreground h-4 w-4 shrink-0 transition-transform duration-200"})]})})});d.displayName=o.xz.displayName;let f=r.forwardRef((e,t)=>{let{className:n,children:r,...i}=e;return(0,a.jsx)(o.VY,{ref:t,className:"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",...i,children:(0,a.jsx)("div",{className:l()("pb-4 pt-0",n),children:r})})});f.displayName=o.VY.displayName},3646:function(e,t,n){"use strict";n.r(t),n.d(t,{__N_SSG:function(){return A},default:function(){return V}});var a=n(52322),r=n(2784),o=n(39097),i=n.n(o),s=n(96577),l=n.n(s),c=n(76349),u=n(97976),d=n(92670),f=n(62778),m=n(3011),p=n(50249),x=n(3752),h=n(3438),g=n(18997),v=n(9223),w=n(90583);let N="soundviz-alternative",y="landing_soundviz_alternative",b=[{questionName:"Is WaveVisual a SoundViz alternative for sound wave art?",acceptedAnswerText:"Yes. WaveVisual makes sound wave art from an uploaded file, a Spotify song, or a song search. SoundViz is aimed at print and digital stills from an upload or a recording.",answerCount:1,name:"Is WaveVisual a SoundViz alternative for sound wave art?"},{questionName:"Can I use a Spotify song?",acceptedAnswerText:"WaveVisual accepts an uploaded file and a Spotify song. A Spotify song can become a still. Video export needs an uploaded file, not a Spotify song.",answerCount:1,name:"Can I use a Spotify song?"},{questionName:"What can I download?",acceptedAnswerText:"Stills export as PNG, JPG, PDF, or SVG. MP4, GIF, WebM, and MOV export only from an uploaded file.",answerCount:1,name:"What can I download?"}],j=[{src:"landing/homepage-cover-3-photo-vynil-1-2.png",alt:"Framed sound wave art beside a vinyl record"},{src:"landing/3-frames-1-2.png",alt:"Three framed sound wave prints"},{src:"landing/new-order-blue-monday.png",alt:"Blue Monday sound wave poster"},{src:"landing/circle-qr-carousel.png",alt:"Circular sound wave art with a QR code"},{src:"landing/living-room-example-1-2.jpg",alt:"Sound wave art hanging in a living room"},{src:"elvis-presley-jailhouse-rock.png",alt:"Jailhouse Rock sound wave poster"}],S=[{name:"Soundwave Art",href:"https://soundwaveart.com/",fact:"Prints from $29.99. Design it yourself or have them design it. Optional playback in their app, with a 3-minute limit when the print is playable."},{name:"SoundViz",href:"https://soundviz.com/",fact:"Upload or record. Linear or radial. Print or digital download. Prints from about $30."},{name:"Voiceful Art",href:"https://voicefulart.com/",fact:"A song, a voice recording, or an uploaded clip. Posters, framed prints, canvas, or a digital download."},{name:"Soundwavepic",href:"https://www.soundwavepic.com/",fact:"Upload audio, then order a poster, canvas, wood, or tin, or download a PDF or SVG. Their app can play a print ordered from them."},{name:"TuneArt",href:"https://tuneart.app/tools/soundwave-art",fact:"Draws the wave in the browser and offers a watermark-free PNG. They do not sell the print."}],_=[{href:"/",label:"Sound wave art on the homepage"},{href:"/sound-wave-video",label:"Sound wave video"}],k=e=>{let{trackingId:t,isMobile:n,className:r=""}=e;return(0,a.jsx)(i(),{href:"/editor",prefetch:null!=n&&n,className:"inline-flex min-h-11 items-center justify-center px-8 py-3 text-lg font-semibold text-white rounded-lg from-cyan-500 to-blue-500 bg-gradient-to-r focus:outline-none hover:from-cyan-400 hover:to-blue-400 ".concat(r),"aria-label":"Start Designing",onClick:()=>(0,h.KW)(t),children:"Start Designing"})},V=()=>{(0,p.u)("SoundVizAlternativePage");let e=(0,x.d)(),[t,n]=(0,r.useState)(!0),o=(0,r.useRef)(!1),s=(0,r.useCallback)(e=>{e&&(0,g.Kz)("landing_faq_expand",{landing_page:N,faq_item:e})},[]),h=(0,r.useCallback)(()=>{o.current||(o.current=!0,(0,g.Kz)("landing_comparison_interact",{landing_page:N}))},[]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(d.H,{title:"Sound wave art â SoundViz alternative | WaveVisual",path:"/soundviz-alternative",description:"Sound wave art from an uploaded file or a Spotify song. A SoundViz alternative, compared with Soundwave Art and other print shops. Video export needs an uploaded file, not a Spotify song.",faq:b,type:"home"}),(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("div",{className:"overlay"}),(0,a.jsx)(c.N,{}),(0,a.jsxs)("section",{className:"flex flex-col gap-8 py-4 md:py-12 lg:flex-row lg:items-center lg:gap-14 ".concat(w.kt),children:[(0,a.jsxs)("div",{className:"w-full lg:w-1/2",children:[(0,a.jsx)("span",{className:"inline-flex px-3 py-1 mb-4 text-xs font-semibold tracking-wide text-white uppercase rounded-full bg-violet-600",children:"SoundViz alternative"}),(0,a.jsxs)("h1",{className:"mb-4 text-3xl font-extrabold leading-tight text-white sm:text-4xl lg:text-5xl",children:["Sound wave art",(0,a.jsx)("br",{}),(0,a.jsx)("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-cyan-400 to-blue-400",children:"from a file or a Spotify song"})]}),(0,a.jsx)("p",{className:"mb-4 text-base leading-relaxed text-white/80 md:text-lg max-w-xl",children:"WaveVisual is a SoundViz alternative for still sound wave art. WaveVisual accepts an uploaded file and a Spotify song. Video export needs an uploaded file, not a Spotify song."}),(0,a.jsx)(k,{trackingId:"".concat(y,"_hero_cta"),isMobile:e})]}),(0,a.jsx)("ul",{id:"examples",className:"grid w-full grid-cols-2 gap-3 lg:w-1/2",children:j.map((e,t)=>{let{src:n,alt:r}=e;return(0,a.jsx)("li",{className:"overflow-hidden rounded-xl bg-black shadow-lg shadow-black/30",children:(0,a.jsx)(l(),{loader:v._,src:n,alt:r,width:480,height:320,className:"h-36 w-full object-cover sm:h-44",sizes:"(max-width: 1024px) 50vw, 25vw",priority:0===t})},n)})})]}),(0,a.jsx)("section",{className:"py-16 bg-gray-50",id:"comparison",onPointerDown:h,children:(0,a.jsxs)("div",{className:"container px-4 mx-auto md:px-8 max-w-3xl",children:[(0,a.jsx)("h2",{className:"mb-2 text-2xl font-bold text-center text-gray-900 md:text-3xl",children:"Sound wave art shops"}),(0,a.jsx)("p",{className:"mb-10 text-center text-gray-500",children:"Soundwave Art leads this list. Each name links to that shop. Facts are from their public pages."}),(0,a.jsx)("ul",{className:"flex flex-col gap-4",children:S.map(e=>{let{name:t,href:n,fact:r}=e;return(0,a.jsxs)("li",{className:"rounded-xl border border-gray-200 bg-white p-5",children:[(0,a.jsx)("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:"inline-flex min-h-11 items-center text-base font-semibold text-violet-700 underline",children:t}),(0,a.jsx)("p",{className:"text-sm leading-6 text-gray-600",children:r})]},t)})}),(0,a.jsx)("p",{className:"mt-6 text-center text-xs text-gray-500",children:"Soundwave Art, SoundViz, Voiceful Art, Soundwavepic, and TuneArt are trademarks of their owners."})]})}),(0,a.jsx)("section",{className:"py-16 bg-white",id:"faq",children:(0,a.jsxs)("div",{className:"container px-4 mx-auto md:px-8 max-w-3xl",children:[(0,a.jsx)("h2",{className:"mb-8 text-2xl font-bold text-center text-gray-900 md:text-3xl",children:"Frequently asked questions"}),(0,a.jsx)(m.UQ,{type:"single",collapsible:!0,className:"w-full",onValueChange:s,children:b.map((e,t)=>(0,a.jsxs)(m.Qd,{value:"faq-".concat(t),children:[(0,a.jsx)(m.o4,{className:"text-left text-base font-medium text-gray-900 min-h-11",children:e.name}),(0,a.jsx)(m.vF,{className:"text-sm leading-6 text-gray-600",children:e.acceptedA
1nswerText})]},e.name))})]})}),(0,a.jsx)(f.t,{checked:t,setChecked:n}),(0,a.jsx)("section",{className:"py-20 bg-gray-900 text-white",children:(0,a.jsxs)("div",{className:"text-center ".concat(w.kt),children:[(0,a.jsx)("h2",{className:"mb-3 text-2xl font-bold md:text-3xl",children:"Design the still, then export"}),(0,a.jsx)("p",{className:"mb-8 text-gray-400 max-w-md mx-auto",children:"Open the editor with your file or a Spotify song. Pay when you download."}),(0,a.jsx)(k,{trackingId:"".concat(y,"_final_cta"),isMobile:e,className:"shadow-lg shadow-blue-500/25"})]})}),(0,a.jsx)("section",{className:"py-12 bg-white border-t border-gray-100",children:(0,a.jsxs)("div",{className:"container px-4 mx-auto md:px-8 max-w-3xl",children:[(0,a.jsx)("h2",{className:"mb-4 text-center text-sm font-medium text-gray-900",children:"Related pages"}),(0,a.jsx)("ul",{className:"flex flex-col gap-3 sm:flex-row sm:justify-center",children:_.map(e=>{let{href:t,label:n}=e;return(0,a.jsx)("li",{children:(0,a.jsx)(i(),{href:t,prefetch:!1,className:"inline-flex min-h-11 items-center rounded-lg border border-gray-200 px-4 text-sm font-medium text-violet-700 hover:bg-violet-50",children:n})},t)})})]})})]}),(0,a.jsx)(u.D,{})]})};V.displayName="SoundVizAlternativePage";var A=!0},45947:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a._}});var a=n(9223)},17998:function(e,t,n){"use strict";function a(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e?.(a),!1===n||!a.defaultPrevented)return t?.(a)}}n.d(t,{M:function(){return a}})},62656:function(e,t,n){"use strict";n.d(t,{F:function(){return o},e:function(){return i}});var a=n(2784);function r(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function o(...e){return t=>{let n=!1,a=e.map(e=>{let a=r(e,t);return n||"function"!=typeof a||(n=!0),a});if(n)return()=>{for(let t=0;t<a.length;t++){let n=a[t];"function"==typeof n?n():r(e[t],null)}}}}function i(...e){return a.useCallback(o(...e),e)}},92211:function(e,t,n){"use strict";n.d(t,{b:function(){return o}});var a=n(2784),r=n(52322);function o(e,t=[]){let n=[],o=()=>{let t=n.map(e=>a.createContext(e));return function(n){let r=n?.[e]||t;return a.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return o.scopeName=e,[function(t,o){let i=a.createContext(o),s=n.length;n=[...n,o];let l=t=>{let{scope:n,children:o,...l}=t,c=n?.[e]?.[s]||i,u=a.useMemo(()=>l,Object.values(l));return(0,r.jsx)(c.Provider,{value:u,children:o})};return l.displayName=t+"Provider",[l,function(n,r){let l=r?.[e]?.[s]||i,c=a.useContext(l);if(c)return c;if(void 0!==o)return o;throw Error(`\`${n}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:a})=>{let r=n(e)[`__scope${a}`];return{...t,...r}},{});return a.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}(o,...t)]}},59241:function(e,t,n){"use strict";n.d(t,{gm:function(){return o}});var a=n(2784);n(52322);var r=a.createContext(void 0);function o(e){let t=a.useContext(r);return e||t||"ltr"}},23372:function(e,t,n){"use strict";n.d(t,{M:function(){return l}});var a,r=n(2784),o=n(61644),i=(a||(a=n.t(r,2)))["useId".toString()]||(()=>void 0),s=0;function l(e){let[t,n]=r.useState(i());return(0,o.b)(()=>{e||n(e=>e??String(s++))},[e]),e||(t?`radix-${t}`:"")}},79616:function(e,t,n){"use strict";n.d(t,{z:function(){return i}});var a=n(2784),r=n(62656),o=n(61644),i=e=>{let t,n;let{present:i,children:l}=e,c=function(e){var t,n;let[r,i]=a.useState(),l=a.useRef({}),c=a.useRef(e),u=a.useRef("none"),[d,f]=(t=e?"mounted":"unmounted",n={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},a.useReducer((e,t)=>n[e][t]??e,t));return a.useEffect(()=>{let e=s(l.current);u.current="mounted"===d?e:"none"},[d]),(0,o.b)(()=>{let t=l.current,n=c.current;if(n!==e){let a=u.current,r=s(t);e?f("MOUNT"):"none"===r||t?.display==="none"?f("UNMOUNT"):n&&a!==r?f("ANIMATION_OUT"):f("UNMOUNT"),c.current=e}},[e,f]),(0,o.b)(()=>
1{if(r){let e;let t=r.ownerDocument.defaultView??window,n=n=>{let a=s(l.current).includes(n.animationName);if(n.target===r&&a&&(f("ANIMATION_END"),!c.current)){let n=r.style.animationFillMode;r.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===r.style.animationFillMode&&(r.style.animationFillMode=n)})}},a=e=>{e.target===r&&(u.current=s(l.current))};return r.addEventListener("animationstart",a),r.addEventListener("animationcancel",n),r.addEventListener("animationend",n),()=>{t.clearTimeout(e),r.removeEventListener("animationstart",a),r.removeEventListener("animationcancel",n),r.removeEventListener("animationend",n)}}f("ANIMATION_END")},[r,f]),{isPresent:["mounted","unmountSuspended"].includes(d),ref:a.useCallback(e=>{e&&(l.current=getComputedStyle(e)),i(e)},[])}}(i),u="function"==typeof l?l({present:c.isPresent}):a.Children.only(l),d=(0,r.e)(c.ref,(t=Object.getOwnPropertyDescriptor(u.props,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning?u.ref:(t=Object.getOwnPropertyDescriptor(u,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning?u.props.ref:u.props.ref||u.ref);return"function"==typeof l||c.isPresent?a.cloneElement(u,{ref:d}):null};function s(e){return e?.animationName||"none"}i.displayName="Presence"},27757:function(e,t,n){"use strict";n.d(t,{W:function(){return r}});var a=n(2784);function r(e){let t=a.useRef(e);return a.useEffect(()=>{t.current=e}),a.useMemo(()=>(...e)=>t.current?.(...e),[])}},87695:function(e,t,n){"use strict";n.d(t,{T:function(){return o}});var a=n(2784),r=n(27757);function o({prop:e,defaultProp:t,onChange:n=()=>{}}){let[o,i]=function({defaultProp:e,onChange:t}){let n=a.useState(e),[o]=n,i=a.useRef(o),s=(0,r.W)(t);return a.useEffect(()=>{i.current!==o&&(s(o),i.current=o)},[o,i,s]),n}({defaultProp:t,onChange:n}),s=void 0!==e,l=s?e:o,c=(0,r.W)(n);return[l,a.useCallback(t=>{if(s){let n="function"==typeof t?t(e):t;n!==e&&c(n)}else i(t)},[s,e,i,c])]}},61644:function(e,t,n){"use strict";n.d(t,{b:function(){return r}});var a=n(2784),r=globalThis?.document?a.useLayoutEffect:()=>{}}},function(e){e.O(0,[3365,8127,2602,4396,5647,8638,4358,6577,9037,6170,2876,5340,8948,227,2778,2888,9774,179],function(){return e(e.s=33523)}),_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.