nixamp 0.75.0 → 0.76.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/ai-label.js +510 -0
  2. package/dist/library-mcp.d.ts +6 -6
  3. package/dist/server.d.ts +3 -0
  4. package/dist/server.js +53 -0
  5. package/dist/signup-profiles.d.ts +15 -0
  6. package/dist/signup-profiles.js +26 -0
  7. package/dist/station-mcp.d.ts +6 -6
  8. package/package.json +2 -1
  9. package/src/ai-label.ts +510 -0
  10. package/src/server.ts +56 -0
  11. package/src/signup-profiles.ts +33 -0
  12. package/web/dist/assets/{ar-DWO4AD-h.js → ar-NhWfdGfS.js} +1 -1
  13. package/web/dist/assets/{chunk-Q2XQMA4B-DdHrVlSJ.css → chunk-Q2XQMA4B-DR1XNWCJ.css} +1 -1
  14. package/web/dist/assets/{chunk-Q2XQMA4B-BaoaSqsD.js → chunk-Q2XQMA4B-OBCD3Aev.js} +1 -1
  15. package/web/dist/assets/{cs-BYkdeLUB.js → cs-D1orW8p8.js} +1 -1
  16. package/web/dist/assets/{da-D1-4-VhC.js → da-C9c7DdFK.js} +1 -1
  17. package/web/dist/assets/{de-CaklUWbI.js → de-DsPQqmTX.js} +1 -1
  18. package/web/dist/assets/{es-CG6nwbN9.js → es-STqShmKZ.js} +1 -1
  19. package/web/dist/assets/{fi-DWfrod_V.js → fi-v5vNrYcE.js} +1 -1
  20. package/web/dist/assets/{fr-CpWd4lRG.js → fr-lKpl6rLi.js} +1 -1
  21. package/web/dist/assets/{hi-BIwcJMqA.js → hi-C1w6fo1p.js} +1 -1
  22. package/web/dist/assets/{hls-OR5FY6YP-B-70I17r.js → hls-OR5FY6YP-B2RNEz5K.js} +1 -1
  23. package/web/dist/assets/{hu-yaKuIx_R.js → hu-DFUXXymd.js} +1 -1
  24. package/web/dist/assets/{id-B20X5Jpx.js → id-BQiiFqsd.js} +1 -1
  25. package/web/dist/assets/{it-C_0lQi83.js → it-CxVVOs4D.js} +1 -1
  26. package/web/dist/assets/main-DuUFn357.js +26 -0
  27. package/web/dist/assets/{mpegts-7CN75AI2-D-bdbDNw.js → mpegts-7CN75AI2-1Qj6py7N.js} +1 -1
  28. package/web/dist/assets/{mpegts-C_-pZIIG.js → mpegts-BcF3gJrf.js} +1 -1
  29. package/web/dist/assets/music-Day-DtFd.js +1 -0
  30. package/web/dist/assets/{nl-vH0eIRvu.js → nl-Bg9nYWdM.js} +1 -1
  31. package/web/dist/assets/{radio-dUHZb5wV.js → radio-Dx44o-ug.js} +1 -1
  32. package/web/dist/assets/{ru-CyWPMStM.js → ru-Cq7_qZpi.js} +1 -1
  33. package/web/dist/assets/{station-KW1WLKF4.js → station-UibBpdBh.js} +1 -1
  34. package/web/dist/assets/{sv-pXXM1l8a.js → sv-zqKojzxL.js} +1 -1
  35. package/web/dist/assets/{uk-DcNuaLei.js → uk-BRjxYLjm.js} +1 -1
  36. package/web/dist/assets/{vi-QYkJg9a4.js → vi-Bq9TGPGs.js} +1 -1
  37. package/web/dist/assets/{vod-CdMhdfvg.js → vod-CkR6hzN7.js} +1 -1
  38. package/web/dist/assets/{watch-fq5gXk7x.js → watch-BO-wMY8T.js} +1 -1
  39. package/web/dist/assets/{zh-9sYPz_Vm.js → zh-B6Rlwv_6.js} +1 -1
  40. package/web/dist/index.html +13 -3
  41. package/web/dist/music.html +1 -1
  42. package/web/dist/radio.html +3 -3
  43. package/web/dist/station.html +3 -3
  44. package/web/dist/sw.js +29 -29
  45. package/web/dist/vod.html +3 -3
  46. package/web/dist/watch.html +3 -3
  47. package/web/dist/assets/main-reQmYdJ0.js +0 -22
  48. package/web/dist/assets/music-C8ITlUNF.js +0 -1
package/dist/ai-label.js CHANGED
@@ -300,6 +300,426 @@ export const ROSTER = {
300
300
  bio: "Seven players who trade melodies like old friends finishing each other's sentences.",
301
301
  themes: "string quartets, clarinet quintets, wind serenades, divertimenti; gardens, conversations, country walks, dances",
302
302
  },
303
+ "ras-tamarind": {
304
+ name: "Ras Tamarind", genre: "Reggae",
305
+ sound: "1970s Jamaican roots reggae, one-drop drums, deep round bass, organ bubble, chopped guitar skank, nyabinghi hand drums, horn section lines, tape echo, recorded live to two-inch tape, 68-76 BPM",
306
+ voice: "weathered male tenor with a gentle rasp, preacherly and patient, long held notes, a harmony trio answering every chorus",
307
+ bio: "Sings like a man reading the news to his whole village from a hillside radio.",
308
+ themes: "rent day in the city, farms in the hills, a sister who went abroad, police at the bus stop, rain on zinc roofs, dreams of going home to Africa",
309
+ },
310
+ "iron-kettle-hi-fi": {
311
+ name: "Iron Kettle Hi-Fi", genre: "Reggae",
312
+ sound: "UK steppers dub, militant four-to-the-floor kick, rumbling sub bass, melodica lines, siren and space-echo dubs, spring reverb snare cracks, sparse vocals toasted then dubbed out, sound-system weight, 140-150 BPM halftime feel",
313
+ voice: "deep female alto, cool and grounded, short chant-like phrases thrown into echo, occasional warm toasting",
314
+ bio: "A sound system that started in a church hall basement and never once turned the bass down.",
315
+ themes: "Saturday sessions in a community hall, a speaker stack built by hand, council estates, migrant grandparents, standing tall, the long walk home",
316
+ },
317
+ "cassia-bell": {
318
+ name: "Cassia Bell", genre: "Reggae",
319
+ sound: "lovers rock, soft rockers rhythm, round melodic bass, sweet electric piano, falsetto backing harmonies, light string pads, glossy late-1970s London production, 72-80 BPM",
320
+ voice: "sweet airy female soprano, intimate and breathy, gentle vibrato, close-miked like she is singing to one person",
321
+ bio: "Writes slow-dance songs for people who met at a house party and never told their parents.",
322
+ themes: "first slow dance at a house party, calls from a red phone box, a boy with a borrowed car, mum waiting up, Sunday dresses, saying sorry",
323
+ },
324
+ "lucia-montevar": {
325
+ name: "Lucía Montevar", genre: "Latin",
326
+ sound: "glossy Latin pop with a reggaeton pulse, nylon-string guitar hook, soft dembow, warm 808 bass, finger snaps, pop piano, airy synth pads, polished radio-ready mix, 90-98 BPM",
327
+ voice: "bright female mezzo, smooth and confident, breathy Spanish tag phrases, stacked harmonies on the hook",
328
+ bio: "Turns every heartbreak into a song you can dance to before you cry about it.",
329
+ themes: "the ex at the same rooftop party, summers in her grandmother's town, a borrowed dress, last call in Miami, texts left on read",
330
+ },
331
+ "santo-cobalto": {
332
+ name: "Santo Cobalto", genre: "Latin",
333
+ sound: "hard dembow reggaeton, booming kick and snare dembow pattern, distorted sub bass, perreo synth stabs, air-horn hits, chopped vocal chants, dark club mix, 92-100 BPM",
334
+ voice: "low male baritone, half-sung melodic delivery with a nasal edge, swaggering Spanish ad-libs, heavy on the hook",
335
+ bio: "The man the whole club turns to when the DJ pulls the bass out.",
336
+ themes: "lowered cars on a beach road, the corner where he grew up, bouncers who know his name, a rival crew, a chain he paid off himself",
337
+ },
338
+ "neon-malecon": {
339
+ name: "Neon Malecón", genre: "Latin",
340
+ sound: "bachata-pop meets electro-cumbia, requinto guitar runs, güira scrapes, bongos, cumbia accordion over synth bass, tropical house shimmer, seaside night mood, 110-124 BPM",
341
+ voice: "male-female duet: a tender male tenor and a smoky female alto trading lines, close harmony on the chorus",
342
+ bio: "A duo who met busking on a seawall and still write every song facing the ocean.",
343
+ themes: "night swims, a fruit cart on the seawall, a first apartment with no furniture, ferry rides, homesick cousins, dancing in the kitchen",
344
+ },
345
+ "warehouse-psalms": {
346
+ name: "Warehouse Psalms", genre: "House",
347
+ sound: "classic Chicago gospel house, drum-machine four-on-the-floor, rolling piano chords, organ stabs, hand claps, deep warm bassline, choir backing vocals, long DJ intro and breakdown, 120-124 BPM",
348
+ voice: "powerful female gospel contralto, soaring and raw, testifying ad-libs, call-and-response with a choir",
349
+ bio: "Takes the Sunday choir into the Saturday night warehouse and refuses to choose between them.",
350
+ themes: "dancing until sunrise, a mother's church, the lights coming on at closing, chosen family, freedom on the floor, a broken heart mended",
351
+ },
352
+ "opal-marquee": {
353
+ name: "Opal Marquee", genre: "House",
354
+ sound: "French-touch filter house and nu-disco, looped disco guitar riffs, phaser sweeps, compressed pumping kick, slap bass, vocoder hooks, glittering strings, 118-124 BPM",
355
+ voice: "cool female alto, detached and stylish, half-spoken verses and a vocoder-doubled chorus",
356
+ bio: "Dresses every song in sequins and a little bit of sadness.",
357
+ themes: "a nightclub coat check, the last metro, mirrored ceilings, an old disco record, a rooftop sunrise, the stranger who never gave a name",
358
+ },
359
+ "neon-cloakroom": {
360
+ name: "Cloakroom Sermon", genre: "House",
361
+ sound: "festival piano house and big-room EDM, euphoric supersaw leads, bright house piano, white-noise risers, huge drops, sidechained pads, stadium claps, 124-128 BPM",
362
+ voice: "clear male tenor, anthemic and youthful, a high belted chorus made for a crowd to scream back",
363
+ bio: "Writes for the exact second ten thousand hands go up at once.",
364
+ themes: "festival wristbands, losing your friends in the crowd, a road trip to the coast, the first summer after school, confetti cannons, the drive home",
365
+ },
366
+ "saffron-tidewater": {
367
+ name: "Saffron Tidewater", genre: "Drum & Bass",
368
+ sound: "liquid drum and bass, rolling two-step breaks, warm round sub bass, lush Rhodes chords, jazzy strings, rain and city ambience, soulful and melodic, 172-174 BPM",
369
+ voice: "soulful female mezzo, silky and reverb-washed, long legato lines floating over the breaks",
370
+ bio: "Makes the kind of drum and bass you put on at 4 a.m. when you want to feel everything.",
371
+ themes: "the night bus home, steamed-up windows, a long-distance love, harbour lights, the first train at dawn, the city breathing in the rain",
372
+ },
373
+ "tarmac-prophet": {
374
+ name: "Tarmac Prophet", genre: "Drum & Bass",
375
+ sound: "1990s ragga jungle, frantic chopped breakbeats, booming sub bass drops, reggae sirens, dub echo, rewind effects, pirate-radio grit, 165-170 BPM",
376
+ voice: "gravelly male MC with a reggae toasting delivery, fast rhythmic chants and a sung hook",
377
+ bio: "Learned to MC on a tower block pirate station with the transmitter bolted to the roof.",
378
+ themes: "pirate radio on the roof, rave flyers, council estates, rewinds, the sound clash, mothers phoning the station to complain",
379
+ },
380
+ "ruin-frequency": {
381
+ name: "Ruin Frequency", genre: "Drum & Bass",
382
+ sound: "dark neurofunk, surgical snares, twisted mechanical Reese basslines, metallic foley hits, cinematic sci-fi pads, tight technical drops, 174 BPM",
383
+ voice: "low male baritone, cold and processed, whispered verses and a distorted chant before each drop",
384
+ bio: "Sounds like a factory that learned to dance after the workers went home.",
385
+ themes: "abandoned server farms, night shifts, surveillance cameras, a city power cut, machines that dream, running before the lights come back",
386
+ },
387
+ "pearl-mercer": {
388
+ name: "Pearl Whitlock", genre: "Funk & Soul",
389
+ sound: "1960s Southern soul, tight live rhythm section, Hammond organ, horn section swells, clean electric guitar fills, tambourine, slow-burning 6/8 ballads and stompers, warm vintage mix, 64-110 BPM",
390
+ voice: "powerful female contralto with gospel grit, pleading and raw, cracking on purpose at the peak",
391
+ bio: "Sings like she is standing on the front steps of a house she just walked out of.",
392
+ themes: "a man who drinks his paycheck, the church choir she left, mill shifts, a bus ticket north, the porch light, starting over",
393
+ },
394
+ "the-brass-alibi": {
395
+ name: "The Brass Alibi", genre: "Funk & Soul",
396
+ sound: "1970s hard funk band, syncopated drums hitting on the one, popping slap bass, chicken-scratch guitar, punchy five-piece horn section, clavinet, congas, extended breakdowns, 100-112 BPM",
397
+ voice: "gritty male tenor bandleader, shouted commands and grunts, gang vocals from the band on the hooks",
398
+ bio: "A nine-piece funk band that plays every show like the rent is due at midnight.",
399
+ themes: "the block party, a cheap car with a loud stereo, the landlord, Friday payday, the dance contest, the band van breaking down",
400
+ },
401
+ "wendell-grace": {
402
+ name: "Wendell Grace", genre: "Funk & Soul",
403
+ sound: "1970s Philadelphia-style lush soul, sweeping string orchestra, vibraphone, harp glissandos, smooth disco-tinged hi-hats, warm bass, female backing trio, polished mix, 92-118 BPM",
404
+ voice: "silky male falsetto that drops into a warm tenor, tender and romantic, spoken-word intros",
405
+ bio: "A crooner who makes asking for a second chance sound like a marriage proposal.",
406
+ themes: "the record shop where they met, a forgotten anniversary, a slow dance in a cramped apartment, long-distance calls, a ring he cannot afford",
407
+ },
408
+ "pilot-light-riot": {
409
+ name: "Pilot Light Riot", genre: "Rock",
410
+ sound: "early-2000s garage rock revival, loud fuzzy dual guitars, driving floor-tom drums, simple distorted riffs, handclaps, raw room-mic recording, short punchy songs, 130-150 BPM",
411
+ voice: "snarling male tenor, half-shouted and sneering, sloppy charm, gang vocals on the chorus",
412
+ bio: "Four friends who learned their instruments in a laundromat basement and never fixed the amps.",
413
+ themes: "the laundromat basement, a stolen guitar, the bar that banned them, a girl from the next town, the last bus out, quitting the day job",
414
+ },
415
+ "kilo-verse": {
416
+ name: "Kilo Verse", genre: "Hip-Hop",
417
+ sound: "1990s East Coast boom bap, dusty jazz samples, hard swung drum breaks, upright bass loops, vinyl crackle, turntable scratches on the hook, 86-94 BPM",
418
+ voice: "clear male baritone, dense multisyllabic rhymes, conversational but precise, ends lines with a smirk",
419
+ bio: "A storyteller who writes every verse like a short story with a twist ending.",
420
+ themes: "the corner bodega, a library card, a cousin's record collection, the subway at midnight, beats made in a closet, an eviction notice",
421
+ },
422
+ "neon-tollbooth": {
423
+ name: "Tollbooth Mirage", genre: "Synthwave",
424
+ sound: "outrun synthwave, gated reverb drums, pulsing arpeggiated bass, bright analog brass leads, glossy pads, electric guitar solo, retro car-chase energy, 110-120 BPM",
425
+ voice: "warm male tenor with a soft rasp, nostalgic and reverb-drenched, doubled chorus vocal",
426
+ bio: "Scores the midnight drive you took after the worst day of your life.",
427
+ themes: "empty highways at 3 a.m., a tollbooth attendant's last shift, arcade high scores, a red convertible, motel neon, leaving a small town",
428
+ },
429
+ "clementine-rowe": {
430
+ name: "Clementine Rowe", genre: "Country",
431
+ sound: "1970s outlaw-era country with honky-tonk roots, pedal steel, twangy Telecaster, walking upright bass, shuffle drums, fiddle, barroom piano, 88-120 BPM",
432
+ voice: "husky female alto with a Texas twang, wry and unflinching, a little whiskey in the low notes",
433
+ bio: "Sings drinking songs from behind the bar she has tended for twenty years.",
434
+ themes: "closing time at a roadside bar, a trucker husband, a jukebox that eats quarters, county fair rodeos, a sister who left, paying in cash",
435
+ },
436
+ "grave-lattice": {
437
+ name: "Grave Lattice", genre: "Metal",
438
+ sound: "melodic death metal, twin harmonized lead guitars, tremolo riffs, blast beats and thrash gallops, down-tuned rhythm guitars, keyboard atmosphere, crushing breakdowns, 150-200 BPM",
439
+ voice: "male harsh vocals: deep death growls traded with high raspy screams, a clean sung chorus on a few songs",
440
+ bio: "Writes battle hymns for forests that burned and kingdoms nobody remembers.",
441
+ themes: "frozen battlefields, burned forests, iron crowns, plague ships, a lighthouse keeper's madness, the last king's funeral",
442
+ },
443
+ "odessa-pruitt": {
444
+ name: "Odessa Pruitt", genre: "Gospel",
445
+ sound: "traditional Southern gospel, roaring Hammond B3 with Leslie, rolling church piano, walking bass, shuffle drums that break into shout-tempo double time, call-and-response with a small choir, 70-140 BPM",
446
+ voice: "powerful female contralto, gritty and preacherly, holding long notes and growling on the vamp",
447
+ bio: "Sings every Sunday like the building might be sold on Monday.",
448
+ themes: "a mother's prayer at the kitchen table, crossing the Jordan, the mill closing, hospital waiting rooms, homegoing services",
449
+ },
450
+ "ninefold-choir": {
451
+ name: "Ninefold Choir", genre: "Gospel",
452
+ sound: "modern mass-choir gospel, eighty voices in tight three-part stacks, gospel piano and organ, punchy live drums with fills, bass guitar runs, brass stabs, key changes into a long vamp, 80-128 BPM",
453
+ voice: "soaring male tenor lead over a massed choir that answers every line, a female soprano ad-libbing on top",
454
+ bio: "A city choir that fills a stadium the way most choirs fill a pew.",
455
+ themes: "breakthroughs, Sunday morning victory, debts forgiven, a city getting back up, the saints marching in, the morning after the storm",
456
+ },
457
+ "kerrigan-bishop": {
458
+ name: "Kerrigan Bishop", genre: "Gospel",
459
+ sound: "contemporary worship-soul gospel, warm Rhodes and grand piano, gentle neo-soul drums, sub bass, soft pad swells, acoustic guitar, intimate verses building to a full choir finish, 66-96 BPM",
460
+ voice: "smooth male baritone, conversational and tender, gliding into falsetto runs at the bridge",
461
+ bio: "Writes hymns for people who stopped going to church but still talk to God in the car.",
462
+ themes: "night-shift prayers, quiet doubt, a father's forgiveness, the long drive home, grace in small rooms, starting over at forty",
463
+ },
464
+ "ifeoma-sky": {
465
+ name: "Ifeoma Sky", genre: "Afrobeats",
466
+ sound: "sunny Lagos Afro-pop, bouncy syncopated percussion, shakers and rim clicks, warm sub bass, glossy palm-wine guitar licks, airy synth chords, layered harmonies on the hook, 100-112 BPM",
467
+ voice: "bright female soprano, sweet and playful, quick melismatic runs, stacked harmonies on every hook",
468
+ bio: "Turns a Lagos traffic jam into a dance party with one chorus.",
469
+ themes: "Friday nights on the island, the tailor's new fit, a crush at the wedding, mum's warnings, rooftop parties, shining after a hard week",
470
+ },
471
+ "yaw-brightwater": {
472
+ name: "Yaw Brightwater", genre: "Afrobeats",
473
+ sound: "highlife-rooted Ghanaian Afrofusion, interlocking clean electric guitars, live horn section, talking drum and congas, round melodic bass, organic live-band feel, 95-105 BPM",
474
+ voice: "warm male baritone, relaxed and smiling, lilting phrasing with call-and-response backing singers",
475
+ bio: "Plays his grandfather's guitar parts in a band that sounds like tomorrow.",
476
+ themes: "Accra evenings, the minibus ride home, family gatherings, sending money home, old dance-hall photos, harmattan mornings",
477
+ },
478
+ "sefo-lantern": {
479
+ name: "Sefo Lantern", genre: "Afrobeats",
480
+ sound: "amapiano-leaning South African groove, deep log drum bass, shuffling shakers, jazzy piano chords, wide pads, sparse percussion, long hypnotic builds, 110-114 BPM",
481
+ voice: "low smoky male voice, half-sung and murmured close to the mic, cool and unhurried",
482
+ bio: "Makes music for the hour the party stops being loud and starts being honest.",
483
+ themes: "3 a.m. street parties, slow dances in kitchens, township rooftops, borrowed cars, quiet confidence, the last taxi home",
484
+ },
485
+ "starling-unit": {
486
+ name: "Starling Unit", genre: "K-Pop",
487
+ sound: "high-energy boy-group K-pop, hard EDM-trap hybrid beat, brass synth stabs, sudden tempo and genre switches, chant breakdowns, wobble bass drop, glossy layered production, 120-140 BPM",
488
+ voice: "seven-member male group trading lines: bright tenor leads, a gravelly rap verse, stadium gang chants",
489
+ bio: "Seven boys who perform every chorus like it is the final level of a video game.",
490
+ themes: "secret missions, rebels on the rooftop, hijacking the broadcast signal, loyalty pacts, neon city chases, the last song before sunrise",
491
+ },
492
+ "moonjar": {
493
+ name: "Moonjar", genre: "K-Pop",
494
+ sound: "retro girl-group K-pop, 80s city-pop synths, slap bass, gated snare, sparkling bells, sweet five-part harmonies, playful spoken interludes, bright four-on-the-floor chorus, 110-124 BPM",
495
+ voice: "five-member female group, bright clear voices, cute spoken lines leading into belted choruses",
496
+ bio: "Five girls who found their mothers' cassette tapes and decided the future sounded like that.",
497
+ themes: "summer convenience-store runs, holding hands on the subway, cassette mixtapes, beach trips, first confessions, polaroid memories",
498
+ },
499
+ "seori-vale": {
500
+ name: "Seori Vale", genre: "K-Pop",
501
+ sound: "K-pop solo ballad with R&B touches, lush piano and string arrangement, soft trap snaps, warm sub bass, cinematic orchestral swell into a key-change final chorus, 68-90 BPM",
502
+ voice: "breathy female soprano, delicate in the verses, powerful belted high notes at the climax",
503
+ bio: "Sings drama-ending ballads like she wrote the script herself.",
504
+ themes: "first snow in the city, an unread message, a goodbye at the airport, rain on the bus window, long-distance calls, keeping a promise",
505
+ },
506
+ "wren-abernathy": {
507
+ name: "Wren Abernathy", genre: "Folk",
508
+ sound: "Appalachian old-time folk, clawhammer banjo, fiddle, upright bass, sparse flatpicked acoustic guitar, porch-recorded with natural reverb, close mountain harmonies, 70-120 BPM",
509
+ voice: "high lonesome female voice, plain and unvarnished, slight mountain twang with close harmony",
510
+ bio: "Learned her songs from her grandmother and writes new ones that sound older.",
511
+ themes: "coal camps, floods in the hollow, quilts and Sunday dinners, sisters who left, revenue men, graveyards on the ridge",
512
+ },
513
+ "salt-ferry-band": {
514
+ name: "The Salt Ferry Band", genre: "Folk",
515
+ sound: "British Isles maritime folk, bodhran, concertina, tin whistle, fiddle, acoustic bouzouki, shanty-style group choruses, pub-room energy, jigs between slow airs, 60-140 BPM",
516
+ voice: "rough-hewn male baritone lead with a whole room of rowdy harmonies on the chorus",
517
+ bio: "A harbor-town crew who sing about the sea because half of them still work on it.",
518
+ themes: "trawler disasters, lighthouse keepers, emigrant ships, dockyard strikes, drowned villages, the pub after the funeral",
519
+ },
520
+ "calder-pike": {
521
+ name: "Calder Pike", genre: "Folk",
522
+ sound: "1960s coffeehouse protest folk, intricate Travis-picked acoustic guitar, harmonica in a neck rack, solo performance, close-miked dry room, occasional upright bass, 80-120 BPM",
523
+ voice: "dry male tenor, nasal and wry, half-spoken storytelling that sharpens on the punchlines",
524
+ bio: "A one-man newspaper with six strings and a harmonica.",
525
+ themes: "factory layoffs, highway towns, draft boards, company towns, union halls, prices at the general store, the river they dammed",
526
+ },
527
+ "mirrorball-republic": {
528
+ name: "Mirrorball Republic", genre: "Disco",
529
+ sound: "European space disco, arpeggiated analog synth bass, vocoder hooks, laser sound effects, four-on-the-floor with open hats, string-machine pads, extended instrumental breaks, 118-124 BPM",
530
+ voice: "cool female alto with a poised, slightly robotic delivery, doubled by vocoder on the hooks",
531
+ bio: "A disco band that sounds like it beamed down from an orbiting nightclub.",
532
+ themes: "starships, dance floors on the moon, chrome cities, satellite love affairs, midnight transmissions, glitter that never comes off",
533
+ },
534
+ "lorette-sable": {
535
+ name: "Lorette Sable", genre: "Disco",
536
+ sound: "late-70s New York diva disco, lush strings, horn stabs, octave-jumping bass, chicken-scratch guitar, congas, four-on-the-floor, long breakdown with gospel-tinged background vocals, 116-128 BPM",
537
+ voice: "towering female mezzo-soprano, church-trained belt, glamorous and commanding, ad-libbing over the break",
538
+ bio: "Walks into the club and the DJ changes the record to hers.",
539
+ themes: "leaving a man at the coat check, freedom on Saturday night, rent paid in cash, the velvet rope, sequins and survival",
540
+ },
541
+ "sunday-hustle-orchestra": {
542
+ name: "Sunday Hustle Orchestra", genre: "Disco",
543
+ sound: "orchestral Philadelphia-style soul-disco, full string and horn sections, harp glissandos, tight live rhythm section, timpani accents, galloping bass, instrumental hooks with group chants, 110-120 BPM",
544
+ voice: "smooth male lead on the verses, a mixed group chorus singing short chants and harmonized hooks",
545
+ bio: "A thirty-piece orchestra that only plays when people are dancing.",
546
+ themes: "Sunday roller rinks, block parties, couples' dance contests, city summers, first dances, the ballroom reopening",
547
+ },
548
+ "gunmetal-prairie": {
549
+ name: "Gunmetal Prairie", genre: "Classic Rock",
550
+ sound: "70s heartland Southern rock, twin harmony lead guitars, slide guitar, Hammond organ, honky-tonk piano, big live drums, long guitar solo outros, 90-130 BPM",
551
+ voice: "raspy male baritone, weathered and soulful, belting the chorus with a whiskey edge",
552
+ bio: "A bar band that kept playing until the bar became a stadium.",
553
+ themes: "grain elevators, tornado season, small-town Friday nights, fathers and sons, pickup trucks, leaving the county line",
554
+ },
555
+ "bus-fare-riot": {
556
+ name: "Bus Fare Riot", genre: "Punk",
557
+ sound: "UK street punk with ska breaks, buzzsaw guitars, rapid two-step drums, driving bass, offbeat skank guitar bridges, shouted gang choruses, 160-200 BPM",
558
+ voice: "snotty female voice with a working-class accent, shouting and sneering over a gang chorus",
559
+ bio: "A four-piece who formed the week the fare went up again.",
560
+ themes: "night buses, landlords, zero-hour contracts, council estates, cancelled shifts, chip shop closing time, ticket inspectors",
561
+ },
562
+ "hollis-greaves": {
563
+ name: "Hollis Greaves", genre: "Blues",
564
+ sound: "North Mississippi hill country blues, droning one-chord electric guitar riffs, hypnotic trance grooves, fife-and-drum style percussion, stomping kick, raw overdriven amp, 90-120 BPM",
565
+ voice: "deep gravelly male voice, moaning and chanting, repetitive and spellbinding",
566
+ bio: "Plays one chord for ten minutes and makes you forget there are others.",
567
+ themes: "juke joints, hill-country picnics, unfaithful lovers, gambling debts, the sheriff's car, homemade whiskey, the creek in flood",
568
+ },
569
+ "imogen-tarrant": {
570
+ name: "Imogen Tarrant", genre: "Jazz",
571
+ sound: "modal post-bop vocal jazz quintet, tenor saxophone, muted trumpet, piano with quartal voicings, upright bass, brushes and ride-cymbal swing, spacious arrangements, 80-200 BPM",
572
+ voice: "husky female contralto, behind-the-beat phrasing, wordless vocalese lines doubling the tenor sax",
573
+ bio: "Sings like the sax player's sister who won every argument.",
574
+ themes: "late trains, rainy rooftops, empty galleries after closing, coastal fog, conversations after midnight, a borrowed coat",
575
+ },
576
+ "noelle-ardent": {
577
+ name: "Noelle Ardent", genre: "R&B",
578
+ sound: "early-90s new jack swing R&B, swing-beat drums with hard snares, synth bass stabs, glossy keys, vocal harmony stacks, talkbox ad-libs, dance breakdowns, 100-112 BPM",
579
+ voice: "bright female soprano, agile runs and playful sass, stacked harmonies on every chorus",
580
+ bio: "Brings back the era when R&B hit as hard as it harmonized.",
581
+ themes: "pager messages, roller rink crushes, girls' night out, a cheating boyfriend caught, mall dates, freedom on the weekend",
582
+ },
583
+ "wet-cinder": {
584
+ name: "Wet Cinder", genre: "Grunge",
585
+ sound: "early-90s Pacific Northwest sludge grunge, drop-D detuned fuzz guitars, lumbering bass, heavy loose drums, quiet clean-tone verses exploding into fuzz walls, 4-track grit, 70-95 BPM",
586
+ voice: "male baritone, raspy and slurred in the verse, tearing into a strained throat-shredding howl on the chorus",
587
+ bio: "Recorded their first album in a flooded rehearsal unit and kept the hum of the dehumidifier in the mix.",
588
+ themes: "rain on a tin roof, pawned guitars, a landlord's notes under the door, ferry towns, friends who drank too much, winter cannery shifts",
589
+ },
590
+ "mossback-choir": {
591
+ name: "Mossback Choir", genre: "Grunge",
592
+ sound: "melodic mid-90s alt-grunge, chorused arpeggiated clean guitars, soaring fuzz choruses, melodic bass, crisp big-room drums, minor-key hooks with unexpected chord turns, 100-125 BPM",
593
+ voice: "male tenor with a nasal, bruised edge, singing wide melodies that crack into a sustained yell at the top",
594
+ bio: "Five sad teenagers from a logging town who wrote stadium choruses about never leaving it.",
595
+ themes: "clear-cut hillsides, a father's pickup truck, late shifts at the mill, the girl who left for the city, a church basement party",
596
+ },
597
+ "thistle-burn": {
598
+ name: "Thistle Burn", genre: "Grunge",
599
+ sound: "female-fronted grunge with a punk snarl, feedback-drenched offset guitars, gnarled bass riffs, fast-slow tempo shifts, primal floor-tom drums, abrasive noise breaks, 90-140 BPM",
600
+ voice: "female alto, sweet and mocking in the verse, switching to a blown-out scream that sounds like it hurts",
601
+ bio: "Three women from a strip-mall town who play loud enough to rattle the dollar store next door.",
602
+ themes: "bad boyfriends, babysitting money, thrift-store wedding dresses, small-town gossip, burning the yearbook, sisters who stay",
603
+ },
604
+ "parking-lot-prom": {
605
+ name: "Parking Lot Prom", genre: "Pop Punk",
606
+ sound: "early-2000s mall pop punk, bright buzzing power chords, fast skate-punk drums, bouncy melodic bass, gang 'whoa-oh' backing vocals, big sing-along choruses, 160-190 BPM",
607
+ voice: "male tenor, nasal and boyish, singing quick and wry with an over-earnest crack on the high notes",
608
+ bio: "Got kicked out of their own prom and played a set off a pickup tailgate in the parking lot instead.",
609
+ themes: "curfews, rented tuxes, getting dumped by text, summer jobs at the water park, the night the car broke down, best friends forever (maybe)",
610
+ },
611
+ "the-late-slips": {
612
+ name: "The Late Slips", genre: "Pop Punk",
613
+ sound: "late-2000s emo-leaning pop punk, twinkly lead guitar over crunchy rhythm guitar, half-time breakdowns, octave chords, rapid drum fills, minor-key verses into major choruses, 140-175 BPM",
614
+ voice: "male tenor with a breathy, confessional delivery that tips into shouted harmonies on the bridge",
615
+ bio: "Named after the tardy notes they collected, they write every song like it is the last day of school.",
616
+ themes: "hometown basements, the last bus home, a friend's funeral, college rejection letters, a hoodie that still smells like her, getting older",
617
+ },
618
+ "bria-castellane": {
619
+ name: "Bria Castellane", genre: "Pop Punk",
620
+ sound: "2020s pop-punk revival, punchy tight drums, glossy distorted power chords, sub-heavy bass, handclap breakdowns, bratty pre-choruses, bright modern sheen over real punk guitars, 150-170 BPM",
621
+ voice: "female soprano, bratty and sarcastic in the verse, belting a clean powerful chorus with a sneer at line ends",
622
+ bio: "Wrote her breakout single in a dentist's waiting room and has refused to get her braces off ever since.",
623
+ themes: "group chats, a friend who stole her crush, phone screens at 3am, failed driving tests, glitter nail polish, swearing she's over it",
624
+ },
625
+ "window-seat-tapes": {
626
+ name: "Window Seat Tapes", genre: "Lo-Fi",
627
+ sound: "jazzy lo-fi hip-hop, warm Rhodes seventh chords, upright bass loops, swung boom-bap drums with soft brushed snare, vinyl crackle, rain field recordings, 70-85 BPM",
628
+ voice: "instrumental: Rhodes piano and upright bass in a small carpeted bedroom studio",
629
+ bio: "Every beat started on a cassette recorder pressed to a train window somewhere between two stops.",
630
+ themes: "commuter train rides, rainy afternoons, late study nights, corner cafes, bookshop aisles, city lights through a wet window",
631
+ },
632
+ "kettle-and-dust": {
633
+ name: "Kettle & Dust", genre: "Lo-Fi",
634
+ sound: "dusty tape-saturated lo-fi, detuned nylon guitar and toy piano loops, crunchy sampler drums, heavy wow and flutter, bitcrushed hats, warbly music-box melodies, 65-80 BPM",
635
+ voice: "instrumental: nylon-string guitar and toy piano through a worn cassette deck in a farmhouse kitchen",
636
+ bio: "Makes beats in a farmhouse kitchen, which is why there is a whistling kettle on almost every record.",
637
+ themes: "grandmother's kitchen, autumn porches, laundry on the line, old photographs, Sunday morning tea, dust in sunbeams",
638
+ },
639
+ "moth-lamp-radio": {
640
+ name: "Moth Lamp Radio", genre: "Lo-Fi",
641
+ sound: "nocturnal synth lo-fi, mellow analog pads, soft FM bells, gently sidechained kick, lazy shuffled hats, chopped harp samples, low-pass filtered night ambience, 75-90 BPM",
642
+ voice: "instrumental: warm analog synths and filtered harp in a dim bedroom studio at night",
643
+ bio: "Broadcasts from a single desk lamp at 3am to whoever else is still awake.",
644
+ themes: "insomnia, neon signs, empty highways, moths around streetlights, late-night convenience stores, the hum of a fridge",
645
+ },
646
+ "fenline-transmissions": {
647
+ name: "Fenline Transmissions", genre: "Ambient",
648
+ sound: "field-recording drone ambient, layered marsh and tide recordings, bowed metal, shortwave radio static, slow sustained harmonium tones, deep sub drones, beatless and free-time",
649
+ voice: "instrumental: drones, harmonium and field recordings captured on an open coastal marsh",
650
+ bio: "Records only on the flat salt coast at dawn, leaving the microphones out until the tide reaches them.",
651
+ themes: "tidal estuaries, curlew calls, abandoned listening stations, sea fog, reed beds in wind, the slow return of the tide",
652
+ },
653
+ "low-orbit-gardens": {
654
+ name: "Low Orbit Gardens", genre: "Ambient",
655
+ sound: "cosmic synth ambient, shimmering polyphonic analog pads, slow arpeggiated sequences, glassy bell tones, long granular swells, faint radio telemetry, beatless or barely pulsing, 60-80 BPM",
656
+ voice: "instrumental: vintage analog synthesizers in a vast reverberant space",
657
+ bio: "Composes as if every piece were the only thing playing in a greenhouse orbiting a quiet planet.",
658
+ themes: "orbiting stations, aurora, satellites passing overhead, hydroponic gardens, the curve of the earth, deep-space silence",
659
+ },
660
+ "quiet-weir": {
661
+ name: "Quiet Weir", genre: "Ambient",
662
+ sound: "modern-classical piano ambient, felted upright piano, looped tape echoes, soft cello drones, distant running-water recordings, gentle granular textures, 55-70 BPM",
663
+ voice: "instrumental: felt-muted upright piano and cello in a wooden mill room by a river",
664
+ bio: "Plays in an old water mill where the river under the floor sets the tempo.",
665
+ themes: "slow rivers, millstones, early frost, fog on fields, letters never sent, the light before snow",
666
+ },
667
+ "halden-voss": {
668
+ name: "Halden Voss", genre: "Film Score",
669
+ sound: "modern hybrid action-epic score, thundering taiko and low brass ostinatos, pulsing string spiccato, distorted synth bass, massive brass braams, rising tension builds, 90-140 BPM",
670
+ voice: "instrumental: full orchestra with massive percussion and synths on a large scoring stage",
671
+ bio: "Scores films that do not exist with the conviction that a trailer is already cutting to them.",
672
+ themes: "chases across rooftops, siege lines, ticking countdowns, a last stand, storms over the sea, vast machines waking",
673
+ },
674
+ "oriel-fenwick": {
675
+ name: "Oriel Fenwick", genre: "Film Score",
676
+ sound: "lush golden-age romantic film score, soaring string melodies, French horn themes, harp glissandi, celesta, woodwind solos, waltz and adventure-march cues, sweeping swells, 60-130 BPM",
677
+ voice: "instrumental: large romantic studio orchestra with harp and celesta in a warm hall",
678
+ bio: "Writes the kind of main theme that keeps an audience seated through the end credits.",
679
+ themes: "grand voyages, lost kingdoms, romance aboard ocean liners, secret gardens, swashbuckling duels, reunions at train stations",
680
+ },
681
+ "marrow-reel": {
682
+ name: "Marrow Reel", genre: "Film Score",
683
+ sound: "minimalist psychological-thriller score, pulsing analog synth arpeggios, prepared piano, scraping string clusters, sparse heartbeat percussion, detuned music-box motifs, cold reverb, 70-110 BPM",
684
+ voice: "instrumental: prepared piano, modular synths and a small string quartet in a dark studio",
685
+ bio: "Scores the scene right before the door opens and never tells you what was behind it.",
686
+ themes: "surveillance, unanswered phone calls, empty motels, a stranger in the rearview mirror, memory loss, the night drive home",
687
+ },
688
+ "saffi-lark": {
689
+ name: "Saffi Lark", genre: "Pop",
690
+ sound: "glossy 80s-revival synth-pop, gated reverb drums, sparkling FM electric piano, slap bass, shimmering arpeggios, saxophone hook in the bridge, big stacked choruses, 110-125 BPM",
691
+ voice: "female mezzo-soprano, bright and breathy, cheeky in the verse, soaring in the chorus with clean stacked harmonies",
692
+ bio: "A roller-rink DJ's daughter who writes every song like it is the final skate of the night.",
693
+ themes: "roller rinks, neon motels, falling for the wrong boy at the arcade, summer road trips, dancing alone in a bedroom, mixtapes",
694
+ },
695
+ "larkin-bay-sound": {
696
+ name: "Larkin Bay Sound", genre: "Yacht Rock",
697
+ sound: "late-1970s West Coast soft rock, Fender Rhodes, clean chorused Stratocaster, tight session drums, slap-free melodic bass, horn section swells, stacked falsetto harmonies, 92-104 BPM",
698
+ voice: "smooth, husky male tenor that floats into falsetto on the choruses",
699
+ bio: "A studio band that only ever wanted to make records for the drive back from the marina.",
700
+ themes: "charter boats, second marriages, sunset cocktails, long-distance calls, ex-lovers at the yacht club",
701
+ },
702
+ "dorian-shoal": {
703
+ name: "Dorian Shoal", genre: "Yacht Rock",
704
+ sound: "silky late-70s West Coast yacht rock, Fender Rhodes, jazzy major-seventh chords, smooth slide guitar, horn section stabs, laid-back groove drums, warm analog sheen, 90-110 BPM",
705
+ voice: "male tenor, velvety and relaxed, rising to a smooth falsetto in the chorus over stacked harmony backing",
706
+ bio: "Docks his sailboat at a different marina every summer and leaves a song behind at each one.",
707
+ themes: "sunset harbors, linen suits, unrequited love at sea, beach clubs, nautical charts, champagne goodbyes on the dock",
708
+ },
709
+ "pinewood-syndicate": {
710
+ name: "Pinewood Syndicate", genre: "Gangsta Rap",
711
+ sound: "late-90s dirty-south gangsta rap, booming 808 kicks, rattling hi-hats, dark minor synth stabs, chopped soul samples, eerie church organ, slow menacing grooves, 68-80 BPM",
712
+ voice: "male crew trading verses: a deep drawling lead, a raspy hype man and a quick double-time third MC",
713
+ bio: "A crew from a backwoods county where everyone knows your business before you finish it.",
714
+ themes: "trap houses in the pines, dirt-road deals, county jail visits, candy-painted cars, family loyalty, swamp heat and Sunday cookouts",
715
+ },
716
+ "ravensmere-consort": {
717
+ name: "The Ravensmere Consort", genre: "Classical",
718
+ sound: "Baroque period-instrument ensemble, double-manual harpsichord, baroque violins, viola da gamba, theorbo, baroque oboe, ornamented counterpoint, suites, concerti grossi and fugues, 60-140 BPM",
719
+ voice: "instrumental: period-instrument baroque ensemble led by harpsichord in a stone chapel",
720
+ bio: "A consort that tunes to candlelight pitch and plays as if the patron is still listening from the gallery.",
721
+ themes: "dance suites, concerti grossi, fugues and chaconnes; harvest festivals, royal processions, candlelit courts, rain on old cathedrals",
722
+ },
303
723
  };
304
724
  const RAP_FORM = [
305
725
  "Rap structure: [Intro] of 1-2 ad-lib lines, [Verse 1] of 12-16 bars (one bar per line), [Hook] of 4 lines, [Verse 2] of 12-16 bars, [Hook] again, optional [Verse 3] or [Outro].",
@@ -386,6 +806,96 @@ const CRAFT = {
386
806
  production: "Recorded live in a concert hall, natural acoustic reverb, wide dynamic range from pianissimo to fortissimo, real acoustic instruments only.",
387
807
  avoid: "vocals, singing, choir words, drums, drum kit, beats, bass guitar, synthesizers, electronic sounds, pop song structure, modern cinematic trailer hits",
388
808
  },
809
+ "reggae": {
810
+ delivery: "sung",
811
+ lyrics: "Reggae: verse-chorus songs with short, plain lines of 6-9 syllables that sit on the offbeat and leave room for the riddim, a chorus repeated two or three times like a chant the crowd can answer. Point of view is first person testifying or second person addressing the listener, a brother, a sister, the system. Ground it in concrete yard life (the zinc fence, the minibus, the market, the rent, rain on the river) and let the message come from the scene instead of slogans; an occasional patois touch is fine, never caricature. Leave a bar or two of space where the singer just hums or repeats a phrase.",
812
+ production: "Bass and kick drum forward and warm, guitar and organ skank tight on the offbeat, spring reverb and tape echo throws on snare and vocal tails.",
813
+ avoid: "rapping, trap hi-hats, EDM drops, four-on-the-floor kick, distorted rock guitars, autotune, pop-punk energy, orchestral strings",
814
+ },
815
+ "latin": {
816
+ delivery: "sung",
817
+ lyrics: "Latin: sung mostly in English with a few short Spanish phrases placed where they hit hardest (the hook tag, a call-out, a pet name), never a whole translated verse. Form is intro tag, verse, a pre-chorus that climbs, a chorus built on one repeatable line, a short bridge and a last double chorus; lines are short and percussive, 5-8 syllables, with rhymes that land on the dembow accents. Be physical and specific: the dance floor, the heat, the car at the curb, the ex at the same party, the grandmother's kitchen, the city at 3 a.m. Flirt, boast and ache in the same song; never stack cliches like fuego, corazon and bailar back to back.",
818
+ production: "Punchy dembow or tropical groove up front, sub bass glued to the kick, crisp claps and shakers, vocals bright and close with short delays on the Spanish tags.",
819
+ avoid: "rock drum kit, heavy metal guitars, country twang, operatic vocals, jazz swing, mariachi brass, slow ballad tempo, Spanish-only lyrics",
820
+ },
821
+ "house": {
822
+ delivery: "sung",
823
+ lyrics: "House: lyrics are sparse and built for repetition: one strong hook line of 4-8 words that returns again and again, a short verse of 4 lines that sets a scene, and a breakdown where a single phrase is sung bare before the drop. Write in first or second person, present tense, aimed at the room (the lights, the floor, the stranger beside you, the sunrise outside), with gospel lift or late-night longing rather than abstract positivity. Fewer words is better; leave long instrumental stretches for the groove and write the hook so it still works chopped into fragments.",
824
+ production: "Four-on-the-floor kick with a long DJ-friendly intro and outro, open hi-hats on the offbeat, side-chained pads, a clear breakdown and build back into the full groove.",
825
+ avoid: "rapped verses, live rock drum kit, distorted guitars, half-time trap beats, country instruments, acoustic singer-songwriter arrangement, dubstep wobble bass",
826
+ },
827
+ "drum-n-bass": {
828
+ delivery: "sung",
829
+ lyrics: "Drum & Bass: the vocal floats over a 170-176 BPM break, so write long held lines of 6-10 syllables with a half-time feel, not a rush of words. Form is intro, a verse, a hook that lands right before the drop, the drop itself carrying only a chopped vocal fragment or a short MC call, a second verse and a final drop. Imagery is motion and night (the night bus, motorway lights, a tower block window, the rave in the rain, the comedown at dawn), first person, intimate, a little haunted. An MC section may chant short rhythmic calls on the beat, but keep it brief.",
830
+ production: "Crisp chopped breakbeats or rolling two-step drums at 170-176 BPM, a huge clean sub bass, a clear drop after a filtered build, vocals reverb-washed in the intro and dry in the drop.",
831
+ avoid: "slow tempo, four-on-the-floor house kick, trap 808 rolls, country twang, acoustic folk arrangement, orchestral pomp, autotuned pop rap",
832
+ },
833
+ "funk-n-soul": {
834
+ delivery: "sung",
835
+ lyrics: "Funk & Soul: soul songs are stories with a turn: verse, verse, chorus, a bridge that confesses or pleads, and a vamped ending where the singer ad-libs and the band answers. Lines run 7-11 syllables with full rhymes, call-and-response with backing singers on the chorus, and one plain-spoken title line that carries the whole song. Funk tracks flip it: short chanted lines, commands to the band and the dancers, the groove itself named in the lyric. Be concrete (the Friday paycheck, the bus fare, the church fan, the porch light left on, new shoes for the dance) and earn the emotion instead of shouting it.",
836
+ production: "Live band in a room: tight drums, upfront bass, scratchy rhythm guitar, horn section stabs, Hammond or Rhodes, warm analog tape and real backing singers.",
837
+ avoid: "drum machines, trap hi-hats, EDM drops, autotune, distorted metal guitars, rapped verses, country twang, synthwave arpeggios",
838
+ },
839
+ "gospel": {
840
+ delivery: "sung",
841
+ lyrics: "Gospel: testimony in the first person, a real trouble named plainly (the eviction notice, the hospital hallway, the son who stopped calling) answered by faith, never a sermon about faith in the abstract. Verse, pre-chorus, chorus, then a vamp: a 3-6 word phrase repeated and built ('He made a way', 'I'm still here') with ad-lib lines for the lead and call-and-response for the choir. Short singable lines, scripture images used as pictures (Jordan, the upper room, morning) rather than quoted verbatim, and a key-change lift into the last chorus.",
842
+ production: "Live church-room feel: Hammond organ with Leslie, gospel piano chords, a choir panned wide behind the lead, hand claps and a drummer who plays the shouts.",
843
+ avoid: "trap hi-hats, autotune, distorted guitars, EDM drops, rapping, whispery indie vocals, synth pads in place of organ",
844
+ },
845
+ "afrobeats": {
846
+ delivery: "sung",
847
+ lyrics: "Afrobeats: groove first, so lines are short, bouncy and syllable-light, sitting on the off-beat; verse, pre-hook, hook, verse, hook, with the hook a chantable 2-6 word phrase repeated four times. First person and present tense, flirting, celebrating or flexing with concrete scenes (a Friday night in the city, the tailor fitting a new outfit, the dance-floor stare, the generator kicking on). English with a light pidgin-style lilt in the phrasing and playful call-backs; joy and swagger, not heartbreak poetry.",
848
+ production: "Crisp syncopated percussion (shakers, talking drum, log drum or rim clicks), warm sub bass, clean melodic guitar or keys, vocals stacked and doubled with airy harmonies on the hook.",
849
+ avoid: "rock drum kit backbeat, distorted guitars, heavy metal, country twang, operatic vocals, four-on-the-floor EDM build-ups, trap rap verses",
850
+ },
851
+ "k-pop": {
852
+ delivery: "sung",
853
+ lyrics: "K-Pop: a high-concept song built on one bold image or mission (a heist, a signal, a summer that will not end), structured verse, pre-chorus, a big chantable chorus, a short rap or spoken break, then a bridge that drops before the final chorus explodes. Write a 1-3 word signature hook that repeats and can be shouted by a crowd, punchy short lines with internal rhyme, and lines traded between members with 'we' and 'you' as the point of view. Keep every word English; carry the K-pop flavour through rhythm, chants and onomatopoeia, not foreign words.",
854
+ production: "Maximal and glossy with genre switches: tight synth bass, layered group vocals, sudden beat changes between sections, and a hard-hitting drop in the chorus.",
855
+ avoid: "lo-fi tape hiss, acoustic folk strumming, long guitar solos, country instrumentation, mumbled vocals, slow blues tempos",
856
+ },
857
+ "folk": {
858
+ delivery: "sung",
859
+ lyrics: "Folk: story first. Strophic 4-line verses rhymed ABCB or AABB, a plain refrain line that returns after each verse, and 4-7 verses that move a real narrative forward in time (a mine closing, a ferry crossing, a brother gone west). Concrete nouns, place names, weather and work; one voice telling it straight, often third person or an 'I' who witnessed it. No modern slang and no pop chorus; the plainer the words, the harder they land.",
860
+ production: "Close-miked acoustic instruments in a small room, little or no drums, natural reverb and audible fingers on strings.",
861
+ avoid: "electric distortion, synthesizers, drum machines, autotune, EDM, rapping, slick pop vocal runs",
862
+ },
863
+ "disco": {
864
+ delivery: "sung",
865
+ lyrics: "Disco: the dance floor is the subject and the escape. Verse, pre-chorus, a soaring chorus, then an extended instrumental break and a breakdown where the lead chants a short command ('don't stop', 'move it to the light'). Short rhythmic euphoric lines in the second person, to a lover or the whole room, with nightlife detail (the coat check, glitter on the cab seat, 4 a.m. on the avenue). Glamour and release over heartbreak; even the sad lyrics dance.",
866
+ production: "Four-on-the-floor kick with open hi-hat on the off-beat, octave-jumping bassline, chicken-scratch rhythm guitar, string swells and horn stabs, big background vocal answers.",
867
+ avoid: "trap hi-hats, distorted rock guitars, grunge, mumbled vocals, acoustic folk strumming, half-time drums, lo-fi",
868
+ },
869
+ "grunge": {
870
+ delivery: "sung",
871
+ lyrics: "Grunge: quiet-loud-quiet form, a murmured verse of 4 short lines, a chorus that is one ugly hook phrase screamed three times, a bridge that drops to a single guitar before the last chorus crashes in. Write in first person from inside a small, damp, unglamorous life (a rented room, a dead-end job, a friend who stopped calling), with sarcasm and self-disgust rather than self-pity. Slant rhymes and off-kilter images beat neat couplets; one strange concrete detail per verse (the mould on the ceiling, a borrowed coat that still smells of someone) keeps it from being generic angst.",
872
+ production: "Thick detuned guitars through cranked fuzz, loud live drums with room mics, bass up front, vocals dry and slightly buried in the verse then raw and doubled in the chorus.",
873
+ avoid: "polished pop vocals, autotune, synthesizers, bright clean production, happy major-key choruses, shredding guitar solos, EDM drops",
874
+ },
875
+ "pop-punk": {
876
+ delivery: "sung",
877
+ lyrics: "Pop punk: verse, pre-chorus, big chorus, verse, chorus, half-time breakdown with a gang-shout, double chorus out. Lines are short and conversational with exact rhymes, addressed to a specific 'you' (an ex, a hometown, a best friend who moved away), stuffed with suburban specifics: a gas station at 2am, a borrowed car, a curfew, a yearbook signature. Self-deprecating jokes sit right next to real heartbreak; the chorus must be singable by a crowd on first listen and the last chorus should land a small twist on its first line.",
878
+ production: "Tight palm-muted power-chord guitars, fast punchy snare, bright compressed mix, stacked harmony vocals on the chorus and shouted backing vocals on the breakdown.",
879
+ avoid: "screamed metal vocals, growls, slow ballad tempos throughout, autotune, synth leads, trap hi-hats, jazz chords",
880
+ },
881
+ "lo-fi": {
882
+ delivery: "instrumental",
883
+ lyrics: "Lo-fi beats, no words: each track is a 2-3 minute loop-based piece built on one warm chord progression, with the beat entering after a short intro, a small variation or filter sweep halfway, and a fade or tape-stop ending. Development comes from texture, not drama: a new countermelody, a drum drop-out, a vinyl crackle swell. Titles are small, specific, slightly wistful scenes, e.g. 'Laundromat at 11pm', 'Window Seat, Bus 14', 'Steam Off the Ramen', never 'Chill Vibes' or 'Study Beats'.",
884
+ production: "Dusty sampled-sounding keys, lazy swung drums with gentle sidechain, tape saturation, wow and flutter, vinyl crackle, rolled-off highs and a soft low end.",
885
+ avoid: "vocals, singing, rapping, spoken word, vocal chops with words, loud EDM drops, distorted guitars, crisp modern trap mixing",
886
+ },
887
+ "ambient": {
888
+ delivery: "instrumental",
889
+ lyrics: "Ambient, no words: each track is one slowly evolving piece of 4-8 minutes with no beat, built from a single tonal centre that blooms, thickens and thins again, with one or two events (a melody fragment, a field recording surfacing, a chord change) placed far apart. It should feel like a place or a weather rather than a song. Titles name a precise place, time or physical process, e.g. 'Tidewater at the Third Groyne', 'Frost Forming on Glass', 'Hour Before the Ferry', never 'Relaxing Ambience' or 'Deep Calm'.",
890
+ production: "Long reverb tails, slow-attack pads, soft dynamics, wide stereo field, gentle tape hiss, field recordings mixed low.",
891
+ avoid: "vocals, singing, spoken word, drums, beats, percussion loops, bass drops, pop song structure, sudden loud transitions",
892
+ },
893
+ "film-score": {
894
+ delivery: "instrumental",
895
+ lyrics: "Film score, no words: each track is a cue from an imaginary film, 2-4 minutes, with a clear dramatic shape (establishing, rising tension, a turn, a resolution or a cliffhanger) and a recurring main theme that returns across the album in different colours. Each style names the scene's action and emotion, the leading instruments and the tempo. Titles read like cue sheets for a film that does not exist, e.g. 'The Lighthouse Keeper's Letter', 'Crossing the Salt Flats', 'Reel 4: They Find the Map', never 'Epic Music' or 'Cinematic Theme'.",
896
+ production: "Large scoring-stage sound, real orchestral sections with clear depth, deep low brass and percussion, modern hybrid sound design only where the artist calls for it.",
897
+ avoid: "vocals, singing, lyrics, choir words, pop song structure, drum kit backbeats, rap, autotune",
898
+ },
389
899
  "yacht-rock": {
390
900
  delivery: "sung",
391
901
  lyrics: "Yacht rock: smooth, wry adult romance, marinas and late lunches, sophisticated chords mean sophisticated words, a falsetto-ready chorus.",
@@ -9,8 +9,10 @@ export declare const LIBRARY_TOOLS: ({
9
9
  name: string;
10
10
  description: string;
11
11
  inputSchema: {
12
+ required?: undefined;
12
13
  type: string;
13
14
  properties: {
15
+ limit?: undefined;
14
16
  server: {
15
17
  type: "string";
16
18
  description: string;
@@ -23,7 +25,6 @@ export declare const LIBRARY_TOOLS: ({
23
25
  offset?: undefined;
24
26
  kind?: undefined;
25
27
  q?: undefined;
26
- limit?: undefined;
27
28
  name?: undefined;
28
29
  id?: undefined;
29
30
  items?: undefined;
@@ -31,12 +32,12 @@ export declare const LIBRARY_TOOLS: ({
31
32
  source?: undefined;
32
33
  force?: undefined;
33
34
  };
34
- required?: undefined;
35
35
  };
36
36
  } | {
37
37
  name: string;
38
38
  description: string;
39
39
  inputSchema: {
40
+ required?: undefined;
40
41
  type: string;
41
42
  properties: {
42
43
  server: {
@@ -76,7 +77,6 @@ export declare const LIBRARY_TOOLS: ({
76
77
  source?: undefined;
77
78
  force?: undefined;
78
79
  };
79
- required?: undefined;
80
80
  };
81
81
  } | {
82
82
  name: string;
@@ -119,6 +119,7 @@ export declare const LIBRARY_TOOLS: ({
119
119
  inputSchema: {
120
120
  type: string;
121
121
  properties: {
122
+ limit?: undefined;
122
123
  artist?: undefined;
123
124
  album?: undefined;
124
125
  genre?: undefined;
@@ -127,7 +128,6 @@ export declare const LIBRARY_TOOLS: ({
127
128
  offset?: undefined;
128
129
  kind?: undefined;
129
130
  q?: undefined;
130
- limit?: undefined;
131
131
  server: {
132
132
  type: "string";
133
133
  description: string;
@@ -154,6 +154,7 @@ export declare const LIBRARY_TOOLS: ({
154
154
  inputSchema: {
155
155
  type: string;
156
156
  properties: {
157
+ limit?: undefined;
157
158
  artist?: undefined;
158
159
  album?: undefined;
159
160
  genre?: undefined;
@@ -162,7 +163,6 @@ export declare const LIBRARY_TOOLS: ({
162
163
  offset?: undefined;
163
164
  kind?: undefined;
164
165
  q?: undefined;
165
- limit?: undefined;
166
166
  name?: undefined;
167
167
  server: {
168
168
  type: "string";
@@ -192,6 +192,7 @@ export declare const LIBRARY_TOOLS: ({
192
192
  required?: undefined;
193
193
  type: string;
194
194
  properties: {
195
+ limit?: undefined;
195
196
  artist?: undefined;
196
197
  album?: undefined;
197
198
  genre?: undefined;
@@ -200,7 +201,6 @@ export declare const LIBRARY_TOOLS: ({
200
201
  offset?: undefined;
201
202
  kind?: undefined;
202
203
  q?: undefined;
203
- limit?: undefined;
204
204
  name?: undefined;
205
205
  id?: undefined;
206
206
  items?: undefined;