PageSourceSearch

https://www.darkintervals.org/blog

html darkintervals.org collected 2026-10-08 12:01:13 UTC 82,525 bytes, 2,221 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US">
3
4<head>
5    <meta name="viewport" content="width=device-width, initial-scale=1">
6    <meta charset="utf-8">
7    <link rel="stylesheet" href="/themes/serene/assets/css/styles.css?a19eaddb624b7505f16cc3c8d41531c7" />
8    <title>Blog</title>
9<meta property="og:title" content="Blog">
10<meta name="twitter:title" content="Blog">
11<link rel="icon" href="/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/favicon.ico">
12<link rel="apple-touch-icon" href="https://www.darkintervals.org/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/favicon.ico" />
13<link rel="canonical" href="https://www.darkintervals.org/blog">
14<meta property="og:url" content="https://www.darkintervals.org/blog">
15<meta name="description" content="Dark Intervals creates boutique Kontakt instruments designed for composers and producers. Authentic sample libraries and inspiring virtual instruments for music creation.">
16<meta property="og:description" content="Dark Intervals creates boutique Kontakt instruments designed for composers and producers. Authentic sample libraries and inspiring virtual instruments for music creation.">
17<meta name="twitter:description" content="Dark Intervals creates boutique Kontakt instruments designed for composers and producers. Authentic sample libraries and inspiring virtual instruments for music creation.">
18<meta name="twitter:card" content="summary" />
19<meta name="keywords" content="dark intervals, kontakt instruments, kontakt libraries, virtual instruments for composing, sample libraries for composers, kontakt plugins, scoring kontakt instruments, ambient kontakt libraries, music production kontakt, sound design, ethnic plugins">
20<meta name="generator" content="Articulation - https://www.articulationsites.com">
21<meta property="og:type" content="website">
22
23<!-- Google tag (gtag.js) -->
24<!--
vendor: 64 bytes, lines 24-25
24
25<script async src="https://www.googletagmanager.com/gtag/js?id=
25AW-17927467598
vendor: 12 bytes, line 25
25"></script>
26<script>
27  
vendor: 134 bytes, lines 27-31
27window.dataLayer = window.dataLayer || [];
28  function gtag(){dataLayer.push(arguments);}
29  gtag('js', new Date());
30
31  gtag('config', '
31AW-17927467598
vendor: 4 bytes, line 31
31');
32</script>
32
33-->
34<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 34-35
34
35<script async src="https://www.googletagmanager.com/gtag/js?id=
35G-53X419Z11S
vendor: 12 bytes, line 35
35"></script>
36<script>
37  
vendor: 134 bytes, lines 37-41
37window.dataLayer = window.dataLayer || [];
38  function gtag(){dataLayer.push(arguments);}
39  gtag('js', new Date());
40
41  gtag('config', '
41G-53X419Z11S
vendor: 4 bytes, line 41
41');
42</script>
42
43
44
45<!-- Meta Pixel Code -->
46<script>
vendor: 399 bytes, lines 46-55
46
47!function(f,b,e,v,n,t,s)
48{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
49n.callMethod.apply(n,arguments):n.queue.push(arguments)};
50if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
51n.queue=[];t=b.createElement(e);t.async=!0;
52t.src=v;s=b.getElementsByTagName(e)[0];
53s.parentNode.insertBefore(t,s)}(window, document,'script',
54'https://connect.facebook.net/en_US/fbevents.js');
55fbq('init', '
55713649441039707
vendor: 30 bytes, lines 55-56
55');
56fbq('track', 'PageView');
57</script>
57
58<noscript><img height="1" width="1" style="display:none"
59src="https://www.facebook.com/tr?id=713649441039707&ev=PageView&noscript=1"
60/></noscript>
61<!-- End Meta Pixel Code -->
62
63<script
64  id="fsc-api"
65  src="https://sbl.onfastspring.com/sbl/1.0.6/fastspring-builder.min.js"
66  type="text/javascript"
67  data-popup-closed="onFSPopupClosed"
68  data-storefront="badstringstudio.onfastspring.com/popup-badstringstudio"
69 data-continuous="true">
70</script>
70
71
72<script>
73  function onFSPopupClosed(orderReference) {
74    if (orderReference)
75    {
76        console.log(orderReference.id);
77        fastspring.builder.reset();
78        window.location.href = "https://www.darkintervals.org/thank-you.html";
79    } else {
80        console.log("no order ID");
81        }
82  }
83</script>
83
84
85<!-- MailerLite Universal -->
86<script>
87    (function(w,d,e,u,f,l,n){w[f]=w[f]||function(){(w[f].q=w[f].q||[])
88    .push(arguments);},l=d.createElement(e),l.async=1,l.src=u,
89    n=d.getElementsByTagName(e)[0],n.parentNode.insertBefore(l,n);})
90    (window,document,'script','https://assets.mailerlite.com/js/universal.js','ml');
91    ml('account', '2423109');
92</script>
92
93<!-- End MailerLite Universal -->
94
95<!-- ============================================================
96     DARK INTERVALS — PRODUCTS COMPONENT (site-wide Header Code)
97     Paste this ENTIRE file into:
98       Site → Settings → Site-Wide Code Settings → Header Code
99
100     It holds the product data, CSS and renderer only. It draws nothing on
101     its own — each page decides what to show with a mount div placed in
102     that page's embed-code block (see page-mounts.html).
103
104     Generated from products.html (lines 68–1193) with the similar_products
105     lookup fix applied. Contains NO mount div on purpose: a div here would
106     be moved into <body> by the browser and render on every page.
107     ============================================================ -->
108
109<script>
110window.DI_PRODUCTS = [
111  {
112    "name": "Ukulele",
113    "subtitle": "Cinematic Scoring Ukulele",
114    "product_type": "Kontakt",
115    "category": null,
116    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/ukulele.jpg",
117    "price": 45.00,
118    // "original_price": 45.00,
119    "path": "/ukulele",
120    "sale": false,
121    "featured": true,
122    "init_hidden": false,
123    "fsc_item_path_value": "ukulele",
124    "fsc_action": "Add,ViewCart",
125    "fbq_action": "InitiateCheckout",
126    "similar_products": ["Mandolin Textures", "Pocket Mandolin"]
127  },
128  {
129    "name": "Arctica",
130    "subtitle": "Collection of Synth pads",
131    "product_type": "Kontakt",
132    "category": null,
133    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/arctica.jpg",
134    "price": 75.00,
135    "path": "/arctica",
136    "sale": false,
137    "featured": true,
138    "init_hidden": false,
139    "fsc_item_path_value": "arctica",
140    "fsc_action": "Add,ViewCart",
141    "fbq_action": "InitiateCheckout",
142    "similar_products": ["Deep Blue", "Artefact"]
143  },
144  {
145    "name": "Rawa",
146    "subtitle": "Inspired by tribal grooves",
147    "product_type": "Kontakt",
148    "category": null,
149    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/rawa.jpg",
150    "price": 49.00,
151    "path": "/rawa",
152    "sale": false,
153    "featured": false,
154    "init_hidden": false,
155    "fsc_item_path_value": "rawa",
156    "fsc_action": "Add,ViewCart",
157    "fbq_action": "InitiateCheckout",
158    "similar_products": []
159  },
160  {
161    "name": "Deep Blue",
162    "subtitle": "Collection of Synth pads",
163    "product_type": "Kontakt",
164    "category": null,
165    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/deep-blue.jpg",
166    "price": 59.00,
167    "path": "/deep-blue",
168    "sale": false,
169    "featured": true,
170    "init_hidden": false,
171    "fsc_item_path_value": "deep-blue",
172    "fsc_action": "Add,ViewCart",
173    "fbq_action": "InitiateCheckout",
174    "similar_products": ["Arctica", "Artefact"]
175  },
176  {
177    "name": "Pulsar",
178    "subtitle": "Vintage sounding polysynth",
179    "product_type": "Kontakt",
180    "category": null,
181    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/pulsar.jpg",
182    "price": 35.00,
183    "path": "/pulsar",
184    "sale": false,
185    "featured": false,
186    "init_hidden": false,
187    "fsc_item_path_value": "pulsar",
188    "fsc_action": "Add,ViewCart",
189    "fbq_action": "InitiateCheckout",
190    "similar_products": []
191  },
192  {
193    "name": "Pollux",
194    "subtitle": "Vintage sounding polysynth",
195    "product_type": "Kontakt",
196    "category": null,
197    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/pollux.jpeg",
198    "price": 39.00,
199    "path": "/pollux",
200    "sale": false,
201    "featured": false,
202    "init_hidden": false,
203    "fsc_item_path_value": "pollux",
204    "fsc_action": "Add,ViewCart",
205    "fbq_action": "InitiateCheckout",
206    "similar_products": []
207  },
208  {
209    "name": "Artefact",
210    "subtitle": "Ambient Cinematic Toolkit",
211    "product_type": "Kontakt",
212    "category": null,
213    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/artefact.jpg",
214    "price": 49.00,
215    "path": "/artefact",
216    "sale": false,
217    "featured": false,
218    "init_hidden": false,
219    "fsc_item_path_value": "artefact",
220    "fsc_action": "Add,ViewCart",
221    "fbq_action": "InitiateCheckout",
222    "similar_products": ["Deep Blue", "Arctica"]
223  },
224  {
225    "name": "LDW-1973",
226    "subtitle": "1973 Ludwig Kit",
227    "product_type": "Kontakt",
228    "category": null,
229    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/ldw-1973.jpg",
230    "price": 35.00,
231    "path": "/ldw-1973",
232    "sale": false,
233    "featured": false,
234    "init_hidden": false,
235    "fsc_item_path_value": "ldw-1973",
236    "fsc_action": "Add,ViewCart",
237    "fbq_action": "InitiateCheckout",
238    "similar_products": []
239  },
240  {
241    "name": "Sonorous",
242    "subtitle": "Trailer Synth Basses",
243    "product_type": "Kontakt",
244    "category": null,
245    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/sonorous.jpg",
246    "price": 45.00,
247    "path": "/sonorous",
248    "sale": false,
249    "featured": false,
250    "init_hidden": false,
251    "fsc_item_path_value": "sonorous",
252    "fsc_action": "Add,ViewCart",
253    "fbq_action": "InitiateCheckout",
254    "similar_products": []
255  },
256  {
257    "name": "Mandolin Textures",
258    "subtitle": "Mandolin Series",
259    "product_type": "Kontakt",
260    "category": null,
261    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/mandolin.jpg",
262    "price": 29.00,
263    "path": "/mandolin-textures",
264    "sale": false,
265    "featured": false,
266    "init_hidden": false,
267    "fsc_item_path_value": "mandolin-textures",
268    "fsc_action": "Add,ViewCart",
269    "fbq_action": "InitiateCheckout",
270    "similar_products": ["Ukulele", "Pocket Mandolin"]
271  },
272  {
273    "name": "Udu",
274    "subtitle": "World Percussion Series",
275    "product_type": "Kontakt",
276    "category": null,
277    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/udu.jpg",
278    "price": 20.00,
279    "path": "/udu",
280    "sale": false,
281    "featured": false,
282    "init_hidden": false,
283    "fsc_item_path_value": "udu",
284    "fsc_action": "Add,ViewCart",
285    "fbq_action": "InitiateCheckout",
286    "similar_products": []
287  },
288  {
289    "name": "Guitars In Space VOL 4",
290    "subtitle": "Cinematic Ambient Guitar Toolkit",
291    "product_type": "Kontakt",
292    "category": null,
293    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/gis-4.jpg",
294    "price": 35.00,
295    "path": "/guitars-in-space-vol-4",
296    "sale": false,
297    "featured": true,
298    "init_hidden": false,
299    "fsc_item_path_value": "guitars-in-space-vol-4",
300    "fsc_action": "Add,ViewCart",
301    "fbq_action": "InitiateCheckout",
302    "similar_products": ["Guitars In Space VOL 3", "Guitars In Space VOL 2", "Guitars In Space VOL 1", "Smooth Guitars VOL 2", "Smooth Guitars VOL 1"]
303  },
304  {
305    "name": "Guitars In Space VOL 3",
306    "subtitle": "Cinematic Ambient Guitar Toolkit",
307    "product_type": "Kontakt",
308    "category": null,
309    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/gis-3.jpg",
310    "price": 29.00,
311    "path": "/guitars-in-space-vol-3",
312    "sale": false,
313    "featured": false,
314    "init_hidden": false,
315    "fsc_item_path_value": "guitars-in-space-vol-3",
316    "fsc_action": "Add,ViewCart",
317    "fbq_action": "InitiateCheckout",
318    "similar_products": ["Guitars In Space VOL 4", "Guitars In Space VOL 2", "Guitars In Space VOL 1", "Smooth Guitars VOL 2", "Smooth Guitars VOL 1"]
319  },
320  {
321    "name": "Guitars In Space VOL 2",
322    "subtitle": "Cinematic Ambient Guitar Toolkit",
323    "product_type": "Kontakt",
324    "category": null,
325    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/gis-2.jpg",
326    "price": 29.00,
327    "path": "/guitars-in-space-vol-2",
328    "sale": false,
329    "featured": false,
330    "init_hidden": false,
331    "fsc_item_path_value": "guitars-in-space-vol-2",
332    "fsc_action": "Add,ViewCart",
333    "fbq_action": "InitiateCheckout",
334    "similar_products": ["Guitars In Space VOL 4", "Guitars In Space VOL 3", "Guitars In Space VOL 1", "Smooth Guitars VOL 2", "Smooth Guitars VOL 1"]
335  },
336  {
337    "name": "Guitars In Space VOL 1",
338    "subtitle": "Cinematic Ambient Guitar Toolkit",
339    "product_type": "Kontakt",
340    "category": null,
341    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/gis-1.jpg",
342    "price": 29.00,
343    "path": "/guitars-in-space",
344    "sale": false,
345    "featured": false,
346    "init_hidden": false,
347    "fsc_item_path_value": "guitars-in-space",
348    "fsc_action": "Add,ViewCart",
349    "fbq_action": "InitiateCheckout",
350    "similar_products": ["Guitars In Space VOL 4", "Guitars In Space VOL 3", "Guitars In Space VOL 2", "Smooth Guitars VOL 2", "Smooth Guitars VOL 1"]
351  },
352  {
353    "name": "Patmos",
354    "subtitle": "Pads and Atmospheres",
355    "product_type": "Kontakt",
356    "category": "free",
357    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/patmos.jpg",
358    "price": "FREE",
359    "path": "/patmos",
360    "sale": false,
361    "featured": false,
362    "init_hidden": true,
363    "fsc_item_path_value": "patmos",
364    "fsc_action": "Add,ViewCart",
365    "fbq_action": "InitiateCheckout",
366    "ml_form_id": "FBPUcr",
367    "similar_products": []
368  },
369  {
370    "name": "Smooth Guitars VOL 2",
371    "subtitle": "Funky and jazzy guitar loops and licks",
372    "product_type": "Kontakt",
373    "category": null,
374    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/smooth-guitars-2.jpg",
375    "price": 20.00,
376    "path": "/smooth-guitars-vol-2",
377    "sale": false,
378    "featured": false,
379    "init_hidden": false,
380    "fsc_item_path_value": "smooth-guitars-vol-2",
381    "fsc_action": "Add,ViewCart",
382    "fbq_action": "InitiateCheckout",
383    "similar_products": ["Smooth Guitars VOL 1"]
384  },
385  {
386    "name": "Smooth Guitars VOL 1",
387    "subtitle": "Funky and jazzy guitar loops and licks",
388    "product_type": "Kontakt",
389    "category": null,
390    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/smooth-guitars-1.jpg",
391    "price": 20.00,
392    "path": "/smooth-guitars-vol-1",
393    "sale": false,
394    "featured": false,
395    "init_hidden": false,
396    "fsc_item_path_value": "smooth-guitars-vol-1",
397    "fsc_action": "Add,ViewCart",
398    "fbq_action": "InitiateCheckout",
399    "similar_products": ["Smooth Guitars VOL 2"]
400  },
401  {
402    "name": "Irish Lyre Harp",
403    "subtitle": "Exotic sounding 10 string lyre harp",
404    "product_type": "Kontakt",
405    "category": "free",
406    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/irish-lyre-harp.jpg",
407    "price": "FREE",
408    "path": "/irish-lyre-harp",
409    "sale": false,
410    "featured": false,
411    "init_hidden": true,
412    "fsc_item_path_value": "irish-lyre-harp",
413    "fsc_action": "Add,ViewCart",
414    "fbq_action": "InitiateCheckout",
415    "ml_form_id": "030pvu",
416    "similar_products": []
417  },
418  {
419    "name": "Nocturnal",
420    "subtitle": "Textures and Pads",
421    "product_type": "Kontakt",
422    "category": "mosaic",
423    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/nocturnal_orig.jpg",
424    "price": 10.00,
425    "path": "/nocturnal",
426    "sale": false,
427    "featured": false,
428    "init_hidden": false,
429    "fsc_item_path_value": "nocturnal",
430    "fsc_action": "Add,ViewCart",
431    "fbq_action": "InitiateCheckout",
432    "similar_products": ["Pocket Mandolin", "Somnium", "Shaman Drum", "Red Room"]
433  },
434  {
435    "name": "Pocket Mandolin",
436    "subtitle": "Compact A-style mandolin",
437    "product_type": "Kontakt",
438    "category": "mosaic",
439    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/pocket_mandolin_thumb.jpg",
440    "price": 10.00,
441    "path": "/pocket-mandolin",
442    "sale": false,
443    "featured": false,
444    "init_hidden": false,
445    "fsc_item_path_value": "pocket-mandolin",
446    "fsc_action": "Add,ViewCart",
447    "fbq_action": "InitiateCheckout",
448    "similar_products": ["Nocturnal", "Somnium", "Shaman Drum", "Red Room"]
449  },
450  {
451    "name": "Somnium",
452    "subtitle": "Hyperreal Ambient Pads",
453    "product_type": "Kontakt",
454    "category": "mosaic",
455    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/somnium-thumbnail.jpg",
456    "price": 10.00,
457    "path": "/somnium",
458    "sale": false,
459    "featured": false,
460    "init_hidden": false,
461    "fsc_item_path_value": "somnium",
462    "fsc_action": "Add,ViewCart",
463    "fbq_action": "InitiateCheckout",
464    "similar_products": ["Nocturnal", "Pocket Mandolin", "Shaman Drum", "Red Room"]
465  },
466  {
467    "name": "Shaman Drum",
468    "subtitle": "Ritual Skin Drum",
469    "product_type": "Kontakt",
470    "category": "mosaic",
471    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/shaman-drum.jpg",
472    "price": 10.00,
473    "path": "/shaman-drum",
474    "sale": false,
475    "featured": false,
476    "init_hidden": false,
477    "fsc_item_path_value": "shaman-drum",
478    "fsc_action": "Add,ViewCart",
479    "fbq_action": "InitiateCheckout",
480    "similar_products": ["Nocturnal", "Pocket Mandolin", "Somnium", "Red Room"]
481  },
482  {
483    "name": "Red Room",
484    "subtitle": "Ominous Pads and Textures",
485    "product_type": "Kontakt",
486    "category": "mosaic",
487    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/red_room_-_thumbnail.jpg",
488    "price": 10.00,
489    "path": "/red-room",
490    "sale": false,
491    "featured": false,
492    "init_hidden": false,
493    "fsc_item_path_value": "red-room",
494    "fsc_action": "Add,ViewCart",
495    "fbq_action": "InitiateCheckout",
496    "similar_products": ["Nocturnal", "Pocket Mandolin", "Somnium", "Shaman Drum"]
497  },
498  {
499    "name": "Complete Bundle",
500    "subtitle": "&nbsp;",
501    "product_type": "Bundle",
502    "category": "bundle",
503    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/complete-bundle.png",
504    "price": 299.00,
505    "path": "/complete-bundle",
506    "sale": false,
507    "featured": false,
508    "init_hidden": true,
509    "fsc_item_path_value": "complete-bundle",
510    "fsc_action": "Add,ViewCart",
511    "fbq_action": "InitiateCheckout",
512    "similar_products": []
513  },
514  {
515    "name": "Ultimate Pad Collection 2",
516    "subtitle": "&nbsp;",
517    "product_type": "Bundle",
518    "category": "bundle",
519    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/ultimate-pad-collection-2.png",
520    "price": 159.00,
521    "path": "/ultimate-pad-collection-2",
522    "sale": false,
523    "featured": false,
524    "init_hidden": true,
525    "fsc_item_path_value": "ultimate-pad-collection-2",
526    "fsc_action": "Add,ViewCart",
527    "fbq_action": "InitiateCheckout",
528    "similar_products": []
529  },
530  {
531    "name": "Ultimate Pad Collection",
532    "subtitle": "&nbsp;",
533    "product_type": "Bundle",
534    "category": "bundle",
535    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/ultimate-pad-collection.png",
536    "price": 119.00,
537    "path": "/ultimate-pad-collection",
538    "sale": false,
539    "featured": false,
540    "init_hidden": true,
541    "fsc_item_path_value": "ultimate-pad-collection",
542    "fsc_action": "Add,ViewCart",
543    "fbq_action": "InitiateCheckout",
544    "similar_products": []
545  },
546  {
547    "name": "Ethnic Bundle",
548    "subtitle": "&nbsp;",
549    "product_type": "Bundle",
550    "category": "bundle",
551    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/ethnic-bundle.png",
552    "price": 99.00,
553    "path": "/ethnic-bundle",
554    "sale": false,
555    "featured": false,
556    "init_hidden": true,
557    "fsc_item_path_value": "ethnic-bundle",
558    "fsc_action": "Add,ViewCart",
559    "fbq_action": "InitiateCheckout",
560    "similar_products": []
561  },
562  {
563    "name": "Burning Drums VOL 1",
564    "subtitle": "&nbsp;",
565    "product_type": "Sample Pack",
566    "category": null,
567    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/burning-drums-1.jpg",
568    "price": 15.00,
569    "path": "/burning-drums-vol-1",
570    "sale": false,
571    "featured": false,
572    "init_hidden": false,
573    "fsc_item_path_value": "burning-drums-vol-1",
574    "fsc_action": "Add,ViewCart",
575    "fbq_action": "InitiateCheckout",
576    "similar_products": []
577  },
578  {
579    "name": "Burning Drums VOL 2",
580    "subtitle": "&nbsp;",
581    "product_type": "Sample Pack",
582    "category": null,
583    "image": "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/burning-drums-2.jpg",
584    "price": 15.00,
585    "coming_soon": true,
586    "path": "/burning-drums-vol-2",
587    "sale": false,
588    "featured": false,
589    "init_hidden": false,
590    "fsc_item_path_value": "burning-drums-vol-2",
591    "fsc_action": "Add,ViewCart",
592    "fbq_action": "InitiateCheckout",
593    "similar_products": []
594  }
595];
596</script>
596
597
598
599<!-- 🎨 Styling — everything is scoped to .di-products so this block is safe
600     to embed inside an instrument page without restyling the rest of it. -->
601<style>
602  .di-products {
603    color: #ffffff;
604    font-family: Arial, sans-serif;
605  }
606
607  .di-products .di-section-title {
608    text-align: center;
609    font-size: 22px;
610    letter-spacing: 1px;
611    margin: 0 0 30px 0;
612    color: #ffffff;
613  }
614
615  /* Search box */
616  .di-products .di-search-wrap {
617    text-align: center;
618    margin-bottom: 30px;
619  }
620
621  .di-products .di-search {
622    padding: 10px 15px;
623    width: 450px;
624    max-width: 90%;
625    border-radius: 25px;
626    border: 1px solid #444;
627    background: #1e1e1e;
628    color: #ffffff;
629    font-size: 14px;
630    outline: none;
631  }
632
633  .di-products .di-search::placeholder {
634    color: #888;
635  }
636
637  /* Filter buttons - minimal / transparent.
638     Two rows: the product GROUP (Kontakt / Sample Packs) on top, then the
639     sub-filters (All / Featured / ...) which only apply to the Kontakt group
640     and are hidden while Sample Packs is active. */
641  .di-products .di-filters {
642    text-align: center;
643    margin-bottom: 40px;
644  }
645
646  .di-products .di-groups {
647    margin-bottom: 12px;
648  }
649
650  /* Base = the SUB-filter size: one step down from the old buttons. */
651  .di-products .filter-btn {
652    background: transparent;
653    border: 1px solid #444;
654    color: #888;
655    padding: 8px 16px;
656    margin: 4px;
657    border-radius: 25px;
658    cursor: pointer;
659    font-size: 13px;
660    font-family: inherit;
661    transition: all 0.25s ease;
662  }
663
664  /* Group buttons keep the original button size. */
665  .di-products .filter-btn-group {
666    padding: 10px 20px;
667    margin: 5px;
668    font-size: 14px;
669    letter-spacing: 1px;
670  }
671
672  .di-products .filter-btn:hover {
673    color: #ffffff;
674    border-color: #888;
675  }
676
677  /* The old rule was "border: 2px", which grew the button by 1px on every side
678     and nudged the whole row when the selection changed. An inset ring paints
679     the same 2px edge without touching the box size. */
680  .di-products .filter-btn.active {
681    border-color: #ffffff;
682    color: #ffffff;
683    box-shadow: inset 0 0 0 1px #ffffff;
684  }
685
686  /* Grid Layout */
687  .di-products .di-grid {
688    display: flex;
689    flex-wrap: wrap;
690    gap: 30px;
691    justify-content: center;
692    margin-bottom: 60px;
693  }
694
695  /* Cards */
696  .di-products .instrument-card {
697    width: 295px;
698    color: #ffffff;
699    text-align: left;
700    border: 1px solid #2a2a2a;
701    transition: transform 0.25s ease, box-shadow 0.25s ease;
702    position: relative;           /* anchors the SALE and Kontakt badges */
703  }
704
705  .di-products .instrument-card:hover {
706    transform: translateY(-6px);
707    box-shadow: 0 10px 25px rgba(0,0,0,0.6);
708  }
709
710  .di-products .instrument-card a {
711    text-decoration: none;
712    display: block;
713    color: inherit;
714  }
715
716  /* Product artwork. Scoped to the artwork wrapper on purpose — a bare
717     ".instrument-card img" would also match the Kontakt badge and stretch it
718     across the whole card (it outranks a plain .badge-kontakt selector).
719     Unreleased products use .card-art instead of <a>, since their product page
720     does not exist yet. */
721  .di-products .instrument-card > a img,
722  .di-products .instrument-card > .card-art img {
723    width: 100%;
724    aspect-ratio: 1/1;
725    object-fit: cover;
726    border-bottom: 1px solid #2a2a2a;
727  }
728
729  /* Kontakt badge — top-right, opposite the SALE badge.
730     The icon is a black squircle with a white "KT", so on dark artwork the
731     letters still read but the body would merge into the image; the 1px light
732     ring defines the shape, and the drop shadow lifts it off pale artwork. */
733  .di-products .instrument-card img.badge-kontakt {
734    position: absolute;
735    top: 10px;
736    right: 10px;
737    width: 34px;
738    height: 34px;
739    max-width: 34px;              /* beats any inherited width from the theme */
740    aspect-ratio: auto;
741    object-fit: contain;
742    border: 0;
743    border-bottom: 0;
744    display: block;
745    border-radius: 23%;           /* matches the icon's own squircle corners */
746    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.5),
747                0 2px 6px rgba(0, 0, 0, 0.55);
748    z-index: 2;
749    pointer-events: none;         /* never steal the click from the card link */
750  }
751
752  @media (max-width: 480px) {
753    .di-products .instrument-card img.badge-kontakt {
754      width: 30px;
755      height: 30px;
756      max-width: 30px;
757    }
758  }
759
760  /* Sale badge */
761  .di-products .badge-sale {
762    position: absolute;
763    top: 10px;
764    left: 10px;
765    background: #c23b3b;
766    color: #fff;
767    font-size: 11px;
768    padding: 5px 8px;
769    letter-spacing: 1px;
770    font-weight: bold;
771    z-index: 2;
772  }
773
774  /* Coming soon — same corner and shape as SALE, but muted rather than red:
775     it is a status, not an offer. A card can never be both. */
776  .di-products .badge-soon {
777    position: absolute;
778    top: 10px;
779    left: 10px;
780    background: rgba(0, 0, 0, 0.75);
781    border: 1px solid rgba(255, 255, 255, 0.6);
782    color: #fff;
783    font-size: 11px;
784    padding: 4px 8px;
785    letter-spacing: 1px;
786    font-weight: bold;
787    z-index: 2;
788  }
789
790  /* Unreleased: nothing on this card is clickable, so it should not behave like
791     the others — no hover lift, and the artwork sits back a little. */
792  .di-products .instrument-card.is-coming-soon:hover {
793    transform: none;
794    box-shadow: none;
795  }
796
797  .di-products .instrument-card.is-coming-soon > .card-art img {
798    opacity: 0.7;
799  }
800
801  /* Info */
802  .di-products .instrument-info {
803    padding: 10px 5px;
804  }
805
806  .di-products .instrument-info h3 {
807    font-size: 17px;
808    font-weight: bold;
809    margin: 5px 0 2px 0;
810    color: #ffffff;
811  }
812
813  .di-products .instrument-info .subtitle {
814    font-size: 14px;
815    color: #aaaaaa;
816    margin-bottom: 10px;
817    display: block;
818  }
819
820  /* Price table */
821  .di-products .price-table {
822    width: 100%;
823    border-collapse: collapse;
824    font-size: 14px;
825  }
826
827  .di-products .price-table td {
828    padding: 6px 0;
829  }
830
831  .di-products .price-table td:first-child {
832    color: #999;
833    width: 30%;
834  }
835
836  .di-products .price-table td:nth-child(2) {
837    font-weight: bold;
838    width: 30%;
839  }
840
841  .di-products .price-table td:last-child {
842    width: 25%;
843    text-align: center;
844  }
845
846  .di-products .price-old {
847    color: #c23b3b;
848  }
849
850  /* Add to cart / download button */
851  .di-products .cart-btn,
852  .di-products .subscribe-btn {
853    display: inline-block;
854    padding: 2px 6px;
855    border: 1px solid #ffffff;
856    border-radius: 15px;
857    color: #ffffff;
858    text-decoration: none;
859    font-size: 13px;
860    transition: all 0.2s ease;
861    background: transparent;
862    font-family: inherit;
863    cursor: pointer;
864    line-height: 1.4;
865  }
866
867  .di-products .cart-btn:hover,
868  .di-products .subscribe-btn:hover {
869    background: #ffffff;
870    color: #151515;
871  }
872
873  /* Empty search result */
874  .di-products .di-empty {
875    text-align: center;
876    color: #888;
877    font-size: 14px;
878    padding: 20px 0 60px 0;
879  }
880
881  /* Responsive */
882  @media (max-width: 768px) {
883    .di-products .instrument-card {
884      width: 45%;
885    }
886  }
887
888  @media (max-width: 480px) {
889    .di-products .instrument-card {
890      width: 100%;
891    }
892  }
893</style>
894
895
896<!-- ⚙️ Renderer + Filtering + Search -->
897<script>
898(function () {
899  "use strict";
900
901  // Top row: the product GROUP. Derived from product_type, not from a data
902  // field, so a new product only has to get its product_type right.
903  var GROUPS = [
904    { label: "Kontakt",      value: "kontakt" },
905    { label: "Sample Packs", value: "sample-packs" }
906  ];
907
908  // Second row: sub-filters. These only describe the Kontakt catalogue
909  // (a sample pack is never mosaic / a bundle / free), so the row is hidden
910  // while the Sample Packs group is selected.
911  var FILTERS = [
912    { label: "All",      value: "all" },
913    { label: "Featured", value: "featured" },
914    { label: "Mosaic",   value: "mosaic" },
915    { label: "Bundles",  value: "bundle" },
916    { label: "Free",     value: "free" }
917  ];
918
919  var GROUP_VALUES  = GROUPS.map(function (g) { return g.value; });
920  var FILTER_VALUES = FILTERS.map(function (f) { return f.value; });
921
922  var DEFAULT_GROUP = "kontakt";
923
924  // Kontakt app icon (Kontakt 8, symbol only — no wordmark), 96x96.
925  //
926  //   LOCAL PREVIEW  -> assets/kontakt-icon.png, next to this file.
927  //   LIVE SITE      -> /storage/... , same folder as the product artwork.
928  //
929  // BEFORE YOU UPLOAD: upload assets/kontakt-icon.png to the site storage
930  // folder so KONTAKT_ICON_LIVE resolves. If it is missing the badge simply
931  // hides itself (see the onerror below) rather than showing a broken image.
932  var KONTAKT_ICON_LOCAL = "assets/kontakt-icon.png";
933  var KONTAKT_ICON_LIVE  = "/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/kontakt-icon.png";
934
935  var DI_IS_LOCAL = (window.location.protocol === "file:" ||
936                     window.location.hostname === "localhost" ||
937                     window.location.hostname === "127.0.0.1" ||
938                     window.location.hostname === "");
939
940  var KONTAKT_ICON = DI_IS_LOCAL ? KONTAKT_ICON_LOCAL : KONTAKT_ICON_LIVE;
941
942  /* ---------- helpers ---------- */
943
944  // Decision (b): "$29,00"
945  function money(value) {
946    if (typeof value !== "number") return String(value); // "FREE"
947    return "$" + value.toFixed(2).replace(".", ",");
948  }
949
950  function esc(str) {
951    return String(str).replace(/&(?!(?:[a-zA-Z]+|#\d+);)/g, "&amp;")
952                      .replace(/</g, "&lt;")
953                      .replace(/>/g, "&gt;")
954                      .replace(/"/g, "&quot;");
955  }
956
957  function groupOf(p) {
958    return p.product_type === "Sample Pack" ? "sample-packs" : "kontakt";
959  }
960
961  // Accepts both spellings: the rest of the data uses snake_case, but
962  // "coming-soon" is easy to type by mistake and silently does nothing.
963  function isComingSoon(p) {
964    return p.coming_soon === true || p["coming-soon"] === true;
965  }
966
967  function byPath(pathValue) {
968    var list = window.DI_PRODUCTS || [];
969    for (var i = 0; i < list.length; i++) {
970      if (list[i].fsc_item_path_value === pathValue) return list[i];
971    }
972    return null;
973  }
974
975  // similar_products entries are hand-written display names ("Deep Blue"),
976  // not slugs — slugs are not guessable ("Guitars In Space VOL 1" is
977  // "guitars-in-space"). Try the slug first, then the name (trimmed,
978  // case-insensitive), and warn about anything that matches neither.
979  function findProduct(ref) {
980    var hit = byPath(ref);
981    if (hit) return hit;
982    var wanted = String(ref).trim().toLowerCase();
983    var list = window.DI_PRODUCTS || [];
984    for (var i = 0; i < list.length; i++) {
985      if (String(list[i].name).trim().toLowerCase() === wanted) return list[i];
986    }
987    if (window.console) console.warn("[di-products] similar product not found: " + ref);
988    return null;
989  }
990
991  /* ---------- card markup ---------- */
992
993  function priceCell(p) {
994    if (p.original_price) {
995      return '<s class="price-old">' + money(p.original_price) + "</s> " + money(p.price);
996    }
997    return money(p.price);
998  }
999
1000  function actionCell(p) {
1001    // Unreleased product: no add-to-cart, no MailerLite form, no dead control
1002    // to click. The COMING SOON badge on the artwork carries the message.
1003    if (isComingSoon(p)) return "";
1004    if (p.ml_form_id) {
1005      return '<button type="button" class="cart-btn subscribe-btn ml-onclick-form" ' +
1006             "onclick=\"ml('show', '" + p.ml_form_id + "', true)\">Download</button>";
1007    }
1008    return '<a onclick="fbq(\'track\', \'' + p.fbq_action + '\');" ' +
1009           'data-fsc-action="' + p.fsc_action + '" ' +
1010           'data-fsc-item-path-value="' + p.fsc_item_path_value + '" ' +
1011           'href="javascript:;" class="cart-btn">add to cart</a>';
1012  }
1013
1014  function cardHTML(p) {
1015    var soon = isComingSoon(p);
1016
1017    var classes = ["instrument-card"];
1018    if (p.category)    classes.push(p.category);
1019    if (p.featured)    classes.push("featured");
1020    if (p.sale)        classes.push("sale");
1021    if (p.init_hidden) classes.push("init-false");
1022    if (soon)          classes.push("is-coming-soon");
1023
1024    // onerror: if the icon has not been uploaded yet, hide the badge instead of
1025    // leaving a broken-image glyph on every card.
1026    var kontaktBadge = (p.product_type === "Kontakt")
1027      ? '<img class="badge-kontakt" src="' + KONTAKT_ICON +
1028        '" alt="Requires Kontakt" title="Requires Kontakt"' +
1029        ' onerror="this.style.display=\'none\';">'
1030      : "";
1031
1032    var artwork = '<img src="' + p.image + '" alt="' + esc(p.name) + '" loading="lazy">';
1033
1034    // An unreleased product has no page to link to yet, so the artwork is a
1035    // plain div rather than a link that would 404.
1036    var artworkBlock = soon
1037      ? '<div class="card-art">' + artwork + "</div>"
1038      : '<a href="' + p.path + '">' + artwork + "</a>";
1039
1040    return '' +
1041      '<div class="' + classes.join(" ") + '" data-group="' + groupOf(p) + '"' +
1042           ' data-product="' + p.fsc_item_path_value + '">' +
1043        (p.sale ? '<div class="badge-sale">SALE</div>' : "") +
1044        (soon ? '<div class="badge-soon">COMING SOON</div>' : "") +
1045        kontaktBadge +
1046        artworkBlock +
1047        '<div class="instrument-info">' +
1048          "<h3>" + esc(p.name) + "</h3>" +
1049          '<span class="subtitle">' + p.subtitle + "</span>" +
1050          '<table class="price-table"><tr>' +
1051            "<td>" + esc(p.product_type) + "</td>" +
1052            "<td>" + priceCell(p) + "</td>" +
1053            "<td>" + actionCell(p) + "</td>" +
1054          "</tr></table>" +
1055        "</div>" +
1056      "</div>";
1057  }
1058
1059  /* ---------- which products for which mode ---------- */
1060
1061  function selectProducts(root, mode) {
1062    var all = window.DI_PRODUCTS || [];
1063    var limit = parseInt(root.getAttribute("data-limit"), 10);
1064
1065    var list;
1066    if (mode === "featured") {
1067      list = all.filter(function (p) { return p.featured; });
1068    } else if (mode === "similar") {
1069      var current = byPath(root.getAttribute("data-product"));
1070      var names = (current && current.similar_products) || [];
1071      list = names.map(function (ref) { return findProduct(ref); }).filter(function (p) {
1072        return p && p !== current;
1073      });
1074      if (isNaN(limit)) limit = 4;
1075    } else {
1076      list = all.slice();
1077    }
1078
1079    if (!isNaN(limit) && limit > 0) list = list.slice(0, limit);
1080    return list;
1081  }
1082
1083  /* ---------- filtering / search (mode "all" only) ----------
1084
1085     Two independent axes, both held in `state`:
1086       state.group     kontakt | sample-packs   — always applied
1087       state.category  all | featured | ...     — only meaningful for kontakt
1088
1089     The category is remembered while the Sample Packs group is selected, so
1090     switching Kontakt -> Sample Packs -> Kontakt returns to the same view. */
1091
1092  function markActive(root, selector, value) {
1093    var btns = root.querySelectorAll(selector);
1094    for (var i = 0; i < btns.length; i++) {
1095      // No classList.toggle(name, force) — it is unsupported in older browsers.
1096      if (btns[i].getAttribute("data-filter") === value) btns[i].classList.add("active");
1097      else btns[i].classList.remove("active");
1098    }
1099  }
1100
1101  function applyFilter(root, state) {
1102    var cards  = root.querySelectorAll(".instrument-card");
1103    var search = root.querySelector(".di-search");
1104    var term   = search ? search.value.toLowerCase() : "";
1105    var shown  = 0;
1106    var i;
1107
1108    var inKontakt = (state.group === "kontakt");
1109    var category  = inKontakt ? state.category : "all";
1110
1111    markActive(root, ".di-groups .filter-btn", state.group);
1112    markActive(root, ".di-subfilters .filter-btn", state.category);
1113
1114    var sub = root.querySelector(".di-subfilters");
1115    if (sub) sub.style.display = inKontakt ? "" : "none";
1116
1117    if (root.getAttribute("data-hash-sync") !== "false") {
1118      // One hash for both axes: the category while in the Kontakt group (so the
1119      // existing #mosaic / #free links keep working), otherwise the group.
1120      // Some browsers reject replaceState on file:// — never let that stop the filter.
1121      try {
1122        history.replaceState(null, null, "#" + (inKontakt ? category : state.group));
1123      } catch (e) {}
1124    }
1125
1126    for (i = 0; i < cards.length; i++) {
1127      var card  = cards[i];
1128      var title = card.getElementsByTagName("h3")[0].textContent.toLowerCase();
1129
1130      var groupMatch    = card.getAttribute("data-group") === state.group;
1131      var categoryMatch = (category === "all") || card.classList.contains(category);
1132      var searchMatch   = title.indexOf(term) !== -1;
1133      var initHidden    = (category === "all") && card.classList.contains("init-false") && term === "";
1134
1135      if (groupMatch && categoryMatch && searchMatch && !initHidden) {
1136        card.style.display = "block";
1137        shown++;
1138      } else {
1139        card.style.display = "none";
1140      }
1141    }
1142
1143    var empty = root.querySelector(".di-empty");
1144    if (empty) empty.style.display = shown ? "none" : "block";
1145  }
1146
1147  /* ---------- render one mount ---------- */
1148
1149  function render(root) {
1150    if (root.getAttribute("data-di-rendered") === "true") return;
1151    root.setAttribute("data-di-rendered", "true");
1152
1153    var mode = root.getAttribute("data-mode") || "all";
1154    var list = selectProducts(root, mode);
1155
1156    // A "similar products" section with nothing curated yet stays invisible
1157    // instead of leaving an empty heading on the instrument page.
1158    if (mode === "similar" && list.length === 0) {
1159      root.style.display = "none";
1160      return;
1161    }
1162
1163    var html = "";
1164    var title = root.getAttribute("data-title");
1165    if (title) html += '<h2 class="di-section-title">' + esc(title) + "</h2>";
1166
1167    if (mode === "all") {
1168      html += '<div class="di-search-wrap">' +
1169                '<input type="text" class="di-search" placeholder="Search products...">' +
1170              "</div>";
1171      html += '<div class="di-filters">';
1172      html += '<div class="di-groups">';
1173      GROUPS.forEach(function (g) {
1174        html += '<button type="button" class="filter-btn filter-btn-group" data-filter="' +
1175                g.value + '">' + g.label + "</button>";
1176      });
1177      html += "</div>";
1178      html += '<div class="di-subfilters">';
1179      FILTERS.forEach(function (f) {
1180        html += '<button type="button" class="filter-btn" data-filter="' + f.value + '">' +
1181                f.label + "</button>";
1182      });
1183      html += "</div>";
1184      html += "</div>";
1185    }
1186
1187    html += '<div class="di-grid">' + list.map(cardHTML).join("") + "</div>";
1188
1189    if (mode === "all") {
1190      // "products", not "instruments" — this grid now covers sample packs too.
1191      html += '<div class="di-empty" style="display:none;">No products match your search.</div>';
1192    }
1193
1194    root.innerHTML = html;
1195
1196    if (root.getAttribute("data-page-bg") === "dark") {
1197      document.body.style.background = "#151515";
1198      document.body.style.color = "#ffffff";
1199    }
1200
1201    if (mode !== "all") return;
1202
1203    var state = { group: DEFAULT_GROUP, category: "all" };
1204
1205    var groupBtns = root.querySelectorAll(".di-groups .filter-btn");
1206    for (var g = 0; g < groupBtns.length; g++) {
1207      groupBtns[g].addEventListener("click", function () {
1208        state.group = this.getAttribute("data-filter");
1209        applyFilter(root, state);
1210      });
1211    }
1212
1213    var subBtns = root.querySelectorAll(".di-subfilters .filter-btn");
1214    for (var i = 0; i < subBtns.length; i++) {
1215      subBtns[i].addEventListener("click", function () {
1216        state.category = this.getAttribute("data-filter");
1217        applyFilter(root, state);
1218      });
1219    }
1220
1221    root.querySelector(".di-search").addEventListener("keyup", function () {
1222      applyFilter(root, state);
1223    });
1224
1225    // Deep links: "#sample-packs" picks the group, "#mosaic" (etc.) keeps
1226    // working as before and implies the Kontakt group. Anything else falls
1227    // back to the default, which is always Kontakt / All.
1228    var hash = (window.location.hash || "").replace("#", "").toLowerCase();
1229    if (GROUP_VALUES.indexOf(hash) !== -1) {
1230      state.group = hash;
1231    } else if (FILTER_VALUES.indexOf(hash) !== -1) {
1232      state.group = "kontakt";
1233      state.category = hash;
1234    }
1235    applyFilter(root, state);
1236  }
1237
1238  function renderAll() {
1239    var mounts = document.querySelectorAll(".di-products");
1240    for (var i = 0; i < mounts.length; i++) render(mounts[i]);
1241  }
1242
1243  window.DI_renderProducts = renderAll;
1244
1245  renderAll();
1246  if (document.readyState === "loading") {
1247    document.addEventListener("DOMContentLoaded", renderAll);
1248  }
1249})();
1250</script>
1250
1251
1252    <link rel="preconnect" href="https://assets.articulationsites.com" />
1253        
1253<script>
1254        document.documentElement.classList.remove('dark')
1255    </script>
1255
1256    
1256<script defer src="https://assets.articulationsites.com/js/published/published.min.js?v=c17059228c8f0fb3962a3f88e7dd27316"></script>
1256
1257    
1257<script defer src="https://assets.articulationsites.com/js/vendor/focus.min.js"></script>
1257
1258    
1258<script defer src="https://assets.articulationsites.com/js/vendor/intersect.min.js?v=1"></script>
1258
1259    
1259<script defer src="https://assets.articulationsites.com/js/vendor/alpine.min.js"></script>
1259
1260    <link href="/css/published.css?v=1599af1dd31c136b73844d19aef1421e" rel="stylesheet"/>
1261    <style>
1262        :root {
1263            --color-text-dark-bg: #9ca3af;
1264--color-text-dark-bg-heading: #f3f4f6;
1265--color-text-light-bg: #000000;
1266--text-color: #000000;
1267--color-text-light-bg-heading: #000000;
1268--heading-color: #000000;
1269--font-heading: "Montserrat";
1270--font-text: "Roboto";
1271--font-button: "Montserrat";
1272--font-nav_link: "Montserrat";
1273--font-quote: "Roboto";
1274--color-primary-main: #151515;
1275--color-primary-light: #2f2f2f;
1276--color-primary-dark: #000000;
1277--color-primary-contrast: #ffffff;
1278--color-secondary-main: #818181;
1279--color-secondary-light: #9b9b9b;
1280--color-secondary-dark: #686868;
1281--color-secondary-contrast: #ffffff;
1282--color-accent-main: #ffffff;
1283--color-accent-light: #ffffff;
1284--color-accent-dark: #e6e6e6;
1285--color-accent-contrast: #000000;
1286--color-success-main: #26A94C;
1287--color-success-light: #31d160;
1288--color-success-dark: #1d7f39;
1289--color-success-contrast: #ffffff;
1290--color-error-main: #ED262D;
1291--color-error-light: #f1555b;
1292--color-error-dark: #cf1118;
1293--color-error-contrast: #ffffff;
1294--link-color: #d5d5d5;
1295--link-hover-color: #ffffff;
1296--link-text-decoration: underline;
1297--link-underline-color: #626262;
1298--link-hover-text-decoration: underline;
1299--link-hover-underline-color: #626262;
1300--shape: 8px;
1301--heading-2-font-size: 26px;
1302--heading-2-line-height: 32.5px;
1303--heading-2-font-weight: 700;
1304--paragraph-font-size: 16px;
1305--paragraph-line-height: 28px;
1306--paragraph-font-weight: 400;
1307--button-font-size: 13px;
1308--button-letter-spacing: 0px;
1309--button-font-weight: 400;
1310--button-text-transform: uppercase;
1311--button-text-color: #d5d5d5;
1312--button-border-color: #151515;
1313--button-border-width: 2px;
1314--button-hover-background-color: #151515;
1315--button-hover-border-color: #f5f5f5;
1316--button-highlight-border-width: 2px;
1317--nav-link-color: var(--color-accent-light);
1318--nav-link-letter-spacing: 0.05px;
1319--nav-link-font-weight: 700;
1320--nav-link-text-transform: uppercase;
1321--subnav-link-text-transform: uppercase;
1322        }
1323    </style>
1324    <style id="site-css">
1325        .di_add_to_cart_btn {
1326    background-color: transparent;
1327    color: #ffffff;
1328    border: 2px solid #ffffff;
1329    border-radius: 15px;
1330    padding: 6px 14px;
1331    transition: all 0.2s;
1332    display: inline-block;
1333}
1334
1335.di_add_to_cart_btn span {
1336    font-size: 14px;
1337    font-weight: bold;
1338}
1339
1340.di_add_to_cart_btn:hover {
1341    background-color: #ffffff;
1342    color: #151515;
1343    cursor: pointer;
1344}
1345    </style>
1346    
1347    <link rel="preconnect" href="https://fonts.googleapis.com" />
1348    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Roboto:wght@400;700">
1349</head>
1350
1351<body>
1352<div class="outer-container header-page  ">
1353    <div class="inner-container">
1354        <div id="c6a195aefe54b5" class="component"><header
1355    class="main-header bg-(--background-color)/80 bg-type-color "
1356    style="--background-color: #151515;"
1357    x-data="{
1358        scrolled: false,
1359    }"
1360    x-init="
1361        $store.nav.totalCharacters = 63;
1362        $store.nav.breakPoint = 1024;
1363        $store.nav.checkIsMobile(0);
1364        scrolled = window.scrollY > 50;
1365        $nextTick(() => {
1366            document.querySelector(':root').style.setProperty('--nav-height', $el.offsetHeight + 'px');
1367        });
1368    "
1369    :class="{
1370        'mobile-nav': $store.nav.mobile,
1371        'desktop-nav': !$store.nav.mobile,
1372        'mobile-nav-open': $store.nav.mobileMenuOpen,
1373        'scrolled': scrolled,
1374        'not-scrolled': !scrolled
1375    }"
1376    x-resize="document.querySelector(':root').style.setProperty('--nav-height', $el.offsetHeight + 'px');"
1377    x-cloak
1378    @scroll.window="scrolled = window.scrollY > 50"
1379    @editor-scroll.window="scrolled = $event.detail.scrollTop > 50"
1380>
1381    <a href="/" aria-label="logo" class="logo-container">
1382                    <div
1383                class="text-logo text-logo-auto text-(--color-accent-light) custom-text-color custom-font-family font-(family-name:--font-heading) text-(length:--text-size) md:text-(length:--md-text-size) lg:text-(length:--lg-text-size) custom-text-size"
1384                style="--text-size: 20px; --md-text-size: 24px; --lg-text-size: 36px;"
1385            >DARK INTERVALS</div>
1386            </a>
1387    <ul
1388    class="desktop-nav-links main-nav-list"
1389    x-data
1390    x-navigation="{ allowCollapseToMore: true }"
1391>
1392            <li
1393    class="main-nav-item"
1394    id="q1CvKTx9"
1395>
1396        <a
1397        href="/"
1398                class="nav-link "
1399    >Home</a>
1400    </li>
1401
1402            <li
1403    class="main-nav-item"
1404    id="F41tSNsT"
1405>
1406        <a
1407        href="/instruments"
1408                class="nav-link "
1409    >INSTRUMENTS</a>
1410    </li>
1411
1412            <li
1413    class="main-nav-item"
1414    id="DRTBW651"
1415>
1416        <a
1417        href="/about"
1418                class="nav-link "
1419    >ABOUT</a>
1420    </li>
1421
1422            <li
1423    class="main-nav-item"
1424    id="xntPQ2n4"
1425>
1426        <a
1427        href="/projects"
1428                class="nav-link "
1429    >PROJECTS</a>
1430    </li>
1431
1432            <li
1433    class="main-nav-item"
1434    id="yTiU9Joc"
1435>
1436        <a
1437        href="/faq"
1438                class="nav-link "
1439    >FAQ</a>
1440    </li>
1441
1442            <li
1443    class="main-nav-item"
1444    id="hMjAUNZO"
1445>
1446        <a
1447        href="/contact"
1448                class="nav-link "
1449    >CONTACT</a>
1450    </li>
1451
1452            <li
1453    class="main-nav-item"
1454    id="2gWTTUpp"
1455>
1456        <a
1457        href="/blog"
1458                class="nav-link active"
1459    >Blog</a>
1460    </li>
1461
1462            <li
1463    class="main-nav-item"
1464    id="nav-more-link"
1465>
1466        <a
1467        href="#"
1468                class="nav-link "
1469    >More...</a>
1470            <ul class="subnav subnav-level-1 subnav-parent-nav-more-link">
1471            <li id="subnav-q1CvKTx9">
1472        <a
1473        href="/"
1474                class="nav-link"
1475    >
1476        <span class="subnav-label">
1477            Home
1478                    </span>
1479    </a>
1480    </li>
1481
1482            <li id="subnav-F41tSNsT">
1483        <a
1484        href="/instruments"
1485                class="nav-link"
1486    >
1487        <span class="subnav-label">
1488            INSTRUMENTS
1489                    </span>
1490    </a>
1491    </li>
1492
1493            <li id="subnav-DRTBW651">
1494        <a
1495        href="/about"
1496                class="nav-link"
1497    >
1498        <span class="subnav-label">
1499            ABOUT
1500                    </span>
1501    </a>
1502    </li>
1503
1504            <li id="subnav-xntPQ2n4">
1505        <a
1506        href="/projects"
1507                class="nav-link"
1508    >
1509        <span class="subnav-label">
1510            PROJECTS
1511                    </span>
1512    </a>
1513    </li>
1514
1515            <li id="subnav-yTiU9Joc">
1516        <a
1517        href="/faq"
1518                class="nav-link"
1519    >
1520        <span class="subnav-label">
1521            FAQ
1522                    </span>
1523    </a>
1524    </li>
1525
1526            <li id="subnav-hMjAUNZO">
1527        <a
1528        href="/contact"
1529                class="nav-link"
1530    >
1531        <span class="subnav-label">
1532            CONTACT
1533                    </span>
1534    </a>
1535    </li>
1536
1537            <li id="subnav-2gWTTUpp">
1538        <a
1539        href="/blog"
1540                class="nav-link"
1541    >
1542        <span class="subnav-label">
1543            Blog
1544                    </span>
1545    </a>
1546    </li>
1547
1548    </ul>
1549
1550    </li>
1551
1552    </ul>
1553
1554    <div class="desktop-nav-buttons">
1555                                    <a class="btn-cta" href="https://www.darkintervals.org/instruments#free"> GET FREE INSTRUMENTS</a>
1556                    </div>
1557    <div class="mobile-nav-buttons">
1558        <button
1559            @click="$store.nav.mobileMenuOpen = true;"
1560            x-show="! $store.nav.mobileMenuOpen"
1561        >
1562            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
1563                <rect width="20" height="1.5" transform="matrix(-1 0 0 1 22 7)" fill="currentColor"/>
1564                <rect width="12" height="1.5" transform="matrix(-1 0 0 1 14 16)" fill="currentColor"/>
1565            </svg>
1566            <span
1567                class="mobile-cart-alert"
1568                x-data
1569                x-show="$store.commerceCart.totalQuantity > 0 && $store.nav.mobile"
1570            >
1571                <span
1572                    x-text="$store.commerceCart.totalQuantity"
1573                    style="color: #ffffff;"
1574                ></span>
1575            </span>
1576        </button>
1577        <button
1578            @click="$store.nav.mobileMenuOpen = false;"
1579            x-show="$store.nav.mobileMenuOpen"
1580        >
1581            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon">
1582  <path fill-rule="evenodd" d="M5.47 5.47a.75.75 0 0 1 1.06 0L12 10.94l5.47-5.47a.75.75 0 1 1 1.06 1.06L13.06 12l5.47 5.47a.75.75 0 1 1-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 0 1-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd"/>
1583</svg>
1584        </button>
1585    </div>
1586    <div
1587        class="mobile-nav-overlay"
1588        x-show="$store.nav.mobile && $store.nav.mobileMenuOpen"
1589    >
1590        <div
1591    class="mobile-nav-panels"
1592    x-data="mobileNavigation"
1593    x-effect="if (!$store.nav.mobileMenuOpen || !$store.nav.mobile) resetSubnav()"
1594>
1595    <div
1596        class="mobile-nav-panel mobile-nav-panel--root"
1597        :class="{ 'is-shifted': hasSubnavOpen() }"
1598    >
1599        <ul class="mobile-nav-links main-nav-list">
1600                            <li
1601    class="main-nav-item"
1602    id="q1CvKTx9"
1603>
1604                <a
1605            href="/"
1606                        class="mobile-nav-link "
1607        >Home</a>
1608    </li>
1609
1610                            <li
1611    class="main-nav-item"
1612    id="F41tSNsT"
1613>
1614                <a
1615            href="/instruments"
1616                        class="mobile-nav-link "
1617        >INSTRUMENTS</a>
1618    </li>
1619
1620                            <li
1621    class="main-nav-item"
1622    id="DRTBW651"
1623>
1624                <a
1625            href="/about"
1626                        class="mobile-nav-link "
1627        >ABOUT</a>
1628    </li>
1629
1630                            <li
1631    class="main-nav-item"
1632    id="xntPQ2n4"
1633>
1634                <a
1635            href="/projects"
1636                        class="mobile-nav-link "
1637        >PROJECTS</a>
1638    </li>
1639
1640                            <li
1641    class="main-nav-item"
1642    id="yTiU9Joc"
1643>
1644                <a
1645            href="/faq"
1646                        class="mobile-nav-link "
1647        >FAQ</a>
1648    </li>
1649
1650                            <li
1651    class="main-nav-item"
1652    id="hMjAUNZO"
1653>
1654                <a
1655            href="/contact"
1656                        class="mobile-nav-link "
1657        >CONTACT</a>
1658    </li>
1659
1660                            <li
1661    class="main-nav-item"
1662    id="2gWTTUpp"
1663>
1664                <a
1665            href="/blog"
1666                        class="mobile-nav-link active"
1667        >Blog</a>
1668    </li>
1669
1670                    </ul>
1671    </div>
1672
1673            
1674            
1675            
1676            
1677            
1678            
1679            
1680    </div>
1681
1682        <div class="mobile-nav-overlay-buttons">
1683                                        <a
1684                    href="https://www.darkintervals.org/instruments#free"
1685                > GET FREE INSTRUMENTS</a>
1686                                </div>
1687    </div>
1688</header>
1689</div>
1690        <main>
1691                <div class="header-section">
1692        <div id="c6ab01538bf476" class="component"><section
1693    id="page-section"
1694    style="--text-color: #FFFFFF;
1694 --background-image: url('//cdn1.artcltn.com/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/studio-picture-1-2023-copy_1_orig.jpg'); --background-color: #000000; --background-opacity: 60%; --min-height-desktop: 600px; --min-height-tablet: 600px; --min-height-mobile: 400px;"
1695    class="page-section transition-all z-10 relative text-(--text-color) custom-text-color bg-[image:var(--background-image)] no-repeat bg-center bg-contain relative sm:bg-fixed bg-overlay bg-type-image_with_overlay hover:bg-type-none group-hover:bg-type-none lg:rounded-none md:rounded-none rounded-none pl-4 pr-4 md:pl-0 md:pr-0 lg:pl-0 lg:pr-0 lg:min-h-(--min-height-desktop) md:min-h-(--min-height-tablet) min-h-(--min-height-mobile) content-center"
1696>
1697    
1698    
1699    <div
1700        class="section-inner   relative transition-all duration-500 mx-auto grid lg:max-w-5xl md:max-w-5xl max-w-5xl lg:gap-3 md:gap-3 gap-3"
1701        style="padding-block: 48px;"
1702                
1703    >
1704        
1705
1706            </div>
1707</section>
1708</div>
1709    </div>
1710    <div id="c6ab01538bf549" class="component"><div >
1711    <div id="c6ab01538caa96" class="component"><section
1712    id="page-section"
1713    style="--min-height-desktop: 200px; --min-height-tablet: 200px; --min-height-mobile: 200px;"
1714    class="page-section transition-all z-10 relative bg-type-none hover:bg-type-none group-hover:bg-type-none lg:rounded-none md:rounded-none rounded-none pl-4 pr-4 md:pl-0 md:pr-0 lg:pl-0 lg:pr-0 lg:min-h-(--min-height-desktop) md:min-h-(--min-height-tablet) min-h-(--min-height-mobile) content-center"
1715>
1716    
1717    
1718    <div
1719        class="section-inner   relative transition-all duration-500 mx-auto grid lg:max-w-6xl md:max-w-6xl max-w-6xl lg:gap-3 md:gap-2 gap-1"
1720        style="padding-block: 48px;"
1721                
1722    >
1723        <div id="c6ab01538caaa0" class="component"><div class="column-container md:gap-12 md:flex" >
1724            <div
1725            class=" column relative  md:w-9/12"
1726            
1727                    >
1728            <div id="c6ab01538caaa4" class="component">            <div class="component-post-content post-list space-y-16 mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5">
1729            <article class="relative flex flex-col space-y-2 xl:space-y-0">
1730            <dl>
1731                                    <dt class="sr-only">Published on</dt>
1732                    <dd class="text-base font-medium leading-6 text-gray-500 dark:text-gray-400">
1733                        <time datetime="2026-09-20 18:25:43">September 20, 2026</time>
1734                    </dd>
1735                            </dl>
1736            <div class="space-y-3">
1737                <div>
1738                    <h2 class="art-post-title">
1739                        <a
1740                            href="/blog/inside-the-making-of-eleventh-name-of-ganesha"
1741                        >Inside the Making of &quot;Eleventh Name Of Ganesha&quot;</a>
1742                    </h2>
1743                    <div class="flex flex-wrap">
1744                                            </div>
1745                </div>
1746                <div
1747                    class="post-body mt-2 text-inherit max-w-none"
1748                ><div class="not-prose"><div id="c6ab0164bb46f7" class="component"><div
1749    style=""
1750    x-data="{ fullscreen: false }"
1751>
1752    <div class="flex justify-center mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5">
1753                    <img
1754                src="//cdn1.artcltn.com/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/eleven_-cover_2.jpg?w=1080"
1755                alt="Image description"
1756                class="resizeable-image lg:rounded-lg md:rounded-lg rounded-lg w-full cursor-zoom-in"
1757                                                    @click.stop="fullscreen = true"
1758                            />
1759            </div>
1760                <template x-teleport="body">
1761            <div
1762                x-show="fullscreen"
1763                x-transition:enter="transition ease-in-out duration-300"
1764                x-transition:enter-start="opacity-0"
1765                x-transition:leave="transition ease-in-in duration-300"
1766                x-transition:leave-end="opacity-0"
1767                @click="fullscreen = false"
1768                @keydown.window.escape="fullscreen = false"
1769                x-trap.inert.noscroll="fullscreen"
1770                class="fixed inset-0 z-[99] flex items-center justify-center bg-black/50 select-none cursor-zoom-out" x-cloak>
1771                <div class="relative flex items-center justify-center w-11/12 xl:w-4/5 h-11/12">
1772                    <img
1773                        x-show="fullscreen"
1774                        x-transition:enter="transition ease-in-out duration-300"
1775                        x-transition:enter-start="opacity-0 transform scale-50"
1776                        x-transition:leave="transition ease-in-in duration-300"
1777                        x-transition:leave-end="opacity-0 transform scale-50"
1778                        loading="lazy"
1779                        class="object-contain object-center w-full h-full select-none cursor-zoom-out" src="//cdn1.artclt
1779n.com/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/eleven_-cover_2.jpg" alt="Image description" style="display: none;">
1780                </div>
1781            </div>
1782        </template>
1783    </div>
1784</div><div id="c6ab01541eab91" class="component"><div
1785    class="transition-all mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5"
1786    style=""
1787>
1788    <div class="text-option"><p>Besides creating Kontakt instruments and sound libraries, I am a composer, producer and sound designer constantly experimenting with music and sound. I am particularly interested in synthesizers, guitar recording, unusual textures and the integration of ethnic instruments into modern productions. My work often combines organic performances with electronic and cinematic sound design to create distinctive atmospheres.</p></div>
1789</div>
1790</div><div id="c6ab016ee15828" class="component"><div
1791    class="transition-all mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5"
1792    style=""
1793>
1794    <div class="text-option"><h2 class="ql-align-center"><br></h2><h2 class="ql-align-center">PROJECT "ELEVEN"</h2><h2><br></h2><h2>Song : "Eleventh Name Of Ganesha" — Recording Process</h2><p><br></p><p>Eleventh Name Of Ganesha is a hybrid fusion of heavy metal, world music and atmospheric ambient music, heavily inspired by Indian mythology.</p><p><br></p><p>The main guitar used on the track was a Gibson Custom Shop Les Paul. One of the main recording tools was the Orange TH30, a relatively affordable amplifier head that consistently delivers great results. I particularly like how easy it is to tweak and how consistently it maintains its character across different volume and gain settings. Once the EQ is dialed in, I can often leave it untouched for almost the entire song and simply adjust the volume or gain when needed.</p><p><br></p></div>
1795</div>
1796</div><div id="c6ab01f0a75966" class="component"><div
1797    class=""
1798    style=""
1799>
1800    <div class="transition-all lg:w-full md:w-full w-full lg:h-96 md:h-96 h-64 lg:rounded-lg md:rounded-lg rounded-lg mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5">
1801        <iframe
1802            class="w-full h-full lg:rounded-lg md:rounded-lg rounded-lg"
1803            src="https://www.youtube-nocookie.com/embed/5AEvezBhVyQ"
1804            title="YouTube video player"
1805            allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
1806            allowfullscreen
1807        ></iframe>
1808            </div>
1809</div>
1810</div><div id="c6ab01d9143d32" class="component"><div
1811    class="transition-all mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5"
1812    style=""
1813>
1814    <div class="text-option"><p><br></p><p>The drums were built from several different drum kits, blended together to create the final sound. One of the kits used was our LDW 1973 library, from which I used the snare and hi-hat, blending them with elements from two other drum kits.</p><p><br></p></div>
1815</div>
1816</div><div id="c6ab01f1d8e35a" class="component"><div
1817    class="flex w-full justify-center mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5"
1818    x-data="{
1819        duration: 5000,
1820        active: 0,
1821        previous: 0,
1822        incoming: null,
1823        direction: 'next',
1824        transition: 'fade',
1825        totalImages: 6,
1826        progress: 0,
1827        firstFrameTime: 0,
1828        touchStartX: null,
1829        touchEndX: null,
1830        swipeThreshold: 50,
1831        rtl: false,
1832        init() {
1833            this.rtl = getComputedStyle(this.$el).direction === 'rtl'
1834            this.startAnimation()
1835            this.$watch('active', callback => {
1836                cancelAnimationFrame(this.frame)
1837                this.startAnimation()
1838            })
1839        },
1840        startAnimation() {
1841            this.progress = 0
1842            this.$nextTick(() => {
1843                this.firstFrameTime = performance.now()
1844                this.frame = requestAnimationFrame(this.animate.bind(this))
1845            })
1846        },
1847        animate(now) {
1848            let timeFraction = (now - this.firstFrameTime) / this.duration
1849            if (timeFraction <= 1) {
1850                this.progress = timeFraction * 100
1851                this.frame = requestAnimationFrame(this.animate.bind(this))
1852            } else {
1853                timeFraction = 1
1854                this.goTo((this.active + 1) % this.totalImages, 'next')
1855            }
1856        },
1857        goTo(index, dir) {
1858            if (index === this.active) return
1859            this.direction = dir
1860            if (this.transition === 'slide') {
1861                this.incoming = index
1862                this.$nextTick(() => {
1863                    void this.$el.offsetHeight
1864                    this.previous = this.active
1865                    this.active = index
1866                    this.incoming = null
1867                })
1868            } else {
1869                this.previous = this.active
1870                this.active = index
1871            }
1872        },
1873        prev() {
1874            this.goTo(this.active === 0 ? this.totalImages - 1 : this.active - 1, 'prev')
1875        },
1876        forward() {
1877            this.goTo((this.active + 1) % this.totalImages, 'next')
1878        },
1879        handleTouchStart(event) {
1880            this.touchStartX = event.touches[0].clientX
1881        },
1882        handleTouchMove(event) {
1883            this.touchEndX = event.touches[0].clientX
1884        },
1885        handleTouchEnd() {
1886            if(this.touchEndX){
1887                const forward = (this.touchStartX - this.touchEndX) * (this.rtl ? -1 : 1)
1888                if (forward > this.swipeThreshold) {
1889                    this.forward()
1890                }
1891                if (forward < -this.swipeThreshold) {
1892                    this.prev()
1893                }
1894                this.touchStartX = null
1895                this.touchEndX = null
1896            }
1897        },
1898        get thumbOffset() {
1899            const container = this.$refs.thumbContainer
1900            if (!container) return 0
1901            const track = this.$refs.thumbTrack
1902            if (!track || !track.children[this.active]) return 0
1903            const thumb = track.children[this.active]
1904            const containerWidth = container.offsetWidth
1905            const idealOffset = thumb.offsetLeft - containerWidth / 2 + thumb.offsetWidth / 2
1906            const maxOffset = track.scrollWidth - containerWidth
1907            if (this.rtl) {
1908                return -Math.min(Math.max(0, -idealOffset), Math.max(0, maxOffset))
1909            }
1910            return Math.min(Math.max(0, idealOffset), Math.max(0, maxOffset))
1911        }
1912    }">
1913    <div class="transition-all w-full relative duration-150 delay-300 ease-in-out">
1914        <div
1915            class="relative w-full grid overflow-hidden "
1916            @touchstart="handleTouchStart($event)"
1917            @touchmove="handleTouchMove($event)"
1918            @touchend="handleTouchEnd()"
1919        >
1920                                                            <div
1921                    class="w-full col-start-1 row-start-1 flex items-center justify-center "
1922                    
1923                    :class="(() => {
1924                        const i = 0;
1925                        if (transition === 'slide') {
1926                            const fromRight = (direction === 'next') !== rtl;
1927                            if (i === incoming) return 'z-30 ' + (fromRight ? 'translate-x-full' : '-translate-x-full');
1928                            if (i === active) return 'z-20 translate-x-0 transition-transform duration-500 ease-in-out';
1929                            if (i === previous) return 'z-10 transition-transform duration-500 ease-in-out ' + (fromRight ? '-translate-x-full' : 'translate-x-full');
1930                            return 'z-0 translate-x-full invisible';
1931                        }
1932                        return i === active ? 'opacity-100 z-10 transition-opacity duration-500 ease-in-out' : 'opacity-0 z-0 transition-opacity duration-500 ease-in-out';
1933                    })()"
1934                >
1935                    <div class="relative overflow-hidden lg:rounded-lg md:rounded-lg rounded-lg">
1936                                                                        <img
1937                            src="//cdn1.artcltn.com/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/dsc00923.jpg?w=800"
1938                            alt=""
1939                            class="object-cover lg:rounded-lg md:rounded-lg rounded-lg h-120"
1940                            loading="lazy"
1941                        />
1942                                                                    </div>
1943                                    </div>
1944                                                            <div
1945                    class="w-full col-start-1 row-start-1 flex items-center justify-center "
1946                    x-cloak
1947                    :class="(() => {
1948                        const i = 1;
1949                        if (transition === 'slide') {
1950                            const fromRight = (direction === 'next') !== rtl;
1951                            if (i === incoming) return 'z-30 ' + (fromRight ? 'translate-x-full' : '-translate-x-full');
1952                            if (i === active) return 'z-20 translate-x-0 transition-transform duration-500 ease-in-out';
1953                            if (i === previous) return 'z-10 transition-transform duration-500 ease-in-out ' + (fromRight ? '-translate-x-full' : 'translate-x-full');
1954                            return 'z-0 translate-x-full invisible';
1955                        }
1956                        return i === active ? 'opacity-100 z-10 transition-opacity duration-500 ease-in-out' : 'opacity-0 z-0 transition-opacity duration-500 ease-in-out';
1957                    })()"
1958                >
1959                    <div class="relative overflow-hidden lg:rounded-lg md:rounded-lg rounded-lg">
1960                                                                        <img
1961                            src="//cdn1.artcltn.com/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/dsc00924.jpg?w=800"
1962                            alt=""
1963                            class="object-cover lg:rounded-lg md:rounded-lg rounded-lg h-120"
1964                            loading="lazy"
1965                        />
1966                                                                    </div>
1967                                    </div>
1968                                                            <div
1969                    class="w-full col-start-1 row-start-1 flex items-center justify-center "
1970                    x-cloak
1971                    :class="(() => {
1972                        const i = 2;
1973                        if (transition === 'slide') {
1974                            const fromRight = (direction === 'next') !== rtl;
1975                            if (i === incoming) return 'z-30 ' + (fromRight ? 'translate-x-full' : '-translate-x-full');
1976                            if (i === active) return 'z-20 translate-x-0 transition-transform duration-500 ease-in-out';
1977                            if (i === previous) return 'z-10 transition-transform duration-500 ease-in-out ' + (fromRight ? '-translate-x-full' : 'translate-x-full');
1978                            return 'z-0 translate-x-full invisible';
1979                        }
1980                        return i === active ? 'opacity-100 z-10 transition-opacity duration-500 ease-in-out' : 'opacity-0 z-0 transition-opacity duration-500 ease-in-out';
1981                    })()"
1982                >
1983                    <div class="relative overflow-hidden lg:rounded-lg md:rounded-lg rounded-lg">
1984                                                                        <img
1985                            src="//cdn1.artcltn.com/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/dsc00925.jpg?w=800"
1986                            alt=""
1987                            class="object-cover lg:rounded-lg md:rounded-lg rounded-lg h-120"
1988                            loading="lazy"
1989                        />
1990                                                                    </div>
1991                                    </div>
1992                                                            <div
1993                    class="w-full col-start-1 row-start-1 flex items-center justify-center "
1994                    x-cloak
1995                    :class="(() => {
1996                        const i = 3;
1997                        if (transition === 'slide') {
1998                            const fromRight = (direction === 'next') !== rtl;
1999                            if (i === incoming) return 'z-30 ' + (fromRight ? 'translate-x-full' : '-translate-x-full');
2000                            if (i === active) return 'z-20 translate-x-0 transition-transform duration-500 ease-in-out';
2001                            if (i === previous) return 'z-10 transition-transform duration-500 ease-in-out ' + (fromRight ? '-translate-x-full' : 'translate-x-full');
2002                            return 'z-0 translate-x-full invisible';
2003                        }
2004                        return i === active ? 'opacity-100 z-10 transition-opacity duration-500 ease-in-out' : 'opacity-0 z-0 transition-opacity duration-500 ease-in-out';
2005                    })()"
2006                >
2007                    <div class="relative overflow-hidden lg:rounded-lg md:rounded-lg rounded-lg">
2008                                                                        <img
2009                            src="//cdn1.artcltn.com/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/dsc00927.jpg?w=800"
2010                            alt=""
2011                            class="object-cover lg:rounded-lg md:rounded-lg rounded-lg h-120"
2012                            loading="lazy"
2013                        />
2014                                                                    </div>
2015                                    </div>
2016                                                            <div
2017                    class="w-full col-start-1 row-start-1 flex items-center justify-center "
2018                    x-cloak
2019                    :class="(() => {
2020                        const i = 4;
2021                        if (transition === 'slide') {
2022                            const fromRight = (direction === 'next') !== rtl;
2023                            if (i === incoming) return 'z-30 ' + (fromRight ? 'translate-x-full' : '-translate-x-full');
2024                            if (i === active) return 'z-20 translate-x-0 transition-transform duration-500 ease-in-out';
2025                            if (i === previous) return 'z-10 transition-transform duration-500 ease-in-out ' + (fromRight ? '-translate-x-full' : 'translate-x-full');
2026                            return 'z-0 translate-x-full invisible';
2027                        }
2028                        return i === active ? 'opacity-100 z-10 transition-opacity duration-500 ease-in-out' : 'opacity-0 z-0 transition-opacity duration-500 ease-in-out';
2029                    })()"
2030                >
2031                    <div class="relative overflow-hidden lg:rounded-lg md:rounded-lg rounded-lg">
2032                                                                        <img
2033                            src="//cdn1.artcltn.com/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/dsc00928.jpg?w=800"
2034                            alt=""
2035                            class="object-cover lg:rounded-lg md:rounded-lg rounded-lg h-120"
2036                            loading="lazy"
2037                        />
2038                                                                    </div>
2039                                    </div>
2040                                                            <div
2041                    class="w-full col-start-1 row-start-1 flex items-center justify-center "
2042                    x-cloak
2043                    :class="(() => {
2044                        const i = 5;
2045                        if (transition === 'slide') {
2046                            const fromRight = (direction === 'next') !== rtl;
2047                            if (i === incoming) return 'z-30 ' + (fromRight ? 'translate-x-full' : '-translate-x-full');
2048                            if (i === active) return 'z-20 translate-x-0 transition-transform duration-500 ease-in-out';
2049                            if (i === previous) return 'z-10 transition-transform duration-500 ease-in-out ' + (fromRight ? '-translate-x-full' : 'translate-x-full');
2050                            return 'z-0 translate-x-full invisible';
2051                        }
2052                        return i === active ? 'opacity-100 z-10 transition-opacity duration-500 ease-in-out' : 'opacity-0 z-0 transition-opacity duration-500 ease-in-out';
2053                    })()"
2054                >
2055                    <div class="relative overflow-hidden lg:rounded-lg md:rounded-lg rounded-lg">
2056                                                                        <img
2057                            src="//cdn1.artcltn.com/storage/13351/a1e4f062-627a-45d3-ae26-681beadadd15/dsc00929.jpg?w=800"
2058                            alt=""
2059                            class="object-cover lg:rounded-lg md:rounded-lg rounded-lg h-120"
2060                            loading="lazy"
2061                        />
2062                                                                    </div>
2063                                    </div>
2064            
2065                            <div @click="rtl ? forward() : prev()"
2066                     class="absolute z-30 left-0 top-1/2 -translate-y-1/2 flex items-center justify-center text-black translate-x-3 rounded-full cursor-pointer bg-white/30 w-14 h-14 hover:bg-white/40"
2067                >
2068                    <svg class="w-6 h-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M15.75 19.5L8.25 12l7.5-7.5" /></svg>
2069                </div>
2070
2071                <div @click="rtl ? prev() : forward()"
2072                     class="absolute z-30 right-0 top-1/2 -translate-y-1/2 flex items-center justify-center text-black -translate-x-3 rounded-full cursor-pointer bg-white/30 w-14 h-14 hover:bg-white/40"
2073                >
2074                    <svg class="w-6 h-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5" /></svg>
2075                </div>
2076                    </div>
2077            </div>
2078</div>
2079</div><div id="c6ab01eb897931" class="component"><div
2080    class="transition-all mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5"
2081    style=""
2082>
2083    <div class="text-option"><p><br></p><p>The live dulcimer was recorded with Schoeps microphones, adding an organic ethnic element that contrasts with the heavier guitars, drums and electronic textures.</p><p><br></p><p>The vocal parts were sung by my kids, adding a personal and organic element to the track and further connecting the music to its thematic inspiration.</p></div>
2084</div>
2085</div><div id="c6ab0243063f60" class="component"><div
2086    class="transition-all mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5"
2087    style=""
2088>
2089    <div class="text-option"><p>Listen to "Eleventh Name Of Ganesha" on spotify:</p><p><a href="https://open.spotify.com/album/5Ke1atU6XM5n6wKkWbbXqR" rel="noopener noreferrer" target="_blank" style="color: rgb(88, 72, 183);">
2089https://open.spotify.com/album/5Ke1atU6XM5n6wKkWbbXqR</a></p><p><br></p><p><br></p></div>
2090</div>
2091</div></div></div>
2092            </div>
2093            
2094        </article>
2095        
2096</div>
2097
2098    </div>
2099                    </div>
2100            <div
2101            class=" column relative  md:w-3/12"
2102            
2103                    >
2104            <div id="c6ab01538caaaa" class="component"><div class="mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5">
2105    <h2>Archives</h2>
2106    <ul class="flex flex-col gap-1 mt-3 link-container">
2107                    <li>
2108                <a
2109                    href="/blog/archive/?month=09&amp;year=2026"
2110                >September 2026 (1)</a>
2111            </li>
2112            </ul>
2113</div>
2114</div><div id="c6ab01538caab0" class="component"><div class="mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5">
2115    <h2>Tags</h2>
2116    <ul class="flex flex-col gap-1 mt-3 link-container">
2117                    <li>
2118                <a
2119                    href="/blog/t/recording-process"
2120                >recording-process (1)</a>
2121            </li>
2122            </ul>
2123</div>
2124</div>
2125                    </div>
2126    </div>
2127</div>
2128
2129            </div>
2130</section>
2131</div>
2132</div>
2133</div>
2134        </main>
2135        <footer class="main-footer">
2136            <div class="footer-inner">
2137                <div id="c6a195aefe5b16" class="component"><section
2138    id="page-section"
2139    style="--text-color: #333333; --background-color: #0a0a0a; --min-height-desktop: 200px; --min-height-tablet: 200px; --min-height-mobile: 200px;"
2140    class="page-section transition-all z-10 relative text-(--text-color) custom-text-color bg-(--background-color) bg-type-color hover:bg-type-none group-hover:bg-type-none lg:rounded-none md:rounded-none rounded-none pl-4 pr-4 md:pl-0 md:pr-0 lg:pl-0 lg:pr-0 lg:min-h-(--min-height-desktop) md:min-h-(--min-height-tablet) min-h-(--min-height-mobile) content-center"
2141>
2142    
2143    
2144    <div
2145        class="section-inner   relative transition-all duration-500 mx-auto grid lg:max-w-5xl md:max-w-5xl max-w-5xl lg:gap-3 md:gap-2 gap-1"
2146        style="padding-block: 48px;"
2147                
2148    >
2149        <div id="c6a2996ce8cd05" class="component"><div
2150    class=""
2151    style=""
2152>
2153    <div
2154        class="embed-code-component transition-all overflow-hidden lg:w-full md:w-full w-full lg:rounded-lg md:rounded-lg rounded-lg mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5"
2155        style="text-align: left; "
2156    >
2157                    <div class="ml-embedded" data-form="bx6rct"></div>
2158                    </div>
2159</div>
2160</div><div id="c6a195b5d3c335" class="component"><div
2161    class="transition-all mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5"
2162    style=""
2163>
2164    <div class="text-option"><div class="ql-align-center"><strong><span style="color:#d5d5d5;">Dark Intervals | Copyright &reg; 2026 | Powered By BadString Studio LTD<br />&#8203;All Rights Reserved</span></strong></div></div>
2165</div>
2166</div><div id="c6a195b5d3c401" class="component"><div
2167    class="transition-all mt-2.5 mb-2.5 md:mt-2.5 md:mb-2.5 lg:mt-2.5 lg:mb-2.5"
2168    style=""
2169>
2170    <div class="text-option"><p class="ql-align-center"><a href="/about" style="color: rgb(213, 213, 213);">ABOUT</a><span style="color: rgb(213, 213, 213);">&nbsp; |&nbsp; </span><a href="/contact" style="color: rgb(213, 213, 213);">CONTACT</a><span style="color: rgb(213, 213, 213);">&nbsp; |&nbsp;</span><a href="/eula" style="color: rgb(213, 213, 213);"> EULA/TERMS</a><span style="color: rgb(213, 213, 213);">&nbsp; |&nbsp; </span><a href="/privacy-policy" style="color: rgb(213, 213, 213);">PRIVACY POLICY</a><span style="color: rgb(213, 213, 213);">&nbsp; |&nbsp; </span><a href="/faq" style="color: rgb(213, 213, 213);">FAQ</a><span style="color: rgb(213, 213, 213);">​</span></p></div>
2171</div>
2172</div>
2173
2174            </div>
2175</section>
2176</div>
2177            </div>
2178        </footer>
2179    </div>
2180</div>
2181
2182<script>
2183// Listen for FastSpring checkout completion
2184window.addEventListener("fs.order.completed", function(event) {
2185  try {
2186    // Extract order details from FastSpring
2187    const order = event.detail;
2188    const amount = order.total || 0;      // order total amount
2189    const currency = order.currency || "USD"; 
2190
2191    // Fire Meta Pixel Purchase event
2192    fbq('track', 'Purchase', {
2193      value: amount,
2194      currency: currency
2195    });
2196
2197    console.log("Meta Pixel Purchase event sent:", amount, currency);
2198  } catch (e) {
2199    console.error("Error tracking FastSpring purchase with Meta Pixel:", e);
2200  }
2201});
2202</script>
2202<div
2203    x-transition
2204    x-show="$store.commerceCart.totalQuantity > 0 && !$store.nav.mobile"
2205    x-data
2206    class="z-50 fixed flex p-5 right-0 bottom-0"
2207>
2208    <a href="/c/cart">
2209        <span title="Cart" class="art-cart-button transition-all flex p-2 rounded-full hover:scale-110 border border-(--color-text-dark-bg-heading) bg-(--color-primary-main) text-(--color-text-dark-bg-heading)">
2210            <svg class="w-6" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" data-slot="icon">
2211  <path d="M2.25 2.25a.75.75 0 0 0 0 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 0 0-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 0 0 0-1.5H5.378A2.25 2.25 0 0 1 7.5 15h11.218a.75.75 0 0 0 .674-.421 60.358 60.358 0 0 0 2.96-7.228.75.75 0 0 0-.525-.965A60.864 60.864 0 0 0 5.68 4.509l-.232-.867A1.875 1.875 0 0 0 3.636 2.25H2.25ZM3.75 20.25a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0ZM16.5 20.25a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Z"/>
2212</svg>
2213            <p class="pl-1"
2214                x-text="$store.commerceCart.totalQuantity">
2215            </p>
2216        </span>
2217    </a>
2218</div>
2219</body>
2220
2221</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.