[{"data":1,"prerenderedAt":1565},["ShallowReactive",2],{"navigation":3,"/blog/music-data/broken-feedback-loop-music-collaboration-post":734,"/blog/music-data/broken-feedback-loop-music-collaboration-surround":767,"/blog/music-data/broken-feedback-loop-music-collaboration-related":772},[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":104,"authors":736,"badge":742,"body":743,"category":750,"client":742,"date":751,"description":752,"extension":753,"faq":742,"featured":69,"featuredOrder":742,"hidden":69,"image":754,"keyTakeaways":742,"meta":756,"navigation":757,"path":105,"seo":758,"status":759,"stem":106,"tags":760,"teaser":765,"__hash__":766},"posts/blog/music-data/broken-feedback-loop-music-collaboration.md",[737],{"name":738,"to":739,"avatar":740},"Mariusz Smenzyk","https://www.linkedin.com/in/mariusz-smenzyk/",{"src":741},"/images/people/mariusz-smenzyk2.webp",null,{"type":744,"value":745,"toc":746},"minimark",[],{"title":747,"searchDepth":748,"depth":748,"links":749},"",2,[],"music-data","2026-05-15T00:00:00.000Z","Sharing a rough idea with a collaborator requires exporting, uploading, sending a link, then getting feedback via text. There's no Google Docs-style commenting for audio.","md",{"src":755},"/images/blog/musictechlab_blog_broken-feedback-loop.webp",{},true,{"title":104,"description":752},"upcoming",[761,762,763,764],"music-tech","collaboration","audio","workflow","We'll break down why early-stage music collaboration is stuck in email/Dropbox workflows, and what a purpose-built feedback system for audio would look like.","pAu-d12ERlpdiPRo3RGjGEYKeWrQN4_82-4o3c8whjQ",[768,770],{"title":100,"path":101,"stem":102,"description":769,"children":-1},"A technical look at automatic song structure detection using AI and signal processing. Identify song sections with MTL Audio Locators.",{"title":108,"path":109,"stem":110,"description":771,"children":-1},"A step-by-step guide to creating a Claude Code skill that validates DDEX ERN XML files against official schemas - catching metadata errors before they reach distributors.",[773,793,815,834],{"id":774,"title":92,"authors":775,"badge":742,"body":778,"category":750,"client":742,"date":782,"description":783,"extension":753,"faq":742,"featured":69,"featuredOrder":742,"hidden":69,"image":784,"keyTakeaways":742,"meta":786,"navigation":757,"path":93,"seo":787,"status":759,"stem":94,"tags":788,"teaser":790,"__hash__":791,"score":792},"posts/blog/music-data/audio-project-organization-mess.md",[776],{"name":738,"to":739,"avatar":777},{"src":741},{"type":744,"value":779,"toc":780},[],{"title":747,"searchDepth":748,"depth":748,"links":781},[],"2026-05-10T00:00:00.000Z","Projects, folders, sub-recordings, and versions pile up with no structure. Search and filtering across recordings is missing. No auto-titling or smart tagging — everything is 'Recording 47'.",{"src":785},"/images/blog/musictechlab_blog_audio-project-organization.webp",{},{"title":92,"description":783},[750,763,789,764],"organization","We'll explore why musicians drown in unstructured audio files, why manual tagging always fails, and what an ideal project workspace for music creators would look like.","yzu7hUOUThxdS4j4-pCAyCx6EAS9w_cIJKZhgiIrXCk",4,{"id":794,"title":96,"authors":795,"badge":742,"body":798,"category":750,"client":742,"date":802,"description":803,"extension":753,"faq":742,"featured":69,"featuredOrder":742,"hidden":69,"image":804,"keyTakeaways":742,"meta":806,"navigation":757,"path":97,"seo":807,"status":759,"stem":98,"tags":808,"teaser":812,"__hash__":813,"score":814},"posts/blog/music-data/audio-search-broken-fix-with-embeddings.md",[796],{"name":738,"to":739,"avatar":797},{"src":741},{"type":744,"value":799,"toc":800},[],{"title":747,"searchDepth":748,"depth":748,"links":801},[],"2026-05-01T00:00:00.000Z","Tags don't work. Manual labeling doesn't scale. Even on Slack and WhatsApp, finding information in voice messages is nearly impossible. Embeddings change everything.",{"src":805},"/images/blog/musictechlab_blog_audio-search-embeddings.webp",{},{"title":96,"description":803},[750,763,809,810,811],"embeddings","ai","search","From CLAP to Whisper + vector search — we'll cover why traditional audio search fails and what a modern, embedding-powered approach looks like in practice.","Qp-4ZILpkXKkzxQVXYyUPx01PAC8pAEzV7W4gh7f8UM",3,{"id":816,"title":196,"authors":817,"badge":742,"body":820,"category":750,"client":742,"date":824,"description":825,"extension":753,"faq":742,"featured":69,"featuredOrder":742,"hidden":69,"image":826,"keyTakeaways":742,"meta":828,"navigation":757,"path":197,"seo":829,"status":759,"stem":198,"tags":830,"teaser":832,"__hash__":833,"score":814},"posts/blog/music-data/voice-memo-graveyard-problem.md",[818],{"name":738,"to":739,"avatar":819},{"src":741},{"type":744,"value":821,"toc":822},[],{"title":747,"searchDepth":748,"depth":748,"links":823},[],"2026-04-15T00:00:00.000Z","Most musical ideas end up as unsearchable, scattered recordings that creators never revisit. Why does this happen and what can we do about it?",{"src":827},"/images/blog/musictechlab_blog_voice-memo-graveyard.webp",{},{"title":196,"description":825},[750,763,810,831],"creativity","We'll explore why musicians lose their best ideas in a sea of untitled voice memos, and how AI-powered retrieval could change creative workflows forever.","f8rzPNO4gBq8Eu82IRLAZy7yFbobfT8fALOerv-wm6g",{"id":835,"title":184,"authors":836,"badge":839,"body":841,"category":750,"client":742,"date":1518,"description":1519,"extension":753,"faq":1520,"featured":69,"featuredOrder":742,"hidden":69,"image":1536,"keyTakeaways":1538,"meta":1552,"navigation":757,"path":185,"seo":1553,"status":742,"stem":186,"tags":1556,"teaser":742,"__hash__":1564,"score":814},"posts/blog/music-data/scout-isrc-metadata-enrichment-spotify-musicbrainz.md",[837],{"name":738,"to":739,"avatar":838},{"src":741},{"label":5,"color":840},"#f59e0b",{"type":744,"value":842,"toc":1503},[843,847,852,855,885,888,892,904,907,913,916,920,929,934,937,944,950,954,957,1201,1205,1209,1212,1256,1259,1263,1266,1270,1273,1279,1302,1308,1312,1315,1344,1353,1357,1360,1382,1385,1399,1409,1413,1416,1421,1424,1447,1451,1454,1486,1489,1499],[844,845,846],"p",{},"If you have ever opened a 40,000-row CSV and found half the ISRC codes missing, inconsistent, or flat-out wrong, you know the pain. Manually looking up each track via Spotify, MusicBrainz, or ISRC lookup tools takes days. We built Scout to do it in minutes.",[848,849,851],"h2",{"id":850},"the-problem-every-catalog-manager-knows","The Problem Every Catalog Manager Knows",[844,853,854],{},"Track data arrives as CSV or Excel files. They contain track names, artist names, and sometimes ISRCs. The problem is that \"sometimes\" is doing a lot of heavy lifting in that sentence.",[856,857,864,870,875,880],"div",{"className":858},[859,860,861,862,863],"grid","grid-cols-1","md:grid-cols-2","gap-4","my-8",[865,866],"spotlight-card",{"description":867,"icon":868,"title":869},"Tracks without ISRC codes can't be matched to rights holders, leading to unclaimed royalties.","i-lucide-file-warning","Missing ISRCs",[865,871],{"description":872,"icon":873,"title":874},"The same recording may have different ISRCs across distributors, DSPs, and catalog systems.","i-lucide-shuffle","Inconsistent ISRCs",[865,876],{"description":877,"icon":878,"title":879},"Multiple rows resolve to the same ISRC, inflating track counts and skewing analytics.","i-lucide-copy","Duplicate Entries",[865,881],{"description":882,"icon":883,"title":884},"Checking each track one-by-one against web tools or APIs takes 2+ days for a large catalog.","i-lucide-clock","Manual Lookup",[844,886,887],{},"This is not a niche issue. Anyone doing soundtrack acquisition, catalog evaluation, royalty reconciliation, or building investor decks hits this wall. The data exists across multiple sources, but nobody connects it at scale.",[848,889,891],{"id":890},"a-real-world-example-santanas-smooth","A Real-World Example: Santana's \"Smooth\"",[844,893,894,895,899,900,903],{},"To show why this matters, take a concrete case. Santana's \"Smooth\" appears in a royalty report with ISRC ",[896,897,898],"code",{},"USAT29900471",". When Scout looks up the same track on Spotify, it comes back as ",[896,901,902],{},"USAR19900033",".",[844,905,906],{},"Both are valid ISRCs for the same recording. The first is from the original 1999 Arista release, the second from a later digital distribution. This happens constantly in the music industry because every release edition (original, remaster, compilation, deluxe, single) can get its own ISRC.",[908,909,910],"note",{},[844,911,912],{},"ISRC mismatches between sources do not mean the data is wrong. They mean the same recording exists in multiple editions. Scout flags these for review rather than treating them as errors.",[844,914,915],{},"Without automated enrichment, you would either miss this mismatch entirely or spend hours tracking it down manually. Multiply that by 40,000 rows and you understand why catalog managers describe this work as \"soul-crushing.\"",[848,917,919],{"id":918},"what-scout-does","What Scout Does",[844,921,922,923,928],{},"Scout is a feature inside ",[924,925,927],"a",{"href":926},"/services/musicdata-lab","MusicData Lab"," that batch-enriches track metadata from two authoritative sources: the Spotify API and the MusicBrainz API.",[930,931,933],"h3",{"id":932},"upload-and-map","Upload and Map",[844,935,936],{},"Drop a CSV or Excel file. Scout auto-detects common column names (track, artist, ISRC, URL) and lets you adjust the mapping before processing.",[844,938,939],{},[940,941],"img",{"alt":942,"src":943},"Scout upload page","/images/blog/musictechlab_blog_scout-upload.webp",[844,945,946],{},[940,947],{"alt":948,"src":949},"Scout column mapping with auto-detected fields and CSV preview","/images/blog/musictechlab_blog_scout-mapping.webp",[930,951,953],{"id":952},"enrich-every-track","Enrich Every Track",[844,955,956],{},"For each row, Scout runs a four-stage lookup pipeline:",[958,959,963],"pre",{"className":960,"code":961,"language":962,"meta":747,"style":747},"language-mermaid shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","flowchart TD\n    A[CSV Row] --> B{Has URL?}\n    B -->|Yes| C[Spotify: lookup by URL]\n    B -->|No| D[Spotify: search by track + artist]\n    C --> E{Spotify match?}\n    D --> E\n    E -->|Yes| F[Track, artist, album, ISRC, release date, popularity]\n    E -->|No| G[No Spotify data]\n\n    F --> H{Has ISRC?}\n    G --> H\n    H -->|Yes| I[MusicBrainz: lookup by ISRC]\n    H -->|No| J[MusicBrainz: search by recording + artist]\n    I --> K{MB match?}\n    J --> K\n    K -->|Yes| L[Artist, release, ISRC, label, country]\n    K -->|No| M[No MusicBrainz data]\n\n    L --> N[ISRC Resolution]\n    M --> N\n    N --> O[Pick best ISRC from Spotify / MB / input]\n\n    O --> P[Flagging]\n    P --> Q{ISRCs disagree?}\n    Q -->|Yes| R[isrc_mismatch]\n    Q -->|No| S{Artist names differ?}\n    R --> S\n    S -->|Yes| T[artist_mismatch]\n    S -->|No| U[Confidence Score]\n    T --> U\n\n    U --> V[Spotify +0.50 / MB +0.30 / ISRC +0.20]\n\n    style A fill:#f8fafc,stroke:#94a3b8,color:#000\n    style F fill:#d1fae5,stroke:#10b981,color:#000\n    style L fill:#dbeafe,stroke:#3b82f6,color:#000\n    style O fill:#fef3c7,stroke:#f59e0b,color:#000\n    style R fill:#fee2e2,stroke:#ef4444,color:#000\n    style T fill:#fee2e2,stroke:#ef4444,color:#000\n    style V fill:#d1fae5,stroke:#10b981,color:#000\n","mermaid",[896,964,965,974,979,984,989,995,1001,1007,1013,1019,1025,1031,1037,1043,1049,1055,1061,1067,1072,1078,1084,1090,1095,1101,1107,1113,1119,1125,1131,1137,1143,1148,1154,1159,1165,1171,1177,1183,1189,1195],{"__ignoreMap":747},[966,967,970],"span",{"class":968,"line":969},"line",1,[966,971,973],{"class":972},"sTEyZ","flowchart TD\n",[966,975,976],{"class":968,"line":748},[966,977,978],{"class":972},"    A[CSV Row] --> B{Has URL?}\n",[966,980,981],{"class":968,"line":814},[966,982,983],{"class":972},"    B -->|Yes| C[Spotify: lookup by URL]\n",[966,985,986],{"class":968,"line":792},[966,987,988],{"class":972},"    B -->|No| D[Spotify: search by track + artist]\n",[966,990,992],{"class":968,"line":991},5,[966,993,994],{"class":972},"    C --> E{Spotify match?}\n",[966,996,998],{"class":968,"line":997},6,[966,999,1000],{"class":972},"    D --> E\n",[966,1002,1004],{"class":968,"line":1003},7,[966,1005,1006],{"class":972},"    E -->|Yes| F[Track, artist, album, ISRC, release date, popularity]\n",[966,1008,1010],{"class":968,"line":1009},8,[966,1011,1012],{"class":972},"    E -->|No| G[No Spotify data]\n",[966,1014,1016],{"class":968,"line":1015},9,[966,1017,1018],{"emptyLinePlaceholder":757},"\n",[966,1020,1022],{"class":968,"line":1021},10,[966,1023,1024],{"class":972},"    F --> H{Has ISRC?}\n",[966,1026,1028],{"class":968,"line":1027},11,[966,1029,1030],{"class":972},"    G --> H\n",[966,1032,1034],{"class":968,"line":1033},12,[966,1035,1036],{"class":972},"    H -->|Yes| I[MusicBrainz: lookup by ISRC]\n",[966,1038,1040],{"class":968,"line":1039},13,[966,1041,1042],{"class":972},"    H -->|No| J[MusicBrainz: search by recording + artist]\n",[966,1044,1046],{"class":968,"line":1045},14,[966,1047,1048],{"class":972},"    I --> K{MB match?}\n",[966,1050,1052],{"class":968,"line":1051},15,[966,1053,1054],{"class":972},"    J --> K\n",[966,1056,1058],{"class":968,"line":1057},16,[966,1059,1060],{"class":972},"    K -->|Yes| L[Artist, release, ISRC, label, country]\n",[966,1062,1064],{"class":968,"line":1063},17,[966,1065,1066],{"class":972},"    K -->|No| M[No MusicBrainz data]\n",[966,1068,1070],{"class":968,"line":1069},18,[966,1071,1018],{"emptyLinePlaceholder":757},[966,1073,1075],{"class":968,"line":1074},19,[966,1076,1077],{"class":972},"    L --> N[ISRC Resolution]\n",[966,1079,1081],{"class":968,"line":1080},20,[966,1082,1083],{"class":972},"    M --> N\n",[966,1085,1087],{"class":968,"line":1086},21,[966,1088,1089],{"class":972},"    N --> O[Pick best ISRC from Spotify / MB / input]\n",[966,1091,1093],{"class":968,"line":1092},22,[966,1094,1018],{"emptyLinePlaceholder":757},[966,1096,1098],{"class":968,"line":1097},23,[966,1099,1100],{"class":972},"    O --> P[Flagging]\n",[966,1102,1104],{"class":968,"line":1103},24,[966,1105,1106],{"class":972},"    P --> Q{ISRCs disagree?}\n",[966,1108,1110],{"class":968,"line":1109},25,[966,1111,1112],{"class":972},"    Q -->|Yes| R[isrc_mismatch]\n",[966,1114,1116],{"class":968,"line":1115},26,[966,1117,1118],{"class":972},"    Q -->|No| S{Artist names differ?}\n",[966,1120,1122],{"class":968,"line":1121},27,[966,1123,1124],{"class":972},"    R --> S\n",[966,1126,1128],{"class":968,"line":1127},28,[966,1129,1130],{"class":972},"    S -->|Yes| T[artist_mismatch]\n",[966,1132,1134],{"class":968,"line":1133},29,[966,1135,1136],{"class":972},"    S -->|No| U[Confidence Score]\n",[966,1138,1140],{"class":968,"line":1139},30,[966,1141,1142],{"class":972},"    T --> U\n",[966,1144,1146],{"class":968,"line":1145},31,[966,1147,1018],{"emptyLinePlaceholder":757},[966,1149,1151],{"class":968,"line":1150},32,[966,1152,1153],{"class":972},"    U --> V[Spotify +0.50 / MB +0.30 / ISRC +0.20]\n",[966,1155,1157],{"class":968,"line":1156},33,[966,1158,1018],{"emptyLinePlaceholder":757},[966,1160,1162],{"class":968,"line":1161},34,[966,1163,1164],{"class":972},"    style A fill:#f8fafc,stroke:#94a3b8,color:#000\n",[966,1166,1168],{"class":968,"line":1167},35,[966,1169,1170],{"class":972},"    style F fill:#d1fae5,stroke:#10b981,color:#000\n",[966,1172,1174],{"class":968,"line":1173},36,[966,1175,1176],{"class":972},"    style L fill:#dbeafe,stroke:#3b82f6,color:#000\n",[966,1178,1180],{"class":968,"line":1179},37,[966,1181,1182],{"class":972},"    style O fill:#fef3c7,stroke:#f59e0b,color:#000\n",[966,1184,1186],{"class":968,"line":1185},38,[966,1187,1188],{"class":972},"    style R fill:#fee2e2,stroke:#ef4444,color:#000\n",[966,1190,1192],{"class":968,"line":1191},39,[966,1193,1194],{"class":972},"    style T fill:#fee2e2,stroke:#ef4444,color:#000\n",[966,1196,1198],{"class":968,"line":1197},40,[966,1199,1200],{"class":972},"    style V fill:#d1fae5,stroke:#10b981,color:#000\n",[1202,1203],"project-timeline",{":items":1204},"[{\"title\":\"Spotify Lookup\",\"description\":\"Searches by track URL (if present), then by track name + artist name. Returns track name, artist, album, ISRC, release date, popularity, and a direct Spotify link.\",\"icon\":\"i-lucide-disc-3\"},{\"title\":\"MusicBrainz Lookup\",\"description\":\"Searches by ISRC first (using the Spotify ISRC or input ISRC), then falls back to recording name + artist. Returns artist, release, ISRC, label, and country.\",\"icon\":\"i-lucide-database\"},{\"title\":\"ISRC Resolution\",\"description\":\"Picks the best ISRC from all available sources (Spotify, MusicBrainz, input) and assigns it as the resolved identifier for the track.\",\"icon\":\"i-lucide-git-merge\"},{\"title\":\"Flagging\",\"description\":\"Detects ISRC mismatches between sources, artist name mismatches (using fuzzy matching), and duplicate ISRCs across rows.\",\"icon\":\"i-lucide-flag\"}]",[930,1206,1208],{"id":1207},"confidence-scoring","Confidence Scoring",[844,1210,1211],{},"Each track gets a confidence score from 0.00 to 1.00:",[1213,1214,1215,1228],"table",{},[1216,1217,1218],"thead",{},[1219,1220,1221,1225],"tr",{},[1222,1223,1224],"th",{},"Source",[1222,1226,1227],{},"Score",[1229,1230,1231,1240,1248],"tbody",{},[1219,1232,1233,1237],{},[1234,1235,1236],"td",{},"Spotify match",[1234,1238,1239],{},"+0.50",[1219,1241,1242,1245],{},[1234,1243,1244],{},"MusicBrainz match",[1234,1246,1247],{},"+0.30",[1219,1249,1250,1253],{},[1234,1251,1252],{},"Resolved ISRC",[1234,1254,1255],{},"+0.20",[844,1257,1258],{},"A track matched by both Spotify and MusicBrainz with a resolved ISRC scores a perfect 1.00. Flags are informational only. They tell you something needs attention without penalizing the match quality.",[930,1260,1262],{"id":1261},"export","Export",[844,1264,1265],{},"When processing completes, download a clean CSV with all original data plus every enriched field: Spotify metadata, MusicBrainz metadata, resolved ISRCs, status, flags, and confidence scores. Ready for analysis, investor decks, or import into your rights management system.",[848,1267,1269],{"id":1268},"processing-at-scale","Processing at Scale",[844,1271,1272],{},"Scout processes files asynchronously using Celery workers. A 40,000-row file runs in the background while you continue working. The job detail page shows real-time progress without page refreshes:",[844,1274,1275],{},[940,1276],{"alt":1277,"src":1278},"Live streaming logs during enrichment","/images/blog/musictechlab_blog_scout-logs.webp",[856,1280,1282,1287,1292,1297],{"className":1281},[859,860,861,862,863],[865,1283],{"description":1284,"icon":1285,"title":1286},"Progress bar, track counts, and status badges update via AJAX polling every 3 seconds.","i-lucide-activity","Live Progress",[865,1288],{"description":1289,"icon":1290,"title":1291},"Watch Spotify and MusicBrainz lookups happen in real time in the Logs tab.","i-lucide-scroll-text","Streaming Logs",[865,1293],{"description":1294,"icon":1295,"title":1296},"Search and filter results by track, artist, ISRC, status, confidence range, or flags.","i-lucide-filter","Column Filters",[865,1298],{"description":1299,"icon":1300,"title":1301},"Download enriched data as a clean, grouped CSV when processing completes.","i-lucide-file-down","CSV Export",[844,1303,1304],{},[940,1305],{"alt":1306,"src":1307},"Completed job with enriched tracks, confidence scores, and flags","/images/blog/musictechlab_blog_scout-results.webp",[848,1309,1311],{"id":1310},"the-flags-that-matter","The Flags That Matter",[844,1313,1314],{},"Scout raises four types of flags:",[1316,1317,1318,1326,1332,1338],"ul",{},[1319,1320,1321,1325],"li",{},[1322,1323,1324],"strong",{},"isrc_mismatch"," - the input ISRC, Spotify ISRC, and MusicBrainz ISRC do not all agree. Most common flag. Usually means different release editions.",[1319,1327,1328,1331],{},[1322,1329,1330],{},"artist_mismatch"," - the artist name from Spotify and MusicBrainz has a fuzzy match score below 75%. Can indicate featuring artists, name variations, or genuine data issues.",[1319,1333,1334,1337],{},[1322,1335,1336],{},"duplicate_isrc"," - multiple rows in your file resolve to the same ISRC. Important for catching double-counted tracks.",[1319,1339,1340,1343],{},[1322,1341,1342],{},"enrichment_error"," - the lookup failed for technical reasons (API timeout, rate limit, etc.).",[1345,1346,1347],"tip",{},[844,1348,1349,1350,1352],{},"Filter by ",[896,1351,1324],{}," to quickly review all tracks where your input ISRC differs from what Spotify and MusicBrainz report. These are your highest-priority reconciliation items.",[848,1354,1356],{"id":1355},"why-public-apis-instead-of-dsp-bulk-feeds","Why Public APIs Instead of DSP Bulk Feeds?",[844,1358,1359],{},"A reasonable question if you know the space: why use the public Spotify Web API and MusicBrainz, rather than a licensed DSP bulk feed?",[844,1361,1362,1363,1369,1370,1375,1376,1381],{},"The most well-known bulk feed is Apple's ",[924,1364,1368],{"href":1365,"rel":1366},"https://performance-partners.apple.com/epf",[1367],"nofollow","Enterprise Partner Feed (EPF)"," — daily metadata dumps of the full Apple Music catalog, delivered to approved partners (distributors, royalty processors, rights administrators). On the Spotify side, partner programs like ",[924,1371,1374],{"href":1372,"rel":1373},"https://www.synchtank.com/blog/better-data-than-never-publishers-finally-get-under-the-spotify-bonnet/",[1367],"Spotify Publishing Analytics"," give publishers and licensees access to stream, ISRC, and playlist data that the public ",[924,1377,1380],{"href":1378,"rel":1379},"https://developer.spotify.com/documentation/web-api",[1367],"Web API"," does not expose.",[844,1383,1384],{},"Scout uses the public APIs for two reasons:",[1316,1386,1387,1393],{},[1319,1388,1389,1392],{},[1322,1390,1391],{},"Bulk feeds require a signed partner agreement."," Approval is gated to entities with a real B2B use case in distribution, publishing, or rights administration. Most catalog buyers and acquisition teams we work with do not hold one.",[1319,1394,1395,1398],{},[1322,1396,1397],{},"For evaluation work, public APIs hit the same accuracy ceiling on ISRCs and core metadata."," Bulk feeds win on scale and historical snapshots; for a one-off enrichment pass, the cross-check between Spotify and MusicBrainz already catches the issues that matter.",[908,1400,1401],{},[844,1402,1403,1404,1408],{},"If you do have access to a DSP partner feed and want Scout to ingest it instead of (or alongside) the Web API, ",[924,1405,1407],{"href":1406},"/contact","get in touch",". The pipeline is source-agnostic — adding a feed is a configuration change, not a rewrite.",[848,1410,1412],{"id":1411},"from-script-to-product","From Script to Product",[844,1414,1415],{},"The inspiration for Scout came from a real conversation with a music professional doing soundtrack acquisition work. They had built a Python script that batch-processed metadata from Spotify and MusicBrainz APIs using pandas. No AI needed, just API calls and data wrangling.",[1345,1417,1418],{},[844,1419,1420],{},"It cut a 2-day manual task down to 30 minutes.",[844,1422,1423],{},"We took that exact workflow and productized it inside MusicData Lab:",[856,1425,1427,1432,1437,1442],{"className":1426},[859,860,861,862,863],[865,1428],{"description":1429,"icon":1430,"title":1431},"Upload a file, map columns, click run.","i-lucide-mouse-pointer-click","No Coding Required",[865,1433],{"description":1434,"icon":1435,"title":1436},"Works with any CSV or Excel file, auto-detects common column layouts.","i-lucide-file-spreadsheet","Any File Format",[865,1438],{"description":1439,"icon":1440,"title":1441},"Jobs, tracks, and logs are stored in the database. Come back to any job weeks later.","i-lucide-hard-drive","Persistent Results",[865,1443],{"description":1444,"icon":1445,"title":1446},"Background processing with live progress, not a script that blocks your terminal.","i-lucide-layers","Built for Large Catalogs",[848,1448,1450],{"id":1449},"who-this-is-for","Who This Is For",[844,1452,1453],{},"Scout is built for anyone who deals with music metadata at scale:",[1316,1455,1456,1462,1468,1474,1480],{},[1319,1457,1458,1461],{},[1322,1459,1460],{},"Rights managers"," reconciling royalty statements across distributors",[1319,1463,1464,1467],{},[1322,1465,1466],{},"A&R teams"," evaluating catalogs for acquisition",[1319,1469,1470,1473],{},[1322,1471,1472],{},"Independent labels"," cleaning up their metadata before pitching to sync agents",[1319,1475,1476,1479],{},[1322,1477,1478],{},"Royalty analysts"," spotting unclaimed revenue from ISRC gaps",[1319,1481,1482,1485],{},[1322,1483,1484],{},"Catalog managers"," preparing clean data for investor decks or audits",[844,1487,1488],{},"If you are spending days in spreadsheets manually looking up ISRCs, Scout does that work for you and flags the problems worth your attention.",[908,1490,1491],{},[844,1492,1493,1494,1496,1497,903],{},"Scout is part of ",[924,1495,927],{"href":926},", our music distribution analytics platform. If you are dealing with messy catalog data and want to see Scout in action, ",[924,1498,1407],{"href":1406},[1500,1501,1502],"style",{},"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);}",{"title":747,"searchDepth":748,"depth":748,"links":1504},[1505,1506,1507,1513,1514,1515,1516,1517],{"id":850,"depth":748,"text":851},{"id":890,"depth":748,"text":891},{"id":918,"depth":748,"text":919,"children":1508},[1509,1510,1511,1512],{"id":932,"depth":814,"text":933},{"id":952,"depth":814,"text":953},{"id":1207,"depth":814,"text":1208},{"id":1261,"depth":814,"text":1262},{"id":1268,"depth":748,"text":1269},{"id":1310,"depth":748,"text":1311},{"id":1355,"depth":748,"text":1356},{"id":1411,"depth":748,"text":1412},{"id":1449,"depth":748,"text":1450},"2026-04-04T00:00:00.000Z","How we built Scout to batch-enrich music metadata via Spotify and MusicBrainz APIs, flag ISRC mismatches, and export clean CSVs for catalog evaluation and royalty reconciliation.",[1521,1524,1527,1530,1533],{"question":1522,"answer":1523},"What is Scout in MusicData Lab?","Scout is a batch metadata enrichment tool that takes CSV or Excel files with track data and enriches every row with ISRCs, artist names, album info, and release dates from Spotify and MusicBrainz APIs.",{"question":1525,"answer":1526},"Why do the same tracks have different ISRCs?","Multiple ISRCs can exist for the same recording because each release edition (original, remaster, compilation, deluxe) gets its own ISRC. This is the most common source of metadata inconsistency in royalty reports.",{"question":1528,"answer":1529},"What file formats does Scout support?","Scout works with any CSV or Excel file. It auto-detects column mappings for common distributor and DSP report formats.",{"question":1531,"answer":1532},"How does the confidence score work?","Scout scores each track on a 0.00 to 1.00 scale: Spotify match adds +0.50, MusicBrainz match adds +0.30, and a resolved ISRC adds +0.20. Flags like ISRC mismatch or artist mismatch are informational and do not reduce the score.",{"question":1534,"answer":1535},"Why doesn't Scout use a DSP bulk feed like Apple's EPF or Spotify partner data?","Bulk DSP feeds (Apple's Enterprise Partner Feed, Spotify Publishing Analytics, distributor-only APIs) require a signed partner agreement that most catalog buyers do not hold. Scout uses the public Spotify Web API and MusicBrainz, which deliver the same accuracy for ISRCs and core metadata in evaluation workflows. For teams with bulk-feed access, Scout's pipeline is source-agnostic and can be pointed at a partner feed.",{"src":1537},"/images/blog/musictechlab_blog_scout-isrc-metadata-enrichment.webp",{"enabled":757,"items":1539},[1540,1543,1546,1549],{"text":1541,"icon":1542},"Scout batch-enriches 40,000+ tracks from Spotify and MusicBrainz APIs in minutes, not days.","i-lucide-zap",{"text":1544,"icon":1545},"Confidence scores range from 0.00 to 1.00: Spotify +0.50, MusicBrainz +0.30, resolved ISRC +0.20.","i-lucide-bar-chart-3",{"text":1547,"icon":1548},"ISRC mismatches between sources usually mean different release editions, not data errors.","i-lucide-alert-triangle",{"text":1550,"icon":1551},"Exports a clean CSV with all enriched fields ready for rights management or investor decks.","i-lucide-file-text",{},{"title":1554,"description":1555},"Scout: Batch ISRC Metadata Enrichment via Spotify & MusicBrainz | MusicTech Lab","Enrich 40k+ tracks with ISRCs, artist data, and album info from Spotify and MusicBrainz. Flag mismatches, resolve duplicates, export clean CSVs.",[1557,1558,1559,1560,1561,1562,1563,761],"ISRC","metadata","Spotify API","MusicBrainz","DSP data","catalog management","royalty reconciliation","HYHj6ILj_Hn8N09PjGf4BIXND0khSkpvaUubGqjiusg",1780305178239]