[{"data":1,"prerenderedAt":2955},["ShallowReactive",2],{"navigation":3,"/blog/software-development/warning-why-artificial-intelligence-will-defeat-traditional-hr-post":734,"/blog/software-development/warning-why-artificial-intelligence-will-defeat-traditional-hr-surround":866,"/blog/software-development/warning-why-artificial-intelligence-will-defeat-traditional-hr-related":871},[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":686,"authors":736,"badge":741,"body":742,"category":842,"client":741,"date":843,"description":844,"extension":845,"faq":741,"featured":69,"featuredOrder":741,"hidden":846,"image":847,"keyTakeaways":849,"meta":860,"navigation":846,"path":687,"seo":861,"status":741,"stem":688,"tags":862,"teaser":741,"__hash__":865},"posts/blog/software-development/warning-why-artificial-intelligence-will-defeat-traditional-hr.md",[737],{"name":738,"avatar":739},"Roberto Cruz",{"src":740},"/images/people/roberto-cruz.webp",null,{"type":743,"value":744,"toc":835},"minimark",[745,749,752,757,760,763,767,770,773,777,780,783,786,792,795,798,806,809,817,824,832],[746,747,748],"p",{},"hidden: true",[746,750,751],{},"Artificial algorithms, chatbots, and systems cataloging data and selecting the best candidates for a given position are used to correctly verify employee candidates. AI now has the ability to process huge amounts of data, including candidate profiles from different backgrounds, countries, and skills. For medium and large companies, this type of solution is mandatory. On the other side, the pandemic has pushed companies to make restructuration in many cases, this has caused them to make them look for different types of profiles like candidates from overseas and rehire rushing after the COVID crisis has been controlled in some regions. This is leading us to a world where HR is operated by AI technologies. The big two questions are if computer data verification is able to completely replace an HR department inside a company? And what companies should do from now to face a new era? Let’s start discussing three main issues:",[753,754,756],"h2",{"id":755},"intelligence-reach","Intelligence Reach",[746,758,759],{},"The method of recruiting new employees has changed significantly. What to do when several thousands of potential specialists apply for a job in a large corporation? Verification of applications, even by a several-person HR department, may then be significantly difficult. However, innovative systems and algorithms that impartially catalog candidates and verify their competencies in terms of requirements come to the rescue. Thanks to this, recruiters have constant access to databases, and it is easier for them to choose the right person for a required position. Artificial intelligence abilities have been developed up to frontiers never imagined a few years ago reaching an unprecedented transcendence. Its potential to do multiple complex tasks at the same time includes finding the right profile from a database that would include thousands of facts and information, candidates from different countries, backgrounds, and profiles.",[746,761,762],{},"We also need to keep in mind a key factor: this intelligence is becoming cheaper. The resources, talent, and efforts invested from different clusters around the world are doing the AI something cheaper and able to hire even from smaller companies. The capacity to find the right talent at a lower cost makes these types of platforms a new way to walk and a risk for the traditional personnel who work in HR.",[753,764,766],{"id":765},"availability","Availability",[746,768,769],{},"Chatbots as automatised tools in HR supply the immediate reaction time that today’s users expect once they have hiring queries, edge issues, or coaching problems. HR platforms with AI use chatbots which are able to simulate person-to-person conversations at the top level. In traditional HR departments, the strategy depends fully on the availability of the personnel, which makes it a disadvantage against companies where systems are working 24/7 searching for the best talent. In some specific fields, this becomes more critical, for example in IT, driverless technologies, financial specialists, or similar industries, the lack of talent makes companies run desperately in search of the few candidates available.",[746,771,772],{},"AI makes it possible to never stop companies running for top talent. We are inside a war of talent, big corporations are looking around the planet for this type of specialisation for their secret projects. Just keep the example of driverless war, according to some reports Apple is creating their next big project -a car-. Since 2015 it is known that “Titan Project”** which is the code name for this project has hired many engineers specialized in driverless and design for cars. From that time, there has been a war between Apple, Tesla, and other tech companies looking for top engineers and technicians to create a team dedicated to reaching their own goals. They not only look to the US as candidates to fulfill their needs, but they are also like a big dragon surfacing all the Earth searching for talent. And who will do it? Human beings from their offices searching in websites, social media groups, or making calls? Of course not! At that level, they require the benefits of AI to make thousands of searches every day with high accuracy. So? AI is becoming more and more crucial for HR vision.",[753,774,776],{"id":775},"analytics-on-real-time","Analytics on Real-time",[746,778,779],{},"To make the best decision in any field, decision-makers need reliable data. HR platforms based in AI have the capability to bring data in real-time, but it is not only to give you tons of information, the most interesting side is these platforms allow decision-makers to have updated information in real-time, and the data that they really need with profiles adapted to their expectations. Most companies are running over the time to launch the latest trending products, provide demanding services, and execute projects faster than the competence. In those cases, platforms with AI bring accurate data and make it possible to find talent in less time. Compared with traditional HR, it is possible to achieve the goals under pressure, create powerful teamwork and achieve the goals for every project.",[746,781,782],{},"Keeping into consideration the three elements discussed above, we can set the idea that AI will replace traditional HR in a few years more, this is not a utopia. Corporations and even medium-small firms will require to create or hire their own platforms to manage lots of applications and recruitment processes. By 2030 we will see a new face in HR, there is no doubt. HR will be reduced in terms of employees, with automated processes in almost every corner, and using powerful AI platforms to find talent around the world, and going a bit further, in the next decade -2030’s- the traditional HR will be something about corporate history, because machines will take the place of humans and recruitment process will be something purely automatised.",[746,784,785],{},"So, companies of any size have homework to do now, to start implementing most of these new technologies inside HR teams in order to compete with the real trends on the market. To achieve that goal companies could start from now creating their own automated processes inside HR, hire platforms with AI, or in many cases like big companies, start developing their own systems and web platforms to locate talent in an accurate way. Those platforms should be connected to already existing databases which will help to create a powerful engine to run their objectives.",[746,787,788],{},[789,790,791],"strong",{},"At Bravelab we have years of experience creating complex and advanced platforms. In terms of the Human Resources sector, our company has the leadership, tools, and resources to create sophisticated and efficient web platforms that help companies to find talent in the most efficient way, boosting their abilities to create strong team works.",[746,793,794],{},"Would you like to know more about our solutions?",[746,796,797],{},"We invite you to have a free consultation e-meeting with one of our experts.",[746,799,800,801],{},"Daniel Sąsiadek, ",[802,803,805],"a",{"href":804},"mailto:daniel.sasiadek@bravelab.io","daniel.sasiadek@bravelab.io",[746,807,808],{},"REFERENCES",[746,810,811,812],{},"*",[802,813,814],{"href":814,"rel":815},"https://www.reuters.com/article/us-amazon-com-jobs-automation-insight-idUSKCN1MK08G",[816],"nofollow",[746,818,819,820],{},"**",[802,821,822],{"href":822,"rel":823},"https://appleinsider.com/inside/apple-car",[816],[746,825,826,827],{},"Cover image courtesy of Freepik - Created by upklyak ",[802,828,831],{"href":829,"rel":830},"https://www.freepik.com/",[816],"www.freepik.com",[746,833,834],{},"‍",{"title":836,"searchDepth":837,"depth":837,"links":838},"",2,[839,840,841],{"id":755,"depth":837,"text":756},{"id":765,"depth":837,"text":766},{"id":775,"depth":837,"text":776},"software-development","2021-07-14T00:00:00.000Z","How AI-powered recruitment tools, chatbots, and analytics are transforming HR departments. Why companies of all sizes need to adapt to stay competitive.","md",true,{"src":848},"/images/blog/musictechlab_blog_warning-why-artificial-intelligence-will-defeat-traditional-hr.webp",{"enabled":846,"items":850},[851,854,857],{"text":852,"icon":853},"AI recruitment platforms process thousands of candidate profiles impartially and 24/7.","i-lucide-brain",{"text":855,"icon":856},"AI-powered chatbots simulate person-to-person HR conversations at a fraction of the cost.","i-lucide-message-circle",{"text":858,"icon":859},"Real-time analytics let decision-makers find the right talent faster than traditional HR departments.","i-lucide-bar-chart-3",{},{"title":686,"description":844},[863,864],"AI","outsourcing","7JigswDferOHkMuHXcjQiomjhYm3j5j2lvZjW5xhcOY",[867,869],{"title":682,"path":683,"stem":684,"description":868,"children":-1},"Music Glue specialises in creating tailored e-commerce solutions for the music industry. Learn more about MusicTech Lab's partnership with Music Glue.",{"title":690,"path":691,"stem":692,"description":870,"children":-1},"What is a Discovery Document and why it matters. Learn how to structure project requirements, define scope, and align stakeholders before development begins.",[872,1951,2510,2791],{"id":873,"title":410,"authors":874,"badge":880,"body":883,"category":842,"client":741,"date":1905,"description":1906,"extension":845,"faq":1907,"featured":69,"featuredOrder":741,"hidden":69,"image":1923,"keyTakeaways":1925,"meta":1939,"navigation":846,"path":411,"seo":1940,"status":741,"stem":412,"tags":1943,"teaser":741,"__hash__":1950,"score":983},"posts/blog/software-development/c2pa-in-ableton-max-for-live.md",[875],{"name":876,"to":877,"avatar":878},"Mariusz Smenżyk","https://www.linkedin.com/in/mariusz-smenzyk/",{"src":879},"/images/people/mariusz-smenzyk2.webp",{"label":881,"color":882},"Open Source","#7c3aed",{"type":743,"value":884,"toc":1892},[885,892,903,907,910,918,921,929,937,941,944,955,959,1162,1165,1212,1216,1325,1332,1336,1339,1384,1390,1394,1397,1666,1677,1681,1691,1698,1702,1705,1800,1808,1812,1821,1824,1859,1863,1871,1874,1878,1881,1888],[746,886,887,888,891],{},"In May 2026 we shipped ",[802,889,890],{"href":125},"a Claude MCP for reading C2PA manifests in music files",". This post is the follow-up: the same reader, now inside Ableton Live as an open-source Max for Live device.",[746,893,894,895,898,899,902],{},"This is the fourth article in our ",[802,896,897],{"href":475},"Max for Live series",". It builds directly on the ",[802,900,901],{"href":423},"M4L → FastAPI pattern"," we wrote about in January 2026, with one change: the API runs on your laptop, not in the cloud.",[753,904,906],{"id":905},"the-problem","The problem",[746,908,909],{},"Google Lyria signs every MP3 it generates with a C2PA manifest. The manifest records who made the file, what model produced it, whether it is AI-generated, what watermarks were applied (Lyria adds SynthID), and who signed the claim. The data is there. Producers cannot see it.",[746,911,912,913,917],{},"You drop a Lyria stem onto an audio track. Ableton shows you the waveform. It does not show you that the file is AI-generated, who signed it, or what the manifest says about the source. To find out, you have to leave the DAW, run ",[914,915,916],"code",{},"c2patool"," on the file, and read raw JSON.",[746,919,920],{},"Andrew Melchior — Massive Attack's CTO, advising the UK DCMS on AI and the Copyright Act — framed the bigger gap in a reply on LinkedIn to our MCP announcement:",[922,923,924],"note",{},[746,925,926],{},[789,927,928],{},"C2PA now tells you a machine generated this track. It doesn't tell you whose work trained the machine.",[746,930,931,932,936],{},"Training-corpus provenance is the hard problem. This article is about the easier half — making the ",[933,934,935],"em",{},"output"," manifest visible at the point a producer is actually working.",[753,938,940],{"id":939},"the-fix","The fix",[746,942,943],{},"A Max for Live device. Click a clip → see the manifest summary. That is the whole product.",[746,945,946,947,950,951,954],{},"Under the hood, the device borrows a pattern we already shipped: a Max for Live ",[914,948,949],{},"js"," object reads the Live Object Model, then routes the work to a Node for Max HTTP client. We wrote about ",[802,952,953],{"href":423},"this exact shape in January 2026",". The only change here is where the HTTP server lives.",[753,956,958],{"id":957},"architecture-in-one-diagram","Architecture in one diagram",[960,961,965],"pre",{"className":962,"code":963,"language":964,"meta":836,"style":836},"language-mermaid shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","flowchart TB\n    subgraph Ableton[\"Ableton Live\"]\n        device[\"MTL_C2PA_Ableton_PoC.amxd\"]\n        livepi[\"LiveAPI observer\u003Cbr/>(detail_clip)\"]\n        js[\"c2pa_reader.js\"]\n        node[\"c2pa_node.js\u003Cbr/>(Node for Max)\"]\n        ui[\"UI textedit\u003Cbr/>summary display\"]\n        device --> livepi --> js --> node --> ui\n    end\n\n    subgraph LocalServer[\"mtl-c2pa-http (127.0.0.1:8765)\"]\n        fastapi[\"FastAPI app\"]\n        summary[\"/summary\"]\n        verify[\"/verify\"]\n        scan[\"/scan\"]\n        info[\"/info\"]\n        fastapi --> summary\n        fastapi --> verify\n        fastapi --> scan\n        fastapi --> info\n    end\n\n    subgraph PythonPkg[\"mtl_c2pa_server (in this repo)\"]\n        c2pamod[\"c2pa.py (parser)\"]\n        reader[\"c2pa-python Reader\u003Cbr/>(Rust binding)\"]\n        c2pamod --> reader\n    end\n\n    node -->|POST /summary| fastapi\n    fastapi -->|import| c2pamod\n\n    launchd[\"launchd plist\u003Cbr/>auto-start on login\"]\n    launchd -.->|spawn| fastapi\n","mermaid",[914,966,967,976,981,987,993,999,1005,1011,1017,1023,1029,1035,1041,1047,1053,1059,1065,1071,1077,1083,1089,1094,1099,1105,1111,1117,1123,1128,1133,1139,1145,1150,1156],{"__ignoreMap":836},[968,969,972],"span",{"class":970,"line":971},"line",1,[968,973,975],{"class":974},"sTEyZ","flowchart TB\n",[968,977,978],{"class":970,"line":837},[968,979,980],{"class":974},"    subgraph Ableton[\"Ableton Live\"]\n",[968,982,984],{"class":970,"line":983},3,[968,985,986],{"class":974},"        device[\"MTL_C2PA_Ableton_PoC.amxd\"]\n",[968,988,990],{"class":970,"line":989},4,[968,991,992],{"class":974},"        livepi[\"LiveAPI observer\u003Cbr/>(detail_clip)\"]\n",[968,994,996],{"class":970,"line":995},5,[968,997,998],{"class":974},"        js[\"c2pa_reader.js\"]\n",[968,1000,1002],{"class":970,"line":1001},6,[968,1003,1004],{"class":974},"        node[\"c2pa_node.js\u003Cbr/>(Node for Max)\"]\n",[968,1006,1008],{"class":970,"line":1007},7,[968,1009,1010],{"class":974},"        ui[\"UI textedit\u003Cbr/>summary display\"]\n",[968,1012,1014],{"class":970,"line":1013},8,[968,1015,1016],{"class":974},"        device --> livepi --> js --> node --> ui\n",[968,1018,1020],{"class":970,"line":1019},9,[968,1021,1022],{"class":974},"    end\n",[968,1024,1026],{"class":970,"line":1025},10,[968,1027,1028],{"emptyLinePlaceholder":846},"\n",[968,1030,1032],{"class":970,"line":1031},11,[968,1033,1034],{"class":974},"    subgraph LocalServer[\"mtl-c2pa-http (127.0.0.1:8765)\"]\n",[968,1036,1038],{"class":970,"line":1037},12,[968,1039,1040],{"class":974},"        fastapi[\"FastAPI app\"]\n",[968,1042,1044],{"class":970,"line":1043},13,[968,1045,1046],{"class":974},"        summary[\"/summary\"]\n",[968,1048,1050],{"class":970,"line":1049},14,[968,1051,1052],{"class":974},"        verify[\"/verify\"]\n",[968,1054,1056],{"class":970,"line":1055},15,[968,1057,1058],{"class":974},"        scan[\"/scan\"]\n",[968,1060,1062],{"class":970,"line":1061},16,[968,1063,1064],{"class":974},"        info[\"/info\"]\n",[968,1066,1068],{"class":970,"line":1067},17,[968,1069,1070],{"class":974},"        fastapi --> summary\n",[968,1072,1074],{"class":970,"line":1073},18,[968,1075,1076],{"class":974},"        fastapi --> verify\n",[968,1078,1080],{"class":970,"line":1079},19,[968,1081,1082],{"class":974},"        fastapi --> scan\n",[968,1084,1086],{"class":970,"line":1085},20,[968,1087,1088],{"class":974},"        fastapi --> info\n",[968,1090,1092],{"class":970,"line":1091},21,[968,1093,1022],{"class":974},[968,1095,1097],{"class":970,"line":1096},22,[968,1098,1028],{"emptyLinePlaceholder":846},[968,1100,1102],{"class":970,"line":1101},23,[968,1103,1104],{"class":974},"    subgraph PythonPkg[\"mtl_c2pa_server (in this repo)\"]\n",[968,1106,1108],{"class":970,"line":1107},24,[968,1109,1110],{"class":974},"        c2pamod[\"c2pa.py (parser)\"]\n",[968,1112,1114],{"class":970,"line":1113},25,[968,1115,1116],{"class":974},"        reader[\"c2pa-python Reader\u003Cbr/>(Rust binding)\"]\n",[968,1118,1120],{"class":970,"line":1119},26,[968,1121,1122],{"class":974},"        c2pamod --> reader\n",[968,1124,1126],{"class":970,"line":1125},27,[968,1127,1022],{"class":974},[968,1129,1131],{"class":970,"line":1130},28,[968,1132,1028],{"emptyLinePlaceholder":846},[968,1134,1136],{"class":970,"line":1135},29,[968,1137,1138],{"class":974},"    node -->|POST /summary| fastapi\n",[968,1140,1142],{"class":970,"line":1141},30,[968,1143,1144],{"class":974},"    fastapi -->|import| c2pamod\n",[968,1146,1148],{"class":970,"line":1147},31,[968,1149,1028],{"emptyLinePlaceholder":846},[968,1151,1153],{"class":970,"line":1152},32,[968,1154,1155],{"class":974},"    launchd[\"launchd plist\u003Cbr/>auto-start on login\"]\n",[968,1157,1159],{"class":970,"line":1158},33,[968,1160,1161],{"class":974},"    launchd -.->|spawn| fastapi\n",[746,1163,1164],{},"Three sentences:",[1166,1167,1168,1183,1193],"ol",{},[1169,1170,1171,1172,1174,1175,1178,1179,1182],"li",{},"A LiveAPI observer in the ",[914,1173,949],{}," object watches ",[914,1176,1177],{},"live_set view detail_clip",". When the selection changes, it pulls the clip's ",[914,1180,1181],{},"file_path",".",[1169,1184,1185,1186,1189,1190,1182],{},"The path flows into a Node for Max script, which ",[914,1187,1188],{},"POST","s it to ",[914,1191,1192],{},"http://127.0.0.1:8765/summary",[1169,1194,1195,1196,1199,1200,1208,1209,1182],{},"The local FastAPI server is shipped in this same repo as the device — a small Python package (",[914,1197,1198],{},"mtl_c2pa_server",") that wraps the ",[802,1201,1204,1205],{"href":1202,"rel":1203},"https://github.com/contentauth/c2pa-python",[816],"official ",[914,1206,1207],{},"c2pa-python"," Rust binding. One clone, one ",[914,1210,1211],{},"poetry install",[753,1213,1215],{"id":1214},"selection-to-display-end-to-end","Selection-to-display, end to end",[960,1217,1219],{"className":962,"code":1218,"language":964,"meta":836,"style":836},"sequenceDiagram\n    actor User\n    participant Live as Ableton Live\n    participant Device as M4L Device\n    participant Reader as c2pa_reader.js\n    participant Node as c2pa_node.js\n    participant HTTP as mtl-c2pa-http :8765\n    participant Lib as c2pa-python\n\n    User->>Live: click audio clip\n    Live->>Device: detail_clip changed\n    Device->>Reader: observer fires\n    Reader->>Live: get detail_clip.file_path\n    Live-->>Reader: /path/to/lyria.mp3\n    Reader->>Node: outlet \"fetch\" path\n    Node->>HTTP: POST /summary {path}\n    HTTP->>Lib: Reader(mime, stream).json()\n    Lib-->>HTTP: manifest store\n    HTTP-->>Node: summary JSON\n    Node->>Device: outlet \"result\" json\n    Device-->>User: display summary\n",[914,1220,1221,1226,1231,1236,1241,1246,1251,1256,1261,1265,1270,1275,1280,1285,1290,1295,1300,1305,1310,1315,1320],{"__ignoreMap":836},[968,1222,1223],{"class":970,"line":971},[968,1224,1225],{"class":974},"sequenceDiagram\n",[968,1227,1228],{"class":970,"line":837},[968,1229,1230],{"class":974},"    actor User\n",[968,1232,1233],{"class":970,"line":983},[968,1234,1235],{"class":974},"    participant Live as Ableton Live\n",[968,1237,1238],{"class":970,"line":989},[968,1239,1240],{"class":974},"    participant Device as M4L Device\n",[968,1242,1243],{"class":970,"line":995},[968,1244,1245],{"class":974},"    participant Reader as c2pa_reader.js\n",[968,1247,1248],{"class":970,"line":1001},[968,1249,1250],{"class":974},"    participant Node as c2pa_node.js\n",[968,1252,1253],{"class":970,"line":1007},[968,1254,1255],{"class":974},"    participant HTTP as mtl-c2pa-http :8765\n",[968,1257,1258],{"class":970,"line":1013},[968,1259,1260],{"class":974},"    participant Lib as c2pa-python\n",[968,1262,1263],{"class":970,"line":1019},[968,1264,1028],{"emptyLinePlaceholder":846},[968,1266,1267],{"class":970,"line":1025},[968,1268,1269],{"class":974},"    User->>Live: click audio clip\n",[968,1271,1272],{"class":970,"line":1031},[968,1273,1274],{"class":974},"    Live->>Device: detail_clip changed\n",[968,1276,1277],{"class":970,"line":1037},[968,1278,1279],{"class":974},"    Device->>Reader: observer fires\n",[968,1281,1282],{"class":970,"line":1043},[968,1283,1284],{"class":974},"    Reader->>Live: get detail_clip.file_path\n",[968,1286,1287],{"class":970,"line":1049},[968,1288,1289],{"class":974},"    Live-->>Reader: /path/to/lyria.mp3\n",[968,1291,1292],{"class":970,"line":1055},[968,1293,1294],{"class":974},"    Reader->>Node: outlet \"fetch\" path\n",[968,1296,1297],{"class":970,"line":1061},[968,1298,1299],{"class":974},"    Node->>HTTP: POST /summary {path}\n",[968,1301,1302],{"class":970,"line":1067},[968,1303,1304],{"class":974},"    HTTP->>Lib: Reader(mime, stream).json()\n",[968,1306,1307],{"class":970,"line":1073},[968,1308,1309],{"class":974},"    Lib-->>HTTP: manifest store\n",[968,1311,1312],{"class":970,"line":1079},[968,1313,1314],{"class":974},"    HTTP-->>Node: summary JSON\n",[968,1316,1317],{"class":970,"line":1085},[968,1318,1319],{"class":974},"    Node->>Device: outlet \"result\" json\n",[968,1321,1322],{"class":970,"line":1091},[968,1323,1324],{"class":974},"    Device-->>User: display summary\n",[746,1326,1327,1328,1331],{},"The manual \"Refresh\" button short-circuits the observer and triggers the same ",[914,1329,1330],{},"POST /summary"," call. Same pipeline, different trigger source.",[753,1333,1335],{"id":1334},"why-local-not-cloud-not-cli","Why local, not cloud, not CLI",[746,1337,1338],{},"We considered three options. Local won.",[1340,1341,1348,1361,1373],"div",{"className":1342},[1343,1344,1345,1346,1347],"grid","grid-cols-1","md:grid-cols-3","gap-4","my-8",[1349,1350,1354],"spotlight-card",{"description":1351,"icon":1352,"title":1353},"Simplest, but Python startup costs ~300 ms. On every clip selection. You feel it.","i-lucide-zap","A CLI shell-out per click",[746,1355,1356,1357,1360],{},"We use ",[802,1358,1207],{"href":1202,"rel":1359},[816],", which wraps the Rust binding. The Python interpreter cold-start is the bottleneck, not the C2PA read itself.",[1349,1362,1366],{"description":1363,"icon":1364,"title":1365},"Right for generation, wrong for reading. You'd upload audio just to inspect a local file.","i-lucide-cloud","Cloud Run",[746,1367,1368,1369,1372],{},"Cloud is what our ",[802,1370,1371],{"href":423},"reference M4L → API article"," uses — and for storing generation events with an audit log, it is the right answer. For reading a manifest already in your file system, it isn't.",[1349,1374,1378],{"description":1375,"icon":1376,"title":1377},"Keeps c2pa-python warm. Loopback only. Reuses the MCP parser without changes.","i-lucide-server","Local FastAPI server",[746,1379,1380,1381,1383],{},"The HTTP layer is ~80 lines wrapping ",[914,1382,1207],{}," directly. Self-contained in this repo — one clone, one install, no separate dependency on the sibling MCP server.",[746,1385,1386,1387,1389],{},"A persistent local FastAPI server keeps ",[914,1388,1207],{}," warm in memory, runs on loopback only (no external attack surface), and reuses the existing MCP parser without changes.",[753,1391,1393],{"id":1392},"what-you-see","What you see",[746,1395,1396],{},"For a Lyria-signed MP3, the device shows the same shape the MCP produces:",[960,1398,1403],{"className":1399,"code":1400,"filename":1401,"language":1402,"meta":836,"style":836},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"file\": \"/Users/you/Music/Sovereign_Ascent.mp3\",\n  \"generator\": {\"name\": \"Google C2PA Core Generator Library\"},\n  \"is_ai_generated\": true,\n  \"actions\": [\n    {\"action\": \"c2pa.created\", \"description\": \"Created by Google Generative AI.\"},\n    {\"action\": \"c2pa.edited\", \"description\": \"Applied imperceptible SynthID watermark.\"}\n  ],\n  \"watermarks\": [\n    {\"description\": \"Applied imperceptible SynthID watermark.\"}\n  ],\n  \"signature_issuer\": \"Google LLC\",\n  \"validation\": \"valid\"\n}\n","c2pa_summary output in Ableton","json",[914,1404,1405,1411,1438,1472,1486,1500,1542,1581,1586,1599,1619,1623,1643,1662],{"__ignoreMap":836},[968,1406,1407],{"class":970,"line":971},[968,1408,1410],{"class":1409},"sMK4o","{\n",[968,1412,1413,1416,1420,1423,1426,1429,1433,1435],{"class":970,"line":837},[968,1414,1415],{"class":1409},"  \"",[968,1417,1419],{"class":1418},"spNyl","file",[968,1421,1422],{"class":1409},"\"",[968,1424,1425],{"class":1409},":",[968,1427,1428],{"class":1409}," \"",[968,1430,1432],{"class":1431},"sfazB","/Users/you/Music/Sovereign_Ascent.mp3",[968,1434,1422],{"class":1409},[968,1436,1437],{"class":1409},",\n",[968,1439,1440,1442,1445,1447,1449,1452,1454,1458,1460,1462,1464,1467,1469],{"class":970,"line":983},[968,1441,1415],{"class":1409},[968,1443,1444],{"class":1418},"generator",[968,1446,1422],{"class":1409},[968,1448,1425],{"class":1409},[968,1450,1451],{"class":1409}," {",[968,1453,1422],{"class":1409},[968,1455,1457],{"class":1456},"sBMFI","name",[968,1459,1422],{"class":1409},[968,1461,1425],{"class":1409},[968,1463,1428],{"class":1409},[968,1465,1466],{"class":1431},"Google C2PA Core Generator Library",[968,1468,1422],{"class":1409},[968,1470,1471],{"class":1409},"},\n",[968,1473,1474,1476,1479,1481,1483],{"class":970,"line":989},[968,1475,1415],{"class":1409},[968,1477,1478],{"class":1418},"is_ai_generated",[968,1480,1422],{"class":1409},[968,1482,1425],{"class":1409},[968,1484,1485],{"class":1409}," true,\n",[968,1487,1488,1490,1493,1495,1497],{"class":970,"line":995},[968,1489,1415],{"class":1409},[968,1491,1492],{"class":1418},"actions",[968,1494,1422],{"class":1409},[968,1496,1425],{"class":1409},[968,1498,1499],{"class":1409}," [\n",[968,1501,1502,1505,1507,1510,1512,1514,1516,1519,1521,1524,1526,1529,1531,1533,1535,1538,1540],{"class":970,"line":1001},[968,1503,1504],{"class":1409},"    {",[968,1506,1422],{"class":1409},[968,1508,1509],{"class":1456},"action",[968,1511,1422],{"class":1409},[968,1513,1425],{"class":1409},[968,1515,1428],{"class":1409},[968,1517,1518],{"class":1431},"c2pa.created",[968,1520,1422],{"class":1409},[968,1522,1523],{"class":1409},",",[968,1525,1428],{"class":1409},[968,1527,1528],{"class":1456},"description",[968,1530,1422],{"class":1409},[968,1532,1425],{"class":1409},[968,1534,1428],{"class":1409},[968,1536,1537],{"class":1431},"Created by Google Generative AI.",[968,1539,1422],{"class":1409},[968,1541,1471],{"class":1409},[968,1543,1544,1546,1548,1550,1552,1554,1556,1559,1561,1563,1565,1567,1569,1571,1573,1576,1578],{"class":970,"line":1007},[968,1545,1504],{"class":1409},[968,1547,1422],{"class":1409},[968,1549,1509],{"class":1456},[968,1551,1422],{"class":1409},[968,1553,1425],{"class":1409},[968,1555,1428],{"class":1409},[968,1557,1558],{"class":1431},"c2pa.edited",[968,1560,1422],{"class":1409},[968,1562,1523],{"class":1409},[968,1564,1428],{"class":1409},[968,1566,1528],{"class":1456},[968,1568,1422],{"class":1409},[968,1570,1425],{"class":1409},[968,1572,1428],{"class":1409},[968,1574,1575],{"class":1431},"Applied imperceptible SynthID watermark.",[968,1577,1422],{"class":1409},[968,1579,1580],{"class":1409},"}\n",[968,1582,1583],{"class":970,"line":1013},[968,1584,1585],{"class":1409},"  ],\n",[968,1587,1588,1590,1593,1595,1597],{"class":970,"line":1019},[968,1589,1415],{"class":1409},[968,1591,1592],{"class":1418},"watermarks",[968,1594,1422],{"class":1409},[968,1596,1425],{"class":1409},[968,1598,1499],{"class":1409},[968,1600,1601,1603,1605,1607,1609,1611,1613,1615,1617],{"class":970,"line":1025},[968,1602,1504],{"class":1409},[968,1604,1422],{"class":1409},[968,1606,1528],{"class":1456},[968,1608,1422],{"class":1409},[968,1610,1425],{"class":1409},[968,1612,1428],{"class":1409},[968,1614,1575],{"class":1431},[968,1616,1422],{"class":1409},[968,1618,1580],{"class":1409},[968,1620,1621],{"class":970,"line":1031},[968,1622,1585],{"class":1409},[968,1624,1625,1627,1630,1632,1634,1636,1639,1641],{"class":970,"line":1037},[968,1626,1415],{"class":1409},[968,1628,1629],{"class":1418},"signature_issuer",[968,1631,1422],{"class":1409},[968,1633,1425],{"class":1409},[968,1635,1428],{"class":1409},[968,1637,1638],{"class":1431},"Google LLC",[968,1640,1422],{"class":1409},[968,1642,1437],{"class":1409},[968,1644,1645,1647,1650,1652,1654,1656,1659],{"class":970,"line":1043},[968,1646,1415],{"class":1409},[968,1648,1649],{"class":1418},"validation",[968,1651,1422],{"class":1409},[968,1653,1425],{"class":1409},[968,1655,1428],{"class":1409},[968,1657,1658],{"class":1431},"valid",[968,1660,1661],{"class":1409},"\"\n",[968,1663,1664],{"class":970,"line":1049},[968,1665,1580],{"class":1409},[746,1667,1668,1669,1672,1673,1676],{},"For an unsigned audio clip you get ",[914,1670,1671],{},"{\"error\": \"No C2PA manifest found\"}",". For a MIDI clip, ",[914,1674,1675],{},"{\"info\": \"MIDI clip — no C2PA manifest applicable\"}",". The Refresh button re-runs the lookup manually.",[753,1678,1680],{"id":1679},"what-this-doesnt-solve","What this doesn't solve",[1682,1683,1684],"warning",{},[746,1685,1686,1687,1690],{},"This is read-side only. The device tells you the C2PA truth that is ",[933,1688,1689],{},"already in the file",". It does not sign anything. It does not tell you what corpus trained the model. Andrew's point still stands.",[746,1692,1693,1694,1697],{},"The C2PA community is working on the harder problem. There is an active conversation in the C2PA group about capturing provenance ",[933,1695,1696],{},"during"," DAW work — signing the project at bounce time, attributing the samples and MIDI sources that went in. That is the generation side. We would like to help build it next.",[753,1699,1701],{"id":1700},"install-and-try-it","Install and try it",[746,1703,1704],{},"You need Ableton Live with Max for Live (Live Suite, or Standard plus the M4L add-on), and macOS for the auto-start script.",[960,1706,1711],{"className":1707,"code":1708,"filename":1709,"language":1710,"meta":836,"style":836},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# 1. Clone and install (one-time)\ngit clone https://github.com/musictechlab/mtl-c2pa-ableton.git\ncd mtl-c2pa-ableton && poetry install\n\n# 2. Auto-start on login (macOS)\nbash install/install.sh\n\n# 3. Verify\ncurl http://127.0.0.1:8765/health\n# {\"status\":\"ok\"}\n\n# 4. Drop the device on a track\n# Drag device/MTL_C2PA_Ableton_PoC.amxd onto any audio track in Live.\n","setup.sh","bash",[914,1712,1713,1719,1730,1748,1752,1757,1764,1768,1773,1781,1786,1790,1795],{"__ignoreMap":836},[968,1714,1715],{"class":970,"line":971},[968,1716,1718],{"class":1717},"sHwdD","# 1. Clone and install (one-time)\n",[968,1720,1721,1724,1727],{"class":970,"line":837},[968,1722,1723],{"class":1456},"git",[968,1725,1726],{"class":1431}," clone",[968,1728,1729],{"class":1431}," https://github.com/musictechlab/mtl-c2pa-ableton.git\n",[968,1731,1732,1736,1739,1742,1745],{"class":970,"line":983},[968,1733,1735],{"class":1734},"s2Zo4","cd",[968,1737,1738],{"class":1431}," mtl-c2pa-ableton",[968,1740,1741],{"class":1409}," &&",[968,1743,1744],{"class":1456}," poetry",[968,1746,1747],{"class":1431}," install\n",[968,1749,1750],{"class":970,"line":989},[968,1751,1028],{"emptyLinePlaceholder":846},[968,1753,1754],{"class":970,"line":995},[968,1755,1756],{"class":1717},"# 2. Auto-start on login (macOS)\n",[968,1758,1759,1761],{"class":970,"line":1001},[968,1760,1710],{"class":1456},[968,1762,1763],{"class":1431}," install/install.sh\n",[968,1765,1766],{"class":970,"line":1007},[968,1767,1028],{"emptyLinePlaceholder":846},[968,1769,1770],{"class":970,"line":1013},[968,1771,1772],{"class":1717},"# 3. Verify\n",[968,1774,1775,1778],{"class":970,"line":1019},[968,1776,1777],{"class":1456},"curl",[968,1779,1780],{"class":1431}," http://127.0.0.1:8765/health\n",[968,1782,1783],{"class":970,"line":1025},[968,1784,1785],{"class":1717},"# {\"status\":\"ok\"}\n",[968,1787,1788],{"class":970,"line":1031},[968,1789,1028],{"emptyLinePlaceholder":846},[968,1791,1792],{"class":970,"line":1037},[968,1793,1794],{"class":1717},"# 4. Drop the device on a track\n",[968,1796,1797],{"class":970,"line":1043},[968,1798,1799],{"class":1717},"# Drag device/MTL_C2PA_Ableton_PoC.amxd onto any audio track in Live.\n",[746,1801,1802,1803,1182],{},"That's it. Click a Lyria clip — see the manifest. Full setup detail in the ",[802,1804,1807],{"href":1805,"rel":1806},"https://github.com/musictechlab/mtl-c2pa-ableton",[816],"repo README",[753,1809,1811],{"id":1810},"roadmap","Roadmap",[746,1813,1814,1815,1820],{},"Generation-side device next. The plan is a Max for Live effect that signs the project at bounce time and emits a C2PA manifest describing the session's ingredients — samples, MIDI sources, plugin chain. We would like input from the ",[802,1816,1819],{"href":1817,"rel":1818},"https://c2pa.org/community/",[816],"C2PA community"," before settling on the assertion shape.",[746,1822,1823],{},"If you are interested in the broader open-source MCP family we have shipped:",[1340,1825,1828,1836,1844,1851],{"className":1826},[1343,1344,1827,1346,1347],"md:grid-cols-2",[1349,1829,1833],{"description":1830,"icon":1831,"title":1832,"to":173},"Read and write ID3, FLAC, and Vorbis tags from Claude — siblings on the metadata layer.","i-lucide-tag","mtl-metadata-mcp",[746,1834,1835],{},"ISRCs, artist, album, year — the rights-and-identifier layer that complements C2PA's provenance layer.",[1349,1837,1841],{"description":1838,"icon":1839,"title":1840,"to":591},"Complementary provenance: VHC says a human made this; C2PA says how it was made.","i-lucide-user-check","Verified Human Cert MCP",[746,1842,1843],{},"Together they answer the two questions about an AI-suspect track: was it made by a human, and what does the file declare about its origin?",[1349,1845,1848],{"description":1846,"icon":859,"title":1847,"to":169},"Natural-language queries over Bandcamp revenue CSVs from Claude.","mtl-bandcamp-mcp",[746,1849,1850],{},"The same MCP-server pattern, different data source. Wraps the official Bandcamp Sales Report exports.",[1349,1852,1856],{"description":1853,"icon":1854,"title":1855,"to":141},"Adjacent metadata extraction — going below the LiveAPI layer.","i-lucide-file-search","Inside .als and .asd files",[746,1857,1858],{},"For when you need to read an Ableton project without opening Ableton — same Max for Live series, different angle.",[753,1860,1862],{"id":1861},"try-it-break-it-send-feedback","Try it, break it, send feedback",[746,1864,1865,1866,1870],{},"The device is MIT-licensed. Repo: ",[802,1867,1869],{"href":1805,"rel":1868},[816],"musictechlab/mtl-c2pa-ableton",". Issues and PRs welcome. If you build something on top of the local HTTP server (a Logic plugin, a REAPER script, a standalone viewer), tell us — same pattern works for any DAW that can shell out to localhost.",[1872,1873],"hr",{},[753,1875,1877],{"id":1876},"need-help-integrating-c2pa-into-your-music-workflow","Need help integrating C2PA into your music workflow?",[746,1879,1880],{},"Adding provenance to your distribution pipeline, AI music platform, DAW plugin, or rights workflow? We have been there.",[746,1882,1883,1887],{},[802,1884,1886],{"href":1885},"/contact","Let's talk"," — no sales pitch, just honest engineering advice.",[1889,1890,1891],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":836,"searchDepth":837,"depth":837,"links":1893},[1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904],{"id":905,"depth":837,"text":906},{"id":939,"depth":837,"text":940},{"id":957,"depth":837,"text":958},{"id":1214,"depth":837,"text":1215},{"id":1334,"depth":837,"text":1335},{"id":1392,"depth":837,"text":1393},{"id":1679,"depth":837,"text":1680},{"id":1700,"depth":837,"text":1701},{"id":1810,"depth":837,"text":1811},{"id":1861,"depth":837,"text":1862},{"id":1876,"depth":837,"text":1877},"2026-05-29T00:00:00.000Z","In May 2026 we shipped an MCP for reading C2PA manifests in music. This post is the follow-up: the same reader, now inside Ableton Live as an open-source Max for Live device.",[1908,1911,1914,1917,1920],{"question":1909,"answer":1910},"Why a local HTTP server instead of a CLI shell-out or a cloud API?","Python startup takes about 300 ms, which you feel on every clip click. A persistent local server keeps c2pa-python warm in memory. Cloud would mean uploading audio to a server just to inspect a file the user already has on disk — wrong shape for reading, right shape for generation.",{"question":1912,"answer":1913},"Does the device work without the Max for Live add-on?","No. You need Ableton Live Suite (which includes Max for Live), or Ableton Live Standard with the Max for Live add-on. The device is a .amxd file — it cannot run as a stock VST or AU plugin.",{"question":1915,"answer":1916},"Does the device upload my audio anywhere?","No. The FastAPI server binds to 127.0.0.1 only — loopback. No external network access. The Node for Max HTTP client only ever talks to your own machine. You can verify with `lsof -i :8765` while the server runs.",{"question":1918,"answer":1919},"What happens with MIDI clips or recorded audio that has no source file?","The device returns a structured info message: MIDI clip — no C2PA manifest applicable, or audio clip has no file path (recorded in session?). It never crashes the device, never blocks Live.",{"question":1921,"answer":1922},"Will this device tell me whose work trained the model that generated my Lyria stem?","No, and that is the next problem the C2PA community is working on. This device surfaces the output manifest — what Google Lyria declared about the file. Training-corpus attribution requires upstream provenance on the training data itself, which almost no major dataset is C2PA-signed today.",{"src":1924},"/images/blog/musictechlab_blog_c2pa-in-ableton-hero.webp",{"enabled":846,"items":1926},[1927,1930,1933,1936],{"text":1928,"icon":1929},"Google Lyria signs every generated MP3 with a C2PA manifest, but Ableton has no way to display that information today.","i-lucide-eye-off",{"text":1931,"icon":1932},"A Max for Live device + local FastAPI server makes the manifest visible the moment you click a clip.","i-lucide-mouse-pointer-click",{"text":1934,"icon":1935},"All in one repo — Python HTTP server + Max for Live device. One clone, one install, no cloud round-trip.","i-lucide-package",{"text":1937,"icon":1938},"Read-side only — the harder problem (signing the DAW project, attributing the training corpus) is next.","i-lucide-arrow-right",{},{"title":1941,"description":1942},"C2PA in Ableton: Open-Source Max for Live Device | MusicTech Lab","Open-source Max for Live device that displays C2PA provenance manifests for the selected audio clip in Ableton Live. Read Lyria signatures inside your DAW.",[1944,1945,1946,1947,863,1948,1949],"C2PA","Ableton","max-for-live","provenance","MCP","open-source","f14gknzOHNEQ-GY8JJpiBZPV1xYNtcLHzKhVg9vpE9w",{"id":1952,"title":350,"authors":1953,"badge":1957,"body":1959,"category":842,"client":741,"date":2469,"description":2470,"extension":845,"faq":2471,"featured":69,"featuredOrder":741,"hidden":69,"image":2484,"keyTakeaways":2486,"meta":2498,"navigation":846,"path":351,"seo":2499,"status":741,"stem":352,"tags":2502,"teaser":741,"__hash__":2509,"score":983},"posts/blog/software-development/ai-audio-similarity-search-for-sound-libraries.md",[1954],{"name":1955,"to":877,"avatar":1956},"Mariusz Smenzyk",{"src":879},{"label":5,"color":1958},"#f59e0b",{"type":743,"value":1960,"toc":2448},[1961,1964,1974,1977,1981,1984,2001,2004,2008,2011,2014,2049,2053,2056,2061,2064,2077,2083,2087,2090,2099,2104,2108,2111,2120,2125,2131,2135,2138,2210,2226,2231,2235,2238,2298,2301,2308,2312,2315,2319,2322,2326,2329,2333,2336,2340,2343,2347,2350,2391,2395,2398,2403,2409,2415,2421,2425,2428,2432,2435,2445],[746,1962,1963],{},"If you manage a sound effects library with thousands of files, you already know the problem: a client needs \"a subtle metallic scrape, almost like a blade on glass,\" and your search bar returns nothing useful. The tags say \"metal,\" \"scrape,\" \"impact\" - but none of those capture the specific texture they need.",[746,1965,1966,1967,1970,1971,1182],{},"This is where AI audio similarity search changes the game. Instead of relying on how someone ",[933,1968,1969],{},"described"," a sound, it analyzes what the sound actually ",[933,1972,1973],{},"sounds like",[746,1975,1976],{},"We have been researching this problem as part of our work in music technology, where sound libraries with thousands of short, similar-sounding effects are common. Traditional metadata simply cannot capture the nuances between a \"sharp metallic ping\" and a \"bright metallic tap.\" Here is what we have found about the available approaches, their trade-offs, and what works in production.",[753,1978,1980],{"id":1979},"the-problem-with-tags","The Problem with Tags",[746,1982,1983],{},"Before diving into solutions, it is worth understanding why traditional search breaks down for sound libraries.",[1340,1985,1987,1991,1996],{"className":1986},[1343,1344,1345,1346,1347],[1349,1988],{"description":1989,"icon":1831,"title":1990},"Different people tag the same sound differently. One person's 'whoosh' is another's 'swish.'","Inconsistent Tagging",[1349,1992],{"description":1993,"icon":1994,"title":1995},"Manually tagging thousands of SFX is expensive and never complete. New sounds need immediate categorization.","i-lucide-clock","Time-Consuming",[1349,1997],{"description":1998,"icon":1999,"title":2000},"Tags capture categories, not textures. 'Explosion' doesn't tell you if it's a deep rumble or a sharp crack.","i-lucide-ear","Nuance Gets Lost",[746,2002,2003],{},"For long, distinct audio files like full songs, tags work reasonably well. But for short sound effects (often just 1-3 seconds) where dozens of files live in the same category, tags cannot express the subtle differences that matter to a sound designer picking the perfect effect for a scene.",[753,2005,2007],{"id":2006},"how-ai-audio-search-works","How AI Audio Search Works",[746,2009,2010],{},"The core idea is simple: convert each sound into a mathematical representation (called an \"embedding\") that captures its acoustic properties, then use vector math to find similar sounds.",[746,2012,2013],{},"Here is the process in three steps:",[1340,2015,2017,2025,2033],{"className":2016},[1343,1344,1345,1346,1347],[1349,2018,2022],{"description":2019,"icon":2020,"title":2021},"AI model listens to each new SFX and generates a 512-number vector - a fingerprint of what the sound 'sounds like.'","i-lucide-upload","Step 1: Analyze on Upload",[746,2023,2024],{},"When a new file is uploaded, the AI model processes the audio and produces a numerical embedding that captures its acoustic characteristics: pitch, texture, rhythm, decay. Think of it as a fingerprint, but for how the sound is perceived rather than its waveform shape.",[1349,2026,2030],{"description":2027,"icon":2028,"title":2029},"Vectors are stored alongside metadata in a vector database for lightning-fast similarity search.","i-lucide-database","Step 2: Store Embeddings",[746,2031,2032],{},"These vectors live next to the regular metadata (title, tags, duration) in a specialized vector database. This enables similarity calculations across millions of sounds in milliseconds, not minutes.",[1349,2034,2038],{"description":2035,"icon":2036,"title":2037},"Users search by clicking 'find similar' or typing a natural language description.","i-lucide-search","Step 3: Search by Sound",[746,2039,2040,2041,2044,2045,2048],{},"Two powerful search modes become available. ",[789,2042,2043],{},"\"Find similar\"",": click a button on any sound, and acoustically similar results surface instantly. ",[789,2046,2047],{},"Natural language",": type \"subtle glass clink with reverb\" and the AI matches your words against actual audio content.",[753,2050,2052],{"id":2051},"available-methods-what-are-the-options","Available Methods: What Are the Options?",[746,2054,2055],{},"Not all AI audio search is created equal. Here are the main approaches, ranked from simplest to most powerful.",[2057,2058,2060],"h3",{"id":2059},"metadata-based-similarity-no-ai","Metadata-Based Similarity (No AI)",[746,2062,2063],{},"The simplest approach: find sounds with overlapping tags, the same category, and similar duration. No machine learning required.",[1340,2065,2067,2072],{"className":2066},[1343,1344,1827,1346,1347],[1349,2068],{"description":2069,"icon":2070,"title":2071},"Easy to implement, no ML infrastructure needed, fast and predictable.","i-lucide-check","Pros",[1349,2073],{"description":2074,"icon":2075,"title":2076},"Only as good as your tags. Cannot find acoustically similar sounds with different metadata.","i-lucide-x","Cons",[746,2078,2079,2082],{},[789,2080,2081],{},"Best for:"," Small libraries (under 1,000 files) with consistent, thorough tagging.",[2057,2084,2086],{"id":2085},"panns-pre-trained-audio-neural-networks","PANNs (Pre-trained Audio Neural Networks)",[746,2088,2089],{},"PANNs are deep learning models trained on AudioSet (Google's dataset of 2M+ labeled audio clips). They can classify sounds into 527 categories and produce embeddings that capture acoustic properties.",[1340,2091,2093,2096],{"className":2092},[1343,1344,1827,1346,1347],[1349,2094],{"description":2095,"icon":2070,"title":2071},"Well-established, strong classification accuracy, good embeddings for similarity search.",[1349,2097],{"description":2098,"icon":2075,"title":2076},"No text-to-audio search. Classification only, so you still need a separate system for natural language queries.",[746,2100,2101,2103],{},[789,2102,2081],{}," Libraries that need audio-to-audio similarity but do not need natural language search.",[2057,2105,2107],{"id":2106},"clap-contrastive-language-audio-pretraining","CLAP (Contrastive Language-Audio Pretraining)",[746,2109,2110],{},"CLAP is the breakthrough model for sound library search. Developed by Microsoft and LAION, it understands both text and audio in the same vector space. This means a text description and an audio file can be directly compared mathematically.",[1340,2112,2114,2117],{"className":2113},[1343,1344,1827,1346,1347],[1349,2115],{"description":2116,"icon":2070,"title":2071},"Text-to-audio AND audio-to-audio search. Natural language queries work out of the box. State-of-the-art accuracy.",[1349,2118],{"description":2119,"icon":2075,"title":2076},"Larger model (requires GPU for efficient batch processing). Newer, so less community tooling than PANNs.",[746,2121,2122,2124],{},[789,2123,2081],{}," Professional sound libraries where natural language search and acoustic similarity are both critical.",[2126,2127,2128],"tip",{},[746,2129,2130],{},"CLAP is worth serious consideration for sound library projects. The ability to search by typing \"distant thunder with light rain\" and getting acoustically relevant results - not just tag matches - could be a significant UX advantage over traditional approaches.",[753,2132,2134],{"id":2133},"the-technical-stack-for-the-curious","The Technical Stack (For the Curious)",[746,2136,2137],{},"If you are evaluating this for your own project, here is the architecture we recommend:",[960,2139,2141],{"className":962,"code":2140,"language":964,"meta":836,"style":836},"flowchart LR\n    subgraph Indexing[\"Indexing Pipeline\"]\n        A[Audio Upload] --> B[CLAP Model]\n        B --> C[512-dim Vector]\n        C --> D[(Vector Database)]\n    end\n\n    subgraph Search[\"Search Pipeline\"]\n        E[User Query\\ntext or audio] --> F[CLAP Model]\n        F --> G[Query Vector]\n        G --> H{Nearest Neighbor\\nSearch}\n        D --> H\n        H --> I[Ranked Results]\n    end\n",[914,2142,2143,2148,2153,2158,2163,2168,2172,2176,2181,2186,2191,2196,2201,2206],{"__ignoreMap":836},[968,2144,2145],{"class":970,"line":971},[968,2146,2147],{"class":974},"flowchart LR\n",[968,2149,2150],{"class":970,"line":837},[968,2151,2152],{"class":974},"    subgraph Indexing[\"Indexing Pipeline\"]\n",[968,2154,2155],{"class":970,"line":983},[968,2156,2157],{"class":974},"        A[Audio Upload] --> B[CLAP Model]\n",[968,2159,2160],{"class":970,"line":989},[968,2161,2162],{"class":974},"        B --> C[512-dim Vector]\n",[968,2164,2165],{"class":970,"line":995},[968,2166,2167],{"class":974},"        C --> D[(Vector Database)]\n",[968,2169,2170],{"class":970,"line":1001},[968,2171,1022],{"class":974},[968,2173,2174],{"class":970,"line":1007},[968,2175,1028],{"emptyLinePlaceholder":846},[968,2177,2178],{"class":970,"line":1013},[968,2179,2180],{"class":974},"    subgraph Search[\"Search Pipeline\"]\n",[968,2182,2183],{"class":970,"line":1019},[968,2184,2185],{"class":974},"        E[User Query\\ntext or audio] --> F[CLAP Model]\n",[968,2187,2188],{"class":970,"line":1025},[968,2189,2190],{"class":974},"        F --> G[Query Vector]\n",[968,2192,2193],{"class":970,"line":1031},[968,2194,2195],{"class":974},"        G --> H{Nearest Neighbor\\nSearch}\n",[968,2197,2198],{"class":970,"line":1037},[968,2199,2200],{"class":974},"        D --> H\n",[968,2202,2203],{"class":970,"line":1043},[968,2204,2205],{"class":974},"        H --> I[Ranked Results]\n",[968,2207,2208],{"class":970,"line":1049},[968,2209,1022],{"class":974},[1340,2211,2213,2217,2221],{"className":2212},[1343,1344,1345,1346,1347],[1349,2214],{"description":2215,"icon":853,"title":2216},"LAION-AI/CLAP generates embeddings for both audio and text in a shared vector space.","CLAP Model",[1349,2218],{"description":2219,"icon":2028,"title":2220},"pgvector (PostgreSQL), Qdrant, or Pinecone for storing and querying embeddings at scale.","Vector Database",[1349,2222],{"description":2223,"icon":2224,"title":2225},"Pre-compute embeddings on upload (batch job), never at query time. Users never wait.","i-lucide-cog","Processing Pipeline",[922,2227,2228],{},[746,2229,2230],{},"We prefer pgvector when the project already uses PostgreSQL (e.g., via Supabase). It keeps the infrastructure simple - no separate vector database to manage. For libraries over 1M files, a dedicated solution like Qdrant or Pinecone offers better performance.",[2057,2232,2234],{"id":2233},"performance-numbers","Performance Numbers",[746,2236,2237],{},"From our benchmarks with a 10,000-file SFX library:",[2239,2240,2241,2254],"table",{},[2242,2243,2244],"thead",{},[2245,2246,2247,2251],"tr",{},[2248,2249,2250],"th",{},"Metric",[2248,2252,2253],{},"Value",[2255,2256,2257,2266,2274,2282,2290],"tbody",{},[2245,2258,2259,2263],{},[2260,2261,2262],"td",{},"Embedding generation",[2260,2264,2265],{},"~200ms per file (GPU), ~2s per file (CPU)",[2245,2267,2268,2271],{},[2260,2269,2270],{},"Similarity search (pgvector)",[2260,2272,2273],{},"\u003C 50ms for top-20 results",[2245,2275,2276,2279],{},[2260,2277,2278],{},"Natural language search",[2260,2280,2281],{},"\u003C 100ms (text encoding + vector search)",[2245,2283,2284,2287],{},[2260,2285,2286],{},"Storage overhead",[2260,2288,2289],{},"~2KB per sound (512-dim float32 vector)",[2245,2291,2292,2295],{},[2260,2293,2294],{},"Initial indexing (10K files)",[2260,2296,2297],{},"~30 minutes (GPU)",[746,2299,2300],{},"For a 10,000-file library, the total vector storage is about 20MB - negligible compared to the audio files themselves.",[746,2302,2303],{},[2304,2305],"img",{"alt":2306,"src":2307},"AI audio similarity search transforms how sound designers discover the right SFX","/images/blog/musictechlab_blog_ai-audio-similarity-search-for-sound-libraries_inline_1.webp",[753,2309,2311],{"id":2310},"business-impact-why-this-matters","Business Impact: Why This Matters",[746,2313,2314],{},"Beyond the technical elegance, AI audio search delivers measurable business value:",[2057,2316,2318],{"id":2317},"faster-client-workflows","Faster client workflows",[746,2320,2321],{},"Sound designers spend less time browsing and more time creating. When a client can type \"heavy door slam, wooden, no echo\" and get five perfect matches in under a second, that is time saved on every project.",[2057,2323,2325],{"id":2324},"better-discovery-of-existing-assets","Better discovery of existing assets",[746,2327,2328],{},"Most sound libraries have a \"long tail\" problem - hundreds of sounds that rarely get used because nobody remembers they exist or cannot find them through tags. Similarity search surfaces these forgotten assets, increasing the value of the entire library.",[2057,2330,2332],{"id":2331},"reduced-tagging-overhead","Reduced tagging overhead",[746,2334,2335],{},"While tags are still useful for broad categorization, the pressure to tag every sound with exhaustive detail drops significantly. The AI fills in the gaps that human tagging misses.",[2057,2337,2339],{"id":2338},"competitive-differentiation","Competitive differentiation",[746,2341,2342],{},"For studios offering sound libraries to clients, AI-powered search is still uncommon. Offering \"describe what you need and find it instantly\" is a compelling feature that sets a library apart from competitors still using basic keyword search.",[753,2344,2346],{"id":2345},"what-this-looks-like-in-practice","What This Looks Like in Practice",[746,2348,2349],{},"Imagine a film editor working on a trailer. They need a very specific sound: something between a metallic ring and a glass chime, with a quick decay. Here is how the workflow changes:",[1340,2351,2353,2372],{"className":2352},[1343,1344,1827,1346,1347],[1349,2354,2358],{"description":2355,"icon":2356,"title":2357},"15+ minutes, settling for 'close enough'","i-lucide-search-x","Without AI Search",[1166,2359,2360,2363,2366,2369],{},[1169,2361,2362],{},"Search \"metal\" - 200 results, mostly impacts and scrapes",[1169,2364,2365],{},"Search \"glass\" - 150 results, mostly breaks and shatters",[1169,2367,2368],{},"Search \"chime\" - 30 results, browse through each one",[1169,2370,2371],{},"Give up after 15 minutes and settle for \"close enough\"",[1349,2373,2377],{"description":2374,"icon":2375,"title":2376},"Under 2 minutes, the perfect sound","i-lucide-sparkles","With AI Search",[1166,2378,2379,2382,2385,2388],{},[1169,2380,2381],{},"Type \"metallic ring with glass chime quality, short decay\"",[1169,2383,2384],{},"Get 10 acoustically relevant results in under a second",[1169,2386,2387],{},"Click \"find similar\" on the closest match to refine further",[1169,2389,2390],{},"Download the perfect sound in under 2 minutes",[753,2392,2394],{"id":2393},"limitations-and-honest-trade-offs","Limitations and Honest Trade-offs",[746,2396,2397],{},"No technology is perfect. Here is what to keep in mind:",[1682,2399,2400],{},[746,2401,2402],{},"AI similarity search works best as a complement to traditional search, not a replacement. Tags and categories still provide the structural navigation that users need for browsing. AI search excels at the \"I know what I want but cannot describe it in keywords\" use case.",[746,2404,2405,2408],{},[789,2406,2407],{},"Model accuracy varies by domain."," CLAP was trained on general audio data. For highly specialized libraries (e.g., only foley sounds, only synthesizer patches), fine-tuning the model on your specific data can improve results significantly - but adds development time.",[746,2410,2411,2414],{},[789,2412,2413],{},"Initial setup requires processing power."," Generating embeddings for a large existing library is a one-time batch job, but it does require GPU access. Cloud GPUs (AWS, GCP) make this affordable - expect around $5-20 for processing 10,000 files.",[746,2416,2417,2420],{},[789,2418,2419],{},"Relevance is subjective."," \"Similar\" means different things to different people. A sound designer might consider two sounds similar because of their texture, while another focuses on rhythm or pitch. The AI captures overall acoustic similarity, which is usually - but not always - what users want.",[753,2422,2424],{"id":2423},"getting-started","Getting Started",[746,2426,2427],{},"If you are considering AI audio search for your sound library, here is our recommended approach:",[2429,2430],"project-timeline",{":items":2431},"[{\"title\":\"Start with CLAP Embeddings\",\"description\":\"Get both text-to-audio and audio-to-audio search from the very beginning. One model, two search modes.\",\"icon\":\"i-lucide-brain\"},{\"title\":\"Use pgvector on PostgreSQL\",\"description\":\"If you are already on PostgreSQL, add the pgvector extension. Avoid infrastructure complexity early on.\",\"icon\":\"i-lucide-database\"},{\"title\":\"Pre-compute on Upload\",\"description\":\"Generate embeddings when sounds are uploaded, not when users search. Never make users wait for real-time analysis.\",\"icon\":\"i-lucide-cog\"},{\"title\":\"Keep Traditional Search Alongside AI\",\"description\":\"Let users choose between keyword filtering and natural language search. Both have their place.\",\"icon\":\"i-lucide-layers\"},{\"title\":\"Collect Usage Data\",\"description\":\"Track which AI results users actually download. Use this signal to measure and improve relevance over time.\",\"icon\":\"i-lucide-bar-chart\"}]",[746,2433,2434],{},"The technology is mature enough for production use today, and the user experience improvement is dramatic. For sound libraries where traditional search falls short - especially collections of short, similar-sounding effects - AI similarity search is not a nice-to-have. It is the feature that makes the library actually usable.",[922,2436,2437],{},[746,2438,2439,2442,2443,1182],{},[789,2440,2441],{},"Related reading:"," If you are interested in how AI can also transform data analytics in the music industry, check out our article on ",[802,2444,84],{"href":85},[1889,2446,2447],{},"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":836,"searchDepth":837,"depth":837,"links":2449},[2450,2451,2452,2457,2460,2466,2467,2468],{"id":1979,"depth":837,"text":1980},{"id":2006,"depth":837,"text":2007},{"id":2051,"depth":837,"text":2052,"children":2453},[2454,2455,2456],{"id":2059,"depth":983,"text":2060},{"id":2085,"depth":983,"text":2086},{"id":2106,"depth":983,"text":2107},{"id":2133,"depth":837,"text":2134,"children":2458},[2459],{"id":2233,"depth":983,"text":2234},{"id":2310,"depth":837,"text":2311,"children":2461},[2462,2463,2464,2465],{"id":2317,"depth":983,"text":2318},{"id":2324,"depth":983,"text":2325},{"id":2331,"depth":983,"text":2332},{"id":2338,"depth":983,"text":2339},{"id":2345,"depth":837,"text":2346},{"id":2393,"depth":837,"text":2394},{"id":2423,"depth":837,"text":2424},"2026-03-01T00:00:00.000Z","How AI-powered audio search is replacing tags and keywords, helping sound designers find the right SFX in seconds instead of minutes.",[2472,2475,2478,2481],{"question":2473,"answer":2474},"What is AI audio similarity search?","It's a technology that analyzes the actual sound content of audio files and finds acoustically similar sounds, even when tags or metadata don't match. Instead of searching by keywords, users can search by describing what a sound 'sounds like' or clicking 'find similar' on any sound.",{"question":2476,"answer":2477},"How is this different from tag-based search?","Traditional search relies on human-assigned tags, which are inconsistent, incomplete, and subjective. AI audio search analyzes the acoustic properties of each sound, so it can find similar sounds even when they were tagged differently by different people.",{"question":2479,"answer":2480},"What is CLAP and how does it work?","CLAP (Contrastive Language-Audio Pretraining) is an AI model that understands both text and audio. It converts sounds into mathematical vectors, enabling both text-to-audio search (describe what you want) and audio-to-audio similarity (find sounds like this one).",{"question":2482,"answer":2483},"How long does it take to implement AI audio search?","A basic implementation with pre-computed embeddings and vector search can be built in 2-4 weeks. The main effort is in the initial embedding pipeline and search tuning, not in ongoing maintenance.",{"src":2485},"/images/blog/musictechlab_blog_ai-audio-similarity-search-for-sound-libraries.webp",{"enabled":846,"items":2487},[2488,2490,2493,2495],{"text":2489,"icon":853},"AI audio search finds sounds by acoustic similarity, not just tags or keywords.",{"text":2491,"icon":2492},"CLAP embeddings convert each sound into a 512-number vector fingerprint.","i-lucide-cpu",{"text":2494,"icon":1994},"A basic implementation with vector search can be built in 2 to 4 weeks.",{"text":2496,"icon":2497},"Tags fail for short SFX; dozens of 1-3 second files share the same category.","i-lucide-music",{},{"title":2500,"description":2501},"AI Audio Similarity Search for Sound Libraries | MusicTech Lab","Learn how CLAP embeddings and vector search help sound designers find SFX by acoustic similarity, not just tags. Business and technical guide.",[863,2503,2504,2505,2506,2507,2508],"audio-search","sound-design","CLAP","vector-search","SFX","music-tech","GWSVyrLINooVhaaAhJTIVykDqeysmp7wmXzOwCj9Td0",{"id":2511,"title":518,"authors":2512,"badge":741,"body":2517,"category":842,"client":741,"date":2771,"description":2772,"extension":845,"faq":741,"featured":69,"featuredOrder":741,"hidden":69,"image":2773,"keyTakeaways":2775,"meta":2786,"navigation":846,"path":519,"seo":2787,"status":741,"stem":520,"tags":2788,"teaser":741,"__hash__":2790,"score":983},"posts/blog/software-development/how-to-conduct-workshops-for-creative-industry.md",[2513],{"name":2514,"avatar":2515},"Adam Golański",{"src":2516},"/images/people/adam-golanski.webp",{"type":743,"value":2518,"toc":2752},[2519,2526,2529,2532,2536,2539,2543,2546,2561,2565,2580,2584,2587,2595,2599,2602,2606,2609,2621,2625,2640,2644,2647,2662,2666,2669,2680,2684,2687,2691,2694,2697,2701,2704,2707,2710,2713,2718,2721,2726,2729,2734,2737,2740,2744,2747],[746,2520,2521,2522,2525],{},"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 ",[933,2523,2524],{},"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.",[746,2527,2528],{},"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.",[746,2530,2531],{},"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.",[753,2533,2535],{"id":2534},"understanding-creative-professionals","Understanding Creative Professionals",[746,2537,2538],{},"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.",[2057,2540,2542],{"id":2541},"unique-traits-and-work-styles","Unique Traits and Work Styles",[746,2544,2545],{},"Creative professionals thrive in environments that allow for flexibility and exploration:",[1340,2547,2549,2553,2557],{"className":2548},[1343,1344,1345,1346,1347],[1349,2550],{"description":2551,"title":2552},"Rigid processes stifle creativity. Creative individuals prefer fluid approaches that let ideas evolve organically.","Value Flexibility",[1349,2554],{"description":2555,"title":2556},"They communicate through sketches, diagrams, and prototypes. Visual tools make abstract ideas tangible and easier to discuss.","Visual Thinking",[1349,2558],{"description":2559,"title":2560},"They value diverse perspectives and excel in team settings where ideas flow freely, leading to greater innovation.","Collaborative Nature",[2057,2562,2564],{"id":2563},"scientific-insights-on-creativity","Scientific Insights on Creativity",[1340,2566,2568,2572,2576],{"className":2567},[1343,1344,1345,1346,1347],[1349,2569],{"description":2570,"title":2571},"Spending time in nature boosts attention and promotes mind-wandering. Consider running part of the workshop outdoors.","Nature & Creativity",[1349,2573],{"description":2574,"title":2575},"Preparation → incubation → illumination → verification. Support each stage with relaxed spaces and quiet zones for focused thinking.","Stages of Creativity",[1349,2577],{"description":2578,"title":2579},"Creative professionals generate multiple solutions (divergent) vs. finding one answer (convergent). Workshops should encourage exploring many possibilities.","Divergent Thinking",[2057,2581,2583],{"id":2582},"challenges-with-traditional-methods","Challenges with Traditional Methods",[746,2585,2586],{},"Traditional requirement gathering methods often fail with creative professionals:",[1682,2588,2589],{},[746,2590,2591,2594],{},[789,2592,2593],{},"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.",[753,2596,2598],{"id":2597},"tailoring-the-workshop-approach","Tailoring the Workshop Approach",[746,2600,2601],{},"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.",[2057,2603,2605],{"id":2604},"flexible-and-dynamic-activities","Flexible and Dynamic Activities",[746,2607,2608],{},"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.",[2610,2611,2612,2615,2618],"ul",{},[1169,2613,2614],{},"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.",[1169,2616,2617],{},"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.",[1169,2619,2620],{},"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.",[2057,2622,2624],{"id":2623},"creative-tools-and-techniques","Creative Tools and Techniques",[1340,2626,2628,2632,2636],{"className":2627},[1343,1344,1345,1346,1347],[1349,2629],{"description":2630,"title":2631},"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",[1349,2633],{"description":2634,"title":2635},"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",[1349,2637],{"description":2638,"title":2639},"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",[2057,2641,2643],{"id":2642},"engaging-the-senses","Engaging the Senses",[746,2645,2646],{},"Creative professionals respond well to multi-sensory engagement:",[1340,2648,2650,2654,2658],{"className":2649},[1343,1344,1345,1346,1347],[1349,2651],{"description":2652,"title":2653},"Use Miro or similar tools for real-time collaborative drawing and annotation. Visual collaboration clarifies complex ideas.","Visual Aids",[1349,2655],{"description":2656,"title":2657},"Create a \"user journey wall\" with moveable sticky notes. Participants rearrange steps to visualise and improve user flows.","Interactive Elements",[1349,2659],{"description":2660,"title":2661},"Comfortable seating, natural lighting, colourful posters, and breakout areas for small groups. The right environment amplifies creativity.","Ambience",[2057,2663,2665],{"id":2664},"encouraging-participation-and-collaboration","Encouraging Participation and Collaboration",[746,2667,2668],{},"Creating a collaborative environment is essential for harnessing the potential of creative professionals. Facilitators should employ techniques that encourage active participation and idea sharing.",[2610,2670,2671,2674,2677],{},[1169,2672,2673],{},"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.",[1169,2675,2676],{},"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.",[1169,2678,2679],{},"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.",[753,2681,2683],{"id":2682},"facilitation-techniques-for-success","Facilitation Techniques for Success",[746,2685,2686],{},"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:",[2057,2688,2690],{"id":2689},"adaptive-facilitation","Adaptive Facilitation",[746,2692,2693],{},"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.",[746,2695,2696],{},"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.",[2057,2698,2700],{"id":2699},"managing-time-creatively","Managing Time Creatively",[746,2702,2703],{},"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.",[746,2705,2706],{},"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.",[2057,2708,2665],{"id":2709},"encouraging-participation-and-collaboration-1",[746,2711,2712],{},"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.",[2610,2714,2715],{},[1169,2716,2717],{},"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.",[746,2719,2720],{},"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,",[2610,2722,2723],{},[1169,2724,2725],{},"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?\"",[746,2727,2728],{},"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.",[2610,2730,2731],{},[1169,2732,2733],{},"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.",[746,2735,2736],{},"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.",[746,2738,2739],{},"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.",[753,2741,2743],{"id":2742},"instead-of-a-summary","Instead of a Summary",[746,2745,2746],{},"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.",[2126,2748,2749],{},[746,2750,2751],{},"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":836,"searchDepth":837,"depth":837,"links":2753},[2754,2759,2765,2770],{"id":2534,"depth":837,"text":2535,"children":2755},[2756,2757,2758],{"id":2541,"depth":983,"text":2542},{"id":2563,"depth":983,"text":2564},{"id":2582,"depth":983,"text":2583},{"id":2597,"depth":837,"text":2598,"children":2760},[2761,2762,2763,2764],{"id":2604,"depth":983,"text":2605},{"id":2623,"depth":983,"text":2624},{"id":2642,"depth":983,"text":2643},{"id":2664,"depth":983,"text":2665},{"id":2682,"depth":837,"text":2683,"children":2766},[2767,2768,2769],{"id":2689,"depth":983,"text":2690},{"id":2699,"depth":983,"text":2700},{"id":2709,"depth":983,"text":2665},{"id":2742,"depth":837,"text":2743},"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":2774},"/images/blog/musictechlab_blog_how-to-conduct-workshops-for-creative-industry.webp",{"enabled":846,"items":2776},[2777,2780,2783],{"text":2778,"icon":2779},"Creative professionals need flexible, visual workshops instead of rigid requirement-gathering formats.","i-lucide-palette",{"text":2781,"icon":2782},"Techniques like Gallery Walk and Parallel Lines ensure even shy participants contribute ideas.","i-lucide-users",{"text":2784,"icon":2785},"Multi-sensory engagement and adaptive facilitation unlock better outcomes than formal agendas.","i-lucide-lightbulb",{},{"title":518,"description":2772},[2789,864],"musictech","6OmE_Lrk-IHwxhQ4NFP9L6TdIyeC6E4G6aQB_Qobfx4",{"id":2792,"title":386,"authors":2793,"badge":741,"body":2796,"category":842,"client":741,"date":2936,"description":2937,"extension":845,"faq":741,"featured":69,"featuredOrder":741,"hidden":69,"image":2938,"keyTakeaways":2940,"meta":2951,"navigation":846,"path":387,"seo":2952,"status":741,"stem":388,"tags":2953,"teaser":741,"__hash__":2954,"score":983},"posts/blog/software-development/bravelab-partners-with-the-audio-lalal-ai.md",[2794],{"name":876,"to":877,"avatar":2795},{"src":879},{"type":743,"value":2797,"toc":2930},[2798,2807,2811,2821,2836,2840,2843,2869,2873,2880,2895,2900,2904],[746,2799,2800,2801,2806],{},"MusicTech Lab has partnered with ",[802,2802,2805],{"href":2803,"rel":2804},"https://www.lalal.ai/",[816],"LALAL.AI",", the AI-powered vocal remover and music source separation service. The partnership connects LALAL.AI's stem splitting technology with MusicTech Lab's experience building music tech products — giving clients a clear path from idea to integration.",[753,2808,2810],{"id":2809},"what-lalalai-does","What LALAL.AI Does",[746,2812,2813,2816,2817,2820],{},[802,2814,2805],{"href":2803,"rel":2815},[816]," uses neural networks to split audio into individual stems — vocals, drums, bass, piano, electric guitar, acoustic guitar, and synthesizer — without compromising quality. Based in Zug, Switzerland, the company has processed over ",[789,2818,2819],{},"335 million hours"," of audio since launch.",[1340,2822,2824,2828,2832],{"className":2823},[1343,1344,1345,1346,1347],[1349,2825],{"description":2826,"title":2827},"Isolate or remove vocals from any track. Essential for karaoke, remixes, and sample clearance workflows.","Vocal Removal",[1349,2829],{"description":2830,"title":2831},"Extract up to 9 individual stems from a single audio file — drums, bass, piano, guitars, synths, and more.","Stem Separation",[1349,2833],{"description":2834,"title":2835},"A developer-friendly API that lets you embed stem splitting directly into your own apps and services.","API Access",[753,2837,2839],{"id":2838},"use-cases","Use Cases",[746,2841,2842],{},"Stem separation unlocks workflows that weren't possible a few years ago. Here are some of the most common:",[2610,2844,2845,2851,2857,2863],{},[1169,2846,2847,2850],{},[789,2848,2849],{},"Remix and mashup production"," — producers can isolate vocals or instrumentals from existing tracks without needing access to the original session files",[1169,2852,2853,2856],{},[789,2854,2855],{},"Music education"," — teachers and students can strip away specific instruments to practice along with a real recording",[1169,2858,2859,2862],{},[789,2860,2861],{},"Content creation"," — podcasters, YouTubers, and video editors can extract clean vocals or remove background music from clips",[1169,2864,2865,2868],{},[789,2866,2867],{},"DJ sets and live performance"," — DJs can create acapellas and instrumentals on the fly for live remixing",[753,2870,2872],{"id":2871},"what-the-partnership-means","What the Partnership Means",[746,2874,2875,2876,2879],{},"MusicTech Lab serves as a technical partner for ",[802,2877,2805],{"href":2803,"rel":2878},[816],". If you're a musician, sound engineer, DJ, or music tech company looking to use stem separation in your workflow, we can help you:",[1340,2881,2883,2887,2891],{"className":2882},[1343,1344,1345,1346,1347],[1349,2884],{"description":2885,"title":2886},"Evaluate how LALAL.AI fits your specific audio processing needs.","Understand",[1349,2888],{"description":2889,"title":2890},"Tailor the solution to your technical requirements and pipeline.","Customize",[1349,2892],{"description":2893,"title":2894},"Connect LALAL.AI's API with whatever tools you already use.","Integrate",[2126,2896,2897],{},[746,2898,2899],{},"LALAL.AI is trusted by producers, DJs, and content creators worldwide. With 335M+ hours of audio processed, the technology is production-ready and battle-tested.",[753,2901,2903],{"id":2902},"learn-more","Learn More",[1340,2905,2910,2917,2922,2926],{"className":2906},[2907,2908,2909,1347],"flex","flex-wrap","gap-3",[2911,2912],"u-button",{"color":2913,"label":2914,"target":2915,"to":2803,"variant":2916},"primary","LALAL.AI Website","_blank","subtle",[2911,2918],{"color":2919,"label":2920,"target":2915,"to":2921,"variant":2916},"neutral","GitHub","https://github.com/OmniSaleGmbH/lalalai",[2911,2923],{"color":2919,"label":2924,"target":2915,"to":2925,"variant":2916},"Facebook","https://www.facebook.com/Lalalai-106143107757872/",[2911,2927],{"color":2919,"label":2928,"target":2915,"to":2929,"variant":2916},"YouTube","https://www.youtube.com/channel/UCawy7BDDJ62QwQeeRjYmEtQ",{"title":836,"searchDepth":837,"depth":837,"links":2931},[2932,2933,2934,2935],{"id":2809,"depth":837,"text":2810},{"id":2838,"depth":837,"text":2839},{"id":2871,"depth":837,"text":2872},{"id":2902,"depth":837,"text":2903},"2024-02-01T00:00:00.000Z","MusicTech Lab partners with LALAL.AI, the AI-powered vocal remover and music source separation service, to bring stem splitting into real-world music tech workflows.",{"src":2939},"/images/blog/musictechlab_blog_musictechlab-partners-with-the-audio-lalal-ai.webp",{"enabled":846,"items":2941},[2942,2944,2946,2948],{"text":2943,"icon":853},"LALAL.AI uses neural networks to split audio into up to 9 individual stems.",{"text":2945,"icon":859},"Over 335 million hours of audio have been processed through the platform.",{"text":2947,"icon":2497},"Use cases include remix production, music education, content creation, and live DJ sets.",{"text":2949,"icon":2950},"MusicTech Lab serves as a technical integration partner for LALAL.AI clients.","i-lucide-handshake",{},{"title":386,"description":2937},[863,2789],"oiKtY36JLlyG0U8i9mEyz9RaMXICMtdmoMXvb2CLWBY",1780305298320]