PageSourceSearch

https://www.soundoflife.com/

html soundoflife.com collected 2026-10-02 07:14:40 UTC 8,381 bytes, 143 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4  <meta charset="utf-8">
5  <meta name="viewport" content="width=device-width, initial-scale=1">
6  <meta name="author" content="Sound of Life">
7  <meta name="csrf-token" content="9QayxHcXKBjrRpc5DgmArLYfkZ0BUU2C0QjnhOKV">
8  <title>Sound of Life | Powered by KEF</title>
9  <meta name="description" content="Explore the conduit of sound and how it inspires people, places, design and experiences – from far-flung fringes to new frontiers. The best stories for the curi..." />
10  <meta property="fb:app_id" content="978087529319798" />
11  <meta property="og:site_name" content="Sound of Life" />
12  <meta property="og:url" content="https://www.soundoflife.com" />
13  <meta property="og:title" content="Sound of Life | Powered by KEF" />
14  <meta property="og:description" content="Explore the conduit of sound and how it inspires people, places, design and experiences – from far-flung fringes to new frontiers. The best stories for the curi..." />
15  <meta property="og:image" content="https://www.soundoflife.com/images/sol-logo-og-tag.png" />
16  <meta property="og:image:url" content="https://www.soundoflife.com/images/sol-logo-og-tag.png" />
17  <meta property="og:image:secure_url" content="https://www.soundoflife.com/images/sol-logo-og-tag.png" />
18  <meta property="og:image:type" content="image/png" />
19  <meta property="og:image:width" content="512" />
20  <meta property="og:image:height" content="512" />
21  <meta property="og:image:alt" content="" />
22  <meta property="og:type" content="website" />
23  <meta property="og:locale" content="en_GB" />
24  <meta property="twitter:card" content="summary_large_image" />
25  <meta property="twitter:site" content="@SOL_SoundOfLife" />
26  <meta property="twitter:title" content="Sound of Life | Powered by KEF" />
27  <meta property="twitter:description" content="Explore the conduit of sound and how it inspires people, places, design and experiences – from far-flung fringes to new frontiers. The best stories for the curi..." />
28  <meta property="twitter:image" content="https://www.soundoflife.com/images/sol-logo-og-tag.png" />
29  <link rel="shortcut icon" href="/images/icon/favicon.ico">
30  <link rel="apple-touch-icon" sizes="180x180" href="/images/icon/apple-touch-icon.png">
31  <link rel="icon" type="image/png" sizes="32x32" href="/images/icon/favicon-32x32.png">
32  <link rel="icon" type="image/png" sizes="16x16" href="/images/icon/favicon-16x16.png">
33  
34  <meta name="msapplication-TileColor" content="#000000">
35  <meta name="theme-color" content="#000000">
36  <link rel="preconnect" href="https://fonts.bunny.net">
37  
37<script>
38    window.sol = JSON.parse('{\n    \u0022domain\u0022: \u0022soundoflife.com\u0022,\n    \u0022site_host\u0022: \u0022www_soundoflife_com\u0022,\n    \u0022pathname\u0022: \u0022\\\/\u0022,\n    \u0022lang_locale\u0022: \u0022en\u0022,\n    \u0022og_locale\u0022: \u0022en_GB\u0022,\n    \u0022locale\u0022: \u0022en\u0022,\n    \u0022body_before_scripts\u0022: \u0022\u0022,\n    \u0022body_after_scripts\u0022: \u0022\u0022\n}')
39  </script>
39
40  
41  
41<script>
42    function CookiebotCallback_CheckCategories() {
43      if (!window['google_tag_data']) {
44        return;
45      }
46      l = s => s == undefined ? "" : s ? "granted" : "denied";
47      var g = "ics" in google_tag_data ? google_tag_data.ics.entries : null,
48          marketing = 3,
49          functional = 2,
50          analytics = 1;
51      for (var a in g) {
52        i = l(g[a]['default']);
53        u = l(g[a]['update']);
54        if (i == 'granted') {
55          if (a == 'ad_storage' || a == 'ad_user_data' || a == 'ad_personalization') {
56            marketing--;
57          } else if (a == 'personalization_storage' || a == 'functionality_storage') {
58            functional--;
59          } else if (a == 'analytics_storage') {
60            analytics--;
61          } else if (a == 'security_storage') {
62            // necessary
63          }
64        }
65      }
66
67      if (marketing == 0) {
68        $('input#CybotCookiebotDialogBodyLevelButtonMarketingInline').trigger('click');
69      }
70      if (functional == 0) {
71        $('input#CybotCookiebotDialogBodyLevelButtonPreferencesInline').trigger('click');
72      }
73      if (analytics == 0) {
74        $('input#CybotCookiebotDialogBodyLevelButtonStatisticsInline').trigger('click');
75      }
76    }
77    function CookiebotCallback_OnAccept() {
78      document.body.classList.remove('cookie-active')
79    }
80    function CookiebotCallback_OnDecline() {
81      document.body.classList.remove('cookie-active')
82    }
83    window.addEventListener('CookiebotOnDialogInit', (e) => {
84      CookiebotCallback_CheckCategories()
85      CookiebotDialog.loiAllowAllText = "Accept"
86      CookiebotDialog.loiAllowSelectionText = "Allow selection"
87      CookiebotDialog.acceptText = "Accept all"
88      CookiebotDialog.declineText = "Reject"
89      CookiebotDialog.showDetailsText = "Manage choices"
90      CookiebotDialog.lastUpdatedText = `Cookie declaration last updated on {0} by <a href="https://www.cookiebot.com" target="_blank" rel="noopener" title="Cookiebot">Cookiebot</a>`
91      CookiebotDialog.providerLinkText = "Learn more about this provider"
92    }, false)
93    window.addEventListener('CookiebotOnDialogDisplay', (e) => {
94      CookiebotCallback_CheckCategories()
95      if (CookiebotDialog.template.includes('popup')) {
96        document.getElementById('CybotCookiebotDialogBodyButtonDecline').innerHTML = "Deny"
97        document.getElementById('CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll').innerHTML = "Allow all"
98        document.querySelectorAll('.CybotCookiebotDialogNavItem').forEach((el) => {
99          let span = document.createElement('span')
100          el.appendChild(span)
101        })
102      }
103
104      setTimeout(() => {
105        
106
107      }, 300)
108
109      document.getElementById('CybotCookiebotDialogBodyEdgeMoreDetailsLink').addEventListener('click', (e) => {
110        document.getElementById('CybotCookiebotDialogBodyButtonDecline').innerHTML = "Deny"
111        document.getElementById('CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection').innerHTML = "Allow selection"
112        document.getElementById('CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll').innerHTML = "Allow all"
113        document.querySelectorAll('.CybotCookiebotDialogNavItem').forEach((el) => {
114          let span = document.createElement('span')
115          el.appendChild(span)
116        })
117
118        document.getElementById('CybotCookiebotDialogDetailBodyContentCookieContainerUnclassifiedCard').parentNode.remove()
119
120        document.body.classList.add('cookie-active')
121      })
122    }, false)
123  </script>
123
124  
125  <meta name="google-site-verification" content="gAGp-5xzZSeJQBqIs4M2yKMuB1P0mhyoT0kEfdU9iHg" />
126    <!-- Google Tag Manager -->
127    
127<script data-cookieconsent="ignore">
128        if (window.navigator.userAgent.toLowerCase().indexOf('cookiebot') < 0) {
vendor: 388 bytes, lines 128-133
128
129            (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
130            new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
131            j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
132            'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
133            })(window,document,'script','dataLayer','
133GTM-M278XRP
vendor: 12 bytes, lines 133-134
133');
134        
134}
135    </script>
135
136    <!-- End Google Tag Manager -->
137    <!-- Start gtm.js -->
138    
138<script src="/js/gtm.js" data-cookieconsent="ignore"></script>
138
139    <!-- End gtm.js -->  <link rel="preload" as="style" href="https://www.soundoflife.com/build/assets/app-977f5b8a.css" /><link rel="preload" as="style" href="https://www.soundoflife.com/build/assets/client-07044c0d.css" /><link rel="modulepreload" href="https://www.soundoflife.com/build/assets/client-b229ac8c.js" /><link rel="modulepreload" href="https://www.soundoflife.com/build/assets/vue-i18n.esm-bundler-19961703.js" /><link rel="modulepreload" href="https://www.soundoflife.com/build/assets/advancedFormat-bb2b954a.js" /><link rel="modulepreload" href="https://www.soundoflife.com/build/assets/utc-83009787.js" /><link rel="stylesheet" href="https://www.soundoflife.com/build/assets/app-977f5b8a.css" /><link rel="stylesheet" href="https://www.soundoflife.com/build/assets/client-07044c0d.css" />
139<script type="module" src="https://www.soundoflife.com/build/assets/client-b229ac8c.js"></script>
139</head>
140<body class="antialiased">
141  <div id="app"></div>
142</body>
143</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.