working on fixing compatibility issues with ios

This commit is contained in:
suroh 2023-10-09 19:44:18 +02:00
parent b64ee5ffce
commit 7eaeb022b0
23 changed files with 931 additions and 287 deletions

View File

@ -1,42 +0,0 @@
[
{
"title": "Totally Wired with Kimberly Haas",
"details": "1980s",
"media": "01_Meredith Monk_Totally Wired with Kimberly Haas_1980s"
},
{
"title": "Speaking of Music",
"details": "1984, Other Minds radio program Part 1 of 2",
"media": "02_Speaking of Music, Meredith Monk. 1984 Other Minds radio program_Part 1 of 2"
},
{
"title": "Speaking of Music",
"details": "1984, Other Minds radio program Part 2 of 2",
"media": "03_Speaking of Music_ Meredith Monk, 1984. Other Minds radio program_Part 2 of 2"
},
{
"title": "Interview with Irene Ferchl Bayn Rundfunk Vielkurjieunal",
"details": "1986",
"media": "04 Meredith Monk Interview with Irene Ferchl_Bayn Rundfunk Vielkurjieunal_1986"
},
{
"title": "Terry Gross Interview",
"details": "1988",
"media": "05 Terry Gross interview_1987"
},
{
"title": "WNYC Interview with David Garland",
"details": "2008, Sacred Sundays",
"media": "06 WNYC Interview w_ David Garland_SacredSundays_2008"
},
{
"title": "Mark Frosty McNeil and Meredith Monk in Conversation",
"details": "2019, Red Bull Radio, Fireside Chat",
"media": "07_Red Bull Radio_Fireside Chat_Mark frosty McNeil and MM in conversation_4.11.19"
},
{
"title": "Late Junction",
"details": "2019, BBC",
"media": "08_Late Junction_2019 - Meredith Monk v2 BBC"
}
]

View File

@ -1,32 +0,0 @@
[
{
"title": "Meredith Monk: Inner Voice",
"detail": "2009, 82:00",
"media": "MeredithMonk_Inner Voice.mp4"
},
{
"title": "Meredith Monk: A Documentary",
"detail": "by Sidsel Mundal, Norwegian Television Documentary, 1994",
"media": "1994 documentary by Sidsel Mundal_for Norwegian Television.m4v"
},
{
"title": "Meredith Monk: A Documentary",
"detail": "by Mariusz Grzegorzek, Polish Television Documentary, 1995",
"media": ""
},
{
"title": "Souls messenger",
"detail": "Poland, 2011",
"media": ""
},
{
"title": "Meredith Monk",
"detail": "by Ingo Berhman, ECM Documentary - ECM50 | 1981, 2019",
"media": ""
},
{
"title": "4 American Composers",
"detail": "Peter Greenaway Documentary",
"media": ""
}
]

View File

@ -0,0 +1,42 @@
[
{
"title": "",
"parent_dir": "documentaries_interviews_audio",
"media": "-21 08_Late Junction_2019 - Meredith Monk v2 BBC.mp3"
},
{
"title": "",
"parent_dir": "documentaries_interviews_audio",
"media": "-22 02_Speaking of Music Meredith Monk 1984 Part 1 of 2.mp3"
},
{
"title": "",
"parent_dir": "documentaries_interviews_audio",
"media": "-23 03_Speaking of Music_ Meredith Monk 1984 Part 2 of 2.mp3"
},
{
"title": "",
"parent_dir": "documentaries_interviews_audio",
"media": "-24 04 Meredith Monk Interview with I Ferchl_Bayn Rundfunk 1986.mp3"
},
{
"title": "",
"parent_dir": "documentaries_interviews_audio",
"media": "-25 05 Terry Gross interview_1987.mp3"
},
{
"title": "",
"parent_dir": "documentaries_interviews_audio",
"media": "-26 06 WNYC Interview w_ David Garland_SacredSundays_2008.mp3"
},
{
"title": "",
"parent_dir": "documentaries_interviews_audio",
"media": "-27 07_Red Bull Radio_Fireside Chat_M frosty McNeil and MM_41119.mp3"
},
{
"title": "",
"parent_dir": "documentaries_interviews_audio",
"media": "-28 08_Late Junction_2019 - Meredith Monk v2 BBC.mp3"
}
]

View File

@ -0,0 +1,82 @@
[
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "--2 MichaelBlackwoodMakingDances.m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "--3 ECM1981 Video Meredith Monk V2_2019.m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "--4 Meredith Monk_Andere Avantgarde_TV Interview_1982_.m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "--5 New Sounds for a New World_1982.m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "--6 Four American Composers_Peter Greenaway.m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "--7 bbc_late_show (Original).m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "--8 1994 documentary by Sidsel Mundal_for Norwegian Telev.m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "--9 Meredith Monk - Polish Television Documentary (1995).m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "-12 MeredithMonk_Inner Voice.m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "-13 Bennington College lecture performance 3.11.11.m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "-14 MMonk_TheSoulsMessenger_Lublin_2012.m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "-15 Girlchild Diary_61116.m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "-16 Q2 Spaces_Meredith Monk_2014.m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "-17 Gish Prize Ceremony Camera A.m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "-18 MM and Adam Shatz - Book of Days conversation_2020.m4v"
},
{
"title": "",
"parent_dir": "documentaries_interviews_video",
"media": "-19 Coffee and Composition with Meredith Monk_2021.m4v"
}
]

View File

@ -1 +1,27 @@
[]
[
{
"title": "",
"parent_dir": "films",
"media": "_72 01 16_Millimeter_Earrings_1980_Color_IN_HD_23-98_ProRes4444_Pillar Scan GOOD copy v4 2023 0812.m4v"
},
{
"title": "",
"parent_dir": "films",
"media": "_74 Ellis Island.m4v"
},
{
"title": "",
"parent_dir": "films",
"media": "_75 Book of Days.m4v"
},
{
"title": "",
"parent_dir": "films",
"media": "_76 1982 Paris KTCA (full).m4v"
},
{
"title": "",
"parent_dir": "films",
"media": "_77 TurtleDreams(Waltz)_Stereo_Tranfer1inchApril2018.m4v"
}
]

View File

@ -1,163 +0,0 @@
[
{
"title": "On Behalf of Nature - Album",
"details": "2016",
"media": "on_behalf_of_nature",
"album": true,
"tracks": [
"01 Monk_ Dark_Light 1.mp3",
"02 Monk_ High Realm.mp3",
"03 Monk_ Fractal Activity.mp3",
"04 Monk_ Environs 1.mp3",
"05 Monk_ Eon.mp3",
"06 Monk_ Duet With Shifting Ground.mp3",
"07 Monk_ Environs 2.mp3",
"08 Monk_ Pavement Steps.mp3",
"09 Monk_ Evolution.mp3",
"10 Monk_ Ritual Zone.mp3",
"11 Monk_ Water_Sky Rant.mp3",
"12 Monk_ Memory Zone.mp3",
"13 Monk_ Environs 3.mp3",
"14 Monk_ Harvest.mp3",
"15 Monk_ Dark_Light 2.mp3",
"16 Monk_ High Realm Reprise.mp3",
"17 Monk_ Fractal Mirror.mp3",
"18 Monk_ Ringing.mp3",
"19 Monk_ Spider Web Anthem.mp3"
]
},
{
"title": "Piano Songs - Album",
"details": "2014",
"media": "piano_songs",
"album": true,
"tracks": [
"01 Monk_ Obsolete Objects.mp3",
"02 Monk_ Ellis Island.mp3",
"03 Monk_ Folkdance.mp3",
"04 Monk_ Urban March (Shadow).mp3",
"05 Monk_ Tower.mp3",
"06 Monk_ Paris.mp3",
"07 Monk_ Railroad (Travel Song).mp3",
"08 Monk_ Parlour Games.mp3",
"09 Monk_ St. Petersburg Waltz.mp3",
"10 Monk_ Window In 7's.mp3",
"11 Monk_ Totentanz.mp3",
"12 Monk_ Phantom Waltz.mp3"
]
},
{
"title": "Songs of Ascension",
"details": "2011",
"media": "songs_of_ascension",
"album": true
},
{
"title": "impermanance",
"details": "2008",
"media": "impermanance",
"album": true
},
{
"title": "mercy",
"details": "2003",
"media": "mercy",
"album": true
},
{
"title": "Volcano Songs",
"details": "1997",
"media": "volcano_songs",
"album": true
},
{
"title": "ATLAS: an opera in three parts",
"details": "2-CD album, 1993",
"media": "atlas",
"album": true
},
{
"title": "Facing North",
"details": "1992",
"media": "facing_north",
"album": true
},
{
"title": "Book of Days",
"details": "1990",
"media": "book_of_days",
"album": true
},
{
"title": "Do You Be",
"details": "1987",
"media": "do_you_be",
"album": true
},
{
"title": "Turtle Dreams - Album",
"details": "1983",
"media": "turtule_dreams",
"album": true
},
{
"title": "Dolmen Music - Album",
"details": "1981",
"media": "dolmen_music",
"album": true
},
{
"title": "Songs from the Hill/Tablet - Album",
"details": "1977",
"media": "songs_from_the_hill",
"album": true
},
{
"title": "Our Lady of Late - Album",
"details": "1973",
"media": "our_lady_of_late",
"album": true
},
{
"title": "KEY: an album of invisible theater - Album",
"details": "1971",
"media": "key",
"album": true
},
{
"title": "MEMORY GAME",
"details": "2020",
"media": "memory_game",
"album": true
},
{
"title": "MONK MIX: Remixes and Interpretations of Music by Meredith Monk",
"details": "2-CD Album, 2012",
"media": "monk_mix",
"album": true
},
{
"title": "Beginnings",
"details": "Album, 2009",
"media": "beginnings",
"album": true
},
{
"title": "Radio Songs",
"details": "LP/Album, 2014",
"media": "radio_songs",
"album": true
},
{
"title": "Monk and the Abbiss",
"details": "1996",
"media": "monk_and_the_abbiss",
"album": true
},
{
"title": "Biography (from Education of the Girlchild)",
"details": "recording, 1978",
"media": "biography",
"album": true
}
]

View File

@ -0,0 +1,269 @@
[
{
"title": "",
"parent_dir": "music_sound_ecm",
"media": "-43 Dolmen Music",
"album": true,
"tracks": [
"-43-01 Monk_ Gotham Lullaby.mp3",
"-43-02 Monk_ Travelling.mp3",
"-43-03 Monk_ The Tale.mp3",
"-43-04 Monk_ Biography.mp3",
"-43-05 Monk_ Dolmen Music.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_ecm",
"media": "-44 Turtle Dreams",
"album": true,
"tracks": [
"-44-01 Monk_ Turtle Dreams.mp3",
"-44-02 Monk_ View 1.mp3",
"-44-03 Monk_ Engine Steps.mp3",
"-44-04 Monk_ Ester's Song.mp3",
"-44-05 Monk_ View 2.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_ecm",
"media": "-45 Do You Be",
"album": true,
"tracks": [
"-45-01 Monk_ Scared Song.mp3",
"-45-02 Monk_ I Don't Know.mp3",
"-45-03 Monk_ Window In 7's.mp3",
"-45-04 Monk_ Double Fiesta.mp3",
"-45-05 Monk_ Do You Be.mp3",
"-45-06 Monk_ Panda Chant 1.mp3",
"-45-07 Monk_ Memory Song.mp3",
"-45-08 Monk_ Panda Chant 2.mp3",
"-45-09 Monk_ Quarry Lullaby.mp3",
"-45-10 Monk_ Shadow Song.mp3",
"-45-11 Monk_ Astronaut Anthem.mp3",
"-45-12 Monk_ Wheel.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_ecm",
"media": "-46 Book of Days",
"album": true,
"tracks": [
"-46-01 Early Morning Melody.mp3",
"-46-02 Travellers 1, 2, 3.mp3",
"-46-03 Dawn.mp3",
"-46-04 Travellers 4 _ Curchyard Entertainment.mp3",
"-46-05 Afternoon Melodies.mp3",
"-46-06 Fields _ Clouds.mp3",
"-46-07 Dusk.mp3",
"-46-08 Eva's Song.mp3",
"-46-09 Evening.mp3",
"-46-10 Travellers 5.mp3",
"-46-11 Jewish Storyteller _ Dance _ Dream.mp3",
"-46-12 Plague.mp3",
"-46-13 Madwoman's Vision.mp3",
"-46-14 Cave Song.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_ecm",
"media": "-47 Facing North",
"album": true,
"tracks": [
"-47-01 Monk_ Facing North - Northern Lights 1.mp3",
"-47-02 Monk_ Facing North - Chinook.mp3",
"-47-03 Monk_ Facing North - Long Shadows 1.mp3",
"-47-04 Monk_ Facing North - Keeping Warm.mp3",
"-47-05 Monk_ Facing North - Northern Lights 2.mp3",
"-47-06 Monk_ Facing North - Chinook Whispers.mp3",
"-47-07 Monk_ Facing North - Arctic Bar.mp3",
"-47-08 Monk_ Facing North - Hocket.mp3",
"-47-09 Monk_ Facing North - Long Shadows 2.mp3",
"-47-10 Monk_ Facing North - Long Shadows 2.mp3",
"-47-11 Monk_ Vessel - Fire Dance.mp3",
"-47-12 Monk_ Vessel - Little Epiphany; Sybil Song.mp3",
"-47-13 Monk_ Vessel - Mill.mp3",
"-47-14 Monk_ Vessel - Mill.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_ecm",
"media": "-48 ATLAS an opera in three parts 2-CD album",
"album": true,
"tracks": [
"-48-1-01 Monk_ Atlas - Part.mp3",
"-48-1-02 Monk_ Atlas - Part 1_ Pe.mp3",
"-48-1-03 Monk_ Atlas - Part 1_ Pe.mp3",
"-48-1-04 Monk_ Atlas - Part 1_ Pe.mp3",
"-48-1-05 Monk_ Atlas - Part 1_ Pe.mp3",
"-48-1-06 Monk_ Atlas - Part 1_ Pe.mp3",
"-48-1-07 Monk_ Atlas - Part 1_ Pe.mp3",
"-48-1-08 Monk_ Atlas - Part 2_ Ni.mp3",
"-48-1-09 Monk_ Atlas - Part 2_ Ni.mp3",
"-48-1-10 Monk_ Atlas - Part 2_ Ni.mp3",
"-48-2-01 Monk_ Atlas - Part 2_ Ni.mp3",
"-48-2-02 Monk_ Atlas - Part.mp3",
"-48-2-03 Monk_ Atlas - Part 2_ Ni.mp3",
"-48-2-04 Monk_ Atlas - Part 2_ Ni.mp3",
"-48-2-05 Monk_ Atlas - Part 2_ Ni.mp3",
"-48-2-06 Monk_ Atlas - Part 2_ Ni.mp3",
"-48-2-07 Monk_ Atlas - Part 2_ Ni.mp3",
"-48-2-08 Monk_ Atlas - Part 2_ Ni.mp3",
"-48-2-09 Monk_ Atlas - Part 2_ Ni.mp3",
"-48-2-10 Monk_ Atlas - Part 2_ Ni.mp3",
"-48-2-11 Monk_ Atlas - Part 3_ In.mp3",
"-48-2-12 Monk_ Atlas - Part 3_ In.mp3",
"-48-2-13 Monk_ Atlas - Part 3_ In.mp3",
"-48-2-14 Monk_ Atlas - Part 3_ In.mp3",
"-48-2-15 Monk_ Atlas - Part 3_ In.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_ecm",
"media": "-49 Volcano Songs",
"album": true,
"tracks": [
"-49-01 Monk_ Volcano Songs - Walking Song.mp3",
"-49-02 Monk_ Volcano Songs - Lost Wind.mp3",
"-49-03 Monk_ Volcano Songs - Hips Dance.mp3",
"-49-04 Monk_ Volcano Songs - Cry #1.mp3",
"-49-05 Monk_ New York Requiem.mp3",
"-49-06 Monk_ Volcano Songs - Offering.mp3",
"-49-07 Monk_ Volcano Songs - Boat Man.mp3",
"-49-08 Monk_ Volcano Songs - Skip Song.mp3",
"-49-09 Monk_ Volcano Songs - Old Lava.mp3",
"-49-10 Monk_ Volcano Songs - Cry #2.mp3",
"-49-11 Monk_ St. Petersburg Waltz.mp3",
"-49-12 Monk_ Three Heavens & Hells.mp3",
"-49-13 Monk_ Light Songs - Click Song #1.mp3",
"-49-14 Monk_ Light Songs - Click Song #2.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_ecm",
"media": "-50 mercy",
"album": true,
"tracks": [
"-50-01 Monk_ Braid 1 & Leaping Song.mp3",
"-50-02 Monk_ Braid 2.mp3",
"-50-03 Monk_ Urban March (Shadow).mp3",
"-50-04 Monk_ Masks.mp3",
"-50-05 Monk_ Line 1.mp3",
"-50-06 Monk_ Doctor_Patient.mp3",
"-50-07 Monk_ Line 2.mp3",
"-50-08 Monk_ Woman At The Door.mp3",
"-50-09 Monk_ Line 3 & Prisoner.mp3",
"-50-10 Monk_ Epilogue.mp3",
"-50-11 Monk_ Shaking.mp3",
"-50-12 Monk_ Liquid Air.mp3",
"-50-13 Monk_ Urban March (Light).mp3",
"-50-14 Monk_ Core Chant.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_ecm",
"media": "-51 impermanance",
"album": true,
"tracks": [
"-51-01 Monk_ Last Song.mp3",
"-51-02 Monk_ Maybe 1.mp3",
"-51-03 Monk_ Little Breath.mp3",
"-51-04 Monk_ Liminal.mp3",
"-51-05 Monk_ Disequilibrium.mp3",
"-51-06 Monk_ Particular Dance.mp3",
"-51-07 Monk_ Between Song.mp3",
"-51-08 Monk_ Passage.mp3",
"-51-09 Monk_ Maybe 2.mp3",
"-51-10 Monk_ Skeleton Lines.mp3",
"-51-11 Monk_ Slow Dissolve.mp3",
"-51-12 Monk_ Totentanz.mp3",
"-51-13 Hilash_ Sweep 1.mp3",
"-51-14 Monk_ Rocking.mp3",
"_46_15 Hilash_ Sweep 2.mp3",
"_46_16 Hoek_ Mieke's Melody #5.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_ecm",
"media": "-52 Songs of Ascension",
"album": true,
"tracks": [
"-52-01 Clusters 1.mp3",
"-52-02 Strand (Gathering).mp3",
"-52-03 Winter Variation.mp3",
"-52-04 Cloud Code.mp3",
"-52-05 Shift.mp3",
"-52-06 Mapping.mp3",
"-52-07 Summer Variation.mp3",
"-52-08 Vow.mp3",
"-52-09 Clusters 2.mp3",
"-52-10 Falling.mp3",
"-52-11 Burn.mp3",
"-52-12 Strand (Inner Psalm).mp3",
"-52-13 Autumn Variation.mp3",
"-52-14 Ledge Dance.mp3",
"-52-15 Traces.mp3",
"-52-16 Respite.mp3",
"-52-17 Mapping Continued.mp3",
"-52-18 Clusters 3.mp3",
"-52-19 Spring Variation.mp3",
"-52-20 Fathom.mp3",
"-52-21 Ascent.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_ecm",
"media": "-53 Piano Songs",
"album": true,
"tracks": [
"-53-01 Monk_ Obsolete Objects.mp3",
"-53-02 Monk_ Ellis Island.mp3",
"-53-03 Monk_ Folkdance.mp3",
"-53-04 Monk_ Urban March (Shadow).mp3",
"-53-05 Monk_ Tower.mp3",
"-53-06 Monk_ Paris.mp3",
"-53-07 Monk_ Railroad (Travel Song).mp3",
"-53-08 Monk_ Parlour Games.mp3",
"-53-09 Monk_ St. Petersburg Waltz.mp3",
"-53-10 Monk_ Window In 7's.mp3",
"-53-11 Monk_ Totentanz.mp3",
"-53-12 Monk_ Phantom Waltz.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_ecm",
"media": "-54 On Behalf of Nature",
"album": true,
"tracks": [
"-54-01 Monk_ Dark_Light 1.mp3",
"-54-02 Monk_ High Realm.mp3",
"-54-03 Monk_ Fractal Activity.mp3",
"-54-04 Monk_ Environs 1.mp3",
"-54-05 Monk_ Eon.mp3",
"-54-06 Monk_ Duet With Shifting Ground.mp3",
"-54-07 Monk_ Environs 2.mp3",
"-54-08 Monk_ Pavement Steps.mp3",
"-54-09 Monk_ Evolution.mp3",
"-54-10 Monk_ Ritual Zone.mp3",
"-54-11 Monk_ Water_Sky Rant.mp3",
"-54-12 Monk_ Memory Zone.mp3",
"-54-13 Monk_ Environs 3.mp3",
"-54-14 Monk_ Harvest.mp3",
"-54-15 Monk_ Dark_Light 2.mp3",
"-54-16 Monk_ High Realm Reprise.mp3",
"-54-17 Monk_ Fractal Mirror.mp3",
"-54-18 Monk_ Ringing.mp3",
"-54-19 Monk_ Spider Web Anthem.mp3"
]
}
]

View File

@ -0,0 +1,8 @@
[
{
"title": "",
"parent_dir": "music_sound_unpublished",
"media": "no content recieved",
"tracks": []
}
]

View File

@ -0,0 +1,153 @@
[
{
"title": "",
"parent_dir": "music_sound_various",
"media": "_55 Songs from the Hill-Tablet",
"album": true,
"tracks": [
"_55_01 Lullaby.mp3",
"_55_02 Mesa.mp3",
"_55_03 Jade (old woman's song).mp3",
"_55_04 Wa-lie-oh.mp3",
"_55_05 Insect.mp3",
"_55_06 Descending.mp3",
"_55_07 Silo.mp3",
"_55_08 Bird Code.mp3",
"_55_09 Jew's Harp.mp3",
"_55_10 Prairie Ghost.mp3",
"_55_11 Tablet.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_various",
"media": "_56 Our Lady of Late",
"album": true,
"tracks": [
"_56_01 Prologue.mp3",
"_56_02 Unison.mp3",
"_56_03 Knee.mp3",
"_56_04 Hey Rhythm.mp3",
"_56_05 Cow Song.mp3",
"_56_06 Sigh.mp3",
"_56_07 Morning.mp3",
"_56_08 Slide.mp3",
"_56_09 Waltz.mp3",
"_56_10 Prophecy.mp3",
"_56_11 Dumb.mp3",
"_56_12 Conversation.mp3",
"_56_13 Low Ring.mp3",
"_56_14 High Ring.mp3",
"_56_15 Free.mp3",
"_56_16 Edge.mp3",
"_56_17 Scale Down.mp3",
"_56_18 Epilogue.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_various",
"media": "_57 KEY-an album of invisible theater",
"album": true,
"tracks": [
"_57_01 Porch.mp3",
"_57_02 Understreet.mp3",
"_57_03 What Does It Mean_.mp3",
"_57_04 Vision #1.mp3",
"_57_05 Fat Stream.mp3",
"_57_06 Vision #2.mp3",
"_57_07 Do You Be_.mp3",
"_57_08 Vision (#3).mp3",
"_57_09 Change.mp3",
"_57_10 Dungeon.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_various",
"media": "_58 MEMORY GAME",
"album": true,
"tracks": [
"_58_01 Spaceship.mp3",
"_58_02 Gamemaster's Song.mp3",
"_58_03 Migration.mp3",
"_58_04 Memory Song.mp3",
"_58_05 Downfall.mp3",
"_58_06 Waltz In 5s.mp3",
"_58_07 Tokyo CHa Cha.mp3",
"_58_08 Totentanz.mp3",
"_58_09 Double Fiesta.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_various",
"media": "_59 MONK MIX Remixes and Interpretations of Music by Meredith Monk 2-CD",
"album": true,
"tracks": [
"MONK MIX CD1",
"MONK MIX CD2"
]
},
{
"title": "",
"parent_dir": "music_sound_various",
"media": "_60 Beginnings",
"album": true,
"tracks": [
"_60_01 Greensleeves.mp3",
"_60_02 Nota.mp3",
"_60_03 Duet For Voice And Echoplex.mp3",
"_60_04 Candy Bullets And Moon.mp3",
"_60_05 Trance.mp3",
"_60_06 Epic I.mp3",
"_60_07 Paris.mp3",
"_60_08 Biography.mp3",
"_60_09 Mill.mp3",
"_60_10 The Tale.mp3",
"_60_11 Quarry Weave.mp3",
"_60_12 Epic II.mp3",
"_60_13 Tower.mp3",
"_60_14 Mill.mp3",
"_60_15 Do You Be_.mp3",
"_60_16 Quarry Procession.mp3",
"_60_17 Porch.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_various",
"media": "_61 Radio Songs",
"album": true,
"tracks": [
"_61_01 Quarry Radio.mp3",
"_61_02 Gotham Blues.mp3",
"_61_03 Quarry Waltz.mp3",
"_61_04 Gotham Lullaby.mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_various",
"media": "_62 Monk and the Abbiss",
"album": true,
"tracks": [
"_62_05 Dawn (1985).mp3",
"_62_06 Quarry weave 1 (1976).mp3",
"_62_07 Quarry lullaby (1976).mp3",
"_62_08 Quarry weave 2 (1976).mp3",
"_62_09 Farmer's song (1974).mp3",
"_62_10 Astronaut anthem (1983).mp3",
"_62_11 Nightfall (1995).mp3"
]
},
{
"title": "",
"parent_dir": "music_sound_various",
"media": "_63 Biography (from Education of the Girlchild)",
"album": true,
"tracks": [
"_63_13 Biography_Big Ego album.m4a"
]
}
]

63
public/data/theatre.json Normal file
View File

@ -0,0 +1,63 @@
[
{
"title": "Specimen Days",
"details": "The Public Theater, New York, 1981. 1:26:17",
"media": "-34 Specimen Days.m4v",
},
{
"title": "The Games: a science fiction opera",
"details": "Brooklyn Academy of Music (BAM), New York, 1984. 2:00:35",
"media": "-37 MMonk_TheGames_BAM1984.m4v",
},
{
"title": "Facing North",
"details": "George Washington University, Washington, DC, 1992. 54:32",
},
{
"title": "The Politics of Quiet",
"details": "Brooklyn Academy of Music, BAM, New York, 1996. 1:43:46",
"media": "-36 The Politics of Quiet at BAM - 10.13.96.m4v",
},
{
"title": "Magic Frequencies (excerpts)",
"details": "Muffathalle, Munich, Germany, 1998. 25:49",
"media": "-42 1998 Magic Frequencies (excerpts) BetaCamSP transfer 2021.m4v"
},
{
"title":"A Celebration Service",
"details": "St. Marks Church, NYC, 1999. 55:02",
"media": "-35 Meredith Monk - A Celebration Service_ Danspace at St. Mark's Church_1999.m4v",
},
{
impermanence, Brooklyn Academy of Music (BAM), New York, 2006. 1:22:03
},
{
Songs of Ascension, Brooklyn Academy of Music (BAM), New York, 2009. 1:17:29
},
{
"title": "On Behalf of Nature",
"details": "UCLA, Los Angeles, California, 2013. 1:14:55"
"media": ""
}
{
Cellular Songs, UCLA, Los Angeles, California, 2019. 1:24:07
}
"media": "-29 Education of the Gildchild solo_Common Ground_1973.m4v",
"media": "-30 Quarry_full film_1977_FINAL_20200127_added to dropbox.m4v",
"media": "-33 MEREDITH_MONK_SOLO_CONCERT_1980.m4v",
"media": "-38 MeredithMonk_SoloConcert_College des Bernadins Paris_20120516.m4v",
"media": "-39 Meredith Monk with Katie Geissinger in Concert, Haus der Kunst, Munich, Germany (2012).m4v",
"media": "-40 Candy_Bullets_and_Moon.m4v",
"media": "-41 Monk_Anthem_Final.m4v",
]

View File

@ -40,7 +40,8 @@ export class App extends LitElement {
static styles = [ css`${unsafeCSS(MainCSS)}`, css`
:host {
display: flex;
display: grid;
grid-template-rows: auto 1fr auto;
flex-direction: column;
height: 100vh;
}

View File

@ -1,5 +1,6 @@
// // Conditional ESM module loading (Node.js and browser)
// // @ts-ignore: Property 'UrlPattern' does not exist
// Conditional ESM module loading (Node.js and browser)
// @ts-ignore: Property 'UrlPattern' does not exist
// eslint-disable-next-line no-undef
if (!globalThis.URLPattern) {
await import('urlpattern-polyfill')
}
@ -24,19 +25,64 @@ export default new Router({
render: () => html`<mm-home></mm-home>`
},
{
path: resolveRouterPath('documentaries_interviews'),
title: 'Video Documentaries & Interviews',
short: 'docs & interviews',
path: resolveRouterPath('documentaries_interviews_video'),
title: 'Video Documentaries, Interviews & Talks',
short: 'VideoDocs',
icon: 'film',
group: 'Documentaries, Interviews & Talks',
plugins: [
lazy(() => import('../views/videos.js'))
],
render: () => html`<mm-videos></mm-videos>`
},
{
path: resolveRouterPath('audio_interviews'),
path: resolveRouterPath('documentaries_interviews_audio'),
title: 'Audio Interviews',
short: 'interviews',
short: 'Interviews',
icon: 'headphones',
group: 'Documentaries, Interviews & Talks',
plugins: [
lazy(() => import('../views/audio.js'))
],
render: () => html`<mm-audio></mm-audio>`
},
{
path: resolveRouterPath('music_sound_ecm'),
title: 'ECM',
short: 'ECM',
icon: 'headphones',
group: 'Music & Sound',
plugins: [
lazy(() => import('../views/audio.js'))
],
render: () => html`<mm-audio></mm-audio>`,
},
{
path: resolveRouterPath('music_sound_various'),
title: 'Recordings on Various Labels',
short: 'Various Labels',
icon: 'headphones',
group: 'Music & Sound',
plugins: [
lazy(() => import('../views/audio.js'))
],
render: () => html`<mm-audio></mm-audio>`,
},
{
path: resolveRouterPath('music_sound_unpublished'),
title: 'Unpublished Music Recordings',
short: 'Unpublished',
icon: 'headphones',
group: 'Music & Sound',
plugins: [
lazy(() => import('../views/audio.js'))
],
render: () => html`<mm-audio></mm-audio>`,
},
{
path: resolveRouterPath('theatre'),
title: 'Music - Theatre Works',
short: 'Theatre Works',
icon: 'headphones',
plugins: [
lazy(() => import('../views/audio.js'))
@ -44,19 +90,9 @@ export default new Router({
render: () => html`<mm-audio></mm-audio>`
},
{
path: resolveRouterPath('recordings_live'),
title: 'Recordings of Live Works',
short: 'live works',
icon: 'film',
plugins: [
lazy(() => import('../views/videos.js'))
],
render: () => html`<mm-videos></mm-videos>`
},
{
path: resolveRouterPath('music_sound'),
title: 'Music & Sound',
short: 'music & sound',
path: resolveRouterPath('concerts'),
title: 'Concert Recordings',
short: 'Concerts',
icon: 'headphones',
plugins: [
lazy(() => import('../views/audio.js'))
@ -66,16 +102,16 @@ export default new Router({
{
path: resolveRouterPath('films'),
title: 'Films',
short: 'films',
short: 'Films',
icon: 'film',
plugins: [
lazy(() => import('../views/videos.js'))
],
render: () => html`<mm-videos></mm-videos>`
render: () => html`<mm-video></mm-video>`
},
{
path: resolveRouterPath('images'),
title: 'Images',
title: 'Scores, Posters, Ephemera',
short: 'images',
icon: 'camera',
plugins: [
@ -97,7 +133,7 @@ export default new Router({
export function resolveRouterPath(unresolvedPath) {
let resolvedPath = baseURL
if(unresolvedPath) {
if (unresolvedPath) {
resolvedPath = resolvedPath + unresolvedPath
}

View File

@ -20,12 +20,8 @@ body {
--neutral-gradient-400: linear-gradient(to bottom, hsl(228, 5%, 82%) 0%, var(--neutral-400) 100%);
--green-gradient-400: linear-gradient(to bottom, var(--green-400) 0%, var(--green-500) 100%);
--green-inside-gradient-400: linear-gradient(to bottom, rgba(0, 154, 69, 1) 0%,rgba(177, 178, 181, 0) 100%), linear-gradient(rgba(0, 173, 78, 1),rgba(0, 173, 78, 1));
--box-shadow: 0 0 6px 2px #00000010;
}
@media screen and (min-width: 1280px) {
body {
font-size: 32px;
}
--shadow-invert: 0 0 6px 2px #ffffff40;
}

View File

@ -14,6 +14,10 @@ class Header extends LitElement {
super()
}
firstUpdated() {
this.title = Router.context.title
}
navHome() {
Router.navigate('/')
}

45
src/components/Image.js Normal file
View File

@ -0,0 +1,45 @@
import { LitElement, css, html } from 'lit'
class Image extends LitElement {
static properties = {
details: { type: Object }
}
constructor() {
super()
this.details = {}
}
firstUpdated() {
console.log(this.details)
}
render() {
return html`
<picture>
<img src=${this.details?.path} alt=${this.details?.alt}>
${this.detalis?.caption ? html`<figcaption>
<p>${this.details.caption}</p>
</figcaption>` : '' }
</picture>
`
}
static styles = css`
picture {
position: absolute;
display: grid;
justify-items: center;
inset: 0.5em;
}
picture > img {
display: block;
max-height: 100%;
max-width: 100%;
object-fit: contain;
}
`
}
customElements.define('mm-image', Image)

View File

@ -0,0 +1,52 @@
import { LitElement, css, html } from 'lit'
import '../components/Image.js'
class ImageCarousel extends LitElement {
static properties = {
images: { type: Array }
}
constructor() {
super()
this.images = []
}
firstUpdated() {
console.log(this.images)
}
render() {
return html`
${this.images.map(i => html`<mm-image .details=${i}></mm-image>`)}
`
}
static styles = css`
:host {
height: 100%;
width: 100%;
display: grid;
grid-auto-flow: column;
grid-auto-columns: 100%;
grid-template-rows: 100%;
overflow: auto;
justify-items: center;
scroll-behaviour: smooth;
scroll-padding-inline: 0.5em;
padding-inline-start: 0.5em;
padding-inline-end: 0.5em;
padding-block-start: 0.25em;
padding-block-end: 0.75em;
}
mm-image {
position: relative;
width: 100%;
height: 100%;
}
`
}
customElements.define('mm-img-carousel', ImageCarousel)

View File

@ -28,6 +28,12 @@ class ImageViewer extends LitElement {
firstUpdated() {
this.figEl = this.shadowRoot.querySelector('figure')
this.figEl.addEventListener('fullscreenchange', (evt) => {
console.log('figel fullscreen', evt)
this.captionWidth = `${this.imgEl.offsetWidth}px`
})
}
connectedCallback() {
@ -53,6 +59,11 @@ class ImageViewer extends LitElement {
this.imgEl.src = this.details.media
})
}
if (att.has('captionWidth') && this.details?.media) {
console.log('captionWidth updated')
this.captionWidth = `${this.imgEl.offsetWidth}px`
}
this.update()
}
@ -62,10 +73,12 @@ class ImageViewer extends LitElement {
return
}
if (document.fullscreenElement !== null) {
document.exitFullscreen()
this.figEl.removeAttribute('data-fullscreen')
} else {
console.log(this.captionWidth)
this.figEl.requestFullscreen()
this.figEl.setAttribute('data-fullscreen', true)
}

View File

@ -168,6 +168,7 @@ class ModularPlayer extends LitElement {
_volHandler(evt) {
if (evt.detail) {
this.volCtrl.update(evt.detail.value)
this.audio.volume = this.volCtrl.volume
}
}

View File

@ -16,16 +16,39 @@ class NavCard extends LitElement {
}
firstUpdated() {
console.log(this.route)
this.shadowRoot.host.addEventListener('click', () => {
Router.navigate(this.route.path)
})
}
navigate(path) {
path = path || this.route.path
Router.navigate(path)
}
render() {
return html`
<div class="card">
<mm-icon name=${this.route?.icon}></mm-icon>
<p class="title">${this.route?.title}</p>
${Array.isArray(this.route) ? html`
<p class="title">${this.route[0].group}</p>
${this.route.map(r =>
html`
<button @click=${() => this.navigate(r.path)}>
<mm-icon name=${r.icon}></mm-icon>
${r.title}
</button>
`
)}
`
:
html`
<p class="title">${this.route?.title}</p>
<button class="iconOnly" @click=${() => this.navigate()}>
<mm-icon name=${this.route.icon}></mm-icon>
</button>
`
}
</div>
`
}
@ -45,9 +68,9 @@ class NavCard extends LitElement {
.card {
display: grid;
grid-template-columns: auto 1fr;
border-top: thin solid var(--highlight-color);
padding-block-start: 0.3em;
grid-auto-flow: rows;
gap: 0.5em;
padding: 0.25em;
cursor: pointer;
font-size: 1.65em;
}
@ -56,10 +79,45 @@ class NavCard extends LitElement {
--svg-shadow: var(--shadow);
margin-inline-end: 0.5em;
font-size: 0.8em;
color: currentcolor;
}
.title {
max-width: 12ch;
padding-bottom: 0.75em;
font-size: 0.75em;
text-align: center;
border-bottom: thin solid var(--highlight-color);
}
button {
display: grid;
grid-template-columns: 1em auto;
gap: 0.25em;
width: 100%;
background: var(--green-inside-gradient-400);
border: none;
border-radius: 0.5em;
font-size: 0.75em;
color: white;
padding: 0.5em;
text-align: left;
text-shadow: 0 0 5px #ffffff;
margin: 0;
&.iconOnly {
display: flex;
gap: 0;
align-items: center;
justify-content: center;
font-size: 1.5em;
padding: 1em;
}
& mm-icon {
margin: 0;
padding: 0;
--svg-shadow: 0 0 5px #ffffff;
}
}
`]
}

View File

@ -133,6 +133,7 @@ class VideoPlayer extends LitElement {
if (evt.detail) {
this.volCtrl.update(evt.detail.value)
this.videoEl.volume = this.volCtrl.volume
}
}

View File

@ -7,12 +7,37 @@ import MainCSS from '../assets/styles/main.scss?inline'
import '../components/NavCard.js'
class Home extends LitElement {
static properties = {}
static properties = {
navigation: { state: true }
}
constructor() {
super()
}
firstUpdated() {
this.renderRoutes()
console.log(this.navigation)
}
renderRoutes() {
const grouped = {}
const ungrouped = Router.routes.filter(r => !r.group && !r.hide)
Router.routes.forEach(r => {
if (r.group) {
if (!grouped[r.group]) {
grouped[r.group] = []
}
grouped[r.group].push(r)
}
})
this.navigation = [ ...Object.values(grouped), ...ungrouped ]
}
render() {
return html`
<header>
@ -23,7 +48,11 @@ class Home extends LitElement {
</header>
<nav class="home-nav">
${Router.routes.map(r => (r.title != 'Not found' && r.title != 'home') ? html`<mm-ncard .route=${r}></mm-ncard>` : '')}
${this.navigation?.map((r, i) => {
if (r.path !== '/' && !r.hide) {
return html`<mm-ncard .route=${r}></mm-ncard>`
}
})}
</nav>
<footer>
@ -36,14 +65,13 @@ class Home extends LitElement {
static styles = [ css`${unsafeCSS(MainCSS)}`, css`
:host {
display: block;
display: flex;
flex-direction: column;
background-image: url('/images/home-bg.png');
background-size: cover;
background-position: center;
border: 0.75em white solid;
height: 100%;
height: 100vh;
}
div {
@ -70,9 +98,9 @@ class Home extends LitElement {
.home-nav {
display: grid;
margin: 4em;
margin: 2em;
flex-grow: 1;
gap: 2.5em;
gap: 2em;
grid-template-columns: repeat(auto-fill, minmax(25vw, 1fr));
grid-auto-rows: 1fr;
}

View File

@ -7,6 +7,7 @@ import MainCSS from '../assets/styles/main.scss?inline'
import '../components/HorizontalScroller.js'
import '../components/VerticalCard.js'
import '../components/ImageViewer.js'
import '../components/ImageCarousel.js'
class ImageView extends LitElement {
static properties = {
@ -26,8 +27,12 @@ class ImageView extends LitElement {
const res = await fetch('/data/images.json')
const json = await res.json()
json.forEach(i => i.path = `/media${Router.route.path}/${i.media}`)
this.images = json
this.selected = { ...this.images[0], media: `/media${Router.route.path}/${this.images[0].media}`}
this.selected = this.images[0]
console.log(this.selected)
} catch (err) {
console.error(err)
@ -39,15 +44,13 @@ class ImageView extends LitElement {
selectImage({ target }) {
const { details } = target
if (details?.title != this.selected?.title) {
this.selected = { ...details, media: `/media${Router.route.path}/${details.media}` }
this.selected = details
}
}
render() {
return html`
<div class="image">
<mm-imageviewer .details=${this.selected}></mm-imageviewer>
</div>
<mm-img-carousel .images=${this.images}></mm-img-carousel>
<mm-hscroller>
${this._getImages.render({ complete: () => this.images.map(i => html`

View File

@ -66,10 +66,10 @@ class VideoView extends LitElement {
static styles = [ css`${unsafeCSS(MainCSS)}`, css`
:host {
flex-grow: 1;
height: 100%;
display: grid;
grid-template-rows: 1fr min-content;
gap: 0.25em;
height: 100vh;
}
mm-vcard {