{"id":4310,"date":"2026-07-17T22:46:24","date_gmt":"2026-07-17T20:46:24","guid":{"rendered":"https:\/\/stereodaily.com\/?page_id=4310"},"modified":"2026-07-18T08:22:04","modified_gmt":"2026-07-18T06:22:04","slug":"midi-generator","status":"publish","type":"page","link":"https:\/\/stereodaily.com\/he\/midi-generator\/","title":{"rendered":"JSON to MIDI Generator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4310\" class=\"elementor elementor-4310\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8551e8d e-flex e-con-boxed e-con e-parent\" data-id=\"8551e8d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c6977da elementor-widget elementor-widget-html\" data-id=\"c6977da\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Tailwind CDN & Custom Typography -->\r\n<script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\r\n<!-- Load the ToneJS MIDI library safely from a reliable CDN -->\r\n<script src=\"https:\/\/unpkg.com\/@tonejs\/midi@2.0.28\/build\/Midi.js\"><\/script>\r\n\r\n<style>\r\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;700;900&family=Playfair+Display:ital,wght@0,700;0,900;1,700&display=swap');\r\n    \r\n    .font-masthead { font-family: 'Playfair Display', serif; }\r\n    .font-body { font-family: 'Inter', sans-serif; }\r\n    .font-headline { font-family: 'Inter', sans-serif; }\r\n\r\n    \/* Custom Animation for Logo Marquee *\/\r\n    @keyframes scroll {\r\n        0% { transform: translateX(0); }\r\n        100% { transform: translateX(-50%); }\r\n    }\r\n    .animate-marquee {\r\n        display: flex;\r\n        width: 200%;\r\n        animation: scroll 30s linear infinite;\r\n    }\r\n    .animate-marquee:hover {\r\n        animation-play-state: paused;\r\n    }\r\n\r\n    .glass-card {\r\n        background: rgba(255, 255, 255, 0.8);\r\n        backdrop-filter: blur(10px);\r\n        transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);\r\n    }\r\n    .glass-card:hover {\r\n        transform: translateY(-8px);\r\n        box-shadow: 0 20px 40px rgba(0,0,0,0.08);\r\n    }\r\n<\/style>\r\n\r\n<div class=\"max-w-[1200px] mx-auto bg-white border-x border-gray-100 font-sans pb-12 shadow-sm overflow-hidden\">\r\n    \r\n    <!-- Hero \/ Headline Section -->\r\n    <div class=\"relative px-6 py-24 md:py-32 border-b border-gray-100 text-center bg-[radial-gradient(#e5e7eb_1px,transparent_1px)] [background-size:20px_20px]\">\r\n        <h6 class=\"font-body text-xs font-bold uppercase tracking-[0.4em] text-gray-400 mb-8\">Hooktheory Toolset<\/h6>\r\n        <h1 class=\"font-masthead text-6xl md:text-8xl font-black tracking-tighter text-black mb-10 leading-[0.9]\">\r\n            Hooktheory <br> to MIDI.\r\n        <\/h1>\r\n        <div class=\"max-w-3xl mx-auto\">\r\n            <p class=\"font-body text-xl md:text-2xl text-gray-800 leading-relaxed font-light\">\r\n                Instant clipboard compilation. Convert structural JSON formatting into production-ready MIDI sequences completely inside your local browser.\r\n            <\/p>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Partner \/ Engine Marquee -->\r\n    <div class=\"py-12 border-b border-gray-100 bg-gray-50 overflow-hidden relative\">\r\n        <div class=\"absolute inset-y-0 left-0 w-20 bg-gradient-to-r from-gray-50 to-transparent z-10\"><\/div>\r\n        <div class=\"absolute inset-y-0 right-0 w-20 bg-gradient-to-l from-gray-50 to-transparent z-10\"><\/div>\r\n        <div class=\"animate-marquee whitespace-nowrap items-center space-x-12 md:space-x-24\">\r\n            <span class=\"font-headline text-2xl font-black text-gray-300 uppercase tracking-tighter\">Ableton Live<\/span>\r\n            <span class=\"font-headline text-2xl font-black text-gray-300 uppercase tracking-tighter\">Logic Pro<\/span>\r\n            <span class=\"font-headline text-2xl font-black text-gray-300 uppercase tracking-tighter\">FL Studio<\/span>\r\n            <span class=\"font-headline text-2xl font-black text-gray-300 uppercase tracking-tighter\">Cubase<\/span>\r\n            <span class=\"font-headline text-2xl font-black text-gray-300 uppercase tracking-tighter\">Pro Tools<\/span>\r\n            <span class=\"font-headline text-2xl font-black text-gray-300 uppercase tracking-tighter\">Studio One<\/span>\r\n            <span class=\"font-headline text-2xl font-black text-gray-300 uppercase tracking-tighter\">Ableton Live<\/span>\r\n            <span class=\"font-headline text-2xl font-black text-gray-300 uppercase tracking-tighter\">Logic Pro<\/span>\r\n            <span class=\"font-headline text-2xl font-black text-gray-300 uppercase tracking-tighter\">FL Studio<\/span>\r\n            <span class=\"font-headline text-2xl font-black text-gray-300 uppercase tracking-tighter\">Cubase<\/span>\r\n            <span class=\"font-headline text-2xl font-black text-gray-300 uppercase tracking-tighter\">Pro Tools<\/span>\r\n            <span class=\"font-headline text-2xl font-black text-gray-300 uppercase tracking-tighter\">Studio One<\/span>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Main Workspace Setup -->\r\n    <div class=\"grid grid-cols-1 md:grid-cols-2 border-b border-gray-100\">\r\n        <!-- Input Panel -->\r\n        <div class=\"p-8 md:p-16 flex flex-col justify-center border-b md:border-b-0 md:border-r border-gray-100\">\r\n            <h2 class=\"font-masthead text-4xl md:text-5xl font-bold mb-6 italic\">Data Input<\/h2>\r\n            <p class=\"font-body text-base text-gray-600 leading-relaxed mb-6\">\r\n                Paste the copied Hooktheory raw clipboard data directly into the fields window below. The processor automatically reads structural node layouts.\r\n            <\/p>\r\n            \r\n            <textarea id=\"jsonInput\" placeholder=\"Paste Hooktheory JSON array payload here...\" class=\"w-full h-48 p-4 border border-gray-200 rounded-none bg-gray-50 font-mono text-xs text-gray-700 focus:outline-none focus:border-black transition-all resize-none\"><\/textarea>\r\n            \r\n            <button onclick=\"convertToMidi()\" class=\"mt-6 bg-black text-white px-8 py-4 font-body text-xs font-bold uppercase tracking-widest hover:bg-gray-800 transition-all text-center\">\r\n                Compile & Download MIDI\r\n            <\/button>\r\n\r\n            <!-- Status Window Element -->\r\n            <div id=\"status\" class=\"mt-4 p-4 font-body text-sm font-medium hidden\"><\/div>\r\n        <\/div>\r\n        \r\n        <!-- Instructional Panel -->\r\n        <div class=\"bg-gray-50 p-8 md:p-16 flex flex-col justify-center\">\r\n            <h3 class=\"font-masthead text-3xl font-bold mb-8 italic\">Processing Rules<\/h3>\r\n            <ul class=\"space-y-6\">\r\n                <li class=\"flex items-start\">\r\n                    <span class=\"font-masthead text-2xl font-bold mr-6 text-black\">01<\/span>\r\n                    <div>\r\n                        <h4 class=\"font-headline text-base font-bold mb-1\">Modern Tick Parsing<\/h4>\r\n                        <p class=\"font-body text-gray-500 text-xs leading-relaxed\">Reads relative startTick and durationTicks mappings natively from Hooktheory clipboard structures.<\/p>\r\n                    <\/div>\r\n                <\/li>\r\n                <li class=\"flex items-start\">\r\n                    <span class=\"font-masthead text-2xl font-bold mr-6 text-black\">02<\/span>\r\n                    <div>\r\n                        <h4 class=\"font-headline text-base font-bold mb-1\">Scale Pitch Mappings<\/h4>\r\n                        <p class=\"font-body text-gray-500 text-xs leading-relaxed\">Converts relative degrees into exact scale interval offsets mapped around root Tonic C3.<\/p>\r\n                    <\/div>\r\n                <\/li>\r\n                <li class=\"flex items-start\">\r\n                    <span class=\"font-masthead text-2xl font-bold mr-6 text-black\">03<\/span>\r\n                    <div>\r\n                        <h4 class=\"font-headline text-base font-bold mb-1\">Triad Compiling<\/h4>\r\n                        <p class=\"font-body text-gray-500 text-xs leading-relaxed\">Constructs standard minor triad frameworks dynamically based on numerical root parameter indices.<\/p>\r\n                    <\/div>\r\n                <\/li>\r\n                <li class=\"flex items-start\">\r\n                    <span class=\"font-masthead text-2xl font-bold mr-6 text-black\">04<\/span>\r\n                    <div>\r\n                        <h4 class=\"font-headline text-base font-bold mb-1\">Local Browser Sandboxing<\/h4>\r\n                        <p class=\"font-body text-gray-500 text-xs leading-relaxed\">Zero external network transmission. All generation processes execute safely in RAM memory layers.<\/p>\r\n                    <\/div>\r\n                <\/li>\r\n            <\/ul>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Dynamic Architectural Features Matrix -->\r\n    <div class=\"px-6 py-20 bg-black text-white\">\r\n        <div class=\"text-center mb-16\">\r\n            <h6 class=\"font-body text-xs font-bold uppercase tracking-[0.4em] text-gray-500 mb-4\">Precision Grid Matrix<\/h6>\r\n            <h2 class=\"font-masthead text-4xl md:text-6xl font-bold italic text-white\">Engine Specifications.<\/h2>\r\n        <\/div>\r\n\r\n        <div class=\"grid grid-cols-1 md:grid-cols-2 gap-8 max-w-5xl mx-auto\">\r\n            <!-- Parameter Block A -->\r\n            <div class=\"border border-white\/20 p-10 flex flex-col items-center text-center\">\r\n                <div class=\"font-masthead text-6xl font-bold mb-4 text-white\">480<\/div>\r\n                <h4 class=\"font-headline text-sm font-bold uppercase tracking-widest mb-4 text-white\">PPQ Resolution Mapping<\/h4>\r\n                <p class=\"font-body text-gray-400 text-xs leading-relaxed max-w-sm\">\r\n                    Translates modern tick resolutions directly into standardized structural Pulses Per Quarter note parameters.\r\n                <\/p>\r\n            <\/div>\r\n            <!-- Parameter Block B -->\r\n            <div class=\"border border-white\/20 p-10 flex flex-col items-center text-center\">\r\n                <div class=\"font-masthead text-6xl font-bold mb-4 text-white\">C3<\/div>\r\n                <h4 class=\"font-headline text-sm font-bold uppercase tracking-widest mb-4 text-white\">Root Tuning Centering<\/h4>\r\n                <p class=\"font-body text-gray-400 text-xs leading-relaxed max-w-sm\">\r\n                    Establishes baseline pitch mapping operations around MIDI index 48 to ensure strict composition compatibility.\r\n                <\/p>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Signature Brand Footer Alignment -->\r\n    <div class=\"px-6 pt-20 pb-16 text-center border-t border-gray-50 bg-white\">\r\n        <div class=\"inline-block relative\">\r\n            <p class=\"font-masthead text-5xl md:text-7xl italic font-black text-black leading-none\"><a href=\"https:\/\/stereodaily.com\/he\/what-is-stereo-daily-inside-the-modern-music-journalism-platform\/\">Stereo Daily<\/a> <\/p>\r\n            <div class=\"h-px w-full bg-black mt-4 scale-x-50 origin-center opacity-20\"><\/div>\r\n            <p class=\"font-body text-[10px] uppercase tracking-[0.6em] text-gray-400 mt-8\">A Global Architecture for the Independent Artist<\/p>\r\n        <\/div>\r\n    <\/div>\r\n\r\n<\/div>\r\n\r\n<!-- Core Script Logic Layer -->\r\n<script>\r\n    function convertToMidi() {\r\n        const input = document.getElementById('jsonInput').value.trim();\r\n        const statusDiv = document.getElementById('status');\r\n        \r\n        statusDiv.style.display = 'none';\r\n        statusDiv.className = 'mt-4 p-4 font-body text-sm font-medium ';\r\n\r\n        if (!input) {\r\n            showStatus('Please paste JSON data first.', 'bg-red-50 text-red-800 border border-red-100');\r\n            return;\r\n        }\r\n\r\n        try {\r\n            const data = JSON.parse(input);\r\n            \r\n            let notesList = [];\r\n            let chordsList = [];\r\n            const isModern = \"modern\" in data;\r\n\r\n            if (isModern) {\r\n                notesList = data.modern.payload.notes || [];\r\n                chordsList = data.modern.payload.chords || [];\r\n            } else {\r\n                notesList = data.notes || [];\r\n                chordsList = data.chords || [];\r\n            }\r\n\r\n            if (notesList.length === 0 && chordsList.length === 0) {\r\n                showStatus('Error: No valid notes or chords found in the JSON structural format.', 'bg-red-50 text-red-800 border border-red-100');\r\n                return;\r\n            }\r\n\r\n            const tonicMidi = 48;\r\n            const scaleIntervals = [0, 2, 3, 5, 7, 8, 10]; \r\n            const scaleMap = {\"1\": 0, \"2\": 2, \"3\": 3, \"4\": 5, \"5\": 7, \"6\": 8, \"b6\": 8, \"7\": 10, \"b7\": 10};\r\n\r\n            const midi = new Midi();\r\n            const track = midi.addTrack();\r\n\r\n            \/\/ Notes parsing logic sequence\r\n            notesList.forEach(note => {\r\n                if (note.isRest) return;\r\n                \r\n                const interval = scaleMap[note.sd] !== undefined ? scaleMap[note.sd] : 0;\r\n                const midiNote = tonicMidi + 12 + interval + (note.octave * 12);\r\n                \r\n                let startTime, durationTime;\r\n                if (isModern && note.startTick !== undefined) {\r\n                    startTime = note.startTick \/ 480;\r\n                    durationTime = note.durationTicks \/ 480;\r\n                } else {\r\n                    startTime = note.beat - 1;\r\n                    durationTime = note.duration;\r\n                }\r\n\r\n                track.addNote({\r\n                    midi: midiNote,\r\n                    time: startTime,\r\n                    duration: durationTime,\r\n                    velocity: 0.5\r\n                });\r\n            });\r\n\r\n            \/\/ Chords parsing logic sequence\r\n            chordsList.forEach(chord => {\r\n                if (chord.isRest) return;\r\n                \r\n                const rootStep = chord.root - 1;\r\n                const rootMidi = tonicMidi + scaleIntervals[rootStep % 7] + (Math.floor(rootStep \/ 7) * 12);\r\n                const chordNotes = [rootMidi, rootMidi + 3, rootMidi + 7];\r\n                \r\n                let startTime, durationTime;\r\n                if (isModern && chord.startTick !== undefined) {\r\n                    startTime = chord.startTick \/ 480;\r\n                    durationTime = chord.durationTicks \/ 480;\r\n                } else {\r\n                    startTime = chord.beat - 1;\r\n                    durationTime = chord.duration;\r\n                }\r\n\r\n                chordNotes.forEach(midiNote => {\r\n                    track.addNote({\r\n                        midi: midiNote,\r\n                        time: startTime,\r\n                        duration: durationTime,\r\n                        velocity: 0.5\r\n                    });\r\n                });\r\n            });\r\n\r\n            const midiArray = midi.toArray();\r\n            const blob = new Blob([midiArray], { type: \"audio\/midi\" });\r\n            const url = URL.createObjectURL(blob);\r\n            \r\n            const a = document.createElement(\"a\");\r\n            a.href = url;\r\n            a.download = \"hooktheory_output.mid\";\r\n            document.body.appendChild(a);\r\n            a.click();\r\n            \r\n            document.body.removeChild(a);\r\n            URL.revokeObjectURL(url);\r\n            \r\n            showStatus('MIDI file compiled and downloaded successfully!', 'bg-green-50 text-green-800 border border-green-100');\r\n\r\n        } catch (err) {\r\n            showStatus('Invalid JSON data format. Check structural content.', 'bg-red-50 text-red-800 border border-red-100');\r\n            console.error(err);\r\n        }\r\n    }\r\n\r\n    function showStatus(text, classes) {\r\n        const statusDiv = document.getElementById('status');\r\n        statusDiv.innerText = text;\r\n        statusDiv.className = 'mt-4 p-4 font-body text-sm font-medium ' + classes;\r\n        statusDiv.style.display = 'block';\r\n    }\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Hooktheory Toolset Hooktheory to MIDI. Instant clipboard compilation. Convert structural JSON formatting into production-ready MIDI sequences completely inside your local browser. Ableton Live Logic Pro FL Studio Cubase Pro Tools Studio One Ableton Live Logic Pro FL Studio Cubase Pro Tools Studio One Data Input Paste the copied Hooktheory raw clipboard data directly into the [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-4310","page","type-page","status-publish","hentry"],"blocksy_meta":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u05de\u05d7\u05d5\u05dc\u05dc JSON \u05dc-MIDI - \u05e1\u05d8\u05e8\u05d9\u05d0\u05d5 \u05d9\u05d5\u05de\u05d9<\/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:\/\/stereodaily.com\/he\/wp-json\/wp\/v2\/pages\/4310\/\" \/>\n<meta property=\"og:locale\" content=\"he_IL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u05de\u05d7\u05d5\u05dc\u05dc JSON \u05dc-MIDI - \u05e1\u05d8\u05e8\u05d9\u05d0\u05d5 \u05d9\u05d5\u05de\u05d9\" \/>\n<meta property=\"og:description\" content=\"Hooktheory \u05e2\u05e8\u05db\u05ea \u05db\u05dc\u05d9\u05dd Hooktheory \u05dc-MIDI. \u05e7\u05d5\u05de\u05e4\u05d9\u05dc\u05e6\u05d9\u05d4 \u05de\u05d9\u05d9\u05d3\u05d9\u05ea \u05e9\u05dc \u05dc\u05d5\u05d7. \u05d4\u05de\u05e8 \u05e2\u05d9\u05e6\u05d5\u05d1 JSON \u05de\u05d1\u05e0\u05d9 \u05dc\u05e8\u05e6\u05e4\u05d9 MIDI \u05de\u05d5\u05db\u05e0\u05d9\u05dd \u05dc\u05d9\u05d9\u05e6\u05d5\u05e8 \u05dc\u05d7\u05dc\u05d5\u05d8\u05d9\u05df \u05d1\u05ea\u05d5\u05da \u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05d4\u05de\u05e7\u05d5\u05de\u05d9 \u05e9\u05dc\u05da. Ableton Live Logic Pro FL Studio Cubase Pro Tools Studio One Ableton Live Logic Pro FL Studio Cubase Pro Tools Studio One \u05e7\u05dc\u05d8 \u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05d4\u05d3\u05d1\u05e7 \u05d0\u05ea \u05e0\u05ea\u05d5\u05e0\u05d9 \u05d4\u05dc\u05d5\u05d7 \u05d4\u05d2\u05d5\u05dc\u05de\u05d9\u05d9\u05dd \u05d4\u05de\u05d5\u05e2\u05ea\u05e7\u05d9\u05dd \u05e9\u05dc Hooktheory \u05d9\u05e9\u05d9\u05e8\u05d5\u05ea \u05dc\u05ea\u05d5\u05da [\" \/>\n<meta property=\"og:url\" content=\"https:\/\/stereodaily.com\/he\/midi-generator\/\" \/>\n<meta property=\"og:site_name\" content=\"Stereo Daily\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/stereodaily\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-18T06:22:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/stereodaily.com\/wp-content\/uploads\/2025\/12\/Stereo-Daily-Logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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:\\\/\\\/stereodaily.com\\\/he\\\/midi-generator\\\/\",\"url\":\"https:\\\/\\\/stereodaily.com\\\/he\\\/midi-generator\\\/\",\"name\":\"JSON to MIDI Generator - Stereo Daily\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/stereodaily.com\\\/he\\\/#website\"},\"datePublished\":\"2026-07-17T20:46:24+00:00\",\"dateModified\":\"2026-07-18T06:22:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/stereodaily.com\\\/he\\\/midi-generator\\\/#breadcrumb\"},\"inLanguage\":\"he-IL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/stereodaily.com\\\/he\\\/midi-generator\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/stereodaily.com\\\/he\\\/midi-generator\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/stereodaily.com\\\/he\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JSON to MIDI Generator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/stereodaily.com\\\/he\\\/#website\",\"url\":\"https:\\\/\\\/stereodaily.com\\\/he\\\/\",\"name\":\"Stereo Daily\",\"description\":\"Your Global Music News Since 2012\",\"publisher\":{\"@id\":\"https:\\\/\\\/stereodaily.com\\\/he\\\/#organization\"},\"alternateName\":\"StereoDaily\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/stereodaily.com\\\/he\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"he-IL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/stereodaily.com\\\/he\\\/#organization\",\"name\":\"Stereo Daily\",\"alternateName\":\"StereoDaily\",\"url\":\"https:\\\/\\\/stereodaily.com\\\/he\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"he-IL\",\"@id\":\"https:\\\/\\\/stereodaily.com\\\/he\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/stereodaily.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Stereo-Daily-Site-Map.png\",\"contentUrl\":\"https:\\\/\\\/stereodaily.com\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Stereo-Daily-Site-Map.png\",\"width\":512,\"height\":512,\"caption\":\"Stereo Daily\"},\"image\":{\"@id\":\"https:\\\/\\\/stereodaily.com\\\/he\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/stereodaily\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u05de\u05d7\u05d5\u05dc\u05dc JSON \u05dc-MIDI - \u05e1\u05d8\u05e8\u05d9\u05d0\u05d5 \u05d9\u05d5\u05de\u05d9","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:\/\/stereodaily.com\/he\/wp-json\/wp\/v2\/pages\/4310\/","og_locale":"he_IL","og_type":"article","og_title":"\u05de\u05d7\u05d5\u05dc\u05dc JSON \u05dc-MIDI - \u05e1\u05d8\u05e8\u05d9\u05d0\u05d5 \u05d9\u05d5\u05de\u05d9","og_description":"Hooktheory \u05e2\u05e8\u05db\u05ea \u05db\u05dc\u05d9\u05dd Hooktheory \u05dc-MIDI. \u05e7\u05d5\u05de\u05e4\u05d9\u05dc\u05e6\u05d9\u05d4 \u05de\u05d9\u05d9\u05d3\u05d9\u05ea \u05e9\u05dc \u05dc\u05d5\u05d7. \u05d4\u05de\u05e8 \u05e2\u05d9\u05e6\u05d5\u05d1 JSON \u05de\u05d1\u05e0\u05d9 \u05dc\u05e8\u05e6\u05e4\u05d9 MIDI \u05de\u05d5\u05db\u05e0\u05d9\u05dd \u05dc\u05d9\u05d9\u05e6\u05d5\u05e8 \u05dc\u05d7\u05dc\u05d5\u05d8\u05d9\u05df \u05d1\u05ea\u05d5\u05da \u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05d4\u05de\u05e7\u05d5\u05de\u05d9 \u05e9\u05dc\u05da. Ableton Live Logic Pro FL Studio Cubase Pro Tools Studio One Ableton Live Logic Pro FL Studio Cubase Pro Tools Studio One \u05e7\u05dc\u05d8 \u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05d4\u05d3\u05d1\u05e7 \u05d0\u05ea \u05e0\u05ea\u05d5\u05e0\u05d9 \u05d4\u05dc\u05d5\u05d7 \u05d4\u05d2\u05d5\u05dc\u05de\u05d9\u05d9\u05dd \u05d4\u05de\u05d5\u05e2\u05ea\u05e7\u05d9\u05dd \u05e9\u05dc Hooktheory \u05d9\u05e9\u05d9\u05e8\u05d5\u05ea \u05dc\u05ea\u05d5\u05da [","og_url":"https:\/\/stereodaily.com\/he\/midi-generator\/","og_site_name":"Stereo Daily","article_publisher":"https:\/\/www.facebook.com\/stereodaily\/","article_modified_time":"2026-07-18T06:22:04+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/stereodaily.com\/wp-content\/uploads\/2025\/12\/Stereo-Daily-Logo.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/stereodaily.com\/he\/midi-generator\/","url":"https:\/\/stereodaily.com\/he\/midi-generator\/","name":"JSON to MIDI Generator - Stereo Daily","isPartOf":{"@id":"https:\/\/stereodaily.com\/he\/#website"},"datePublished":"2026-07-17T20:46:24+00:00","dateModified":"2026-07-18T06:22:04+00:00","breadcrumb":{"@id":"https:\/\/stereodaily.com\/he\/midi-generator\/#breadcrumb"},"inLanguage":"he-IL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/stereodaily.com\/he\/midi-generator\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/stereodaily.com\/he\/midi-generator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/stereodaily.com\/he\/"},{"@type":"ListItem","position":2,"name":"JSON to MIDI Generator"}]},{"@type":"WebSite","@id":"https:\/\/stereodaily.com\/he\/#website","url":"https:\/\/stereodaily.com\/he\/","name":"Stereo Daily","description":"Your Global Music News Since 2012","publisher":{"@id":"https:\/\/stereodaily.com\/he\/#organization"},"alternateName":"StereoDaily","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/stereodaily.com\/he\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"he-IL"},{"@type":"Organization","@id":"https:\/\/stereodaily.com\/he\/#organization","name":"Stereo Daily","alternateName":"StereoDaily","url":"https:\/\/stereodaily.com\/he\/","logo":{"@type":"ImageObject","inLanguage":"he-IL","@id":"https:\/\/stereodaily.com\/he\/#\/schema\/logo\/image\/","url":"https:\/\/stereodaily.com\/wp-content\/uploads\/2025\/12\/Stereo-Daily-Site-Map.png","contentUrl":"https:\/\/stereodaily.com\/wp-content\/uploads\/2025\/12\/Stereo-Daily-Site-Map.png","width":512,"height":512,"caption":"Stereo Daily"},"image":{"@id":"https:\/\/stereodaily.com\/he\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/stereodaily\/"]}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/stereodaily.com\/wp-json\/wp\/v2\/pages\/4310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/stereodaily.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/stereodaily.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/stereodaily.com\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/stereodaily.com\/wp-json\/wp\/v2\/comments?post=4310"}],"version-history":[{"count":5,"href":"https:\/\/stereodaily.com\/wp-json\/wp\/v2\/pages\/4310\/revisions"}],"predecessor-version":[{"id":4325,"href":"https:\/\/stereodaily.com\/wp-json\/wp\/v2\/pages\/4310\/revisions\/4325"}],"wp:attachment":[{"href":"https:\/\/stereodaily.com\/wp-json\/wp\/v2\/media?parent=4310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}