[{"data":1,"prerenderedAt":3163},["ShallowReactive",2],{"navigation":3,"/blog/software-development/musicxml-standard-for-music-notation-and-education-post":734,"/blog/software-development/musicxml-standard-for-music-notation-and-education-surround":1657,"/blog/software-development/musicxml-standard-for-music-notation-and-education-related":1662},[4,70,207,312,721],{"title":5,"path":6,"stem":7,"children":8,"page":69},"Case Study","/blog/case-study","blog/case-study",[9,13,17,21,25,29,33,37,41,45,49,53,57,61,65],{"title":10,"path":11,"stem":12},"Ambistream – Multi-Layer Streaming Platform","/blog/case-study/ambistream-building-a-multi-layer-streaming-platform-from-a-spark-of-an-idea","blog/case-study/ambistream-building-a-multi-layer-streaming-platform-from-a-spark-of-an-idea",{"title":14,"path":15,"stem":16},"Custom Chromecast & AirPlay Casting App","/blog/case-study/chromecast-airplay-casting-app-case-study","blog/case-study/chromecast-airplay-casting-app-case-study",{"title":18,"path":19,"stem":20},"Direct Music Licensing Platform Case Study","/blog/case-study/dlm-music-catalog-case-study","blog/case-study/dlm-music-catalog-case-study",{"title":22,"path":23,"stem":24},"Assembly Instructions App - Galeco Mobile App","/blog/case-study/galeco-mobile-app-case-study","blog/case-study/galeco-mobile-app-case-study",{"title":26,"path":27,"stem":28},"MemoSonic: Building an Audio Memory Game","/blog/case-study/how-we-built-memosonic-accessible-audio-memory-game-flutter","blog/case-study/how-we-built-memosonic-accessible-audio-memory-game-flutter",{"title":30,"path":31,"stem":32},"Loyalty Program App for Shopping Mall","/blog/case-study/loyalty-program-application-case-study","blog/case-study/loyalty-program-application-case-study",{"title":34,"path":35,"stem":36},"Mobile Application for Music Catalogs","/blog/case-study/mobile-app-for-music-catalog","blog/case-study/mobile-app-for-music-catalog",{"title":38,"path":39,"stem":40},"Universal Music Data Parser for 20+ Platforms","/blog/case-study/musicdata-lab-universal-music-data-parser-case-study","blog/case-study/musicdata-lab-universal-music-data-parser-case-study",{"title":42,"path":43,"stem":44},"Panther ML/AI Pricing Recommendation Tool","/blog/case-study/panther-pricing-recommendation-tool-case-study","blog/case-study/panther-pricing-recommendation-tool-case-study",{"title":46,"path":47,"stem":48},"4D Grupa Roofing Wholesalers Platform","/blog/case-study/roofing-wholesalers-website-case-study","blog/case-study/roofing-wholesalers-website-case-study",{"title":50,"path":51,"stem":52},"Talent Alpha HR Frontend Platform","/blog/case-study/talent-alpha-hr-platform-case-study","blog/case-study/talent-alpha-hr-platform-case-study",{"title":54,"path":55,"stem":56},"Ticketing & Events Platform Development","/blog/case-study/ticketing-events-platform-case-study","blog/case-study/ticketing-events-platform-case-study",{"title":58,"path":59,"stem":60},"Turn Fans into Superfans — Roadie.co","/blog/case-study/turn-fans-into-superfans-roadie-co","blog/case-study/turn-fans-into-superfans-roadie-co",{"title":62,"path":63,"stem":64},"Walkative 2.0 Global Booking Engine","/blog/case-study/walkative-2-booking-platform-case-study","blog/case-study/walkative-2-booking-platform-case-study",{"title":66,"path":67,"stem":68},"Why Merch Is the New Royalty Check, and How Tech Is Closing the Gap","/blog/case-study/why-merch-is-the-new-royalty-check","blog/case-study/why-merch-is-the-new-royalty-check",false,{"title":71,"path":72,"stem":73,"children":74,"page":69},"Music Data","/blog/music-data","blog/music-data",[75,79,83,87,91,95,99,103,107,111,115,119,123,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203],{"title":76,"path":77,"stem":78},"13 Distributors, 5 File Formats, Zero Standards -The Reality of Music Royalty Data","/blog/music-data/13-distributors-5-file-formats-zero-standards-the-reality-of-music-royalty-data","blog/music-data/13-distributors-5-file-formats-zero-standards-the-reality-of-music-royalty-data",{"title":80,"path":81,"stem":82},"830 Ways to Say Spotify - Normalizing Music Streaming Data","/blog/music-data/830-ways-to-say-spotify-normalizing-music-streaming-data","blog/music-data/830-ways-to-say-spotify-normalizing-music-streaming-data",{"title":84,"path":85,"stem":86},"Why Music Companies Need AI-Powered Analytics (And How We Built One)","/blog/music-data/ai-powered-analytics-dashboard-django-clickhouse-ollama","blog/music-data/ai-powered-analytics-dashboard-django-clickhouse-ollama",{"title":88,"path":89,"stem":90},"AI Rehearsal: Spaced Repetition for Your Musical Ideas","/blog/music-data/ai-rehearsal-spaced-repetition-for-musical-ideas","blog/music-data/ai-rehearsal-spaced-repetition-for-musical-ideas",{"title":92,"path":93,"stem":94},"Audio Project Organization Is a Mess — Here's Why","/blog/music-data/audio-project-organization-mess","blog/music-data/audio-project-organization-mess",{"title":96,"path":97,"stem":98},"Why Audio Search Is Still Broken and How to Fix It with Embeddings","/blog/music-data/audio-search-broken-fix-with-embeddings","blog/music-data/audio-search-broken-fix-with-embeddings",{"title":100,"path":101,"stem":102},"AI Song Structure Analysis: Intro, Verse, Chorus","/blog/music-data/automatic-song-structure-analysis-how-ai-detects-intro-verse-chorus","blog/music-data/automatic-song-structure-analysis-how-ai-detects-intro-verse-chorus",{"title":104,"path":105,"stem":106},"The Broken Feedback Loop in Music Collaboration","/blog/music-data/broken-feedback-loop-music-collaboration","blog/music-data/broken-feedback-loop-music-collaboration",{"title":108,"path":109,"stem":110},"Building a Claude Skill for DDEX Validation: Automate Music Metadata Checks with AI","/blog/music-data/building-a-claude-skill-for-ddex-validation-music-metadata","blog/music-data/building-a-claude-skill-for-ddex-validation-music-metadata",{"title":112,"path":113,"stem":114},"Building a Custom Music Delivery Platform on the Revelator API","/blog/music-data/building-a-custom-music-delivery-platform-on-the-revelator-api","blog/music-data/building-a-custom-music-delivery-platform-on-the-revelator-api",{"title":116,"path":117,"stem":118},"Building a Suno AI Remix App with Nuxt & Firebase","/blog/music-data/building-a-suno-remix-app-with-nuxt-and-firebase","blog/music-data/building-a-suno-remix-app-with-nuxt-and-firebase",{"title":120,"path":121,"stem":122},"C2PA & DDEX: Authenticity Meets Rights in the Age of AI Music","/blog/music-data/c2pa-and-ddex-authenticity-meets-rights-in-the-age-of-ai-music","blog/music-data/c2pa-and-ddex-authenticity-meets-rights-in-the-age-of-ai-music",{"title":124,"path":125,"stem":126},"C2PA in Music: A Claude MCP for Reading Content Provenance","/blog/music-data/c2pa-in-music-mcp","blog/music-data/c2pa-in-music-mcp",{"title":128,"path":129,"stem":130},"Data Modeling in MongoDB Using Design Patterns","/blog/music-data/data-modeling-in-mongodb-with-the-usage-of-design-patterns","blog/music-data/data-modeling-in-mongodb-with-the-usage-of-design-patterns",{"title":132,"path":133,"stem":134},"Office Hours with MusicTech Lab's DDEX Expert","/blog/music-data/ddex-office-hours-musictech","blog/music-data/ddex-office-hours-musictech",{"title":136,"path":137,"stem":138},"DDEX Open Source Projects Review","/blog/music-data/ddex-open-source-projects-review","blog/music-data/ddex-open-source-projects-review",{"title":140,"path":141,"stem":142},"Extracting Data from Ableton .als and .asd Files","/blog/music-data/extracting-data-from-ableton-als-asd-files","blog/music-data/extracting-data-from-ableton-als-asd-files",{"title":144,"path":145,"stem":146},"Maciej Dulski on Sound Connections Podcast","/blog/music-data/from-startups-to-musictech-maciej-dulski-on-sound-connections-podcast","blog/music-data/from-startups-to-musictech-maciej-dulski-on-sound-connections-podcast",{"title":148,"path":149,"stem":150},"How to Transcribe Video to Text Using OpenAI Whisper","/blog/music-data/how-to-transcribe-video-to-text-using-whisper","blog/music-data/how-to-transcribe-video-to-text-using-whisper",{"title":152,"path":153,"stem":154},"Epidemic Sound MCP with Claude for Devs","/blog/music-data/how-to-use-epidemic-sound-mcp-with-claude","blog/music-data/how-to-use-epidemic-sound-mcp-with-claude",{"title":156,"path":157,"stem":158},"Hybrid Database Model in Django for Speed","/blog/music-data/hybrid-database-model-in-django-as-a-performance-booster","blog/music-data/hybrid-database-model-in-django-as-a-performance-booster",{"title":160,"path":161,"stem":162},"Introduction to generating DDEX file using Python","/blog/music-data/introduction-to-generating-ddex-file-using-python","blog/music-data/introduction-to-generating-ddex-file-using-python",{"title":164,"path":165,"stem":166},"Maintaining Music Tech Tools: The SLA Dilemma for Small Teams","/blog/music-data/maintaining-music-tech-tools-the-sla-dilemma-for-small-teams","blog/music-data/maintaining-music-tech-tools-the-sla-dilemma-for-small-teams",{"title":168,"path":169,"stem":170},"Querying Bandcamp Revenue Reports with Natural Language — Meet mtl-bandcamp-mcp","/blog/music-data/mtl-bandcamp-mcp-open-source-revenue-dashboard","blog/music-data/mtl-bandcamp-mcp-open-source-revenue-dashboard",{"title":172,"path":173,"stem":174},"mtl-metadata-mcp: Open Source Audio Metadata Embedding for Claude Code","/blog/music-data/mtl-metadata-mcp-open-source-audio-metadata-embedding","blog/music-data/mtl-metadata-mcp-open-source-audio-metadata-embedding",{"title":176,"path":177,"stem":178},"MusicTech Resources for Builders","/blog/music-data/musictech-resources-curated-insights-for-the-musictech-builders","blog/music-data/musictech-resources-curated-insights-for-the-musictech-builders",{"title":180,"path":181,"stem":182},"Poland's Creative Tech and MusicTech Rise","/blog/music-data/polands-creative-tech-sector-is-on-the-rise-and-musictech-is-part-of-it","blog/music-data/polands-creative-tech-sector-is-on-the-rise-and-musictech-is-part-of-it",{"title":184,"path":185,"stem":186},"Batch ISRC Enrichment That Turns Messy Catalogs Into Clean Data","/blog/music-data/scout-isrc-metadata-enrichment-spotify-musicbrainz","blog/music-data/scout-isrc-metadata-enrichment-spotify-musicbrainz",{"title":188,"path":189,"stem":190},"Music Self-Publishing: The Emuze.me Story","/blog/music-data/self-publishing-in-the-music-industry-a-tale-of-emuze-me","blog/music-data/self-publishing-in-the-music-industry-a-tale-of-emuze-me",{"title":192,"path":193,"stem":194},"Understanding the API First Approach","/blog/music-data/understanding-the-api-first-approach","blog/music-data/understanding-the-api-first-approach",{"title":196,"path":197,"stem":198},"The Voice Memo Graveyard Problem","/blog/music-data/voice-memo-graveyard-problem","blog/music-data/voice-memo-graveyard-problem",{"title":200,"path":201,"stem":202},"Which Database for Music Data? Redshift vs BigQuery vs ClickHouse and When to Use Each","/blog/music-data/which-database-for-music-data-redshift-vs-bigquery-vs-clickhouse","blog/music-data/which-database-for-music-data-redshift-vs-bigquery-vs-clickhouse",{"title":204,"path":205,"stem":206},"Why we decided to use wavesurfer.js","/blog/music-data/why-we-decided-to-use-wavesurfer","blog/music-data/why-we-decided-to-use-wavesurfer",{"title":208,"path":209,"stem":210,"children":211,"page":69},"Newsletter","/blog/newsletter","blog/newsletter",[212,216,220,224,228,232,236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308],{"title":213,"path":214,"stem":215},"Music Industry Tech Openings (April 2024 Update)","/blog/newsletter/music-industry-tech-openings-april-2024-update","blog/newsletter/music-industry-tech-openings-april-2024-update",{"title":217,"path":218,"stem":219},"Music Industry Tech Openings (April 2025 Update)","/blog/newsletter/music-industry-tech-openings-april-2025-update","blog/newsletter/music-industry-tech-openings-april-2025-update",{"title":221,"path":222,"stem":223},"Music Industry Tech Openings (August 2024 Update)","/blog/newsletter/music-industry-tech-openings-august-2024-update","blog/newsletter/music-industry-tech-openings-august-2024-update",{"title":225,"path":226,"stem":227},"Music Industry Tech Openings (December 2024 Update)","/blog/newsletter/music-industry-tech-openings-december-2024-update","blog/newsletter/music-industry-tech-openings-december-2024-update",{"title":229,"path":230,"stem":231},"Music Industry Tech Openings (February 2025 Update)","/blog/newsletter/music-industry-tech-openings-february-2025-update","blog/newsletter/music-industry-tech-openings-february-2025-update",{"title":233,"path":234,"stem":235},"Music Industry Tech Openings (January 2025 Update)","/blog/newsletter/music-industry-tech-openings-january-2025-update","blog/newsletter/music-industry-tech-openings-january-2025-update",{"title":237,"path":238,"stem":239},"Music Industry Tech Openings (July 2024 Update)","/blog/newsletter/music-industry-tech-openings-july-2024-update","blog/newsletter/music-industry-tech-openings-july-2024-update",{"title":241,"path":242,"stem":243},"Music Industry Tech Openings (June 2024 Update)","/blog/newsletter/music-industry-tech-openings-june-2024-update","blog/newsletter/music-industry-tech-openings-june-2024-update",{"title":245,"path":246,"stem":247},"Music Industry Tech Openings (March 2025 Update)","/blog/newsletter/music-industry-tech-openings-march-2025-update","blog/newsletter/music-industry-tech-openings-march-2025-update",{"title":249,"path":250,"stem":251},"Music Industry Tech Openings (May 2024 Update)","/blog/newsletter/music-industry-tech-openings-may-2024-update","blog/newsletter/music-industry-tech-openings-may-2024-update",{"title":253,"path":254,"stem":255},"Music Industry Tech Openings (May 2025 Update)","/blog/newsletter/music-industry-tech-openings-may-2025","blog/newsletter/music-industry-tech-openings-may-2025",{"title":257,"path":258,"stem":259},"Music Industry Tech Openings (November 2024 Update)","/blog/newsletter/music-industry-tech-openings-november-2024-update","blog/newsletter/music-industry-tech-openings-november-2024-update",{"title":261,"path":262,"stem":263},"Music Industry Tech Openings (October 2024 Update)","/blog/newsletter/music-industry-tech-openings-october-2024-update","blog/newsletter/music-industry-tech-openings-october-2024-update",{"title":265,"path":266,"stem":267},"Music Industry Tech Openings (September 2024 Update)","/blog/newsletter/music-industry-tech-openings-september-2024-update","blog/newsletter/music-industry-tech-openings-september-2024-update",{"title":269,"path":270,"stem":271},"MusicTech Insights #1 by Maciej Dulski","/blog/newsletter/musictech-insights-1-curated-by-maciej-dulski","blog/newsletter/musictech-insights-1-curated-by-maciej-dulski",{"title":273,"path":274,"stem":275},"Provenance, Not Detection, Is the Durable Answer","/blog/newsletter/musictech-insights-10-curated-by-jim-anderson","blog/newsletter/musictech-insights-10-curated-by-jim-anderson",{"title":277,"path":278,"stem":279},"What CMOs can teach us about innovation in uncertain times","/blog/newsletter/musictech-insights-10-curated-by-joanna-kurkowska","blog/newsletter/musictech-insights-10-curated-by-joanna-kurkowska",{"title":281,"path":282,"stem":283},"Feeling the MusicTech Momentum","/blog/newsletter/musictech-insights-2-curated-by-maciej-dulski","blog/newsletter/musictech-insights-2-curated-by-maciej-dulski",{"title":285,"path":286,"stem":287},"AI in Music: Hype, Hope, and a Human Touch","/blog/newsletter/musictech-insights-3-curated-by-drew-thurlow","blog/newsletter/musictech-insights-3-curated-by-drew-thurlow",{"title":289,"path":290,"stem":291},"The Music Metadata Conundrum","/blog/newsletter/musictech-insights-4-curated-by-amanda-schupf","blog/newsletter/musictech-insights-4-curated-by-amanda-schupf",{"title":293,"path":294,"stem":295},"7 Rounds in the First 10 Days of November 2025","/blog/newsletter/musictech-insights-5-curated-by-maciej-dulski","blog/newsletter/musictech-insights-5-curated-by-maciej-dulski",{"title":297,"path":298,"stem":299},"The End of an Era: It's All About to Crash","/blog/newsletter/musictech-insights-6-curated-by-sigurdur-arnason","blog/newsletter/musictech-insights-6-curated-by-sigurdur-arnason",{"title":301,"path":302,"stem":303},"Low-Code Magic Won't Solve MusicTech Reality","/blog/newsletter/musictech-insights-7-curated-by-mariusz-smenzyk","blog/newsletter/musictech-insights-7-curated-by-mariusz-smenzyk",{"title":305,"path":306,"stem":307},"The New Economics of Game Music","/blog/newsletter/musictech-insights-8-curated-by-kenny-vaughan","blog/newsletter/musictech-insights-8-curated-by-kenny-vaughan",{"title":309,"path":310,"stem":311},"Music Business Meets Direct-to-Fan","/blog/newsletter/musictech-insights-9-curated-by-yaw-asamani","blog/newsletter/musictech-insights-9-curated-by-yaw-asamani",{"title":313,"path":314,"stem":315,"children":316,"page":69},"Software Development","/blog/software-development","blog/software-development",[317,321,325,329,333,337,341,345,349,353,357,361,365,369,373,377,381,385,389,393,397,401,405,409,413,417,421,425,429,433,437,441,445,449,453,457,461,465,469,473,477,481,485,489,493,497,501,505,509,513,517,521,525,529,533,537,541,545,549,553,557,561,565,569,573,577,581,585,589,593,597,601,605,609,613,617,621,625,629,633,637,641,645,649,653,657,661,665,669,673,677,681,685,689,693,697,701,705,709,713,717],{"title":318,"path":319,"stem":320},"Benefits of Outsourcing Software Development","/blog/software-development/10-benefits-of-outsourcing-software-development-services","blog/software-development/10-benefits-of-outsourcing-software-development-services",{"title":322,"path":323,"stem":324},"10 Steps to Find the Best MVP Developers","/blog/software-development/10-steps-to-find-the-best-mvp-developers-for-your-startup-idea","blog/software-development/10-steps-to-find-the-best-mvp-developers-for-your-startup-idea",{"title":326,"path":327,"stem":328},"1,200 Looms Later: How Async Video Became My Development Superpower","/blog/software-development/1200-looms-how-async-video-became-our-development-superpower","blog/software-development/1200-looms-how-async-video-became-our-development-superpower",{"title":330,"path":331,"stem":332},"Communication Strategy in Outsourcing Projects","/blog/software-development/5-steps-to-implement-an-effective-communication-strategy-in-outsourcing-software-development-project","blog/software-development/5-steps-to-implement-an-effective-communication-strategy-in-outsourcing-software-development-project",{"title":334,"path":335,"stem":336},"7 Best Practices for Outsourcing Software Development","/blog/software-development/7-best-practices-for-outsourcing-software-development","blog/software-development/7-best-practices-for-outsourcing-software-development",{"title":338,"path":339,"stem":340},"9 Reasons Why Saleor.io Is Best for eCommerce","/blog/software-development/9-reasons-why-the-saleor-io-platform-is-the-best-choice-for-your-ecommerce-website","blog/software-development/9-reasons-why-the-saleor-io-platform-is-the-best-choice-for-your-ecommerce-website",{"title":342,"path":343,"stem":344},"A Look at Bravelab.io’s Clutch 2021 Year In Review","/blog/software-development/a-look-at-bravelab-ios-clutch-2021-year-in-review","blog/software-development/a-look-at-bravelab-ios-clutch-2021-year-in-review",{"title":346,"path":347,"stem":348},"A quick introduction to profit sharing implementation","/blog/software-development/a-quick-introduction-to-profit-sharing-implementation","blog/software-development/a-quick-introduction-to-profit-sharing-implementation",{"title":350,"path":351,"stem":352},"AI Audio Similarity Search: The Future of Sound Library Discovery","/blog/software-development/ai-audio-similarity-search-for-sound-libraries","blog/software-development/ai-audio-similarity-search-for-sound-libraries",{"title":354,"path":355,"stem":356},"Automate Repetitive Tasks for Better Results","/blog/software-development/automate-repetitive-tasks-to-improve-your-business-performance","blog/software-development/automate-repetitive-tasks-to-improve-your-business-performance",{"title":358,"path":359,"stem":360},"Automating Success: The Art of Unified Documentation","/blog/software-development/automating-success-the-art-of-unified-documentation","blog/software-development/automating-success-the-art-of-unified-documentation",{"title":362,"path":363,"stem":364},"Brave 3.0 Website Redesign, Part 2: Solution","/blog/software-development/brave-3-0-how-we-conducted-website-redesign-part-2-solution","blog/software-development/brave-3-0-how-we-conducted-website-redesign-part-2-solution",{"title":366,"path":367,"stem":368},"Brave 3.0, Part 4: Tech Stack and Recap","/blog/software-development/brave-3-0-part-4-technologies-behind-and-final-series-recap","blog/software-development/brave-3-0-part-4-technologies-behind-and-final-series-recap",{"title":370,"path":371,"stem":372},"Brave 3.0 – redesign process part 1. The Challenge","/blog/software-development/brave-3-0-redesign-process-part-1-challenge","blog/software-development/brave-3-0-redesign-process-part-1-challenge",{"title":374,"path":375,"stem":376},"Brave 3.0 – redesign process, part 3. Lesson learned","/blog/software-development/brave-3-0-redesign-process-part-3-lesson-learned","blog/software-development/brave-3-0-redesign-process-part-3-lesson-learned",{"title":378,"path":379,"stem":380},"Bravelab.io: Top Software Developer by Clutch","/blog/software-development/bravelab-io-is-recognized-as-a-top-custom-software-developer-by-clutch","blog/software-development/bravelab-io-is-recognized-as-a-top-custom-software-developer-by-clutch",{"title":382,"path":383,"stem":384},"Bravelab.io: Top Developer in Poland by Clutch","/blog/software-development/bravelab-io-named-top-software-developer-in-poland-by-clutch","blog/software-development/bravelab-io-named-top-software-developer-in-poland-by-clutch",{"title":386,"path":387,"stem":388},"MusicTech Lab Partners with LALAL.AI","/blog/software-development/bravelab-partners-with-the-audio-lalal-ai","blog/software-development/bravelab-partners-with-the-audio-lalal-ai",{"title":390,"path":391,"stem":392},"MusicTech Lab Partners with The Audio Programmer","/blog/software-development/bravelab-partners-with-the-audio-programmer","blog/software-development/bravelab-partners-with-the-audio-programmer",{"title":394,"path":395,"stem":396},"Bravelab's team about productivity","/blog/software-development/bravelabs-team-about-productivity","blog/software-development/bravelabs-team-about-productivity",{"title":398,"path":399,"stem":400},"Braveloper","/blog/software-development/braveloper","blog/software-development/braveloper",{"title":402,"path":403,"stem":404},"Bravely App: Boost Productivity with Django","/blog/software-development/bravely-app-how-to-be-more-productive-with-django-quick","blog/software-development/bravely-app-how-to-be-more-productive-with-django-quick",{"title":406,"path":407,"stem":408},"DIY MIDI Controller for Ableton with Arduino","/blog/software-development/building-a-diy-midi-controller-for-ableton-live-with-arduino","blog/software-development/building-a-diy-midi-controller-for-ableton-live-with-arduino",{"title":410,"path":411,"stem":412},"C2PA in Ableton: Making AI Music Provenance Visible Inside Your DAW","/blog/software-development/c2pa-in-ableton-max-for-live","blog/software-development/c2pa-in-ableton-max-for-live",{"title":414,"path":415,"stem":416},"Change Detection mechanism in Angular","/blog/software-development/change-detection-mechanism-in-angular","blog/software-development/change-detection-mechanism-in-angular",{"title":418,"path":419,"stem":420},"Communication Channels in Remote Work","/blog/software-development/comparison-of-the-communication-channels-in-remote-work","blog/software-development/comparison-of-the-communication-channels-in-remote-work",{"title":422,"path":423,"stem":424},"Connecting Your Max for Live Device to a Cloud API","/blog/software-development/connecting-your-max-for-live-device-to-a-cloud-api","blog/software-development/connecting-your-max-for-live-device-to-a-cloud-api",{"title":426,"path":427,"stem":428},"From Voice Memo to Studio: The Cross-Platform Problem for Creators","/blog/software-development/cross-platform-problem-for-creators","blog/software-development/cross-platform-problem-for-creators",{"title":430,"path":431,"stem":432},"Cultural transformation through the pandemic era","/blog/software-development/cultural-transformation-through-the-pandemic-era","blog/software-development/cultural-transformation-through-the-pandemic-era",{"title":434,"path":435,"stem":436},"D-Commerce Decoded: Cutting Through the Hype","/blog/software-development/d-commerce-decoded-cutting-through-the-hype","blog/software-development/d-commerce-decoded-cutting-through-the-hype",{"title":438,"path":439,"stem":440},"Dev Meeting 002: Intro to DDD","/blog/software-development/dev-meeting-002-introduction-to-domain-driven-design-ddd","blog/software-development/dev-meeting-002-introduction-to-domain-driven-design-ddd",{"title":442,"path":443,"stem":444},"Dev Meeting 003: Web3 Primer","/blog/software-development/dev-meeting-003-web3-primer","blog/software-development/dev-meeting-003-web3-primer",{"title":446,"path":447,"stem":448},"Dev Meeting 004: Introduction to Event Storming","/blog/software-development/dev-meeting-004-introduction-to-event-storming","blog/software-development/dev-meeting-004-introduction-to-event-storming",{"title":450,"path":451,"stem":452},"Dev Meeting 001: Kubernetes is a Framework","/blog/software-development/dev-meeting-kubernetes-is-a-framework","blog/software-development/dev-meeting-kubernetes-is-a-framework",{"title":454,"path":455,"stem":456},"Did You Know? 10 Developer Tips from Real Codebases","/blog/software-development/did-you-know-dev-tips-part-1","blog/software-development/did-you-know-dev-tips-part-1",{"title":458,"path":459,"stem":460},"10 Surprising MusicTech Facts (Part 2)","/blog/software-development/did-you-know-musictech-facts-part-2","blog/software-development/did-you-know-musictech-facts-part-2",{"title":462,"path":463,"stem":464},"Django-cms and GraphQL","/blog/software-development/django-cms-and-graphql","blog/software-development/django-cms-and-graphql",{"title":466,"path":467,"stem":468},"Does Zappa make it super easy?","/blog/software-development/does-zappa-make-it-super-easy","blog/software-development/does-zappa-make-it-super-easy",{"title":470,"path":471,"stem":472},"Establishing cooperation between Netlify and Bravelab","/blog/software-development/establishing-cooperation-between-netlify-and-bravelab","blog/software-development/establishing-cooperation-between-netlify-and-bravelab",{"title":474,"path":475,"stem":476},"Export Ableton Locators to JSON via Max for Live","/blog/software-development/exporting-ableton-live-locators-to-json-with-max-for-live","blog/software-development/exporting-ableton-live-locators-to-json-with-max-for-live",{"title":478,"path":479,"stem":480},"IT Outsourcing: Success and Failure Factors","/blog/software-development/factors-that-contribute-to-the-success-or-failure-of-an-it-outsourcing-project","blog/software-development/factors-that-contribute-to-the-success-or-failure-of-an-it-outsourcing-project",{"title":482,"path":483,"stem":484},"Flutter 2022 Strategy: Analyzing the Roadmap","/blog/software-development/flutter-strategy-for-2022-analyzing-the-new-flutter-roadmap","blog/software-development/flutter-strategy-for-2022-analyzing-the-new-flutter-roadmap",{"title":486,"path":487,"stem":488},"Git Better #1 — Commit Message Convention","/blog/software-development/git-better-1-see-more-with-a-commit-message-convention","blog/software-development/git-better-1-see-more-with-a-commit-message-convention",{"title":490,"path":491,"stem":492},"Hasura in action. How to use it with Django","/blog/software-development/hasura-in-action","blog/software-development/hasura-in-action",{"title":494,"path":495,"stem":496},"Holacracy why and where we are","/blog/software-development/holacracy-why-and-where-we-are","blog/software-development/holacracy-why-and-where-we-are",{"title":498,"path":499,"stem":500},"How does JavaScript work","/blog/software-development/how-does-javascript-work","blog/software-development/how-does-javascript-work",{"title":502,"path":503,"stem":504},"How important is good UX/UI design?","/blog/software-development/how-important-is-good-ux-ui-design","blog/software-development/how-important-is-good-ux-ui-design",{"title":506,"path":507,"stem":508},"How repetitive tasks impact your business","/blog/software-development/how-repetitive-tasks-impact-your-business","blog/software-development/how-repetitive-tasks-impact-your-business",{"title":510,"path":511,"stem":512},"Becoming a Vue.js Dev: Do Paid Trials Work?","/blog/software-development/how-to-become-a-vue-js-developer-and-whether-paid-trials-in-it-work-out","blog/software-development/how-to-become-a-vue-js-developer-and-whether-paid-trials-in-it-work-out",{"title":514,"path":515,"stem":516},"How to Build an MVP in 6 Steps","/blog/software-development/how-to-build-a-minimum-viable-product-mvp-in-6-steps","blog/software-development/how-to-build-a-minimum-viable-product-mvp-in-6-steps",{"title":518,"path":519,"stem":520},"How to conduct workshops for creative industry?","/blog/software-development/how-to-conduct-workshops-for-creative-industry","blog/software-development/how-to-conduct-workshops-for-creative-industry",{"title":522,"path":523,"stem":524},"How to easily create form in Angular","/blog/software-development/how-to-easily-create-form-in-angular","blog/software-development/how-to-easily-create-form-in-angular",{"title":526,"path":527,"stem":528},"How to export orders in Saleor.io to XLSX file","/blog/software-development/how-to-export-orders-in-saleor-io-to-xlsx-file","blog/software-development/how-to-export-orders-in-saleor-io-to-xlsx-file",{"title":530,"path":531,"stem":532},"Handling High Loads on E-Commerce Platforms","/blog/software-development/how-to-handle-high-loads-on-e-commerce-platform-with-ease","blog/software-development/how-to-handle-high-loads-on-e-commerce-platform-with-ease",{"title":534,"path":535,"stem":536},"How to launch Saleor.io shop instance within 40h","/blog/software-development/how-to-launch-saleor-io-shop-instance-within-40h","blog/software-development/how-to-launch-saleor-io-shop-instance-within-40h",{"title":538,"path":539,"stem":540},"First Steps to Build a Business Relationship","/blog/software-development/how-to-make-the-first-step-to-establish-a-business-relationship","blog/software-development/how-to-make-the-first-step-to-establish-a-business-relationship",{"title":542,"path":543,"stem":544},"Multi-Tenant Apps with Django and Saleor.io","/blog/software-development/how-to-manage-tenants-in-the-multitenant-app-based-on-django-tenants-and-saleor-io-platform","blog/software-development/how-to-manage-tenants-in-the-multitenant-app-based-on-django-tenants-and-saleor-io-platform",{"title":546,"path":547,"stem":548},"Notion Backup Tool Built in 3 Days with Python","/blog/software-development/how-we-built-a-notion-backup-tool-in-3-days-with-pythonvue-and-why","blog/software-development/how-we-built-a-notion-backup-tool-in-3-days-with-pythonvue-and-why",{"title":550,"path":551,"stem":552},"Important new features in Python 3.8","/blog/software-development/important-new-features-in-python-3-8","blog/software-development/important-new-features-in-python-3-8",{"title":554,"path":555,"stem":556},"Installing Proxmox on dedicated server from OVH","/blog/software-development/installing-proxmox-on-dedicated-server-from-ovh","blog/software-development/installing-proxmox-on-dedicated-server-from-ovh",{"title":558,"path":559,"stem":560},"Integrating SignNow E-Signatures into Your Django Application","/blog/software-development/integrating-signnow-e-signatures-into-your-django-application","blog/software-development/integrating-signnow-e-signatures-into-your-django-application",{"title":562,"path":563,"stem":564},"Tempus Metronome and GetSongBPM API","/blog/software-development/integrating-tempus-metronome-with-the-getsongbpm-api-what-bpm-really-means-and-how-to-use-it","blog/software-development/integrating-tempus-metronome-with-the-getsongbpm-api-what-bpm-really-means-and-how-to-use-it",{"title":566,"path":567,"stem":568},"Introducing MusicTech Poland","/blog/software-development/introducing-musictech-poland","blog/software-development/introducing-musictech-poland",{"title":570,"path":571,"stem":572},"Vue.js as a Frontend for Saleor.io","/blog/software-development/is-it-possible-to-use-vue-js-as-a-frontend-for-saleor-io-platform","blog/software-development/is-it-possible-to-use-vue-js-as-a-frontend-for-saleor-io-platform",{"title":574,"path":575,"stem":576},"Is your business ready for the cashless era?","/blog/software-development/is-your-business-ready-for-the-cashless-era","blog/software-development/is-your-business-ready-for-the-cashless-era",{"title":578,"path":579,"stem":580},"Is your face ready to buy?","/blog/software-development/is-your-face-ready-to-buy","blog/software-development/is-your-face-ready-to-buy",{"title":582,"path":583,"stem":584},"JS Frameworks: Trends and Opportunities","/blog/software-development/javascript-trending-frameworks-and-market-opportunities","blog/software-development/javascript-trending-frameworks-and-market-opportunities",{"title":586,"path":587,"stem":588},"Kanban Board: Boost Your Team Productivity","/blog/software-development/kanban-board-methodology-hack-your-companys-productivity","blog/software-development/kanban-board-methodology-hack-your-companys-productivity",{"title":590,"path":591,"stem":592},"Verified Human Cert MCP Server: Prove Your Music Is Human-Made, Right from the Terminal","/blog/software-development/mcp-verified-human-cert-open-source","blog/software-development/mcp-verified-human-cert-open-source",{"title":594,"path":595,"stem":596},"Migrating from TravisCI to Github Actions","/blog/software-development/migrating-from-travisci-to-github-actions","blog/software-development/migrating-from-travisci-to-github-actions",{"title":598,"path":599,"stem":600},"MusicTech Lab: Top Software Developer by Clutch","/blog/software-development/musictechlab-is-recognized-as-a-top-custom-software-developer-by-clutch","blog/software-development/musictechlab-is-recognized-as-a-top-custom-software-developer-by-clutch",{"title":602,"path":603,"stem":604},"MusicTech Lab x Verified Human: Building a Trust Layer for Human-Made Music","/blog/software-development/musictechlab_blog_verified_human_partnership","blog/software-development/musictechlab_blog_verified_human_partnership",{"title":606,"path":607,"stem":608},"MusicXML: Standard for Music Notation","/blog/software-development/musicxml-standard-for-music-notation-and-education","blog/software-development/musicxml-standard-for-music-notation-and-education",{"title":610,"path":611,"stem":612},"Only a few books but dozens of ideas","/blog/software-development/only-a-few-books-but-dozens-of-ideas","blog/software-development/only-a-few-books-but-dozens-of-ideas",{"title":614,"path":615,"stem":616},"Overdue Invoices and Issue Tracker Integration","/blog/software-development/overdue-invoices-integration-with-the-issue-tracking-system","blog/software-development/overdue-invoices-integration-with-the-issue-tracking-system",{"title":618,"path":619,"stem":620},"Performing SAML SSO using JWT in Django","/blog/software-development/performing-saml-sso-using-jwt-in-django","blog/software-development/performing-saml-sso-using-jwt-in-django",{"title":622,"path":623,"stem":624},"Progressive Web Apps for Mobile Development","/blog/software-development/progressive-web-apps-a-new-way-of-creating-mobile-application","blog/software-development/progressive-web-apps-a-new-way-of-creating-mobile-application",{"title":626,"path":627,"stem":628},"Recruitment System: Gmail, Jira, and CRM","/blog/software-development/recruitment-system-integrating-gmail-bravely-jira-slack-and-copper-crm","blog/software-development/recruitment-system-integrating-gmail-bravely-jira-slack-and-copper-crm",{"title":630,"path":631,"stem":632},"Scratch Me: Chrome Extension for Leads","/blog/software-development/scratch-me-a-simple-chrome-extension-which-will-increase-your-productivity","blog/software-development/scratch-me-a-simple-chrome-extension-which-will-increase-your-productivity",{"title":634,"path":635,"stem":636},"Scratch Me – integration with the Copper CRM","/blog/software-development/scratch-me-integration-with-the-copper-crm","blog/software-development/scratch-me-integration-with-the-copper-crm",{"title":638,"path":639,"stem":640},"SignNow MCP Server: E-Signatures Straight from Claude Code","/blog/software-development/signnow-mcp-server-e-signatures-from-claude-code","blog/software-development/signnow-mcp-server-e-signatures-from-claude-code",{"title":642,"path":643,"stem":644},"Music Industry Tech Openings (March 2024 Update)","/blog/software-development/technical-job-opportunities-in-the-music-industry","blog/software-development/technical-job-opportunities-in-the-music-industry",{"title":646,"path":647,"stem":648},"Thanks app – a Management 3.0 solution","/blog/software-development/thanks-app-a-management-3-0-solution","blog/software-development/thanks-app-a-management-3-0-solution",{"title":650,"path":651,"stem":652},"Colonial Pipeline Case: 7 Security Reminders","/blog/software-development/the-case-of-colonial-pipeline-and-7-security-reminders","blog/software-development/the-case-of-colonial-pipeline-and-7-security-reminders",{"title":654,"path":655,"stem":656},"The Evolution and Future of E-commerce Platforms","/blog/software-development/the-evolution-and-future-of-e-commerce-platforms","blog/software-development/the-evolution-and-future-of-e-commerce-platforms",{"title":658,"path":659,"stem":660},"The Gender Gap in the Tech Industry","/blog/software-development/the-gender-gap-in-the-tech-industry","blog/software-development/the-gender-gap-in-the-tech-industry",{"title":662,"path":663,"stem":664},"First Attempt to Implement 4DX at Bravelab.io","/blog/software-development/the-very-first-attempt-to-implement-4dx-in-bravelab-io","blog/software-development/the-very-first-attempt-to-implement-4dx-in-bravelab-io",{"title":666,"path":667,"stem":668},"The WTF Scale: IT Project Complexity","/blog/software-development/the-wtf-programming-scale-measuring-it-project-complexity","blog/software-development/the-wtf-programming-scale-measuring-it-project-complexity",{"title":670,"path":671,"stem":672},"Top 10 articles through the eyes of our developers","/blog/software-development/top-10-articles-through-the-eyes-of-our-developers","blog/software-development/top-10-articles-through-the-eyes-of-our-developers",{"title":674,"path":675,"stem":676},"Top 6 apps made with Flutter","/blog/software-development/top-6-apps-made-with-flutter","blog/software-development/top-6-apps-made-with-flutter",{"title":678,"path":679,"stem":680},"Uber 101: How Uber Made It to the Top","/blog/software-development/uber-101-how-this-ride-sharing-behemoth-made-it-to-the-top","blog/software-development/uber-101-how-this-ride-sharing-behemoth-made-it-to-the-top",{"title":682,"path":683,"stem":684},"MusicTech Lab Partners with Music Glue","/blog/software-development/unifying-artists-and-audiences-exploring-music-glue","blog/software-development/unifying-artists-and-audiences-exploring-music-glue",{"title":686,"path":687,"stem":688},"Why AI Will Defeat Traditional HR","/blog/software-development/warning-why-artificial-intelligence-will-defeat-traditional-hr","blog/software-development/warning-why-artificial-intelligence-will-defeat-traditional-hr",{"title":690,"path":691,"stem":692},"What is a Discovery Document?","/blog/software-development/what-is-discovery-document","blog/software-development/what-is-discovery-document",{"title":694,"path":695,"stem":696},"What is Flutter, and Why is it Worth Considering?","/blog/software-development/what-is-flutter-and-why-is-it-worth-considering","blog/software-development/what-is-flutter-and-why-is-it-worth-considering",{"title":698,"path":699,"stem":700},"What is a Watermarked Song?","/blog/software-development/what-is-watermarked-song","blog/software-development/what-is-watermarked-song",{"title":702,"path":703,"stem":704},"Choosing a Frontend Framework for the Web","/blog/software-development/which-framework-should-you-choose-for-the-frontend-web-platform-development","blog/software-development/which-framework-should-you-choose-for-the-frontend-web-platform-development",{"title":706,"path":707,"stem":708},"Why DAWs Are the Wrong Tool for Starting a Song","/blog/software-development/why-daws-wrong-tool-for-starting-song","blog/software-development/why-daws-wrong-tool-for-starting-song",{"title":710,"path":711,"stem":712},"Why the Programming World Loves Python","/blog/software-development/why-the-programming-world-loves-python","blog/software-development/why-the-programming-world-loves-python",{"title":714,"path":715,"stem":716},"Why We Don't Build Chat From Scratch (And Neither Should You)","/blog/software-development/why-we-dont-build-chat-from-scratch","blog/software-development/why-we-dont-build-chat-from-scratch",{"title":718,"path":719,"stem":720},"Why we use Sanity.io","/blog/software-development/why-we-use-sanity-io","blog/software-development/why-we-use-sanity-io",{"title":722,"path":723,"stem":724,"children":725,"page":69},"Sportstech","/blog/sportstech","blog/sportstech",[726,730],{"title":727,"path":728,"stem":729},"BeatBuddy Replay: Video Analysis App Challenges","/blog/sportstech/beatbuddy-replay-video-analysis-app-for-swimmers-flutter","blog/sportstech/beatbuddy-replay-video-analysis-app-for-swimmers-flutter",{"title":731,"path":732,"stem":733},"How to Create a Watch Face App for Garmin Watch","/blog/sportstech/how-to-create-watch-face-app-for-garmin-watch","blog/sportstech/how-to-create-watch-face-app-for-garmin-watch",{"id":735,"title":606,"authors":736,"badge":742,"body":743,"category":1631,"client":742,"date":1632,"description":1633,"extension":1634,"faq":742,"featured":69,"featuredOrder":742,"hidden":69,"image":1635,"keyTakeaways":1637,"meta":1651,"navigation":1099,"path":607,"seo":1652,"status":742,"stem":608,"tags":1653,"teaser":742,"__hash__":1656},"posts/blog/software-development/musicxml-standard-for-music-notation-and-education.md",[737],{"name":738,"to":739,"avatar":740},"Mariusz Smenżyk","https://www.linkedin.com/in/mariusz-smenzyk/",{"src":741},"/images/people/mariusz-smenzyk2.webp",null,{"type":744,"value":745,"toc":1605},"minimark",[746,751,755,758,762,765,825,828,963,967,972,975,979,982,986,989,993,996,1000,1004,1007,1021,1025,1028,1032,1035,1039,1042,1056,1060,1064,1067,1271,1275,1278,1393,1397,1400,1404,1494,1498,1501,1527,1531,1534,1548,1552,1555,1558,1562,1601],[747,748,750],"h2",{"id":749},"what-is-musicxml","What is MusicXML?",[752,753,754],"p",{},"MusicXML is an open standard for exchanging digital sheet music. It represents Western musical notation in XML format. Created by Recordare in 2004, it's now maintained by the W3C Music Notation Community Group and has become the universal language for score exchange.",[752,756,757],{},"Unlike proprietary Finale or Sibelius files, MusicXML is open and well-documented. Any software vendor can implement support, making cross-application data exchange straightforward.",[747,759,761],{"id":760},"musicxml-file-structure","MusicXML File Structure",[752,763,764],{},"A MusicXML file consists of a hierarchical structure of XML elements describing all aspects of a musical score:",[766,767,768,785,793,801,809,817],"ul",{},[769,770,771,778,779,784],"li",{},[772,773,774],"strong",{},[775,776,777],"code",{},"\u003Cscore-partwise>"," or ",[772,780,781],{},[775,782,783],{},"\u003Cscore-timewise>"," - the root element determining how data is organized (by part or by measure)",[769,786,787,792],{},[772,788,789],{},[775,790,791],{},"\u003Cpart-list>"," - list of all instrumental parts in the piece",[769,794,795,800],{},[772,796,797],{},[775,798,799],{},"\u003Cpart>"," - a single instrumental part",[769,802,803,808],{},[772,804,805],{},[775,806,807],{},"\u003Cmeasure>"," - a musical measure containing notes and other elements",[769,810,811,816],{},[772,812,813],{},[775,814,815],{},"\u003Cnote>"," - a single note with attributes such as pitch, rhythmic value, and articulation",[769,818,819,824],{},[772,820,821],{},[775,822,823],{},"\u003Cattributes>"," - time signature, key signature, clef, and other musical attributes",[752,826,827],{},"Example structure of a simple note in MusicXML:",[829,830,835],"pre",{"className":831,"code":832,"language":833,"meta":834,"style":834},"language-xml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cnote>\n  \u003Cpitch>\n    \u003Cstep>C\u003C/step>\n    \u003Coctave>4\u003C/octave>\n  \u003C/pitch>\n  \u003Cduration>1\u003C/duration>\n  \u003Ctype>quarter\u003C/type>\n\u003C/note>\n","xml","",[775,836,837,853,864,887,906,916,935,954],{"__ignoreMap":834},[838,839,842,846,850],"span",{"class":840,"line":841},"line",1,[838,843,845],{"class":844},"sMK4o","\u003C",[838,847,849],{"class":848},"swJcz","note",[838,851,852],{"class":844},">\n",[838,854,856,859,862],{"class":840,"line":855},2,[838,857,858],{"class":844},"  \u003C",[838,860,861],{"class":848},"pitch",[838,863,852],{"class":844},[838,865,867,870,873,876,880,883,885],{"class":840,"line":866},3,[838,868,869],{"class":844},"    \u003C",[838,871,872],{"class":848},"step",[838,874,875],{"class":844},">",[838,877,879],{"class":878},"sTEyZ","C",[838,881,882],{"class":844},"\u003C/",[838,884,872],{"class":848},[838,886,852],{"class":844},[838,888,890,892,895,897,900,902,904],{"class":840,"line":889},4,[838,891,869],{"class":844},[838,893,894],{"class":848},"octave",[838,896,875],{"class":844},[838,898,899],{"class":878},"4",[838,901,882],{"class":844},[838,903,894],{"class":848},[838,905,852],{"class":844},[838,907,909,912,914],{"class":840,"line":908},5,[838,910,911],{"class":844},"  \u003C/",[838,913,861],{"class":848},[838,915,852],{"class":844},[838,917,919,921,924,926,929,931,933],{"class":840,"line":918},6,[838,920,858],{"class":844},[838,922,923],{"class":848},"duration",[838,925,875],{"class":844},[838,927,928],{"class":878},"1",[838,930,882],{"class":844},[838,932,923],{"class":848},[838,934,852],{"class":844},[838,936,938,940,943,945,948,950,952],{"class":840,"line":937},7,[838,939,858],{"class":844},[838,941,942],{"class":848},"type",[838,944,875],{"class":844},[838,946,947],{"class":878},"quarter",[838,949,882],{"class":844},[838,951,942],{"class":848},[838,953,852],{"class":844},[838,955,957,959,961],{"class":840,"line":956},8,[838,958,882],{"class":844},[838,960,849],{"class":848},[838,962,852],{"class":844},[747,964,966],{"id":965},"applications-in-the-music-industry","Applications in the Music Industry",[968,969,971],"h3",{"id":970},"score-exchange-between-applications","Score Exchange Between Applications",[752,973,974],{},"The primary use of MusicXML is transferring scores between different music notation applications. A musician working in Finale can export their composition to MusicXML and send it to a collaborator using Sibelius or MuseScore. This interoperability is crucial in professional music production, where different teams often use different tools.",[968,976,978],{"id":977},"archiving-and-digitization","Archiving and Digitization",[752,980,981],{},"Music libraries and archives increasingly use MusicXML for digitizing historical scores. This format allows storage of not only the visual representation of notes but also semantic information about the piece's structure, enabling advanced searching and analysis.",[968,983,985],{"id":984},"automatic-arrangement-and-transposition","Automatic Arrangement and Transposition",[752,987,988],{},"Programs using MusicXML can automatically transpose pieces to different keys or generate arrangements for various instrumental ensembles. The semantic structure of the format makes such operations much simpler than with graphic formats.",[968,990,992],{"id":991},"integration-with-daws-and-synthesizers","Integration with DAWs and Synthesizers",[752,994,995],{},"Some digital audio workstations (DAWs) support MusicXML import, allowing conversion of traditional notation to MIDI tracks. This is particularly useful for composers combining traditional notation with electronic production.",[747,997,999],{"id":998},"musicxml-in-music-education","MusicXML in Music Education",[968,1001,1003],{"id":1002},"interactive-educational-materials","Interactive Educational Materials",[752,1005,1006],{},"Music educators use MusicXML to create interactive exercises. Students can:",[766,1008,1009,1012,1015,1018],{},[769,1010,1011],{},"Play back scores at different tempos",[769,1013,1014],{},"Listen to selected parts separately",[769,1016,1017],{},"Follow the notation during playback",[769,1019,1020],{},"Modify and experiment with musical material",[968,1022,1024],{"id":1023},"instrument-learning-applications","Instrument Learning Applications",[752,1026,1027],{},"Many educational applications import MusicXML files to present students with notation synchronized to audio backing. Applications like SmartMusic, Yousician, and Piano Marvel use this format to deliver interactive lessons.",[968,1029,1031],{"id":1030},"accessibility-for-blind-musicians","Accessibility for Blind Musicians",[752,1033,1034],{},"MusicXML plays an important role in creating accessible musical materials. The format can be converted to music braille notation, enabling blind and visually impaired people to access musical scores. Projects like FreeDots and Music21 offer tools for such conversion.",[968,1036,1038],{"id":1037},"music-analysis-and-theory","Music Analysis and Theory",[752,1040,1041],{},"Musicology students use MusicXML in combination with programming libraries (e.g., music21 in Python) for:",[766,1043,1044,1047,1050,1053],{},[769,1045,1046],{},"Harmonic analysis of compositions",[769,1048,1049],{},"Studying statistical patterns in compositions",[769,1051,1052],{},"Comparing different versions of the same piece",[769,1054,1055],{},"Visualizing musical structures",[747,1057,1059],{"id":1058},"programming-with-musicxml","Programming with MusicXML",[968,1061,1063],{"id":1062},"python-and-the-music21-library","Python and the music21 Library",[752,1065,1066],{},"The most popular tool for working with MusicXML in Python is the music21 library developed by MIT. It enables:",[829,1068,1072],{"className":1069,"code":1070,"language":1071,"meta":834,"style":834},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from music21 import converter, analysis\n\n# Load MusicXML file\nscore = converter.parse('composition.musicxml')\n\n# Key analysis\nkey = score.analyze('key')\nprint(f\"Key: {key}\")\n\n# Transpose up a minor third\ntransposed = score.transpose('m3')\ntransposed.write('musicxml', 'composition_transposed.musicxml')\n","python",[775,1073,1074,1095,1101,1107,1139,1143,1148,1174,1202,1207,1213,1239],{"__ignoreMap":834},[838,1075,1076,1080,1083,1086,1089,1092],{"class":840,"line":841},[838,1077,1079],{"class":1078},"s7zQu","from",[838,1081,1082],{"class":878}," music21 ",[838,1084,1085],{"class":1078},"import",[838,1087,1088],{"class":878}," converter",[838,1090,1091],{"class":844},",",[838,1093,1094],{"class":878}," analysis\n",[838,1096,1097],{"class":840,"line":855},[838,1098,1100],{"emptyLinePlaceholder":1099},true,"\n",[838,1102,1103],{"class":840,"line":866},[838,1104,1106],{"class":1105},"sHwdD","# Load MusicXML file\n",[838,1108,1109,1112,1115,1117,1120,1124,1127,1130,1134,1136],{"class":840,"line":889},[838,1110,1111],{"class":878},"score ",[838,1113,1114],{"class":844},"=",[838,1116,1088],{"class":878},[838,1118,1119],{"class":844},".",[838,1121,1123],{"class":1122},"s2Zo4","parse",[838,1125,1126],{"class":844},"(",[838,1128,1129],{"class":844},"'",[838,1131,1133],{"class":1132},"sfazB","composition.musicxml",[838,1135,1129],{"class":844},[838,1137,1138],{"class":844},")\n",[838,1140,1141],{"class":840,"line":908},[838,1142,1100],{"emptyLinePlaceholder":1099},[838,1144,1145],{"class":840,"line":918},[838,1146,1147],{"class":1105},"# Key analysis\n",[838,1149,1150,1153,1155,1158,1160,1163,1165,1167,1170,1172],{"class":840,"line":937},[838,1151,1152],{"class":878},"key ",[838,1154,1114],{"class":844},[838,1156,1157],{"class":878}," score",[838,1159,1119],{"class":844},[838,1161,1162],{"class":1122},"analyze",[838,1164,1126],{"class":844},[838,1166,1129],{"class":844},[838,1168,1169],{"class":1132},"key",[838,1171,1129],{"class":844},[838,1173,1138],{"class":844},[838,1175,1176,1179,1181,1185,1188,1192,1194,1197,1200],{"class":840,"line":956},[838,1177,1178],{"class":1122},"print",[838,1180,1126],{"class":844},[838,1182,1184],{"class":1183},"spNyl","f",[838,1186,1187],{"class":1132},"\"Key: ",[838,1189,1191],{"class":1190},"sbssI","{",[838,1193,1169],{"class":1122},[838,1195,1196],{"class":1190},"}",[838,1198,1199],{"class":1132},"\"",[838,1201,1138],{"class":844},[838,1203,1205],{"class":840,"line":1204},9,[838,1206,1100],{"emptyLinePlaceholder":1099},[838,1208,1210],{"class":840,"line":1209},10,[838,1211,1212],{"class":1105},"# Transpose up a minor third\n",[838,1214,1216,1219,1221,1223,1225,1228,1230,1232,1235,1237],{"class":840,"line":1215},11,[838,1217,1218],{"class":878},"transposed ",[838,1220,1114],{"class":844},[838,1222,1157],{"class":878},[838,1224,1119],{"class":844},[838,1226,1227],{"class":1122},"transpose",[838,1229,1126],{"class":844},[838,1231,1129],{"class":844},[838,1233,1234],{"class":1132},"m3",[838,1236,1129],{"class":844},[838,1238,1138],{"class":844},[838,1240,1242,1245,1247,1250,1252,1254,1257,1259,1261,1264,1267,1269],{"class":840,"line":1241},12,[838,1243,1244],{"class":878},"transposed",[838,1246,1119],{"class":844},[838,1248,1249],{"class":1122},"write",[838,1251,1126],{"class":844},[838,1253,1129],{"class":844},[838,1255,1256],{"class":1132},"musicxml",[838,1258,1129],{"class":844},[838,1260,1091],{"class":844},[838,1262,1263],{"class":844}," '",[838,1265,1266],{"class":1132},"composition_transposed.musicxml",[838,1268,1129],{"class":844},[838,1270,1138],{"class":844},[968,1272,1274],{"id":1273},"javascript-and-the-opensheetmusicdisplay-library","JavaScript and the opensheetmusicdisplay Library",[752,1276,1277],{},"In the web environment, the opensheetmusicdisplay library is popular for rendering MusicXML files directly in the browser:",[829,1279,1283],{"className":1280,"code":1281,"language":1282,"meta":834,"style":834},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { OpenSheetMusicDisplay } from 'opensheetmusicdisplay';\n\nconst osmd = new OpenSheetMusicDisplay(\"container\");\nosmd.load(\"composition.musicxml\")\n  .then(() => osmd.render());\n","javascript",[775,1284,1285,1311,1315,1344,1364],{"__ignoreMap":834},[838,1286,1287,1289,1292,1295,1298,1301,1303,1306,1308],{"class":840,"line":841},[838,1288,1085],{"class":1078},[838,1290,1291],{"class":844}," {",[838,1293,1294],{"class":878}," OpenSheetMusicDisplay",[838,1296,1297],{"class":844}," }",[838,1299,1300],{"class":1078}," from",[838,1302,1263],{"class":844},[838,1304,1305],{"class":1132},"opensheetmusicdisplay",[838,1307,1129],{"class":844},[838,1309,1310],{"class":844},";\n",[838,1312,1313],{"class":840,"line":855},[838,1314,1100],{"emptyLinePlaceholder":1099},[838,1316,1317,1320,1323,1325,1328,1330,1332,1334,1337,1339,1342],{"class":840,"line":866},[838,1318,1319],{"class":1183},"const",[838,1321,1322],{"class":878}," osmd ",[838,1324,1114],{"class":844},[838,1326,1327],{"class":844}," new",[838,1329,1294],{"class":1122},[838,1331,1126],{"class":878},[838,1333,1199],{"class":844},[838,1335,1336],{"class":1132},"container",[838,1338,1199],{"class":844},[838,1340,1341],{"class":878},")",[838,1343,1310],{"class":844},[838,1345,1346,1349,1351,1354,1356,1358,1360,1362],{"class":840,"line":889},[838,1347,1348],{"class":878},"osmd",[838,1350,1119],{"class":844},[838,1352,1353],{"class":1122},"load",[838,1355,1126],{"class":878},[838,1357,1199],{"class":844},[838,1359,1133],{"class":1132},[838,1361,1199],{"class":844},[838,1363,1138],{"class":878},[838,1365,1366,1369,1372,1374,1377,1380,1383,1385,1388,1391],{"class":840,"line":908},[838,1367,1368],{"class":844},"  .",[838,1370,1371],{"class":1122},"then",[838,1373,1126],{"class":878},[838,1375,1376],{"class":844},"()",[838,1378,1379],{"class":1183}," =>",[838,1381,1382],{"class":878}," osmd",[838,1384,1119],{"class":844},[838,1386,1387],{"class":1122},"render",[838,1389,1390],{"class":878},"())",[838,1392,1310],{"class":844},[968,1394,1396],{"id":1395},"xml-validation-and-parsing","XML Validation and Parsing",[752,1398,1399],{},"As an XML-based format, MusicXML can be processed by standard XML libraries in any programming language. Official XSD schemas allow validation of file correctness.",[747,1401,1403],{"id":1402},"comparison-with-other-formats","Comparison with Other Formats",[1405,1406,1407,1426],"table",{},[1408,1409,1410],"thead",{},[1411,1412,1413,1417,1420,1423],"tr",{},[1414,1415,1416],"th",{},"Format",[1414,1418,1419],{},"Type",[1414,1421,1422],{},"Openness",[1414,1424,1425],{},"Primary Use",[1427,1428,1429,1444,1456,1469,1482],"tbody",{},[1411,1430,1431,1435,1438,1441],{},[1432,1433,1434],"td",{},"MusicXML",[1432,1436,1437],{},"XML",[1432,1439,1440],{},"Open",[1432,1442,1443],{},"Score exchange",[1411,1445,1446,1449,1451,1453],{},[1432,1447,1448],{},"MEI",[1432,1450,1437],{},[1432,1452,1440],{},[1432,1454,1455],{},"Musicology, archiving",[1411,1457,1458,1461,1464,1466],{},[1432,1459,1460],{},"MIDI",[1432,1462,1463],{},"Binary",[1432,1465,1440],{},[1432,1467,1468],{},"Performance data",[1411,1470,1471,1474,1476,1479],{},[1432,1472,1473],{},"Finale (.musx)",[1432,1475,1463],{},[1432,1477,1478],{},"Closed",[1432,1480,1481],{},"Editing in Finale",[1411,1483,1484,1487,1489,1491],{},[1432,1485,1486],{},"Sibelius (.sib)",[1432,1488,1463],{},[1432,1490,1478],{},[1432,1492,1493],{},"Editing in Sibelius",[747,1495,1497],{"id":1496},"musicxml-limitations","MusicXML Limitations",[752,1499,1500],{},"Despite its many advantages, MusicXML has some limitations:",[766,1502,1503,1509,1515,1521],{},[769,1504,1505,1508],{},[772,1506,1507],{},"File size"," - XML files are significantly larger than binary formats",[769,1510,1511,1514],{},[772,1512,1513],{},"Complexity"," - the full specification is extensive and complicated",[769,1516,1517,1520],{},[772,1518,1519],{},"Formatting loss"," - specific visual elements may be lost when converting between programs",[769,1522,1523,1526],{},[772,1524,1525],{},"No sound standardization"," - the format describes notation, not sound (unlike MIDI)",[747,1528,1530],{"id":1529},"the-future-of-musicxml","The Future of MusicXML",[752,1532,1533],{},"The W3C Music Notation Community Group continues to develop the standard. Version 4.0 introduces, among other things:",[766,1535,1536,1539,1542,1545],{},[769,1537,1538],{},"Better support for contemporary and experimental notation",[769,1540,1541],{},"Extended capabilities for describing dynamics and articulation",[769,1543,1544],{},"Improvements in representing non-metric music",[769,1546,1547],{},"Integration with the SMuFL (Standard Music Font Layout) format",[747,1549,1551],{"id":1550},"summary","Summary",[752,1553,1554],{},"MusicXML forms the foundation of interoperability in digital music notation. For musicians, educators, and developers, it is an invaluable tool enabling the exchange, analysis, and processing of musical scores. As music education digitization grows and music applications develop, the importance of this standard will only increase.",[752,1556,1557],{},"For technical teams working on music projects, knowledge of MusicXML is a key competency for building solutions compatible with the broad ecosystem of music tools.",[747,1559,1561],{"id":1560},"useful-resources","Useful Resources",[766,1563,1564,1573,1580,1587,1594],{},[769,1565,1566],{},[1567,1568,1572],"a",{"href":1569,"rel":1570},"https://www.musicxml.com/",[1571],"nofollow","Official MusicXML Website",[769,1574,1575],{},[1567,1576,1579],{"href":1577,"rel":1578},"https://www.w3.org/community/music-notation/",[1571],"W3C Music Notation Community Group",[769,1581,1582],{},[1567,1583,1586],{"href":1584,"rel":1585},"https://web.mit.edu/music21/",[1571],"music21 Documentation",[769,1588,1589],{},[1567,1590,1593],{"href":1591,"rel":1592},"https://opensheetmusicdisplay.org/",[1571],"OpenSheetMusicDisplay",[769,1595,1596],{},[1567,1597,1600],{"href":1598,"rel":1599},"https://www.w3.org/2021/06/musicxml40/",[1571],"MusicXML 4.0 Specification",[1602,1603,1604],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":834,"searchDepth":855,"depth":855,"links":1606},[1607,1608,1609,1615,1621,1626,1627,1628,1629,1630],{"id":749,"depth":855,"text":750},{"id":760,"depth":855,"text":761},{"id":965,"depth":855,"text":966,"children":1610},[1611,1612,1613,1614],{"id":970,"depth":866,"text":971},{"id":977,"depth":866,"text":978},{"id":984,"depth":866,"text":985},{"id":991,"depth":866,"text":992},{"id":998,"depth":855,"text":999,"children":1616},[1617,1618,1619,1620],{"id":1002,"depth":866,"text":1003},{"id":1023,"depth":866,"text":1024},{"id":1030,"depth":866,"text":1031},{"id":1037,"depth":866,"text":1038},{"id":1058,"depth":855,"text":1059,"children":1622},[1623,1624,1625],{"id":1062,"depth":866,"text":1063},{"id":1273,"depth":866,"text":1274},{"id":1395,"depth":866,"text":1396},{"id":1402,"depth":855,"text":1403},{"id":1496,"depth":855,"text":1497},{"id":1529,"depth":855,"text":1530},{"id":1550,"depth":855,"text":1551},{"id":1560,"depth":855,"text":1561},"software-development","2026-01-15T00:00:00.000Z","What is MusicXML, how does it work, and what are its applications in music and education? A guide to the open standard for sheet music exchange.","md",{"src":1636},"/images/blog/musictechlab_blog_musicxml-standard.webp",{"enabled":1099,"items":1638},[1639,1642,1645,1648],{"text":1640,"icon":1641},"MusicXML is the universal open standard for exchanging digital sheet music across applications.","i-lucide-music",{"text":1643,"icon":1644},"Python's music21 library enables key analysis, transposition, and statistical study of MusicXML files.","i-lucide-code",{"text":1646,"icon":1647},"MusicXML can be converted to music braille, making scores accessible to blind musicians.","i-lucide-users",{"text":1649,"icon":1650},"Version 4.0 adds better support for contemporary notation and SMuFL font integration.","i-lucide-layers",{},{"title":606,"description":1633},[1654,1655],"musictech","music-data","RMUBgJBMMiRalXu39PcOF_a2vQZmUD88k-VCZ_gaBUQ",[1658,1660],{"title":602,"path":603,"stem":604,"description":1659,"children":-1},"MusicTech Lab partners with Verified Human to build infrastructure for authentic, human-made music in the age of AI. Technical review, product development, and MCP-based AI integration.",{"title":610,"path":611,"stem":612,"description":1661,"children":-1},"Key takeaways from Bill Gates' recommended book list, including Getting Things Done, Deep Work, and practical ideas for time management and productivity.",[1663,2145,2755,2883],{"id":1664,"title":458,"authors":1665,"badge":1668,"body":1671,"category":1631,"client":742,"date":2124,"description":2125,"extension":1634,"faq":742,"featured":69,"featuredOrder":742,"hidden":69,"image":2126,"keyTakeaways":2128,"meta":2141,"navigation":1099,"path":459,"seo":2142,"status":742,"stem":460,"tags":2143,"teaser":742,"__hash__":2144,"score":866},"posts/blog/software-development/did-you-know-musictech-facts-part-2.md",[1666],{"name":738,"to":739,"avatar":1667},{"src":741},{"label":1669,"color":1670},"Series","#7C3AED",{"type":744,"value":1672,"toc":2111},[1673,1676,1679,1683,1689,1692,1695,1701,1703,1707,1712,1715,1721,1723,1727,1732,1758,1761,1763,1767,1772,1775,1801,1804,1806,1810,1815,1818,1821,1823,1827,1832,1838,1852,1855,1857,1861,1866,1869,1875,1877,1881,1886,1889,1903,1906,1908,1912,1917,1920,1925,1939,1941,1945,1950,1967,1970,2077,2079,2083,2086,2095,2097,2108],[752,1674,1675],{},"Welcome to \"Did You Know?\" - MusicTech Edition! A series where we share fascinating facts, surprising innovations, and lesser-known aspects of music technology. From industry standards to accessibility breakthroughs, these are the things that make music technology truly remarkable.",[1677,1678],"hr",{},[747,1680,1682],{"id":1681},"_1-musicxml-makes-sheet-music-accessible-to-blind-musicians","1. MusicXML Makes Sheet Music Accessible to Blind Musicians",[752,1684,1685,1688],{},[772,1686,1687],{},"Did you know?"," MusicXML, the universal standard for digital sheet music, can be converted to music braille notation, enabling blind and visually impaired musicians to read musical scores independently.",[752,1690,1691],{},"Projects like FreeDots and the music21 Python library provide tools for this conversion. A sighted arranger can create a score in Finale or Sibelius, export it to MusicXML, and a blind musician can convert it to braille notation within minutes.",[752,1693,1694],{},"This wasn't possible before digital standards - blind musicians had to rely on specialized transcribers who would manually convert printed scores to braille, a process that could take weeks for a single symphony.",[752,1696,1697,1700],{},[772,1698,1699],{},"Impact:"," Over 2 million blind and visually impaired people worldwide can now access the same musical scores as sighted musicians, opening doors to music education and professional performance that were previously closed.",[1677,1702],{},[747,1704,1706],{"id":1705},"_2-midi-is-over-40-years-old-and-still-industry-standard","2. MIDI Is Over 40 Years Old and Still Industry Standard",[752,1708,1709,1711],{},[772,1710,1687],{}," The MIDI (Musical Instrument Digital Interface) specification was released in 1983 and remains virtually unchanged as the backbone of music production.",[752,1713,1714],{},"Created through unprecedented cooperation between competing companies (Roland, Sequential Circuits, Oberheim, and others), MIDI was designed to let synthesizers from different manufacturers communicate. Four decades later, it still connects instruments, controllers, and software worldwide.",[752,1716,1717,1720],{},[772,1718,1719],{},"Fun fact:"," MIDI files are incredibly small - Beethoven's entire 9th Symphony as MIDI is about 100KB. The same recording as audio would be 700MB.",[1677,1722],{},[747,1724,1726],{"id":1725},"_3-spotify-analyzes-every-songs-danceability","3. Spotify Analyzes Every Song's \"Danceability\"",[752,1728,1729,1731],{},[772,1730,1687],{}," Spotify calculates audio features for every single track in its library, including:",[766,1733,1734,1740,1746,1752],{},[769,1735,1736,1739],{},[772,1737,1738],{},"Danceability"," (0.0 to 1.0) - How suitable for dancing based on tempo, rhythm stability, and beat strength",[769,1741,1742,1745],{},[772,1743,1744],{},"Valence"," (0.0 to 1.0) - Musical positiveness (high valence = happy, cheerful)",[769,1747,1748,1751],{},[772,1749,1750],{},"Energy"," (0.0 to 1.0) - Perceptual intensity and activity",[769,1753,1754,1757],{},[772,1755,1756],{},"Speechiness"," (0.0 to 1.0) - Presence of spoken words",[752,1759,1760],{},"These features are publicly available through Spotify's Web API, enabling developers to create playlists based on mood, energy levels, or even heart rate from fitness trackers.",[1677,1762],{},[747,1764,1766],{"id":1765},"_4-the-music-industry-has-its-own-language-for-data-exchange","4. The Music Industry Has Its Own \"Language\" for Data Exchange",[752,1768,1769,1771],{},[772,1770,1687],{}," DDEX (Digital Data Exchange) is a consortium that creates standards for how music companies communicate. When you release a song on Spotify, Apple Music, or any major platform, DDEX XML files carry the metadata.",[752,1773,1774],{},"There are different DDEX standards for different purposes:",[766,1776,1777,1783,1789,1795],{},[769,1778,1779,1782],{},[772,1780,1781],{},"ERN"," (Electronic Release Notification) - For releasing new music",[769,1784,1785,1788],{},[772,1786,1787],{},"DSR"," (Digital Sales Reporting) - For royalty statements",[769,1790,1791,1794],{},[772,1792,1793],{},"RIN"," (Recording Information Notification) - For studio session data",[769,1796,1797,1800],{},[772,1798,1799],{},"MLC"," (Musical Works Licensing) - For publishing rights",[752,1802,1803],{},"Without DDEX, every platform would speak a different \"language,\" making global music distribution a nightmare.",[1677,1805],{},[747,1807,1809],{"id":1808},"_5-your-favorite-songs-key-was-probably-detected-by-ai","5. Your Favorite Song's Key Was Probably Detected by AI",[752,1811,1812,1814],{},[772,1813,1687],{}," Services like Beatport, rekordbox, and Mixed In Key use machine learning algorithms to detect the musical key of songs with over 95% accuracy.",[752,1816,1817],{},"This technology analyzes the audio's frequency spectrum, identifies the dominant notes, and matches them against key profiles. DJs use this to create harmonically compatible playlists - mixing songs in related keys creates smoother transitions.",[752,1819,1820],{},"The algorithms have become so accurate that they often outperform trained musicians in blind tests, especially for songs with ambiguous tonality.",[1677,1822],{},[747,1824,1826],{"id":1825},"_6-isrc-codes-have-tracked-every-recording-since-1986","6. ISRC Codes Have Tracked Every Recording Since 1986",[752,1828,1829,1831],{},[772,1830,1687],{}," Every commercially released recording has a unique 12-character identifier called an ISRC (International Standard Recording Code).",[752,1833,1834,1835],{},"Structure: ",[775,1836,1837],{},"CC-XXX-YY-NNNNN",[766,1839,1840,1843,1846,1849],{},[769,1841,1842],{},"CC = Country code",[769,1844,1845],{},"XXX = Registrant code",[769,1847,1848],{},"YY = Year of reference",[769,1850,1851],{},"NNNNN = Designation code",[752,1853,1854],{},"Over 100 million ISRCs have been assigned. When you stream a song, the ISRC is how streaming platforms identify exactly which recording to pay royalties for - even if there are 50 different versions of \"Happy Birthday.\"",[1677,1856],{},[747,1858,1860],{"id":1859},"_7-musescore-has-more-users-than-finale-and-sibelius-combined","7. MuseScore Has More Users Than Finale and Sibelius Combined",[752,1862,1863,1865],{},[772,1864,1687],{}," MuseScore, the free and open-source notation software, has over 10 million users worldwide - more than the commercial giants Finale and Sibelius combined.",[752,1867,1868],{},"The software is entirely community-driven, with contributions from musicians and developers globally. Its companion site, musescore.com, hosts millions of user-created scores that can be viewed, played back, and downloaded.",[752,1870,1871,1874],{},[772,1872,1873],{},"Why it matters:"," Professional music notation software costs $300-600. MuseScore democratizes music education by giving everyone access to publication-quality engraving tools for free.",[1677,1876],{},[747,1878,1880],{"id":1879},"_8-the-loudness-wars-are-officially-over-thanks-to-standards","8. The Loudness Wars Are Officially Over (Thanks to Standards)",[752,1882,1883,1885],{},[772,1884,1687],{}," Streaming platforms now normalize audio loudness, effectively ending the \"loudness wars\" where albums were mastered as loud as possible to stand out on radio.",[752,1887,1888],{},"All major platforms use LUFS (Loudness Units Full Scale) normalization:",[766,1890,1891,1894,1897,1900],{},[769,1892,1893],{},"Spotify: -14 LUFS",[769,1895,1896],{},"Apple Music: -16 LUFS",[769,1898,1899],{},"YouTube: -14 LUFS",[769,1901,1902],{},"Amazon Music: -14 LUFS",[752,1904,1905],{},"If you master a track at -8 LUFS (extremely loud), the platform will turn it down. If you master at -18 LUFS (very dynamic), it gets turned up. The result? Dynamic, well-mastered music no longer loses to \"loud\" masters.",[1677,1907],{},[747,1909,1911],{"id":1910},"_9-ai-can-now-separate-any-song-into-individual-stems","9. AI Can Now Separate Any Song Into Individual Stems",[752,1913,1914,1916],{},[772,1915,1687],{}," Tools like LALAL.AI, Demucs, and Spleeter can separate a mixed song into individual stems (vocals, drums, bass, other) with remarkable quality.",[752,1918,1919],{},"This technology uses deep neural networks trained on thousands of songs where the original stems were available. The AI learned to recognize which frequencies belong to which instruments and can now \"unmix\" songs it has never heard before.",[752,1921,1922],{},[772,1923,1924],{},"Use cases:",[766,1926,1927,1930,1933,1936],{},[769,1928,1929],{},"DJs creating acapellas for remixes",[769,1931,1932],{},"Musicians learning parts from recordings",[769,1934,1935],{},"Remastering old recordings where original tapes are lost",[769,1937,1938],{},"Karaoke without the cheesy MIDI backing tracks",[1677,1940],{},[747,1942,1944],{"id":1943},"_10-web-audio-api-turns-every-browser-into-a-synthesizer","10. Web Audio API Turns Every Browser Into a Synthesizer",[752,1946,1947,1949],{},[772,1948,1687],{}," Modern web browsers include a complete audio synthesis engine accessible through JavaScript. The Web Audio API can:",[766,1951,1952,1955,1958,1961,1964],{},[769,1953,1954],{},"Generate waveforms (sine, square, sawtooth, triangle)",[769,1956,1957],{},"Apply filters, compression, and effects",[769,1959,1960],{},"Analyze audio in real-time (FFT, waveform visualization)",[769,1962,1963],{},"Create spatial 3D audio",[769,1965,1966],{},"Process microphone input",[752,1968,1969],{},"No plugins needed. Tools like Tone.js wrap this API to create full-featured DAWs that run entirely in the browser. You can build instruments, effects, and even complete music production tools using just JavaScript.",[829,1971,1973],{"className":1280,"code":1972,"language":1282,"meta":834,"style":834},"// Create a simple synthesizer in 5 lines\nconst ctx = new AudioContext();\nconst osc = ctx.createOscillator();\nosc.frequency.value = 440; // A4\nosc.connect(ctx.destination);\nosc.start();\n",[775,1974,1975,1980,1998,2019,2045,2064],{"__ignoreMap":834},[838,1976,1977],{"class":840,"line":841},[838,1978,1979],{"class":1105},"// Create a simple synthesizer in 5 lines\n",[838,1981,1982,1984,1987,1989,1991,1994,1996],{"class":840,"line":855},[838,1983,1319],{"class":1183},[838,1985,1986],{"class":878}," ctx ",[838,1988,1114],{"class":844},[838,1990,1327],{"class":844},[838,1992,1993],{"class":1122}," AudioContext",[838,1995,1376],{"class":878},[838,1997,1310],{"class":844},[838,1999,2000,2002,2005,2007,2010,2012,2015,2017],{"class":840,"line":866},[838,2001,1319],{"class":1183},[838,2003,2004],{"class":878}," osc ",[838,2006,1114],{"class":844},[838,2008,2009],{"class":878}," ctx",[838,2011,1119],{"class":844},[838,2013,2014],{"class":1122},"createOscillator",[838,2016,1376],{"class":878},[838,2018,1310],{"class":844},[838,2020,2021,2024,2026,2029,2031,2034,2036,2039,2042],{"class":840,"line":889},[838,2022,2023],{"class":878},"osc",[838,2025,1119],{"class":844},[838,2027,2028],{"class":878},"frequency",[838,2030,1119],{"class":844},[838,2032,2033],{"class":878},"value ",[838,2035,1114],{"class":844},[838,2037,2038],{"class":1190}," 440",[838,2040,2041],{"class":844},";",[838,2043,2044],{"class":1105}," // A4\n",[838,2046,2047,2049,2051,2054,2057,2059,2062],{"class":840,"line":908},[838,2048,2023],{"class":878},[838,2050,1119],{"class":844},[838,2052,2053],{"class":1122},"connect",[838,2055,2056],{"class":878},"(ctx",[838,2058,1119],{"class":844},[838,2060,2061],{"class":878},"destination)",[838,2063,1310],{"class":844},[838,2065,2066,2068,2070,2073,2075],{"class":840,"line":918},[838,2067,2023],{"class":878},[838,2069,1119],{"class":844},[838,2071,2072],{"class":1122},"start",[838,2074,1376],{"class":878},[838,2076,1310],{"class":844},[1677,2078],{},[747,2080,2082],{"id":2081},"whats-next","What's Next?",[752,2084,2085],{},"This is Part 2 of an ongoing series exploring the fascinating world of music technology. Each installment will bring new facts, innovations, and insights from the intersection of music and technology.",[752,2087,2088,2089,2094],{},"Know a surprising MusicTech fact? ",[1567,2090,2093],{"href":2091,"rel":2092},"https://musictechlab.io/contact",[1571],"Let us know"," - we might feature it in a future edition.",[1677,2096],{},[752,2098,2099],{},[2100,2101,2102,2103,2107],"em",{},"MusicTech Lab builds software for the music industry. From DDEX integrations to audio analysis tools, we've seen the technology behind the music. ",[1567,2104,2106],{"href":2091,"rel":2105},[1571],"Contact us"," if you're building something in the MusicTech space.",[1602,2109,2110],{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":834,"searchDepth":855,"depth":855,"links":2112},[2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123],{"id":1681,"depth":855,"text":1682},{"id":1705,"depth":855,"text":1706},{"id":1725,"depth":855,"text":1726},{"id":1765,"depth":855,"text":1766},{"id":1808,"depth":855,"text":1809},{"id":1825,"depth":855,"text":1826},{"id":1859,"depth":855,"text":1860},{"id":1879,"depth":855,"text":1880},{"id":1910,"depth":855,"text":1911},{"id":1943,"depth":855,"text":1944},{"id":2081,"depth":855,"text":2082},"2026-01-10T00:00:00.000Z","Fascinating facts about music technology, standards, and innovations that shape how we create, share, and experience music. Part 2 of the series.",{"src":2127},"/images/blog/musictechlab_blog_did-you-know-musictech-facts.webp",{"enabled":1099,"items":2129},[2130,2132,2135,2138],{"text":2131,"icon":1641},"MIDI is over 40 years old (1983) and still the industry standard for music production.",{"text":2133,"icon":2134},"MusicXML enables blind musicians to convert sheet music to braille notation.","i-lucide-headphones",{"text":2136,"icon":2137},"Spotify calculates danceability, valence, energy, and speechiness for every track.","i-lucide-bar-chart-3",{"text":2139,"icon":2140},"DDEX standards power metadata exchange across all major music platforms.","i-lucide-database",{},{"title":458,"description":2125},[1654],"ySC6nBuRvpIs0kSIlnIND38qVB516oggAL89-F9t3_I",{"id":2146,"title":562,"authors":2147,"badge":2150,"body":2153,"category":1631,"client":742,"date":2737,"description":2738,"extension":1634,"faq":742,"featured":69,"featuredOrder":742,"hidden":69,"image":2739,"keyTakeaways":2741,"meta":2750,"navigation":1099,"path":563,"seo":2751,"status":742,"stem":564,"tags":2752,"teaser":742,"__hash__":2754,"score":866},"posts/blog/software-development/integrating-tempus-metronome-with-the-getsongbpm-api-what-bpm-really-means-and-how-to-use-it.md",[2148],{"name":738,"to":739,"avatar":2149},{"src":741},{"label":2151,"color":2152},"Featured","#E91E63",{"type":744,"value":2154,"toc":2723},[2155,2162,2164,2168,2186,2221,2225,2249,2253,2259,2261,2265,2290,2299,2301,2305,2328,2330,2334,2351,2354,2374,2376,2380,2384,2683,2685,2689,2693,2695,2699,2720],[752,2156,2157,2158,2161],{},"Understanding tempo is one of the fundamentals of music performance, practice, and DJing. In Tempus Metronome, we integrate directly with the ",[772,2159,2160],{},"GetSongBPM API",", allowing users to look up a song, check its tempo, and instantly set the metronome to match. This article explains what BPM actually is, why it matters, where tempo data comes from, and how to integrate GetSongBPM into Flutter — all in one place.",[1677,2163],{},[747,2165,2167],{"id":2166},"what-is-bpm","What Is BPM?",[752,2169,2170,2173,2174,2177,2178,2181,2182,2185],{},[772,2171,2172],{},"BPM (Beats Per Minute)"," describes the tempo of a piece of music — how many beats occur in one minute. A slow ballad might be ",[772,2175,2176],{},"60 BPM",", a pop track ",[772,2179,2180],{},"120 BPM",", and fast electronic music can reach ",[772,2183,2184],{},"150–180 BPM"," or more.",[2187,2188,2195,2201,2206,2211,2216],"div",{"className":2189},[2190,2191,2192,2193,2194],"grid","grid-cols-2","md:grid-cols-5","gap-4","my-8",[2196,2197],"spotlight-card",{"description":2198,"icon":2199,"title":2200},"Keep a steady beat during practice and performance.","i-lucide-timer","Consistent Timing",[2196,2202],{"description":2203,"icon":2204,"title":2205},"Match tempos between tracks for seamless transitions.","i-lucide-disc-3","DJ Matching",[2196,2207],{"description":2208,"icon":2209,"title":2210},"Design workouts and running playlists by energy level.","i-lucide-dumbbell","Workout Playlists",[2196,2212],{"description":2213,"icon":2214,"title":2215},"Practice specific rhythmic patterns at precise tempos.","i-lucide-music-4","Rhythmic Practice",[2196,2217],{"description":2218,"icon":2219,"title":2220},"Analyze energy and intensity in any track.","i-lucide-activity","Song Analysis",[968,2222,2224],{"id":2223},"what-bpm-can-tell-you","What BPM Can Tell You",[2187,2226,2229,2234,2239,2244],{"className":2227},[2190,2191,2228,2193,2194],"md:grid-cols-4",[2196,2230],{"description":2231,"icon":2232,"title":2233},"Higher BPM generally means higher energy.","i-lucide-zap","Energy Level",[2196,2235],{"description":2236,"icon":2237,"title":2238},"Most genres cluster around specific BPM ranges.","i-lucide-tag","Genre Tendencies",[2196,2240],{"description":2241,"icon":2242,"title":2243},"Faster tempos demand more from the performer.","i-lucide-gauge","Difficulty",[2196,2245],{"description":2246,"icon":2247,"title":2248},"Plan warm-ups, drills, and cool-downs by tempo.","i-lucide-list-checks","Training Structure",[968,2250,2252],{"id":2251},"what-to-watch-out-for","What to Watch Out For",[2254,2255,2256],"warning",{},[752,2257,2258],{},"BPM data is not always reliable. Watch out for tempo changes within a track, live recordings with natural drift, different remixes at different speeds, double-time / half-time feel that confuses detection, and incorrect crowd-sourced data.",[1677,2260],{},[747,2262,2264],{"id":2263},"where-can-you-search-for-bpm-data","Where Can You Search for BPM Data?",[2187,2266,2271,2276,2280,2285],{"className":2267},[2190,2268,2269,2270,2193,2194],"grid-cols-1","md:grid-cols-2","lg:grid-cols-4",[2196,2272],{"description":2273,"icon":2274,"title":2275},"Dedicated BPM database with a simple REST API. Used by Tempus Metronome.","i-lucide-search","GetSongBPM",[2196,2277],{"description":2278,"icon":1641,"title":2279},"Rich audio analysis including tempo, key, and danceability via Spotify's API.","Spotify Audio Features",[2196,2281],{"description":2282,"icon":2283,"title":2284},"Audio recognition services that identify songs and return metadata including BPM.","i-lucide-mic","AudD / ACRCloud",[2196,2286],{"description":2287,"icon":2288,"title":2289},"Tap along to the beat and calculate BPM manually — the most reliable fallback.","i-lucide-hand","Manual Tap-Tempo",[2291,2292,2293],"tip",{},[752,2294,2295,2296,2298],{},"Tempus Metronome uses ",[772,2297,2275],{}," for its simplicity and speed. One API call returns the tempo — no OAuth, no complex setup.",[1677,2300],{},[747,2302,2304],{"id":2303},"getting-started-with-the-getsongbpm-api","Getting Started with the GetSongBPM API",[2187,2306,2308,2313,2318,2323],{"className":2307},[2190,2268,2269,2193,2194],[2196,2309],{"description":2310,"icon":2311,"title":2312},"Sign up at getsongbpm.com/api to get your API key. Free tier available.","i-lucide-key","Register",[2196,2314],{"description":2315,"icon":2316,"title":2317},"The API terms require a backlink to GetSongBPM in your app or website.","i-lucide-link","Backlink Required",[2196,2319],{"description":2320,"icon":2321,"title":2322},"3,000 requests per hour — more than enough for a metronome app.","i-lucide-clock","Rate Limit",[2196,2324],{"description":2325,"icon":2326,"title":2327},"Store your key in environment variables, never hardcode it in source code.","i-lucide-shield-check","API Key Security",[1677,2329],{},[747,2331,2333],{"id":2332},"environment-configuration","Environment Configuration",[829,2335,2339],{"className":2336,"code":2337,"language":2338,"meta":834,"style":834},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","GETSONGBPM_API_KEY=your_api_key_here\n","bash",[775,2340,2341],{"__ignoreMap":834},[838,2342,2343,2346,2348],{"class":840,"line":841},[838,2344,2345],{"class":878},"GETSONGBPM_API_KEY",[838,2347,1114],{"class":844},[838,2349,2350],{"class":1132},"your_api_key_here\n",[752,2352,2353],{},"For Flutter Web, pass the key at build time:",[829,2355,2357],{"className":2336,"code":2356,"language":2338,"meta":834,"style":834},"flutter build web --dart-define=GETSONGBPM_API_KEY=your_api_key_here\n",[775,2358,2359],{"__ignoreMap":834},[838,2360,2361,2365,2368,2371],{"class":840,"line":841},[838,2362,2364],{"class":2363},"sBMFI","flutter",[838,2366,2367],{"class":1132}," build",[838,2369,2370],{"class":1132}," web",[838,2372,2373],{"class":1132}," --dart-define=GETSONGBPM_API_KEY=your_api_key_here\n",[1677,2375],{},[747,2377,2379],{"id":2378},"flutter-integration-example","Flutter Integration Example",[968,2381,2383],{"id":2382},"api-service","API Service",[829,2385,2389],{"className":2386,"code":2387,"language":2388,"meta":834,"style":834},"language-dart shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","class GetSongBpmApi {\n  final String baseUrl = \"https://api.getsongbpm.com\";\n  final String apiKey = dotenv.env['GETSONGBPM_API_KEY']!;\n\n  Future\u003CList\u003Cdynamic>> searchSongs(String query) async {\n    final url = Uri.parse(\n      \"$baseUrl/search/?api_key=$apiKey&type=multi&lookup=$query\"\n    );\n    final response = await http.get(url);\n    if (response.statusCode == 200) {\n      final jsonResponse = jsonDecode(response.body);\n      return jsonResponse['search'] ?? [];\n    } else {\n      throw Exception(\"Failed to load data\");\n    }\n  }\n}\n","dart",[775,2390,2391,2402,2420,2448,2452,2486,2506,2537,2544,2569,2591,2614,2636,2647,2665,2671,2677],{"__ignoreMap":834},[838,2392,2393,2396,2399],{"class":840,"line":841},[838,2394,2395],{"class":844},"class",[838,2397,2398],{"class":2363}," GetSongBpmApi",[838,2400,2401],{"class":878}," {\n",[838,2403,2404,2407,2410,2413,2415,2418],{"class":840,"line":855},[838,2405,2406],{"class":1183},"  final",[838,2408,2409],{"class":2363}," String",[838,2411,2412],{"class":878}," baseUrl ",[838,2414,1114],{"class":844},[838,2416,2417],{"class":1132}," \"https://api.getsongbpm.com\"",[838,2419,1310],{"class":844},[838,2421,2422,2424,2426,2429,2431,2434,2436,2439,2442,2445],{"class":840,"line":866},[838,2423,2406],{"class":1183},[838,2425,2409],{"class":2363},[838,2427,2428],{"class":878}," apiKey ",[838,2430,1114],{"class":844},[838,2432,2433],{"class":878}," dotenv",[838,2435,1119],{"class":844},[838,2437,2438],{"class":878},"env[",[838,2440,2441],{"class":1132},"'GETSONGBPM_API_KEY'",[838,2443,2444],{"class":878},"]",[838,2446,2447],{"class":844},"!;\n",[838,2449,2450],{"class":840,"line":889},[838,2451,1100],{"emptyLinePlaceholder":1099},[838,2453,2454,2457,2459,2462,2464,2467,2470,2473,2475,2478,2481,2484],{"class":840,"line":908},[838,2455,2456],{"class":2363},"  Future",[838,2458,845],{"class":878},[838,2460,2461],{"class":2363},"List",[838,2463,845],{"class":878},[838,2465,2466],{"class":2363},"dynamic",[838,2468,2469],{"class":878},">> ",[838,2471,2472],{"class":1122},"searchSongs",[838,2474,1126],{"class":878},[838,2476,2477],{"class":2363},"String",[838,2479,2480],{"class":878}," query) ",[838,2482,2483],{"class":1078},"async",[838,2485,2401],{"class":878},[838,2487,2488,2491,2494,2496,2499,2501,2503],{"class":840,"line":918},[838,2489,2490],{"class":1183},"    final",[838,2492,2493],{"class":878}," url ",[838,2495,1114],{"class":844},[838,2497,2498],{"class":2363}," Uri",[838,2500,1119],{"class":844},[838,2502,1123],{"class":1122},[838,2504,2505],{"class":878},"(\n",[838,2507,2508,2511,2514,2518,2521,2523,2526,2529,2531,2534],{"class":840,"line":937},[838,2509,2510],{"class":1132},"      \"",[838,2512,2513],{"class":878},"$",[838,2515,2517],{"class":2516},"sHdIc","baseUrl",[838,2519,2520],{"class":1132},"/search/?api_key=",[838,2522,2513],{"class":878},[838,2524,2525],{"class":2516},"apiKey",[838,2527,2528],{"class":1132},"&type=multi&lookup=",[838,2530,2513],{"class":878},[838,2532,2533],{"class":2516},"query",[838,2535,2536],{"class":1132},"\"\n",[838,2538,2539,2542],{"class":840,"line":956},[838,2540,2541],{"class":878},"    )",[838,2543,1310],{"class":844},[838,2545,2546,2548,2551,2553,2556,2559,2561,2564,2567],{"class":840,"line":1204},[838,2547,2490],{"class":1183},[838,2549,2550],{"class":878}," response ",[838,2552,1114],{"class":844},[838,2554,2555],{"class":1078}," await",[838,2557,2558],{"class":878}," http",[838,2560,1119],{"class":844},[838,2562,2563],{"class":1122},"get",[838,2565,2566],{"class":878},"(url)",[838,2568,1310],{"class":844},[838,2570,2571,2574,2577,2579,2582,2585,2588],{"class":840,"line":1209},[838,2572,2573],{"class":1078},"    if",[838,2575,2576],{"class":878}," (response",[838,2578,1119],{"class":844},[838,2580,2581],{"class":878},"statusCode ",[838,2583,2584],{"class":844},"==",[838,2586,2587],{"class":1190}," 200",[838,2589,2590],{"class":878},") {\n",[838,2592,2593,2596,2599,2601,2604,2607,2609,2612],{"class":840,"line":1215},[838,2594,2595],{"class":1183},"      final",[838,2597,2598],{"class":878}," jsonResponse ",[838,2600,1114],{"class":844},[838,2602,2603],{"class":1122}," jsonDecode",[838,2605,2606],{"class":878},"(response",[838,2608,1119],{"class":844},[838,2610,2611],{"class":878},"body)",[838,2613,1310],{"class":844},[838,2615,2616,2619,2622,2625,2628,2631,2634],{"class":840,"line":1241},[838,2617,2618],{"class":1078},"      return",[838,2620,2621],{"class":878}," jsonResponse[",[838,2623,2624],{"class":1132},"'search'",[838,2626,2627],{"class":878},"] ",[838,2629,2630],{"class":844},"??",[838,2632,2633],{"class":878}," []",[838,2635,1310],{"class":844},[838,2637,2639,2642,2645],{"class":840,"line":2638},13,[838,2640,2641],{"class":878},"    } ",[838,2643,2644],{"class":1078},"else",[838,2646,2401],{"class":878},[838,2648,2650,2653,2656,2658,2661,2663],{"class":840,"line":2649},14,[838,2651,2652],{"class":1078},"      throw",[838,2654,2655],{"class":2363}," Exception",[838,2657,1126],{"class":878},[838,2659,2660],{"class":1132},"\"Failed to load data\"",[838,2662,1341],{"class":878},[838,2664,1310],{"class":844},[838,2666,2668],{"class":840,"line":2667},15,[838,2669,2670],{"class":878},"    }\n",[838,2672,2674],{"class":840,"line":2673},16,[838,2675,2676],{"class":878},"  }\n",[838,2678,2680],{"class":840,"line":2679},17,[838,2681,2682],{"class":878},"}\n",[1677,2684],{},[747,2686,2688],{"id":2687},"testing","Testing",[2690,2691],"project-timeline",{":items":2692},"[{\"title\":\"1. Open the App\",\"description\":\"Launch Tempus Metronome on your device.\",\"icon\":\"i-lucide-smartphone\"},{\"title\":\"2. Tap Search\",\"description\":\"Open the song search interface.\",\"icon\":\"i-lucide-search\"},{\"title\":\"3. Enter a Song\",\"description\":\"Type a song name or artist to query the GetSongBPM API.\",\"icon\":\"i-lucide-text-cursor-input\"},{\"title\":\"4. BPM Applied\",\"description\":\"The metronome tempo is set automatically to match the song.\",\"icon\":\"i-lucide-check-circle\"}]",[1677,2694],{},[747,2696,2698],{"id":2697},"links","Links",[2187,2700,2705,2713,2717],{"className":2701},[2702,2703,2704,2194],"flex","flex-wrap","gap-3",[2706,2707],"u-button",{"color":2708,"label":2709,"target":2710,"to":2711,"variant":2712},"primary","Tempus on App Store","_blank","https://apps.apple.com/pl/app/mtl-tempus/id6755827507","subtle",[2706,2714],{"color":2715,"label":2160,"target":2710,"to":2716,"variant":2712},"neutral","https://getsongbpm.com/api",[2706,2718],{"color":2715,"label":2275,"target":2710,"to":2719,"variant":2712},"https://getsongbpm.com",[1602,2721,2722],{},"html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":834,"searchDepth":855,"depth":855,"links":2724},[2725,2729,2730,2731,2732,2735,2736],{"id":2166,"depth":855,"text":2167,"children":2726},[2727,2728],{"id":2223,"depth":866,"text":2224},{"id":2251,"depth":866,"text":2252},{"id":2263,"depth":855,"text":2264},{"id":2303,"depth":855,"text":2304},{"id":2332,"depth":855,"text":2333},{"id":2378,"depth":855,"text":2379,"children":2733},[2734],{"id":2382,"depth":866,"text":2383},{"id":2687,"depth":855,"text":2688},{"id":2697,"depth":855,"text":2698},"2025-11-27T00:00:00.000Z","What BPM really means and how we integrated the GetSongBPM API into Tempus Metronome using Flutter to let users look up song tempos instantly.",{"src":2740},"/images/blog/musictechlab_blog_mtl-tempus-getsongbpm.webp",{"enabled":1099,"items":2742},[2743,2745,2748],{"text":2744,"icon":2232},"GetSongBPM API returns tempo data in one call with no OAuth, allowing 3,000 requests per hour.",{"text":2746,"icon":2747},"BPM data can be unreliable for live recordings, tempo changes, and double-time patterns.","i-lucide-alert-triangle",{"text":2749,"icon":1641},"Tempus Metronome auto-sets the beat from a song search, bridging BPM lookup and practice.",{},{"title":562,"description":2738},[1654,2753],"development","xoXi9ImXyjWCvQBXMfk3Dwn12IlZedXhrGItym5aJBQ",{"id":2756,"title":566,"authors":2757,"badge":2763,"body":2764,"category":1631,"client":742,"date":2866,"description":2867,"extension":1634,"faq":742,"featured":69,"featuredOrder":742,"hidden":69,"image":2868,"keyTakeaways":2870,"meta":2879,"navigation":1099,"path":567,"seo":2880,"status":742,"stem":568,"tags":2881,"teaser":742,"__hash__":2882,"score":866},"posts/blog/software-development/introducing-musictech-poland.md",[2758],{"name":2759,"to":2760,"avatar":2761},"Maciej Dulski","https://www.linkedin.com/in/maciej-dulski/",{"src":2762},"/images/cdn-migrated/maciej-dulski-400x400.webp",{"label":2151,"color":2152},{"type":744,"value":2765,"toc":2859},[2766,2769,2773,2776,2783,2788,2792,2801,2805,2808,2812,2815,2819,2835,2840,2844],[752,2767,2768],{},"MusicTech Poland has officially launched — a community initiative that unites startups, music professionals, artists, and anyone working at the intersection of music and technology. The goal is to build a space where tech innovators and the music industry can connect, learn, and grow together.",[747,2770,2772],{"id":2771},"vision","Vision",[752,2774,2775],{},"The focus is on boosting Poland's music sector with tech advancements and fostering collaboration between creators and the industry. Through online and in-person events, MusicTech Poland encourages shared learning and fresh ideas.",[752,2777,2778],{},[2779,2780],"img",{"alt":2781,"src":2782},"MusicTech Poland Meetup","/images/cdn-migrated/musictech-poland-meetup-3.webp",[752,2784,2785],{},[2100,2786,2787],{},"Photo: MusicTech Poland",[747,2789,2791],{"id":2790},"expanding-polands-global-role","Expanding Poland's Global Role",[752,2793,2794,2795,2800],{},"MusicTech Poland aims to raise Poland's profile in the global music and tech scene — participating in international events and collaborating with organisations like ",[1567,2796,2799],{"href":2797,"rel":2798},"https://musictech.eu/",[1571],"Music Tech Europe",", which links similar initiatives across the continent.",[747,2802,2804],{"id":2803},"key-areas","Key Areas",[752,2806,2807],{},"The initiative covers data, AI, music distribution, live events, VR, and ticketing — making the industry more dynamic and profitable for everyone involved. Programs like accelerators and tech labs will support new projects and ideas in Poland.",[747,2809,2811],{"id":2810},"activities","Activities",[752,2813,2814],{},"Planned activities include meetups, industry reports, job listings, and international projects. The MusicTech Poland WhatsApp group offers a space for ongoing discussions and networking.",[747,2816,2818],{"id":2817},"the-founders","The Founders",[752,2820,2821,2822,2825,2826,2829,2830,1119],{},"MusicTech Poland was co-founded by ",[1567,2823,738],{"href":739,"rel":2824},[1571]," and ",[1567,2827,2759],{"href":2760,"rel":2828},[1571]," from MusicTech Lab, along with ",[1567,2831,2834],{"href":2832,"rel":2833},"https://www.linkedin.com/in/aga-samitowska/",[1571],"Aga Samitowska",[752,2836,2837],{},[2779,2838],{"alt":2781,"src":2839},"/images/cdn-migrated/musitech-poland-meetup-1.webp",[752,2841,2842],{},[2100,2843,2787],{},[2187,2845,2847,2851,2855],{"className":2846},[2702,2703,2704,2194],[2706,2848],{"color":2708,"label":2849,"target":2710,"to":2850,"variant":2712},"Website","https://www.musictechpoland.com/",[2706,2852],{"color":2715,"label":2853,"target":2710,"to":2854,"variant":2712},"LinkedIn","https://www.linkedin.com/company/musictech-poland/",[2706,2856],{"color":2715,"label":2857,"target":2710,"to":2858,"variant":2712},"Instagram","https://www.instagram.com/musictechpoland/",{"title":834,"searchDepth":855,"depth":855,"links":2860},[2861,2862,2863,2864,2865],{"id":2771,"depth":855,"text":2772},{"id":2790,"depth":855,"text":2791},{"id":2803,"depth":855,"text":2804},{"id":2810,"depth":855,"text":2811},{"id":2817,"depth":855,"text":2818},"2024-10-15T00:00:00.000Z","MusicTech Poland launches to connect startups, artists, and tech enthusiasts. Building a community where music and technology innovation can thrive together.",{"src":2869},"/images/blog/musictechlab_blog_introducing-musictech-poland.webp",{"enabled":1099,"items":2871},[2872,2874,2876],{"text":2873,"icon":1641},"MusicTech Poland connects startups, artists, and tech professionals at the music-technology intersection.",{"text":2875,"icon":1647},"Activities include meetups, industry reports, job listings, and international collaborations.",{"text":2877,"icon":2878},"The initiative covers AI, music distribution, live events, VR, and ticketing innovation in Poland.","i-lucide-globe",{},{"title":566,"description":2867},[1654],"c-K-Qg9AJ_FMSRxL_PRQVwhWLg8eDH378xcAFSaPvkk",{"id":2884,"title":518,"authors":2885,"badge":742,"body":2890,"category":1631,"client":742,"date":3144,"description":3145,"extension":1634,"faq":742,"featured":69,"featuredOrder":742,"hidden":69,"image":3146,"keyTakeaways":3148,"meta":3158,"navigation":1099,"path":519,"seo":3159,"status":742,"stem":520,"tags":3160,"teaser":742,"__hash__":3162,"score":866},"posts/blog/software-development/how-to-conduct-workshops-for-creative-industry.md",[2886],{"name":2887,"avatar":2888},"Adam Golański",{"src":2889},"/images/people/adam-golanski.webp",{"type":744,"value":2891,"toc":3125},[2892,2899,2902,2905,2909,2912,2916,2919,2935,2939,2954,2958,2961,2969,2973,2976,2980,2983,2994,2998,3013,3017,3020,3035,3039,3042,3053,3057,3060,3064,3067,3070,3074,3077,3080,3083,3086,3091,3094,3099,3102,3107,3110,3113,3117,3120],[752,2893,2894,2895,2898],{},"Imagine a room filled with people, gathered around a table covered with laptops and sketches. The atmosphere is charged with anticipation and creativity as they begin a workshop to develop the ",[2100,2896,2897],{},"next big thing"," in music technology. This isn’t a typical corporate meeting – it's a workshop tailored for the innovative minds from creative industries.",[752,2900,2901],{},"In this setting, traditional requirement gathering methods are set aside. Instead, participants dive into brainstorming sessions, sketching ideas, and quickly prototyping new concepts. The goal is to capture the raw creativity and technical insights of these professionals. The facilitator guides the flow of ideas, adapting the workshop to fit the dynamic nature of creative processes.",[752,2903,2904],{},"This article explores how to conduct software requirement gathering workshops for the creative industries. We’ll discuss why traditional methods of formal analytical workshops often fail with creative professionals and how flexibility, visual engagement, and collaboration can lead to better outcomes. Whether you're a project manager, business analyst, or facilitator, these insights will help you unlock the potential of your creative teams and make your workshops something much more fruitful.",[747,2906,2908],{"id":2907},"understanding-creative-professionals","Understanding Creative Professionals",[752,2910,2911],{},"Creative professionals often blend artistic vision with technical skill. Their approach to projects is driven by innovation, user experience, and a desire to push boundaries. Understanding their mindset and work style is crucial for conducting effective software requirement gathering workshops.",[968,2913,2915],{"id":2914},"unique-traits-and-work-styles","Unique Traits and Work Styles",[752,2917,2918],{},"Creative professionals thrive in environments that allow for flexibility and exploration:",[2187,2920,2923,2927,2931],{"className":2921},[2190,2268,2922,2193,2194],"md:grid-cols-3",[2196,2924],{"description":2925,"title":2926},"Rigid processes stifle creativity. Creative individuals prefer fluid approaches that let ideas evolve organically.","Value Flexibility",[2196,2928],{"description":2929,"title":2930},"They communicate through sketches, diagrams, and prototypes. Visual tools make abstract ideas tangible and easier to discuss.","Visual Thinking",[2196,2932],{"description":2933,"title":2934},"They value diverse perspectives and excel in team settings where ideas flow freely, leading to greater innovation.","Collaborative Nature",[968,2936,2938],{"id":2937},"scientific-insights-on-creativity","Scientific Insights on Creativity",[2187,2940,2942,2946,2950],{"className":2941},[2190,2268,2922,2193,2194],[2196,2943],{"description":2944,"title":2945},"Spending time in nature boosts attention and promotes mind-wandering. Consider running part of the workshop outdoors.","Nature & Creativity",[2196,2947],{"description":2948,"title":2949},"Preparation → incubation → illumination → verification. Support each stage with relaxed spaces and quiet zones for focused thinking.","Stages of Creativity",[2196,2951],{"description":2952,"title":2953},"Creative professionals generate multiple solutions (divergent) vs. finding one answer (convergent). Workshops should encourage exploring many possibilities.","Divergent Thinking",[968,2955,2957],{"id":2956},"challenges-with-traditional-methods","Challenges with Traditional Methods",[752,2959,2960],{},"Traditional requirement gathering methods often fail with creative professionals:",[2254,2962,2963],{},[752,2964,2965,2968],{},[772,2966,2967],{},"Common pitfalls:"," Miscommunication from rigid documentation, stifled innovation from inflexible processes, and participant disengagement from overly formal environments. Creative professionals thrive in open, dynamic, less hierarchical settings.",[747,2970,2972],{"id":2971},"tailoring-the-workshop-approach","Tailoring the Workshop Approach",[752,2974,2975],{},"To effectively engage creative professionals, it's essential to tailor the workshop approach to their unique needs and working styles. This involves incorporating flexibility, using creative tools, and designing dynamic activities that stimulate innovation and collaboration.",[968,2977,2979],{"id":2978},"flexible-and-dynamic-activities","Flexible and Dynamic Activities",[752,2981,2982],{},"Creative professionals thrive in environments that allow their ideas to flow freely and evolve organically. Traditional, rigid structures can inhibit their creative processes, so workshops should incorporate flexible and dynamic activities.",[766,2984,2985,2988,2991],{},[769,2986,2987],{},"Brainstorming Sessions: Encourage open-ended brainstorming sessions where all ideas are welcomed without immediate critique. This approach helps generate a broad range of possibilities and fosters an inclusive environment. For example, start with a \"brain dump\" session where participants quickly jot down any idea that comes to mind on sticky notes. Then, group similar ideas together and discuss each cluster to explore potential directions.",[769,2989,2990],{},"Design Sprints: Implement short, time-boxed design sprints that focus on developing and testing ideas quickly. For instance, dedicate one day to ideation, the next to prototyping, and the third to testing with real users. This rapid cycle allows participants to see their ideas in action and make quick adjustments based on feedback.",[769,2992,2993],{},"Ideation Workshops: Organize workshops dedicated to ideation, where participants can explore and develop new concepts collaboratively. Structure the session with phases: start with individual idea generation, move to small group discussions to refine ideas, and then reconvene as a larger group to share and further develop the best concepts.",[968,2995,2997],{"id":2996},"creative-tools-and-techniques","Creative Tools and Techniques",[2187,2999,3001,3005,3009],{"className":3000},[2190,2268,2922,2193,2194],[2196,3002],{"description":3003,"title":3004},"Provide blank templates — participants draw 6-8 frames showing how a user interacts with their proposed solution. Visualises the user journey and explores different scenarios.","Storyboarding",[2196,3006],{"description":3007,"title":3008},"Start with a central concept, branch into ideas and details. For a music app: \"Features\" → \"UI,\" \"Library,\" \"Social Sharing,\" \"Customisation.\" Explores connections systematically.","Mind Mapping",[2196,3010],{"description":3011,"title":3012},"Create low-fidelity prototypes with paper mock-ups or digital tools like Figma. Invite a UX designer to help participants build clickable prototypes for testing user flows.","Prototyping",[968,3014,3016],{"id":3015},"engaging-the-senses","Engaging the Senses",[752,3018,3019],{},"Creative professionals respond well to multi-sensory engagement:",[2187,3021,3023,3027,3031],{"className":3022},[2190,2268,2922,2193,2194],[2196,3024],{"description":3025,"title":3026},"Use Miro or similar tools for real-time collaborative drawing and annotation. Visual collaboration clarifies complex ideas.","Visual Aids",[2196,3028],{"description":3029,"title":3030},"Create a \"user journey wall\" with moveable sticky notes. Participants rearrange steps to visualise and improve user flows.","Interactive Elements",[2196,3032],{"description":3033,"title":3034},"Comfortable seating, natural lighting, colourful posters, and breakout areas for small groups. The right environment amplifies creativity.","Ambience",[968,3036,3038],{"id":3037},"encouraging-participation-and-collaboration","Encouraging Participation and Collaboration",[752,3040,3041],{},"Creating a collaborative environment is essential for harnessing the potential of creative professionals. Facilitators should employ techniques that encourage active participation and idea sharing.",[766,3043,3044,3047,3050],{},[769,3045,3046],{},"Role-Playing and Scenario Planning: Use role-playing and scenario planning to help participants explore different perspectives and test ideas in various contexts. For example, participants could role-play as different user personas interacting with a new music app, identifying potential pain points and areas for improvement. This technique fosters empathy and a deeper understanding of user needs.",[769,3048,3049],{},"Gamification: Incorporate gamification elements to make workshops more engaging and fun. For instance, set up a \"design challenge\" where teams compete to come up with the most innovative solution to a given problem within a limited time frame. Offer small rewards for the most creative ideas or the best teamwork to motivate participants.",[769,3051,3052],{},"Open Dialogue: Foster an atmosphere of open dialogue where all participants feel comfortable sharing their thoughts and ideas. Encourage active listening and constructive feedback by using techniques like \"round-robin\" discussions, where each participant takes a turn to speak without interruption. This ensures everyone has a voice and contributes to the collective brainstorming process.",[747,3054,3056],{"id":3055},"facilitation-techniques-for-success","Facilitation Techniques for Success",[752,3058,3059],{},"Facilitating workshops for creative professionals requires an adaptive and engaging approach to foster innovation and participation. Here are some effective techniques tailored for this audience:",[968,3061,3063],{"id":3062},"adaptive-facilitation","Adaptive Facilitation",[752,3065,3066],{},"Effective facilitation starts with flexibility. Rather than rigidly sticking to a pre-set agenda, be prepared to adjust based on the flow of ideas. For example, if a brainstorming session sparks particularly innovative discussions, allow more time for them to unfold. This approach encourages participants to delve deeper into their creative processes without feeling constrained by time limits.",[752,3068,3069],{},"Creating an environment that encourages spontaneity is equally important. It may not be easy due to space constraints, but at least try to compensate for things with activities like real-time sketching sessions where participants can immediately visualize their ideas. This not only captures the creative spark but also helps in refining concepts collaboratively.",[968,3071,3073],{"id":3072},"managing-time-creatively","Managing Time Creatively",[752,3075,3076],{},"Dynamic time management involves setting flexible time blocks that can be adjusted based on the group’s engagement. Allocate more time for discussions that yield rich ideas and shorten periods where creativity seems to stall. This ensures that the workshop remains productive and responsive to the participants' needs.",[752,3078,3079],{},"Incorporating regular breaks is essential. These breaks give participants time to reflect and process information. For example, short, frequent breaks where individuals can step outside, with a coffee, a cigarette or just stretching the legs and engaging in informal conversations can lead to deeper insights and more innovative solutions once the group reconvenes.",[968,3081,3038],{"id":3082},"encouraging-participation-and-collaboration-1",[752,3084,3085],{},"Inclusive activities are crucial for gathering a wide range of ideas amongst participants. Here are some methods fostering participation and collaboration that can be used at the beginning, during and at the end of the workshop – so no one will be left behind.",[766,3087,3088],{},[769,3089,3090],{},"Picture Tales: The Picture Sorts technique is an engaging method used to uncover deeper insights and stimulate creative thinking in workshops. To arrange this activity, facilitators provide participants scissors and a variety of color magazines and other visual materials. Participants are then asked to cut out images that they feel represent specific themes or concepts related to the workshop’s objectives, such as customer experiences, desired outcomes, or emotional responses to a new product. For example, in a musictech workshop, participants might select images that they associate with user satisfaction or innovative features of a new music app. This visual and hands-on approach helps participants articulate abstract ideas and emotions that might be difficult to express through words alone.",[752,3092,3093],{},"Conducting the Picture Sorts activity involves several steps. First, facilitators introduce the task and explain the themes or questions participants should consider while selecting images. Participants are given time to browse through the visual materials and create their collages. Once completed, they present their selections to the group, explaining why they chose each image and what it represents. This often leads to rich discussions and a deeper understanding of the underlying motivations and desires of users or stakeholders. The visual nature of this technique helps break down complex concepts and promotes a more intuitive and creative exploration of the workshop topic,",[766,3095,3096],{},[769,3097,3098],{},"As an alternative to unstructured group discussion/brainstorming, a quite engaging Parallel Lines method can be used. It involves arranging participants into two lines facing each other, ensuring everyone has a partner. Each participant is assigned a specific role or perspective related to the workshop topic, such as different user personas or stakeholders in a project. For instance, one line might represent musicians while the other represents users. The pairs then engage in focused, one-on-one discussions on predefined scenarios or questions, like \"How would this new feature improve enjoyment of music?\" or \"What challenges do you anticipate with this technology?\"",[752,3100,3101],{},"After a set time, typically 5-10 minutes, one line shifts to the next partner, creating new pairs for each round and allowing diverse perspectives to emerge. This one-on-one interaction can reveal insights that might be overlooked in a larger group setting.",[766,3103,3104],{},[769,3105,3106],{},"For a summary of the results, you can use techniques like the Gallery Walk. To arrange this activity, participants are divided into small groups, each tasked with discussing a particular aspect of the workshop topic and creating a visual summary of their discussion on a flipchart or poster. These visual summaries, often including diagrams, charts, and key points, are then displayed around the room like an art gallery. For instance, in a musictech workshop, groups might explore different user interface designs or feature sets for a new music app, visually presenting their ideas for others to review.",[752,3108,3109],{},"Conducting a Gallery Walk involves several steps to ensure effectiveness. First, facilitators explain the objectives and divide participants into groups, providing them with the necessary materials and a clear timeline. After creating their visual summaries, groups post their flipcharts around the room. Participants then circulate, reviewing each group's work at their own pace. This setup allows for deeper engagement as individuals can discuss and ask questions with the group members who created the displays. One person from each group might stay with their flipchart to answer questions and provide further insights.",[752,3111,3112],{},"These methods encourage everyone to contribute and learn from different perspectives, helping even shy people present their ideas and do not allow the most extroverted participants to dominate the workshop.",[747,3114,3116],{"id":3115},"instead-of-a-summary","Instead of a Summary",[752,3118,3119],{},"Imagine the end of the workshop — the room filled with sketches, mind maps, and prototypes made of paper clips and duct tape. This wasn’t a typical meeting. It was a workshop tailored for creative minds, transforming abstract visions into something tangible.",[2291,3121,3122],{},[752,3123,3124],{},"The key ingredients: adaptive facilitation, visual tools, and collaborative techniques like Gallery Walk, Parallel Lines, and Picture Sorts. These methods foster diverse perspectives and drive user-centred outcomes that solve real problems.",{"title":834,"searchDepth":855,"depth":855,"links":3126},[3127,3132,3138,3143],{"id":2907,"depth":855,"text":2908,"children":3128},[3129,3130,3131],{"id":2914,"depth":866,"text":2915},{"id":2937,"depth":866,"text":2938},{"id":2956,"depth":866,"text":2957},{"id":2971,"depth":855,"text":2972,"children":3133},[3134,3135,3136,3137],{"id":2978,"depth":866,"text":2979},{"id":2996,"depth":866,"text":2997},{"id":3015,"depth":866,"text":3016},{"id":3037,"depth":866,"text":3038},{"id":3055,"depth":855,"text":3056,"children":3139},[3140,3141,3142],{"id":3062,"depth":866,"text":3063},{"id":3072,"depth":866,"text":3073},{"id":3082,"depth":866,"text":3038},{"id":3115,"depth":855,"text":3116},"2024-06-07T00:00:00.000Z","Learn how to run effective software requirement workshops for creative professionals. Tips on flexibility, visual engagement, and collaborative facilitation.",{"src":3147},"/images/blog/musictechlab_blog_how-to-conduct-workshops-for-creative-industry.webp",{"enabled":1099,"items":3149},[3150,3153,3155],{"text":3151,"icon":3152},"Creative professionals need flexible, visual workshops instead of rigid requirement-gathering formats.","i-lucide-palette",{"text":3154,"icon":1647},"Techniques like Gallery Walk and Parallel Lines ensure even shy participants contribute ideas.",{"text":3156,"icon":3157},"Multi-sensory engagement and adaptive facilitation unlock better outcomes than formal agendas.","i-lucide-lightbulb",{},{"title":518,"description":3145},[1654,3161],"outsourcing","6OmE_Lrk-IHwxhQ4NFP9L6TdIyeC6E4G6aQB_Qobfx4",1780305191419]