{"id":1383,"date":"2025-08-08T18:16:50","date_gmt":"2025-08-08T18:16:50","guid":{"rendered":"https:\/\/makingmusic4ever.com\/?page_id=1383"},"modified":"2025-08-08T18:16:55","modified_gmt":"2025-08-08T18:16:55","slug":"guitar-tuner-2","status":"publish","type":"page","link":"https:\/\/makingmusic4ever.com\/index.php\/guitar-tuner-2\/","title":{"rendered":"Guitar Tuner"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Guitar Tuner<\/title>\n    <!-- Carrega o Tailwind CSS para estiliza\u00e7\u00e3o -->\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;700&#038;display=swap\" rel=\"stylesheet\">\n    <style>\n        \/* Estilos personalizados para o aplicativo *\/\n        body {\n            font-family: 'Inter', sans-serif;\n            -webkit-font-smoothing: antialiased;\n            -moz-osx-font-smoothing: grayscale;\n        }\n        \/* Estilo para o medidor anal\u00f3gico *\/\n        .meter-needle {\n            transition: transform 0.2s ease-in-out;\n            transform-origin: bottom center;\n        }\n        .note-dot {\n            transition: background-color 0.2s ease-in-out;\n        }\n    <\/style>\n<\/head>\n<body data-rsssl=1 class=\"bg-gray-900 text-white flex items-center justify-center min-h-screen p-4\">\n\n    <div id=\"tuner-app\" class=\"w-full max-w-sm mx-auto bg-gray-800 rounded-2xl shadow-2xl p-6 space-y-6\">\n        \n        <!-- Cabe\u00e7alho -->\n        <div class=\"text-center\">\n            <h1 class=\"text-2xl font-bold text-cyan-400\">Guitar Tuner<\/h1>\n            <p id=\"status-message\" class=\"text-gray-400 mt-1\">Click &#8220;Start Tuner&#8221; to begin<\/p>\n        <\/div>\n\n        <!-- Medidor Anal\u00f3gico -->\n        <div class=\"relative w-full aspect-video flex flex-col items-center justify-end\">\n            <!-- Fundo do medidor -->\n            <div class=\"absolute top-0 w-full h-full bg-gray-900\/50 rounded-xl overflow-hidden\">\n                <div class=\"w-full h-1\/2 border-t-4 border-l-4 border-r-4 border-gray-700 rounded-t-xl\" style=\"border-bottom-left-radius: 50% 100%; border-bottom-right-radius: 50% 100%;\"><\/div>\n            <\/div>\n            \n            <!-- Agulha do medidor -->\n            <div id=\"meter-needle\" class=\"meter-needle absolute bottom-1\/2 w-1 h-1\/2 bg-cyan-400 rounded-t-full\" style=\"transform: rotate(0deg);\"><\/div>\n            <div class=\"absolute bottom-1\/2 w-4 h-4 bg-gray-800 rounded-full border-2 border-cyan-400\"><\/div>\n\n            <!-- Display da Nota -->\n            <div class=\"relative z-10 text-center\">\n                <p id=\"note-name\" class=\"text-7xl font-bold tracking-tighter\">&#8212;<\/p>\n                <p id=\"tuning-status\" class=\"text-xl font-medium text-gray-400\">Waiting&#8230;<\/p>\n            <\/div>\n        <\/div>\n\n        <!-- Informa\u00e7\u00f5es de Frequ\u00eancia -->\n        <div class=\"text-center bg-gray-900\/50 p-3 rounded-lg\">\n            <p class=\"text-sm text-gray-400\">Detected Frequency<\/p>\n            <p id=\"frequency-display\" class=\"text-2xl font-mono\">0.0 Hz<\/p>\n        <\/div>\n\n        <!-- Bot\u00e3o de Controle -->\n        <button id=\"start-button\" class=\"w-full bg-cyan-500 hover:bg-cyan-600 text-gray-900 font-bold py-3 px-4 rounded-lg transition-all duration-200 shadow-lg\">\n            Start Tuner\n        <\/button>\n\n        <!-- Notas de Afina\u00e7\u00e3o Padr\u00e3o -->\n        <div class=\"pt-4 border-t border-gray-700\">\n            <h3 class=\"text-center text-sm font-semibold text-gray-400 mb-3\">Standard Tuning (EADGBe)<\/h3>\n            <div id=\"standard-notes\" class=\"grid grid-cols-6 gap-2 text-center\">\n                <!-- As notas ser\u00e3o injetadas aqui pelo JavaScript -->\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        \/\/ --- ELEMENTOS DA INTERFACE ---\n        const startButton = document.getElementById('start-button');\n        const statusMessage = document.getElementById('status-message');\n        const noteNameDisplay = document.getElementById('note-name');\n        const tuningStatusDisplay = document.getElementById('tuning-status');\n        const frequencyDisplay = document.getElementById('frequency-display');\n        const meterNeedle = document.getElementById('meter-needle');\n        const standardNotesContainer = document.getElementById('standard-notes');\n        const tunerApp = document.getElementById('tuner-app');\n\n        \/\/ --- CONFIGURA\u00c7\u00d5ES DE \u00c1UDIO E AFINA\u00c7\u00c3O ---\n        let audioContext;\n        let analyser;\n        let source;\n        let isTunerOn = false;\n        const bufferLength = 2048; \/\/ Tamanho do buffer para a an\u00e1lise de frequ\u00eancia\n        const dataArray = new Float32Array(bufferLength);\n\n        \/\/ Notas da afina\u00e7\u00e3o padr\u00e3o do viol\u00e3o (EADGBe)\n        const standardTuning = [\n            { name: 'E2', freq: 82.41 },\n            { name: 'A2', freq: 110.00 },\n            { name: 'D3', freq: 146.83 },\n            { name: 'G3', freq: 196.00 },\n            { name: 'B3', freq: 246.94 },\n            { name: 'E4', freq: 329.63 }\n        ];\n\n        \/\/ Nomes de todas as notas para refer\u00eancia\n        const noteNames = [\"C\", \"C#\", \"D\", \"D#\", \"E\", \"F\", \"F#\", \"G\", \"G#\", \"A\", \"A#\", \"B\"];\n        \n        \/\/ --- L\u00d3GICA PRINCIPAL ---\n\n        \/\/ Preenche a se\u00e7\u00e3o de notas padr\u00e3o na UI\n        function populateStandardNotes() {\n            standardTuning.forEach(note => {\n                const noteEl = document.createElement('div');\n                noteEl.className = 'p-2 bg-gray-700 rounded-md';\n                noteEl.id = `note-${note.name}`;\n                const nameEl = document.createElement('p');\n                nameEl.className = 'font-bold text-lg';\n                nameEl.textContent = note.name.slice(0, -1); \/\/ Remove o n\u00famero da oitava\n                const freqEl = document.createElement('p');\n                freqEl.className = 'text-xs text-gray-400';\n                freqEl.textContent = `${note.freq.toFixed(1)}Hz`;\n                noteEl.appendChild(nameEl);\n                noteEl.appendChild(freqEl);\n                standardNotesContainer.appendChild(noteEl);\n            });\n        }\n\n        \/\/ Event listener para o bot\u00e3o de iniciar\/parar\n        startButton.addEventListener('click', () => {\n            if (!isTunerOn) {\n                startTuner();\n            } else {\n                stopTuner();\n            }\n        });\n\n        \/\/ Fun\u00e7\u00e3o para iniciar o afinador\n        async function startTuner() {\n            try {\n                \/\/ Pede permiss\u00e3o e obt\u00e9m o stream de \u00e1udio do microfone\n                const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n                audioContext = new (window.AudioContext || window.webkitAudioContext)();\n                \n                \/\/ Configura o analisador de \u00e1udio\n                analyser = audioContext.createAnalyser();\n                analyser.fftSize = bufferLength * 2; \/\/ FFT com mais resolu\u00e7\u00e3o\n                source = audioContext.createMediaStreamSource(stream);\n                source.connect(analyser);\n\n                isTunerOn = true;\n                startButton.textContent = 'Stop Tuner';\n                startButton.classList.remove('bg-cyan-500', 'hover:bg-cyan-600');\n                startButton.classList.add('bg-red-500', 'hover:bg-red-600');\n                statusMessage.textContent = 'Listening...';\n\n                \/\/ Inicia o loop de detec\u00e7\u00e3o\n                detectPitch();\n            } catch (err) {\n                console.error('Error accessing microphone:', err);\n                statusMessage.textContent = 'Error! Allow microphone access.';\n                alert('Unable to access the microphone. Please check your browser permissions.');\n            }\n        }\n\n        \/\/ Fun\u00e7\u00e3o para parar o afinador\n        function stopTuner() {\n            if (source) {\n                source.mediaStream.getTracks().forEach(track => track.stop());\n            }\n            if (audioContext) {\n                audioContext.close();\n            }\n            isTunerOn = false;\n            startButton.textContent = 'Start Tuner';\n            startButton.classList.remove('bg-red-500', 'hover:bg-red-600');\n            startButton.classList.add('bg-cyan-500', 'hover:bg-cyan-600');\n            resetUI();\n        }\n\n        \/\/ Loop principal de detec\u00e7\u00e3o de frequ\u00eancia\n        function detectPitch() {\n            if (!isTunerOn) return;\n\n            analyser.getFloatTimeDomainData(dataArray);\n            const frequency = getFundamentalFrequency(dataArray, audioContext.sampleRate);\n\n            if (frequency) {\n                const { note, cents, targetNote } = findClosestNote(frequency);\n                updateUI(note, cents, frequency, targetNote);\n            }\n\n            \/\/ Continua o loop\n            requestAnimationFrame(detectPitch);\n        }\n        \n        \/\/ Algoritmo para encontrar a frequ\u00eancia fundamental (Auto-correla\u00e7\u00e3o)\n        function getFundamentalFrequency(buffer, sampleRate) {\n            \/\/ Encontra o valor m\u00ednimo para normalizar o buffer\n            let minVal = Infinity;\n            for (let i = 0; i < bufferLength; i++) {\n                if (buffer[i] < minVal) minVal = buffer[i];\n            }\n\n            \/\/ Calcula a auto-correla\u00e7\u00e3o\n            const rms = Math.sqrt(buffer.reduce((sum, val) => sum + val * val, 0) \/ bufferLength);\n            if (rms < 0.01) return null; \/\/ N\u00e3o processa se o sinal for muito fraco\n\n            const correlation = new Float32Array(bufferLength).fill(0);\n            for (let lag = 0; lag < bufferLength; lag++) {\n                for (let i = 0; i < bufferLength - lag; i++) {\n                    correlation[lag] += buffer[i] * buffer[i + lag];\n                }\n            }\n\n            \/\/ Encontra o primeiro pico ap\u00f3s o \"zero crossing\"\n            let d = 0;\n            while (correlation[d] > correlation[d + 1]) d++;\n            \n            let maxVal = -1, maxPos = -1;\n            for (let i = d; i < bufferLength; i++) {\n                if (correlation[i] > maxVal) {\n                    maxVal = correlation[i];\n                    maxPos = i;\n                }\n            }\n\n            \/\/ Interpola\u00e7\u00e3o parab\u00f3lica para maior precis\u00e3o\n            if (maxPos > 0 && maxPos < bufferLength - 1) {\n                const y1 = correlation[maxPos - 1];\n                const y2 = correlation[maxPos];\n                const y3 = correlation[maxPos + 1];\n                const a = (y1 + y3 - 2 * y2) \/ 2;\n                const b = (y3 - y1) \/ 2;\n                if (a) maxPos -= b \/ (2 * a);\n            }\n\n            return sampleRate \/ maxPos;\n        }\n\n        \/\/ Encontra a nota mais pr\u00f3xima da frequ\u00eancia detectada\n        function findClosestNote(frequency) {\n            const noteNumber = 12 * (Math.log(frequency \/ 440) \/ Math.log(2));\n            const roundedNoteNumber = Math.round(noteNumber);\n            const targetFrequency = 440 * Math.pow(2, roundedNoteNumber \/ 12);\n            \n            const cents = 1200 * Math.log2(frequency \/ targetFrequency);\n            const noteIndex = (roundedNoteNumber + 69) % 12;\n            const octave = Math.floor((roundedNoteNumber + 69) \/ 12);\n            const note = noteNames[noteIndex] + octave;\n\n            \/\/ Encontra a nota de afina\u00e7\u00e3o padr\u00e3o mais pr\u00f3xima\n            let closestStandardNote = null;\n            let minDistance = Infinity;\n            standardTuning.forEach(stdNote => {\n                const distance = Math.abs(stdNote.freq - frequency);\n                if (distance < minDistance) {\n                    minDistance = distance;\n                    closestStandardNote = stdNote;\n                }\n            });\n\n            return { note, cents, targetNote: closestStandardNote };\n        }\n\n        \/\/ Atualiza a interface do usu\u00e1rio com os novos dados\n        function updateUI(note, cents, frequency, targetNote) {\n            noteNameDisplay.textContent = note.slice(0, -1); \/\/ Mostra s\u00f3 a letra da nota\n            frequencyDisplay.textContent = `${frequency.toFixed(1)} Hz`;\n\n            \/\/ Atualiza a agulha do medidor (-45 a +45 graus)\n            const rotation = Math.max(-45, Math.min(45, cents * 0.9));\n            meterNeedle.style.transform = `rotate(${rotation}deg)`;\n\n            \/\/ Atualiza o status (Tune Up, Tune Down, In Tune) e as cores\n            if (Math.abs(cents) < 5) {\n                tuningStatusDisplay.textContent = 'In Tune!';\n                tuningStatusDisplay.style.color = '#34d399'; \/\/ Verde\n                meterNeedle.style.backgroundColor = '#34d399';\n                tunerApp.style.boxShadow = '0 0 20px rgba(52, 211, 153, 0.5)';\n            } else if (cents > 0) {\n                tuningStatusDisplay.textContent = 'Tune Down \u2193';\n                tuningStatusDisplay.style.color = '#fb923c'; \/\/ Laranja\n                meterNeedle.style.backgroundColor = '#fb923c';\n                tunerApp.style.boxShadow = '0 0 20px rgba(251, 146, 60, 0.4)';\n            } else {\n                tuningStatusDisplay.textContent = 'Tune Up \u2191';\n                tuningStatusDisplay.style.color = '#fb923c'; \/\/ Laranja\n                meterNeedle.style.backgroundColor = '#fb923c';\n                tunerApp.style.boxShadow = '0 0 20px rgba(251, 146, 60, 0.4)';\n            }\n            \n            \/\/ Destaca a nota padr\u00e3o que est\u00e1 sendo afinada\n            document.querySelectorAll('#standard-notes > div').forEach(el => {\n                el.classList.remove('bg-cyan-500');\n                el.classList.add('bg-gray-700');\n            });\n            if (targetNote) {\n                const targetEl = document.getElementById(`note-${targetNote.name}`);\n                if (targetEl) {\n                    targetEl.classList.add('bg-cyan-500');\n                    targetEl.classList.remove('bg-gray-700');\n                }\n            }\n        }\n\n        \/\/ Reseta a UI para o estado inicial\n        function resetUI() {\n            statusMessage.textContent = 'Click \"Start Tuner\" to begin';\n            noteNameDisplay.textContent = '--';\n            tuningStatusDisplay.textContent = 'Waiting...';\n            tuningStatusDisplay.style.color = '#9ca3af'; \/\/ Cinza\n            frequencyDisplay.textContent = '0.0 Hz';\n            meterNeedle.style.transform = 'rotate(0deg)';\n            meterNeedle.style.backgroundColor = '#22d3ee'; \/\/ Cyan (cor padr\u00e3o)\n            tunerApp.style.boxShadow = 'none';\n            document.querySelectorAll('#standard-notes > div').forEach(el => {\n                el.classList.remove('bg-cyan-500');\n                el.classList.add('bg-gray-700');\n            });\n        }\n\n        \/\/ Inicializa o aplicativo\n        populateStandardNotes();\n\n    <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Guitar Tuner Guitar Tuner Click &#8220;Start Tuner&#8221; to begin &#8212; Waiting&#8230; Detected Frequency 0.0 Hz Start Tuner Standard Tuning (EADGBe)<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1383","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Guitar Tuner - Making Music 4 Ever<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/makingmusic4ever.com\/index.php\/guitar-tuner-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Guitar Tuner - Making Music 4 Ever\" \/>\n<meta property=\"og:description\" content=\"Guitar Tuner Guitar Tuner Click &#8220;Start Tuner&#8221; to begin &#8212; Waiting&#8230; Detected Frequency 0.0 Hz Start Tuner Standard Tuning (EADGBe)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/makingmusic4ever.com\/index.php\/guitar-tuner-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Making Music 4 Ever\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-08T18:16:55+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/makingmusic4ever.com\\\/index.php\\\/guitar-tuner-2\\\/\",\"url\":\"https:\\\/\\\/makingmusic4ever.com\\\/index.php\\\/guitar-tuner-2\\\/\",\"name\":\"Guitar Tuner - Making Music 4 Ever\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/makingmusic4ever.com\\\/#website\"},\"datePublished\":\"2025-08-08T18:16:50+00:00\",\"dateModified\":\"2025-08-08T18:16:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/makingmusic4ever.com\\\/index.php\\\/guitar-tuner-2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/makingmusic4ever.com\\\/index.php\\\/guitar-tuner-2\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/makingmusic4ever.com\\\/index.php\\\/guitar-tuner-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/makingmusic4ever.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Guitar Tuner\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/makingmusic4ever.com\\\/#website\",\"url\":\"https:\\\/\\\/makingmusic4ever.com\\\/\",\"name\":\"Making Music 4 Ever\",\"description\":\"Music for everyone\",\"publisher\":{\"@id\":\"https:\\\/\\\/makingmusic4ever.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/makingmusic4ever.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/makingmusic4ever.com\\\/#organization\",\"name\":\"Making Music 4 Ever\",\"url\":\"https:\\\/\\\/makingmusic4ever.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/makingmusic4ever.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/makingmusic4ever.com\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/cropped-MakinMusicLogo.aiRed_-2.jpg?fit=248%2C248&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/makingmusic4ever.com\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/cropped-MakinMusicLogo.aiRed_-2.jpg?fit=248%2C248&ssl=1\",\"width\":248,\"height\":248,\"caption\":\"Making Music 4 Ever\"},\"image\":{\"@id\":\"https:\\\/\\\/makingmusic4ever.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Guitar Tuner - Making Music 4 Ever","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/makingmusic4ever.com\/index.php\/guitar-tuner-2\/","og_locale":"en_US","og_type":"article","og_title":"Guitar Tuner - Making Music 4 Ever","og_description":"Guitar Tuner Guitar Tuner Click &#8220;Start Tuner&#8221; to begin &#8212; Waiting&#8230; Detected Frequency 0.0 Hz Start Tuner Standard Tuning (EADGBe)","og_url":"https:\/\/makingmusic4ever.com\/index.php\/guitar-tuner-2\/","og_site_name":"Making Music 4 Ever","article_modified_time":"2025-08-08T18:16:55+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/makingmusic4ever.com\/index.php\/guitar-tuner-2\/","url":"https:\/\/makingmusic4ever.com\/index.php\/guitar-tuner-2\/","name":"Guitar Tuner - Making Music 4 Ever","isPartOf":{"@id":"https:\/\/makingmusic4ever.com\/#website"},"datePublished":"2025-08-08T18:16:50+00:00","dateModified":"2025-08-08T18:16:55+00:00","breadcrumb":{"@id":"https:\/\/makingmusic4ever.com\/index.php\/guitar-tuner-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/makingmusic4ever.com\/index.php\/guitar-tuner-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/makingmusic4ever.com\/index.php\/guitar-tuner-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/makingmusic4ever.com\/"},{"@type":"ListItem","position":2,"name":"Guitar Tuner"}]},{"@type":"WebSite","@id":"https:\/\/makingmusic4ever.com\/#website","url":"https:\/\/makingmusic4ever.com\/","name":"Making Music 4 Ever","description":"Music for everyone","publisher":{"@id":"https:\/\/makingmusic4ever.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/makingmusic4ever.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/makingmusic4ever.com\/#organization","name":"Making Music 4 Ever","url":"https:\/\/makingmusic4ever.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/makingmusic4ever.com\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/makingmusic4ever.com\/wp-content\/uploads\/2019\/04\/cropped-MakinMusicLogo.aiRed_-2.jpg?fit=248%2C248&ssl=1","contentUrl":"https:\/\/i0.wp.com\/makingmusic4ever.com\/wp-content\/uploads\/2019\/04\/cropped-MakinMusicLogo.aiRed_-2.jpg?fit=248%2C248&ssl=1","width":248,"height":248,"caption":"Making Music 4 Ever"},"image":{"@id":"https:\/\/makingmusic4ever.com\/#\/schema\/logo\/image\/"}}]}},"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PamHgp-mj","jetpack-related-posts":[{"id":1369,"url":"https:\/\/makingmusic4ever.com\/index.php\/guitar-tuner\/","url_meta":{"origin":1383,"position":0},"title":"Guitar Tuner","author":"editor","date":"August 8, 2025","format":false,"excerpt":"Guitar Tuner \ud83c\udfb8 Auto-detect string Low E (82.41 Hz) A (110 Hz) D (146.83 Hz) G (196 Hz) B (246.94 Hz) High E (329.63 Hz) Start Stop \u2014 Hz Idle","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1373,"url":"https:\/\/makingmusic4ever.com\/index.php\/metronome\/","url_meta":{"origin":1383,"position":1},"title":"Metronome","author":"editor","date":"August 8, 2025","format":false,"excerpt":"Interactive Metronome Metronome 120 BPM Tap Tempo Time Signature 4\/4 3\/4 2\/4 6\/8 5\/4 7\/8 Subdivision Quarter (\u2669) Eighth (\u266a) Sixteenth (\u266c) Triplet (\u2669\u00b3) Start","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1387,"url":"https:\/\/makingmusic4ever.com\/index.php\/sheet-music\/","url_meta":{"origin":1383,"position":2},"title":"Sheet Music","author":"editor","date":"August 11, 2025","format":false,"excerpt":"Find sheet music with arrangements for various instruments. Search by composition and then check the available arrangements for several instruments, then click the respective instrument button. Search your Song Arrangement In-Page Search Search in this page: Press Enter to find next. All my Loving (Beatles) cLARINET & Guitar Violin &\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"studio with musica instruments and sheet music","src":"https:\/\/i0.wp.com\/makingmusic4ever.com\/wp-content\/uploads\/2026\/06\/Musical_instruments_on_table_202606090832.jpeg?fit=1200%2C670&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/makingmusic4ever.com\/wp-content\/uploads\/2026\/06\/Musical_instruments_on_table_202606090832.jpeg?fit=1200%2C670&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/makingmusic4ever.com\/wp-content\/uploads\/2026\/06\/Musical_instruments_on_table_202606090832.jpeg?fit=1200%2C670&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/makingmusic4ever.com\/wp-content\/uploads\/2026\/06\/Musical_instruments_on_table_202606090832.jpeg?fit=1200%2C670&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/makingmusic4ever.com\/wp-content\/uploads\/2026\/06\/Musical_instruments_on_table_202606090832.jpeg?fit=1200%2C670&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1509,"url":"https:\/\/makingmusic4ever.com\/index.php\/chord-finder\/","url_meta":{"origin":1383,"position":3},"title":"Chord Finder","author":"editor","date":"August 26, 2025","format":false,"excerpt":"Piano Chords Piano Chord Visualizer Chord Visualizer Enter a chord (e.g., C, gm7, CM7, F4(6), A\/c#) and see it on the piano. Draw Chord Color Legend","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/makingmusic4ever.com\/index.php\/wp-json\/wp\/v2\/pages\/1383","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/makingmusic4ever.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/makingmusic4ever.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/makingmusic4ever.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/makingmusic4ever.com\/index.php\/wp-json\/wp\/v2\/comments?post=1383"}],"version-history":[{"count":1,"href":"https:\/\/makingmusic4ever.com\/index.php\/wp-json\/wp\/v2\/pages\/1383\/revisions"}],"predecessor-version":[{"id":1384,"href":"https:\/\/makingmusic4ever.com\/index.php\/wp-json\/wp\/v2\/pages\/1383\/revisions\/1384"}],"wp:attachment":[{"href":"https:\/\/makingmusic4ever.com\/index.php\/wp-json\/wp\/v2\/media?parent=1383"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}