diff --git a/dist/_app/immutable/assets/0.x88-ymMa.css b/dist/_app/immutable/assets/0.x88-ymMa.css new file mode 100644 index 0000000..157781c --- /dev/null +++ b/dist/_app/immutable/assets/0.x88-ymMa.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root,[data-theme]{background-color:var(--fallback-b1,oklch(var(--b1)/1));color:var(--fallback-bc,oklch(var(--bc)/1))}@supports not (color: oklch(0 0 0)){:root{color-scheme:light;--fallback-p: #491eff;--fallback-pc: #d4dbff;--fallback-s: #ff41c7;--fallback-sc: #fff9fc;--fallback-a: #00cfbd;--fallback-ac: #00100d;--fallback-n: #2b3440;--fallback-nc: #d7dde4;--fallback-b1: #ffffff;--fallback-b2: #e5e6e6;--fallback-b3: #e5e6e6;--fallback-bc: #1f2937;--fallback-in: #00b3f0;--fallback-inc: #000000;--fallback-su: #00ca92;--fallback-suc: #000000;--fallback-wa: #ffc22d;--fallback-wac: #000000;--fallback-er: #ff6f70;--fallback-erc: #000000}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--fallback-p: #7582ff;--fallback-pc: #050617;--fallback-s: #ff71cf;--fallback-sc: #190211;--fallback-a: #00c7b5;--fallback-ac: #000e0c;--fallback-n: #2a323c;--fallback-nc: #a6adbb;--fallback-b1: #1d232a;--fallback-b2: #191e24;--fallback-b3: #15191e;--fallback-bc: #a6adbb;--fallback-in: #00b3f0;--fallback-inc: #000000;--fallback-su: #00ca92;--fallback-suc: #000000;--fallback-wa: #ffc22d;--fallback-wac: #000000;--fallback-er: #ff6f70;--fallback-erc: #000000}}}html{-webkit-tap-highlight-color:transparent}:root{color-scheme:light;--in: .7206 .191 231.6;--su: 64.8% .15 160;--wa: .8471 .199 83.87;--er: .7176 .221 22.18;--pc: .89824 .06192 275.75;--ac: .15352 .0368 183.61;--inc: 0 0 0;--suc: 0 0 0;--wac: 0 0 0;--erc: 0 0 0;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--p: .4912 .3096 275.75;--s: .6971 .329 342.55;--sc: .9871 .0106 342.55;--a: .7676 .184 183.61;--n: .321785 .02476 255.701624;--nc: .894994 .011585 252.096176;--b1: 1 0 0;--b2: .961151 0 0;--b3: .924169 .00108 197.137559;--bc: .278078 .029596 256.847952}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--in: .7206 .191 231.6;--su: 64.8% .15 160;--wa: .8471 .199 83.87;--er: .7176 .221 22.18;--pc: .13138 .0392 275.75;--sc: .1496 .052 342.55;--ac: .14902 .0334 183.61;--inc: 0 0 0;--suc: 0 0 0;--wac: 0 0 0;--erc: 0 0 0;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--p: .6569 .196 275.75;--s: .748 .26 342.55;--a: .7451 .167 183.61;--n: .313815 .021108 254.139175;--nc: .746477 .0216 264.435964;--b1: .253267 .015896 252.417568;--b2: .232607 .013807 253.100675;--b3: .211484 .01165 254.087939;--bc: .746477 .0216 264.435964}}[data-theme=light]{color-scheme:light;--in: .7206 .191 231.6;--su: 64.8% .15 160;--wa: .8471 .199 83.87;--er: .7176 .221 22.18;--pc: .89824 .06192 275.75;--ac: .15352 .0368 183.61;--inc: 0 0 0;--suc: 0 0 0;--wac: 0 0 0;--erc: 0 0 0;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--p: .4912 .3096 275.75;--s: .6971 .329 342.55;--sc: .9871 .0106 342.55;--a: .7676 .184 183.61;--n: .321785 .02476 255.701624;--nc: .894994 .011585 252.096176;--b1: 1 0 0;--b2: .961151 0 0;--b3: .924169 .00108 197.137559;--bc: .278078 .029596 256.847952}[data-theme=dark]{color-scheme:dark;--in: .7206 .191 231.6;--su: 64.8% .15 160;--wa: .8471 .199 83.87;--er: .7176 .221 22.18;--pc: .13138 .0392 275.75;--sc: .1496 .052 342.55;--ac: .14902 .0334 183.61;--inc: 0 0 0;--suc: 0 0 0;--wac: 0 0 0;--erc: 0 0 0;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--p: .6569 .196 275.75;--s: .748 .26 342.55;--a: .7451 .167 183.61;--n: .313815 .021108 254.139175;--nc: .746477 .0216 264.435964;--b1: .253267 .015896 252.417568;--b2: .232607 .013807 253.100675;--b3: .211484 .01165 254.087939;--bc: .746477 .0216 264.435964}a{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}p{font-size:1.25rem;line-height:1.75rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}li{margin-left:2rem;list-style-type:disc;padding-top:.25rem;padding-bottom:.25rem;font-size:1.25rem;line-height:1.75rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}h1{border-bottom-width:2px;--tw-border-opacity: 1;border-bottom-color:rgb(156 163 175 / var(--tw-border-opacity));background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #fdba74 var(--tw-gradient-from-position);--tw-gradient-to: rgb(253 186 116 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #fed7aa var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;padding-top:.5rem;padding-bottom:.5rem;font-size:1.875rem;line-height:2.25rem;font-weight:800;color:transparent}@media (prefers-color-scheme: dark){h1{--tw-border-opacity: 1;border-bottom-color:rgb(255 255 255 / var(--tw-border-opacity))}}h2{margin-bottom:1rem;margin-top:1rem;border-bottom-width:2px;--tw-border-opacity: 1;border-bottom-color:rgb(156 163 175 / var(--tw-border-opacity));background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #fdba74 var(--tw-gradient-from-position);--tw-gradient-to: rgb(253 186 116 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #fed7aa var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;padding-top:.5rem;padding-bottom:.5rem;font-size:1.5rem;line-height:2rem;font-weight:800;color:transparent}@media (prefers-color-scheme: dark){h2{--tw-border-opacity: 1;border-bottom-color:rgb(255 255 255 / var(--tw-border-opacity))}}h3{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #fed7aa var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 215 170 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #fdba74 var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;padding-top:.5rem;padding-bottom:.5rem;padding-right:1rem;text-align:right;font-size:1.5rem;line-height:2rem;font-weight:800;color:transparent;text-decoration-line:underline}h4{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #fed7aa var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 215 170 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #fdba74 var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;padding-top:.5rem;padding-bottom:.5rem;padding-right:1rem;text-align:right;font-size:1.5rem;line-height:2rem;font-weight:800;color:transparent;text-decoration-line:underline}pre{margin-top:1rem;margin-bottom:1rem;overflow-x:scroll;border-left-width:2px;--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));padding:.5rem .5rem .5rem 1rem}pre::-webkit-scrollbar{display:none}pre{-ms-overflow-style:none;scrollbar-width:none}ul{margin-top:.5rem;margin-bottom:.5rem}blockquote{margin:1rem;border-left-width:4px;--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity));padding:1rem;font-size:1.25rem;line-height:1.75rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.alert{display:grid;width:100%;grid-auto-flow:row;align-content:flex-start;align-items:center;justify-items:center;gap:1rem;text-align:center;border-radius:var(--rounded-box, 1rem);border-width:1px;--tw-border-opacity: 1;border-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));padding:1rem;--tw-text-opacity: 1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));--alert-bg: var(--fallback-b2,oklch(var(--b2)/1));--alert-bg-mix: var(--fallback-b1,oklch(var(--b1)/1));background-color:var(--alert-bg)}@media (min-width: 640px){.alert{grid-auto-flow:column;grid-template-columns:auto minmax(auto,1fr);justify-items:start;text-align:start}}@media (hover:hover){.label a:hover{--tw-text-opacity: 1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)))}.menu li>*:not(ul):not(.menu-title):not(details):active,.menu li>*:not(ul):not(.menu-title):not(details).active,.menu li>details>summary:active{--tw-bg-opacity: 1;background-color:var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));--tw-text-opacity: 1;color:var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)))}.table tr.hover:hover,.table tr.hover:nth-child(2n):hover{--tw-bg-opacity: 1;background-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)))}.table-zebra tr.hover:hover,.table-zebra tr.hover:nth-child(2n):hover{--tw-bg-opacity: 1;background-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)))}}.btn{display:inline-flex;height:3rem;min-height:3rem;flex-shrink:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:center;border-radius:var(--rounded-btn, .5rem);border-color:transparent;border-color:oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity));padding-left:1rem;padding-right:1rem;text-align:center;font-size:.875rem;line-height:1em;gap:.5rem;font-weight:600;text-decoration-line:none;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);border-width:var(--border-btn, 1px);animation:button-pop var(--animation-btn, .25s) ease-out;transition-property:color,background-color,border-color,opacity,box-shadow,transform;--tw-text-opacity: 1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline-color:var(--fallback-bc,oklch(var(--bc)/1));background-color:oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity));--tw-bg-opacity: 1;--tw-border-opacity: 1}.btn-disabled,.btn[disabled],.btn:disabled{pointer-events:none}:where(.btn:is(input[type=checkbox])),:where(.btn:is(input[type=radio])){width:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn:is(input[type=checkbox]):after,.btn:is(input[type=radio]):after{--tw-content: attr(aria-label);content:var(--tw-content)}.checkbox{flex-shrink:0;--chkbg: var(--fallback-bc,oklch(var(--bc)/1));--chkfg: var(--fallback-b1,oklch(var(--b1)/1));height:1.5rem;width:1.5rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--rounded-btn, .5rem);border-width:1px;border-color:var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));--tw-border-opacity: .2}.drawer{position:relative;display:grid;grid-auto-columns:max-content auto;width:100%}.drawer-content{grid-column-start:2;grid-row-start:1;min-width:0px}.drawer-side{pointer-events:none;position:fixed;inset-inline-start:0px;top:0;grid-column-start:1;grid-row-start:1;display:grid;width:100%;grid-template-columns:repeat(1,minmax(0,1fr));grid-template-rows:repeat(1,minmax(0,1fr));align-items:flex-start;justify-items:start;overflow-y:auto;overscroll-behavior:contain;height:100vh;height:100dvh}.drawer-side>.drawer-overlay{position:sticky;top:0;place-self:stretch;cursor:pointer;background-color:transparent;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);transition-duration:.2s}.drawer-side>*{grid-column-start:1;grid-row-start:1}.drawer-side>*:not(.drawer-overlay){transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);transition-duration:.3s;will-change:transform;transform:translate(-100%)}[dir=rtl] .drawer-side>*:not(.drawer-overlay){transform:translate(100%)}.drawer-toggle{position:fixed;height:0px;width:0px;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0}.drawer-toggle:checked~.drawer-side{pointer-events:auto;visibility:visible}.drawer-toggle:checked~.drawer-side>*:not(.drawer-overlay){transform:translate(0)}.drawer-end .drawer-toggle~.drawer-content{grid-column-start:1}.drawer-end .drawer-toggle~.drawer-side{grid-column-start:2;justify-items:end}.drawer-end .drawer-toggle~.drawer-side>*:not(.drawer-overlay){transform:translate(100%)}[dir=rtl] .drawer-end .drawer-toggle~.drawer-side>*:not(.drawer-overlay){transform:translate(-100%)}.drawer-end .drawer-toggle:checked~.drawer-side>*:not(.drawer-overlay){transform:translate(0)}@media (hover: hover){.btn:hover{--tw-border-opacity: 1;border-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity)));--tw-bg-opacity: 1;background-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)))}@supports (color: color-mix(in oklab,black,black)){.btn:hover{background-color:color-mix(in oklab,oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%,black);border-color:color-mix(in oklab,oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%,black)}}@supports not (color: oklch(0 0 0)){.btn:hover{background-color:var(--btn-color, var(--fallback-b2));border-color:var(--btn-color, var(--fallback-b2))}}.btn.glass:hover{--glass-opacity: 25%;--glass-border-opacity: 15%}.btn-outline.btn-primary:hover{--tw-text-opacity: 1;color:var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)))}@supports (color: color-mix(in oklab,black,black)){.btn-outline.btn-primary:hover{background-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black);border-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black)}}.btn-disabled:hover,.btn[disabled]:hover,.btn:disabled:hover{--tw-border-opacity: 0;background-color:var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));--tw-bg-opacity: .2;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));--tw-text-opacity: .2}@supports (color: color-mix(in oklab,black,black)){.btn:is(input[type=checkbox]:checked):hover,.btn:is(input[type=radio]:checked):hover{background-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black);border-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black)}}:where(.menu li:not(.menu-title):not(.disabled)>*:not(ul):not(details):not(.menu-title)):not(.active):hover,:where(.menu li:not(.menu-title):not(.disabled)>details>summary:not(.menu-title)):not(.active):hover{cursor:pointer;outline:2px solid transparent;outline-offset:2px}@supports (color: oklch(0 0 0)){:where(.menu li:not(.menu-title):not(.disabled)>*:not(ul):not(details):not(.menu-title)):not(.active):hover,:where(.menu li:not(.menu-title):not(.disabled)>details>summary:not(.menu-title)):not(.active):hover{background-color:var(--fallback-bc,oklch(var(--bc)/.1))}}}.footer{display:grid;width:100%;grid-auto-flow:row;place-items:start;-moz-column-gap:1rem;column-gap:1rem;row-gap:2.5rem;font-size:.875rem;line-height:1.25rem}.footer>*{display:grid;place-items:start;gap:.5rem}@media (min-width: 48rem){.footer{grid-auto-flow:column}.footer-center{grid-auto-flow:row dense}}.label{display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding:.5rem .25rem}.input{flex-shrink:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:3rem;padding-left:1rem;padding-right:1rem;font-size:1rem;line-height:2;line-height:1.5rem;border-radius:var(--rounded-btn, .5rem);border-width:1px;border-color:transparent;--tw-bg-opacity: 1;background-color:var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)))}.link{cursor:pointer;text-decoration-line:underline}.menu{display:flex;flex-direction:column;flex-wrap:wrap;font-size:.875rem;line-height:1.25rem;padding:.5rem}.menu :where(li ul){position:relative;white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem}.menu :where(li:not(.menu-title)>*:not(ul):not(details):not(.menu-title)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){display:grid;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;grid-auto-columns:minmax(auto,max-content) auto max-content;-webkit-user-select:none;-moz-user-select:none;user-select:none}.menu li.disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--fallback-bc,oklch(var(--bc)/.3))}.menu :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}:where(.menu li){position:relative;display:flex;flex-shrink:0;flex-direction:column;flex-wrap:wrap;align-items:stretch}:where(.menu li) .badge{justify-self:end}.btm-nav>*:where(.active){border-top-width:2px;--tw-bg-opacity: 1;background-color:var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)))}.btm-nav>* .label{font-size:1rem;line-height:1.5rem}.btn:active:hover,.btn:active:focus{animation:button-pop 0s ease-out;transform:scale(var(--btn-focus-scale, .97))}@supports not (color: oklch(0 0 0)){.btn{background-color:var(--btn-color, var(--fallback-b2));border-color:var(--btn-color, var(--fallback-b2))}.btn-primary{--btn-color: var(--fallback-p)}}@supports (color: color-mix(in oklab,black,black)){.btn-outline.btn-primary.btn-active{background-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black);border-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black)}}.btn:focus-visible{outline-style:solid;outline-width:2px;outline-offset:2px}.btn-primary{--tw-text-opacity: 1;color:var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));outline-color:var(--fallback-p,oklch(var(--p)/1))}@supports (color: oklch(0 0 0)){.btn-primary{--btn-color: var(--p)}}.btn.glass{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline-color:currentColor}.btn.glass.btn-active{--glass-opacity: 25%;--glass-border-opacity: 15%}.btn-outline.btn-primary{--tw-text-opacity: 1;color:var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity)))}.btn-outline.btn-primary.btn-active{--tw-text-opacity: 1;color:var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)))}.btn.btn-disabled,.btn[disabled],.btn:disabled{--tw-border-opacity: 0;background-color:var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));--tw-bg-opacity: .2;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));--tw-text-opacity: .2}.btn:is(input[type=checkbox]:checked),.btn:is(input[type=radio]:checked){--tw-border-opacity: 1;border-color:var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity)));--tw-bg-opacity: 1;background-color:var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity)));--tw-text-opacity: 1;color:var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)))}.btn:is(input[type=checkbox]:checked):focus-visible,.btn:is(input[type=radio]:checked):focus-visible{outline-color:var(--fallback-p,oklch(var(--p)/1))}@keyframes button-pop{0%{transform:scale(var(--btn-focus-scale, .98))}40%{transform:scale(1.02)}to{transform:scale(1)}}.checkbox:focus{box-shadow:none}.checkbox:focus-visible{outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:var(--fallback-bc,oklch(var(--bc)/1))}.checkbox:checked,.checkbox[checked=true],.checkbox[aria-checked=true]{background-repeat:no-repeat;animation:checkmark var(--animation-input, .2s) ease-out;background-color:var(--chkbg);background-image:linear-gradient(-45deg,transparent 65%,var(--chkbg) 65.99%),linear-gradient(45deg,transparent 75%,var(--chkbg) 75.99%),linear-gradient(-45deg,var(--chkbg) 40%,transparent 40.99%),linear-gradient(45deg,var(--chkbg) 30%,var(--chkfg) 30.99%,var(--chkfg) 40%,transparent 40.99%),linear-gradient(-45deg,var(--chkfg) 50%,var(--chkbg) 50.99%)}.checkbox:indeterminate{--tw-bg-opacity: 1;background-color:var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));background-repeat:no-repeat;animation:checkmark var(--animation-input, .2s) ease-out;background-image:linear-gradient(90deg,transparent 80%,var(--chkbg) 80%),linear-gradient(-90deg,transparent 80%,var(--chkbg) 80%),linear-gradient(0deg,var(--chkbg) 43%,var(--chkfg) 43%,var(--chkfg) 57%,var(--chkbg) 57%)}.checkbox:disabled{cursor:not-allowed;border-color:transparent;--tw-bg-opacity: 1;background-color:var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));opacity:.2}@keyframes checkmark{0%{background-position-y:5px}50%{background-position-y:-2px}to{background-position-y:0}}.drawer-toggle:checked~.drawer-side>.drawer-overlay{background-color:#0006}.drawer-toggle:focus-visible~.drawer-content label.drawer-button{outline-style:solid;outline-width:2px;outline-offset:2px}.input input:focus{outline:2px solid transparent;outline-offset:2px}.input[list]::-webkit-calendar-picker-indicator{line-height:1em}.input:focus,.input:focus-within{box-shadow:none;border-color:var(--fallback-bc,oklch(var(--bc)/.2));outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:var(--fallback-bc,oklch(var(--bc)/.2))}.input-disabled,.input:disabled,.input[disabled]{cursor:not-allowed;--tw-border-opacity: 1;border-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));--tw-bg-opacity: 1;background-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));color:var(--fallback-bc,oklch(var(--bc)/.4))}.input-disabled::-moz-placeholder,.input:disabled::-moz-placeholder,.input[disabled]::-moz-placeholder{color:var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));--tw-placeholder-opacity: .2}.input-disabled::placeholder,.input:disabled::placeholder,.input[disabled]::placeholder{color:var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));--tw-placeholder-opacity: .2}.input::-webkit-date-and-time-value{text-align:inherit}.link:focus{outline:2px solid transparent;outline-offset:2px}.link:focus-visible{outline:2px solid currentColor;outline-offset:2px}:where(.menu li:empty){--tw-bg-opacity: 1;background-color:var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));opacity:.1;margin:.5rem 1rem;height:1px}.menu :where(li ul):before{position:absolute;bottom:.75rem;inset-inline-start:0px;top:.75rem;width:1px;--tw-bg-opacity: 1;background-color:var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));opacity:.1;content:""}.menu :where(li:not(.menu-title)>*:not(ul):not(details):not(.menu-title)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--rounded-btn, .5rem);padding:.5rem 1rem;text-align:start;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);transition-duration:.2s;text-wrap:balance}:where(.menu li:not(.menu-title):not(.disabled)>*:not(ul):not(details):not(.menu-title)):not(summary):not(.active).focus,:where(.menu li:not(.menu-title):not(.disabled)>*:not(ul):not(details):not(.menu-title)):not(summary):not(.active):focus,:where(.menu li:not(.menu-title):not(.disabled)>*:not(ul):not(details):not(.menu-title)):is(summary):not(.active):focus-visible,:where(.menu li:not(.menu-title):not(.disabled)>details>summary:not(.menu-title)):not(summary):not(.active).focus,:where(.menu li:not(.menu-title):not(.disabled)>details>summary:not(.menu-title)):not(summary):not(.active):focus,:where(.menu li:not(.menu-title):not(.disabled)>details>summary:not(.menu-title)):is(summary):not(.active):focus-visible{cursor:pointer;background-color:var(--fallback-bc,oklch(var(--bc)/.1));--tw-text-opacity: 1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));outline:2px solid transparent;outline-offset:2px}.menu li>*:not(ul):not(.menu-title):not(details):active,.menu li>*:not(ul):not(.menu-title):not(details).active,.menu li>details>summary:active{--tw-bg-opacity: 1;background-color:var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));--tw-text-opacity: 1;color:var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)))}.menu :where(li>details>summary)::-webkit-details-marker{display:none}.menu :where(li>details>summary):after,.menu :where(li>.menu-dropdown-toggle):after{justify-self:end;display:block;margin-top:-.5rem;height:.5rem;width:.5rem;transform:rotate(45deg);transition-property:transform,margin-top;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);content:"";transform-origin:75% 75%;box-shadow:2px 2px;pointer-events:none}.menu :where(li>details[open]>summary):after,.menu :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{transform:rotate(225deg);margin-top:0}.mockup-phone .display{overflow:hidden;border-radius:40px;margin-top:-25px}.mockup-browser .mockup-browser-toolbar .input{position:relative;margin-left:auto;margin-right:auto;display:block;height:1.75rem;width:24rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--tw-bg-opacity: 1;background-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));padding-left:2rem;direction:ltr}.mockup-browser .mockup-browser-toolbar .input:before{content:"";position:absolute;left:.5rem;top:50%;aspect-ratio:1 / 1;height:.75rem;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;border-width:2px;border-color:currentColor;opacity:.6}.mockup-browser .mockup-browser-toolbar .input:after{content:"";position:absolute;left:1.25rem;top:50%;height:.5rem;--tw-translate-y: 25%;--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;border-width:1px;border-color:currentColor;opacity:.6}@keyframes modal-pop{0%{opacity:0}}@keyframes progress-loading{50%{background-position-x:-115%}}@keyframes radiomark{0%{box-shadow:0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset,0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset}50%{box-shadow:0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset,0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset}to{box-shadow:0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset,0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset}}@keyframes rating-pop{0%{transform:translateY(-.125em)}40%{transform:translateY(-.125em)}to{transform:translateY(0)}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}.table tr.active,.table tr.active:nth-child(2n),.table-zebra tbody tr:nth-child(2n){--tw-bg-opacity: 1;background-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)))}.table-zebra tr.active,.table-zebra tr.active:nth-child(2n),.table-zebra-zebra tbody tr:nth-child(2n){--tw-bg-opacity: 1;background-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)))}@keyframes toast-pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.btm-nav-xs>*:where(.active){border-top-width:1px}.btm-nav-sm>*:where(.active){border-top-width:2px}.btm-nav-md>*:where(.active){border-top-width:2px}.btm-nav-lg>*:where(.active){border-top-width:4px}.btn-xs{height:1.5rem;min-height:1.5rem;padding-left:.5rem;padding-right:.5rem;font-size:.75rem}.btn-square:where(.btn-xs){height:1.5rem;width:1.5rem;padding:0}.btn-circle:where(.btn-xs){height:1.5rem;width:1.5rem;border-radius:9999px;padding:0}.drawer-open>.drawer-toggle{display:none}.drawer-open>.drawer-toggle~.drawer-side{pointer-events:auto;visibility:visible;position:sticky;display:block;width:auto;overscroll-behavior:auto}.drawer-open>.drawer-toggle~.drawer-side>*:not(.drawer-overlay){transform:translate(0)}[dir=rtl] .drawer-open>.drawer-toggle~.drawer-side>*:not(.drawer-overlay){transform:translate(0)}.drawer-open>.drawer-toggle:checked~.drawer-side{pointer-events:auto;visibility:visible}.drawer-open>.drawer-toggle~.drawer-side>.drawer-overlay{cursor:default;background-color:transparent}.m-0{margin:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.ml-0{margin-left:0}.ml-4{margin-left:1rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-24{height:6rem}.h-48{height:12rem}.h-6{height:1.5rem}.h-96{height:24rem}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.w-24{width:6rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-80{width:20rem}.w-full{width:100%}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-full{max-width:100%}.max-w-sm{max-width:24rem}.shrink-0{flex-shrink:0}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.content-center{align-content:center}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-none{border-style:none}.bg-neutral-600{--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity))}.bg-neutral-700{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.bg-red-800{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-orange-300{--tw-gradient-from: #fdba74 var(--tw-gradient-from-position);--tw-gradient-to: rgb(253 186 116 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-700{--tw-gradient-from: #c2410c var(--tw-gradient-from-position);--tw-gradient-to: rgb(194 65 12 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-blue-500{--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #3b82f6 var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-green-400{--tw-gradient-to: #4ade80 var(--tw-gradient-to-position)}.to-orange-200{--tw-gradient-to: #fed7aa var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.stroke-current{stroke:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-4{padding:1rem}.p-5{padding:1.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-8{padding-right:2rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.text-right{text-align:right}.indent-4{text-indent:1rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.uppercase{text-transform:uppercase}.leading-normal{line-height:1.5}.tracking-tight{letter-spacing:-.025em}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-orange-300{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.animate-gradient{background-size:300%;animation:animatedgradient 6s ease infinite alternate}@keyframes animatedgradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.sideli{margin-left:0;font-size:1.25rem;line-height:1.75rem}.sidemenu-style{min-height:100%;width:10rem;overflow:hidden;--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity));padding:1rem;--tw-text-opacity: 1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)))}.footer-style{margin-left:0;justify-content:space-between;--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity));padding-left:0;padding-bottom:1rem;padding-top:1rem;padding-right:4rem}.mobile-menu-link{display:flex;--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.mobile-menu-link:hover{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}@media (min-width: 768px){.mobile-menu-link{display:none}}.sidebar-link{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.sidebar-link:hover{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}.titlebar-link{display:flex;--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.titlebar-link:hover{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}@media (min-width: 768px){.titlebar-link{display:none}}.website-title{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #fdba74 var(--tw-gradient-from-position);--tw-gradient-to: rgb(253 186 116 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(252 165 165 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #fca5a5 var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: #fed7aa var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;font-size:1.875rem;line-height:2.25rem;font-weight:700;text-transform:uppercase;color:transparent;background-size:300%;animation:animatedgradient 6s ease infinite alternate}@media (min-width: 1024px){.lg\:drawer-open>.drawer-toggle{display:none}.lg\:drawer-open>.drawer-toggle~.drawer-side{pointer-events:auto;visibility:visible;position:sticky;display:block;width:auto;overscroll-behavior:auto}.lg\:drawer-open>.drawer-toggle~.drawer-side>*:not(.drawer-overlay){transform:translate(0)}[dir=rtl] .lg\:drawer-open>.drawer-toggle~.drawer-side>*:not(.drawer-overlay){transform:translate(0)}.lg\:drawer-open>.drawer-toggle:checked~.drawer-side{pointer-events:auto;visibility:visible}.lg\:drawer-open>.drawer-toggle~.drawer-side>.drawer-overlay{cursor:default;background-color:transparent}}.hover\:bg-neutral-700:hover{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.hover\:text-gray-400:hover{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.focus\:text-gray-400:focus{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width: 640px){.sm\:grid{display:grid}}@media (min-width: 768px){.md\:mt-0{margin-top:0}.md\:mt-6{margin-top:1.5rem}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-auto{height:auto}.md\:w-48{width:12rem}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-end{align-items:flex-end}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2.5rem * var(--tw-space-x-reverse));margin-left:calc(2.5rem * calc(1 - var(--tw-space-x-reverse)))}.md\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.md\:rounded-none{border-radius:0}.md\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.md\:px-12{padding-left:3rem;padding-right:3rem}}@media (min-width: 1024px){.lg\:grid{display:grid}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:px-16{padding-left:4rem;padding-right:4rem}.lg\:px-24{padding-left:6rem;padding-right:6rem}}@media (prefers-color-scheme: dark){.dark\:border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}} diff --git a/dist/_app/immutable/assets/0.x88-ymMa.css.br b/dist/_app/immutable/assets/0.x88-ymMa.css.br new file mode 100644 index 0000000..1349fac Binary files /dev/null and b/dist/_app/immutable/assets/0.x88-ymMa.css.br differ diff --git a/dist/_app/immutable/assets/0.x88-ymMa.css.gz b/dist/_app/immutable/assets/0.x88-ymMa.css.gz new file mode 100644 index 0000000..8b558b6 Binary files /dev/null and b/dist/_app/immutable/assets/0.x88-ymMa.css.gz differ diff --git a/dist/_app/immutable/assets/_layout.x88-ymMa.css b/dist/_app/immutable/assets/_layout.x88-ymMa.css new file mode 100644 index 0000000..157781c --- /dev/null +++ b/dist/_app/immutable/assets/_layout.x88-ymMa.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root,[data-theme]{background-color:var(--fallback-b1,oklch(var(--b1)/1));color:var(--fallback-bc,oklch(var(--bc)/1))}@supports not (color: oklch(0 0 0)){:root{color-scheme:light;--fallback-p: #491eff;--fallback-pc: #d4dbff;--fallback-s: #ff41c7;--fallback-sc: #fff9fc;--fallback-a: #00cfbd;--fallback-ac: #00100d;--fallback-n: #2b3440;--fallback-nc: #d7dde4;--fallback-b1: #ffffff;--fallback-b2: #e5e6e6;--fallback-b3: #e5e6e6;--fallback-bc: #1f2937;--fallback-in: #00b3f0;--fallback-inc: #000000;--fallback-su: #00ca92;--fallback-suc: #000000;--fallback-wa: #ffc22d;--fallback-wac: #000000;--fallback-er: #ff6f70;--fallback-erc: #000000}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--fallback-p: #7582ff;--fallback-pc: #050617;--fallback-s: #ff71cf;--fallback-sc: #190211;--fallback-a: #00c7b5;--fallback-ac: #000e0c;--fallback-n: #2a323c;--fallback-nc: #a6adbb;--fallback-b1: #1d232a;--fallback-b2: #191e24;--fallback-b3: #15191e;--fallback-bc: #a6adbb;--fallback-in: #00b3f0;--fallback-inc: #000000;--fallback-su: #00ca92;--fallback-suc: #000000;--fallback-wa: #ffc22d;--fallback-wac: #000000;--fallback-er: #ff6f70;--fallback-erc: #000000}}}html{-webkit-tap-highlight-color:transparent}:root{color-scheme:light;--in: .7206 .191 231.6;--su: 64.8% .15 160;--wa: .8471 .199 83.87;--er: .7176 .221 22.18;--pc: .89824 .06192 275.75;--ac: .15352 .0368 183.61;--inc: 0 0 0;--suc: 0 0 0;--wac: 0 0 0;--erc: 0 0 0;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--p: .4912 .3096 275.75;--s: .6971 .329 342.55;--sc: .9871 .0106 342.55;--a: .7676 .184 183.61;--n: .321785 .02476 255.701624;--nc: .894994 .011585 252.096176;--b1: 1 0 0;--b2: .961151 0 0;--b3: .924169 .00108 197.137559;--bc: .278078 .029596 256.847952}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--in: .7206 .191 231.6;--su: 64.8% .15 160;--wa: .8471 .199 83.87;--er: .7176 .221 22.18;--pc: .13138 .0392 275.75;--sc: .1496 .052 342.55;--ac: .14902 .0334 183.61;--inc: 0 0 0;--suc: 0 0 0;--wac: 0 0 0;--erc: 0 0 0;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--p: .6569 .196 275.75;--s: .748 .26 342.55;--a: .7451 .167 183.61;--n: .313815 .021108 254.139175;--nc: .746477 .0216 264.435964;--b1: .253267 .015896 252.417568;--b2: .232607 .013807 253.100675;--b3: .211484 .01165 254.087939;--bc: .746477 .0216 264.435964}}[data-theme=light]{color-scheme:light;--in: .7206 .191 231.6;--su: 64.8% .15 160;--wa: .8471 .199 83.87;--er: .7176 .221 22.18;--pc: .89824 .06192 275.75;--ac: .15352 .0368 183.61;--inc: 0 0 0;--suc: 0 0 0;--wac: 0 0 0;--erc: 0 0 0;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--p: .4912 .3096 275.75;--s: .6971 .329 342.55;--sc: .9871 .0106 342.55;--a: .7676 .184 183.61;--n: .321785 .02476 255.701624;--nc: .894994 .011585 252.096176;--b1: 1 0 0;--b2: .961151 0 0;--b3: .924169 .00108 197.137559;--bc: .278078 .029596 256.847952}[data-theme=dark]{color-scheme:dark;--in: .7206 .191 231.6;--su: 64.8% .15 160;--wa: .8471 .199 83.87;--er: .7176 .221 22.18;--pc: .13138 .0392 275.75;--sc: .1496 .052 342.55;--ac: .14902 .0334 183.61;--inc: 0 0 0;--suc: 0 0 0;--wac: 0 0 0;--erc: 0 0 0;--rounded-box: 1rem;--rounded-btn: .5rem;--rounded-badge: 1.9rem;--animation-btn: .25s;--animation-input: .2s;--btn-focus-scale: .95;--border-btn: 1px;--tab-border: 1px;--tab-radius: .5rem;--p: .6569 .196 275.75;--s: .748 .26 342.55;--a: .7451 .167 183.61;--n: .313815 .021108 254.139175;--nc: .746477 .0216 264.435964;--b1: .253267 .015896 252.417568;--b2: .232607 .013807 253.100675;--b3: .211484 .01165 254.087939;--bc: .746477 .0216 264.435964}a{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}p{font-size:1.25rem;line-height:1.75rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}li{margin-left:2rem;list-style-type:disc;padding-top:.25rem;padding-bottom:.25rem;font-size:1.25rem;line-height:1.75rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}h1{border-bottom-width:2px;--tw-border-opacity: 1;border-bottom-color:rgb(156 163 175 / var(--tw-border-opacity));background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #fdba74 var(--tw-gradient-from-position);--tw-gradient-to: rgb(253 186 116 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #fed7aa var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;padding-top:.5rem;padding-bottom:.5rem;font-size:1.875rem;line-height:2.25rem;font-weight:800;color:transparent}@media (prefers-color-scheme: dark){h1{--tw-border-opacity: 1;border-bottom-color:rgb(255 255 255 / var(--tw-border-opacity))}}h2{margin-bottom:1rem;margin-top:1rem;border-bottom-width:2px;--tw-border-opacity: 1;border-bottom-color:rgb(156 163 175 / var(--tw-border-opacity));background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #fdba74 var(--tw-gradient-from-position);--tw-gradient-to: rgb(253 186 116 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #fed7aa var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;padding-top:.5rem;padding-bottom:.5rem;font-size:1.5rem;line-height:2rem;font-weight:800;color:transparent}@media (prefers-color-scheme: dark){h2{--tw-border-opacity: 1;border-bottom-color:rgb(255 255 255 / var(--tw-border-opacity))}}h3{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #fed7aa var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 215 170 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #fdba74 var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;padding-top:.5rem;padding-bottom:.5rem;padding-right:1rem;text-align:right;font-size:1.5rem;line-height:2rem;font-weight:800;color:transparent;text-decoration-line:underline}h4{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #fed7aa var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 215 170 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #fdba74 var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;padding-top:.5rem;padding-bottom:.5rem;padding-right:1rem;text-align:right;font-size:1.5rem;line-height:2rem;font-weight:800;color:transparent;text-decoration-line:underline}pre{margin-top:1rem;margin-bottom:1rem;overflow-x:scroll;border-left-width:2px;--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));padding:.5rem .5rem .5rem 1rem}pre::-webkit-scrollbar{display:none}pre{-ms-overflow-style:none;scrollbar-width:none}ul{margin-top:.5rem;margin-bottom:.5rem}blockquote{margin:1rem;border-left-width:4px;--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity));padding:1rem;font-size:1.25rem;line-height:1.75rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.alert{display:grid;width:100%;grid-auto-flow:row;align-content:flex-start;align-items:center;justify-items:center;gap:1rem;text-align:center;border-radius:var(--rounded-box, 1rem);border-width:1px;--tw-border-opacity: 1;border-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));padding:1rem;--tw-text-opacity: 1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));--alert-bg: var(--fallback-b2,oklch(var(--b2)/1));--alert-bg-mix: var(--fallback-b1,oklch(var(--b1)/1));background-color:var(--alert-bg)}@media (min-width: 640px){.alert{grid-auto-flow:column;grid-template-columns:auto minmax(auto,1fr);justify-items:start;text-align:start}}@media (hover:hover){.label a:hover{--tw-text-opacity: 1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)))}.menu li>*:not(ul):not(.menu-title):not(details):active,.menu li>*:not(ul):not(.menu-title):not(details).active,.menu li>details>summary:active{--tw-bg-opacity: 1;background-color:var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));--tw-text-opacity: 1;color:var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)))}.table tr.hover:hover,.table tr.hover:nth-child(2n):hover{--tw-bg-opacity: 1;background-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)))}.table-zebra tr.hover:hover,.table-zebra tr.hover:nth-child(2n):hover{--tw-bg-opacity: 1;background-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)))}}.btn{display:inline-flex;height:3rem;min-height:3rem;flex-shrink:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:center;border-radius:var(--rounded-btn, .5rem);border-color:transparent;border-color:oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity));padding-left:1rem;padding-right:1rem;text-align:center;font-size:.875rem;line-height:1em;gap:.5rem;font-weight:600;text-decoration-line:none;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);border-width:var(--border-btn, 1px);animation:button-pop var(--animation-btn, .25s) ease-out;transition-property:color,background-color,border-color,opacity,box-shadow,transform;--tw-text-opacity: 1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline-color:var(--fallback-bc,oklch(var(--bc)/1));background-color:oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity));--tw-bg-opacity: 1;--tw-border-opacity: 1}.btn-disabled,.btn[disabled],.btn:disabled{pointer-events:none}:where(.btn:is(input[type=checkbox])),:where(.btn:is(input[type=radio])){width:auto;-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn:is(input[type=checkbox]):after,.btn:is(input[type=radio]):after{--tw-content: attr(aria-label);content:var(--tw-content)}.checkbox{flex-shrink:0;--chkbg: var(--fallback-bc,oklch(var(--bc)/1));--chkfg: var(--fallback-b1,oklch(var(--b1)/1));height:1.5rem;width:1.5rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--rounded-btn, .5rem);border-width:1px;border-color:var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));--tw-border-opacity: .2}.drawer{position:relative;display:grid;grid-auto-columns:max-content auto;width:100%}.drawer-content{grid-column-start:2;grid-row-start:1;min-width:0px}.drawer-side{pointer-events:none;position:fixed;inset-inline-start:0px;top:0;grid-column-start:1;grid-row-start:1;display:grid;width:100%;grid-template-columns:repeat(1,minmax(0,1fr));grid-template-rows:repeat(1,minmax(0,1fr));align-items:flex-start;justify-items:start;overflow-y:auto;overscroll-behavior:contain;height:100vh;height:100dvh}.drawer-side>.drawer-overlay{position:sticky;top:0;place-self:stretch;cursor:pointer;background-color:transparent;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);transition-duration:.2s}.drawer-side>*{grid-column-start:1;grid-row-start:1}.drawer-side>*:not(.drawer-overlay){transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);transition-duration:.3s;will-change:transform;transform:translate(-100%)}[dir=rtl] .drawer-side>*:not(.drawer-overlay){transform:translate(100%)}.drawer-toggle{position:fixed;height:0px;width:0px;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0}.drawer-toggle:checked~.drawer-side{pointer-events:auto;visibility:visible}.drawer-toggle:checked~.drawer-side>*:not(.drawer-overlay){transform:translate(0)}.drawer-end .drawer-toggle~.drawer-content{grid-column-start:1}.drawer-end .drawer-toggle~.drawer-side{grid-column-start:2;justify-items:end}.drawer-end .drawer-toggle~.drawer-side>*:not(.drawer-overlay){transform:translate(100%)}[dir=rtl] .drawer-end .drawer-toggle~.drawer-side>*:not(.drawer-overlay){transform:translate(-100%)}.drawer-end .drawer-toggle:checked~.drawer-side>*:not(.drawer-overlay){transform:translate(0)}@media (hover: hover){.btn:hover{--tw-border-opacity: 1;border-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity)));--tw-bg-opacity: 1;background-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)))}@supports (color: color-mix(in oklab,black,black)){.btn:hover{background-color:color-mix(in oklab,oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%,black);border-color:color-mix(in oklab,oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%,black)}}@supports not (color: oklch(0 0 0)){.btn:hover{background-color:var(--btn-color, var(--fallback-b2));border-color:var(--btn-color, var(--fallback-b2))}}.btn.glass:hover{--glass-opacity: 25%;--glass-border-opacity: 15%}.btn-outline.btn-primary:hover{--tw-text-opacity: 1;color:var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)))}@supports (color: color-mix(in oklab,black,black)){.btn-outline.btn-primary:hover{background-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black);border-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black)}}.btn-disabled:hover,.btn[disabled]:hover,.btn:disabled:hover{--tw-border-opacity: 0;background-color:var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));--tw-bg-opacity: .2;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));--tw-text-opacity: .2}@supports (color: color-mix(in oklab,black,black)){.btn:is(input[type=checkbox]:checked):hover,.btn:is(input[type=radio]:checked):hover{background-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black);border-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black)}}:where(.menu li:not(.menu-title):not(.disabled)>*:not(ul):not(details):not(.menu-title)):not(.active):hover,:where(.menu li:not(.menu-title):not(.disabled)>details>summary:not(.menu-title)):not(.active):hover{cursor:pointer;outline:2px solid transparent;outline-offset:2px}@supports (color: oklch(0 0 0)){:where(.menu li:not(.menu-title):not(.disabled)>*:not(ul):not(details):not(.menu-title)):not(.active):hover,:where(.menu li:not(.menu-title):not(.disabled)>details>summary:not(.menu-title)):not(.active):hover{background-color:var(--fallback-bc,oklch(var(--bc)/.1))}}}.footer{display:grid;width:100%;grid-auto-flow:row;place-items:start;-moz-column-gap:1rem;column-gap:1rem;row-gap:2.5rem;font-size:.875rem;line-height:1.25rem}.footer>*{display:grid;place-items:start;gap:.5rem}@media (min-width: 48rem){.footer{grid-auto-flow:column}.footer-center{grid-auto-flow:row dense}}.label{display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding:.5rem .25rem}.input{flex-shrink:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:3rem;padding-left:1rem;padding-right:1rem;font-size:1rem;line-height:2;line-height:1.5rem;border-radius:var(--rounded-btn, .5rem);border-width:1px;border-color:transparent;--tw-bg-opacity: 1;background-color:var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)))}.link{cursor:pointer;text-decoration-line:underline}.menu{display:flex;flex-direction:column;flex-wrap:wrap;font-size:.875rem;line-height:1.25rem;padding:.5rem}.menu :where(li ul){position:relative;white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem}.menu :where(li:not(.menu-title)>*:not(ul):not(details):not(.menu-title)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){display:grid;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;grid-auto-columns:minmax(auto,max-content) auto max-content;-webkit-user-select:none;-moz-user-select:none;user-select:none}.menu li.disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--fallback-bc,oklch(var(--bc)/.3))}.menu :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}:where(.menu li){position:relative;display:flex;flex-shrink:0;flex-direction:column;flex-wrap:wrap;align-items:stretch}:where(.menu li) .badge{justify-self:end}.btm-nav>*:where(.active){border-top-width:2px;--tw-bg-opacity: 1;background-color:var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)))}.btm-nav>* .label{font-size:1rem;line-height:1.5rem}.btn:active:hover,.btn:active:focus{animation:button-pop 0s ease-out;transform:scale(var(--btn-focus-scale, .97))}@supports not (color: oklch(0 0 0)){.btn{background-color:var(--btn-color, var(--fallback-b2));border-color:var(--btn-color, var(--fallback-b2))}.btn-primary{--btn-color: var(--fallback-p)}}@supports (color: color-mix(in oklab,black,black)){.btn-outline.btn-primary.btn-active{background-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black);border-color:color-mix(in oklab,var(--fallback-p,oklch(var(--p)/1)) 90%,black)}}.btn:focus-visible{outline-style:solid;outline-width:2px;outline-offset:2px}.btn-primary{--tw-text-opacity: 1;color:var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));outline-color:var(--fallback-p,oklch(var(--p)/1))}@supports (color: oklch(0 0 0)){.btn-primary{--btn-color: var(--p)}}.btn.glass{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);outline-color:currentColor}.btn.glass.btn-active{--glass-opacity: 25%;--glass-border-opacity: 15%}.btn-outline.btn-primary{--tw-text-opacity: 1;color:var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity)))}.btn-outline.btn-primary.btn-active{--tw-text-opacity: 1;color:var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)))}.btn.btn-disabled,.btn[disabled],.btn:disabled{--tw-border-opacity: 0;background-color:var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));--tw-bg-opacity: .2;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));--tw-text-opacity: .2}.btn:is(input[type=checkbox]:checked),.btn:is(input[type=radio]:checked){--tw-border-opacity: 1;border-color:var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity)));--tw-bg-opacity: 1;background-color:var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity)));--tw-text-opacity: 1;color:var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)))}.btn:is(input[type=checkbox]:checked):focus-visible,.btn:is(input[type=radio]:checked):focus-visible{outline-color:var(--fallback-p,oklch(var(--p)/1))}@keyframes button-pop{0%{transform:scale(var(--btn-focus-scale, .98))}40%{transform:scale(1.02)}to{transform:scale(1)}}.checkbox:focus{box-shadow:none}.checkbox:focus-visible{outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:var(--fallback-bc,oklch(var(--bc)/1))}.checkbox:checked,.checkbox[checked=true],.checkbox[aria-checked=true]{background-repeat:no-repeat;animation:checkmark var(--animation-input, .2s) ease-out;background-color:var(--chkbg);background-image:linear-gradient(-45deg,transparent 65%,var(--chkbg) 65.99%),linear-gradient(45deg,transparent 75%,var(--chkbg) 75.99%),linear-gradient(-45deg,var(--chkbg) 40%,transparent 40.99%),linear-gradient(45deg,var(--chkbg) 30%,var(--chkfg) 30.99%,var(--chkfg) 40%,transparent 40.99%),linear-gradient(-45deg,var(--chkfg) 50%,var(--chkbg) 50.99%)}.checkbox:indeterminate{--tw-bg-opacity: 1;background-color:var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));background-repeat:no-repeat;animation:checkmark var(--animation-input, .2s) ease-out;background-image:linear-gradient(90deg,transparent 80%,var(--chkbg) 80%),linear-gradient(-90deg,transparent 80%,var(--chkbg) 80%),linear-gradient(0deg,var(--chkbg) 43%,var(--chkfg) 43%,var(--chkfg) 57%,var(--chkbg) 57%)}.checkbox:disabled{cursor:not-allowed;border-color:transparent;--tw-bg-opacity: 1;background-color:var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));opacity:.2}@keyframes checkmark{0%{background-position-y:5px}50%{background-position-y:-2px}to{background-position-y:0}}.drawer-toggle:checked~.drawer-side>.drawer-overlay{background-color:#0006}.drawer-toggle:focus-visible~.drawer-content label.drawer-button{outline-style:solid;outline-width:2px;outline-offset:2px}.input input:focus{outline:2px solid transparent;outline-offset:2px}.input[list]::-webkit-calendar-picker-indicator{line-height:1em}.input:focus,.input:focus-within{box-shadow:none;border-color:var(--fallback-bc,oklch(var(--bc)/.2));outline-style:solid;outline-width:2px;outline-offset:2px;outline-color:var(--fallback-bc,oklch(var(--bc)/.2))}.input-disabled,.input:disabled,.input[disabled]{cursor:not-allowed;--tw-border-opacity: 1;border-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));--tw-bg-opacity: 1;background-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));color:var(--fallback-bc,oklch(var(--bc)/.4))}.input-disabled::-moz-placeholder,.input:disabled::-moz-placeholder,.input[disabled]::-moz-placeholder{color:var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));--tw-placeholder-opacity: .2}.input-disabled::placeholder,.input:disabled::placeholder,.input[disabled]::placeholder{color:var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));--tw-placeholder-opacity: .2}.input::-webkit-date-and-time-value{text-align:inherit}.link:focus{outline:2px solid transparent;outline-offset:2px}.link:focus-visible{outline:2px solid currentColor;outline-offset:2px}:where(.menu li:empty){--tw-bg-opacity: 1;background-color:var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));opacity:.1;margin:.5rem 1rem;height:1px}.menu :where(li ul):before{position:absolute;bottom:.75rem;inset-inline-start:0px;top:.75rem;width:1px;--tw-bg-opacity: 1;background-color:var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));opacity:.1;content:""}.menu :where(li:not(.menu-title)>*:not(ul):not(details):not(.menu-title)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--rounded-btn, .5rem);padding:.5rem 1rem;text-align:start;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);transition-duration:.2s;text-wrap:balance}:where(.menu li:not(.menu-title):not(.disabled)>*:not(ul):not(details):not(.menu-title)):not(summary):not(.active).focus,:where(.menu li:not(.menu-title):not(.disabled)>*:not(ul):not(details):not(.menu-title)):not(summary):not(.active):focus,:where(.menu li:not(.menu-title):not(.disabled)>*:not(ul):not(details):not(.menu-title)):is(summary):not(.active):focus-visible,:where(.menu li:not(.menu-title):not(.disabled)>details>summary:not(.menu-title)):not(summary):not(.active).focus,:where(.menu li:not(.menu-title):not(.disabled)>details>summary:not(.menu-title)):not(summary):not(.active):focus,:where(.menu li:not(.menu-title):not(.disabled)>details>summary:not(.menu-title)):is(summary):not(.active):focus-visible{cursor:pointer;background-color:var(--fallback-bc,oklch(var(--bc)/.1));--tw-text-opacity: 1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));outline:2px solid transparent;outline-offset:2px}.menu li>*:not(ul):not(.menu-title):not(details):active,.menu li>*:not(ul):not(.menu-title):not(details).active,.menu li>details>summary:active{--tw-bg-opacity: 1;background-color:var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));--tw-text-opacity: 1;color:var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)))}.menu :where(li>details>summary)::-webkit-details-marker{display:none}.menu :where(li>details>summary):after,.menu :where(li>.menu-dropdown-toggle):after{justify-self:end;display:block;margin-top:-.5rem;height:.5rem;width:.5rem;transform:rotate(45deg);transition-property:transform,margin-top;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);content:"";transform-origin:75% 75%;box-shadow:2px 2px;pointer-events:none}.menu :where(li>details[open]>summary):after,.menu :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{transform:rotate(225deg);margin-top:0}.mockup-phone .display{overflow:hidden;border-radius:40px;margin-top:-25px}.mockup-browser .mockup-browser-toolbar .input{position:relative;margin-left:auto;margin-right:auto;display:block;height:1.75rem;width:24rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;--tw-bg-opacity: 1;background-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));padding-left:2rem;direction:ltr}.mockup-browser .mockup-browser-toolbar .input:before{content:"";position:absolute;left:.5rem;top:50%;aspect-ratio:1 / 1;height:.75rem;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;border-width:2px;border-color:currentColor;opacity:.6}.mockup-browser .mockup-browser-toolbar .input:after{content:"";position:absolute;left:1.25rem;top:50%;height:.5rem;--tw-translate-y: 25%;--tw-rotate: -45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;border-width:1px;border-color:currentColor;opacity:.6}@keyframes modal-pop{0%{opacity:0}}@keyframes progress-loading{50%{background-position-x:-115%}}@keyframes radiomark{0%{box-shadow:0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset,0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset}50%{box-shadow:0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset,0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset}to{box-shadow:0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset,0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset}}@keyframes rating-pop{0%{transform:translateY(-.125em)}40%{transform:translateY(-.125em)}to{transform:translateY(0)}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}.table tr.active,.table tr.active:nth-child(2n),.table-zebra tbody tr:nth-child(2n){--tw-bg-opacity: 1;background-color:var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)))}.table-zebra tr.active,.table-zebra tr.active:nth-child(2n),.table-zebra-zebra tbody tr:nth-child(2n){--tw-bg-opacity: 1;background-color:var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)))}@keyframes toast-pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.btm-nav-xs>*:where(.active){border-top-width:1px}.btm-nav-sm>*:where(.active){border-top-width:2px}.btm-nav-md>*:where(.active){border-top-width:2px}.btm-nav-lg>*:where(.active){border-top-width:4px}.btn-xs{height:1.5rem;min-height:1.5rem;padding-left:.5rem;padding-right:.5rem;font-size:.75rem}.btn-square:where(.btn-xs){height:1.5rem;width:1.5rem;padding:0}.btn-circle:where(.btn-xs){height:1.5rem;width:1.5rem;border-radius:9999px;padding:0}.drawer-open>.drawer-toggle{display:none}.drawer-open>.drawer-toggle~.drawer-side{pointer-events:auto;visibility:visible;position:sticky;display:block;width:auto;overscroll-behavior:auto}.drawer-open>.drawer-toggle~.drawer-side>*:not(.drawer-overlay){transform:translate(0)}[dir=rtl] .drawer-open>.drawer-toggle~.drawer-side>*:not(.drawer-overlay){transform:translate(0)}.drawer-open>.drawer-toggle:checked~.drawer-side{pointer-events:auto;visibility:visible}.drawer-open>.drawer-toggle~.drawer-side>.drawer-overlay{cursor:default;background-color:transparent}.m-0{margin:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.ml-0{margin-left:0}.ml-4{margin-left:1rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-24{height:6rem}.h-48{height:12rem}.h-6{height:1.5rem}.h-96{height:24rem}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.w-24{width:6rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-80{width:20rem}.w-full{width:100%}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-full{max-width:100%}.max-w-sm{max-width:24rem}.shrink-0{flex-shrink:0}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.content-center{align-content:center}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-none{border-style:none}.bg-neutral-600{--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity))}.bg-neutral-700{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.bg-red-800{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-orange-300{--tw-gradient-from: #fdba74 var(--tw-gradient-from-position);--tw-gradient-to: rgb(253 186 116 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-700{--tw-gradient-from: #c2410c var(--tw-gradient-from-position);--tw-gradient-to: rgb(194 65 12 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-blue-500{--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #3b82f6 var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-green-400{--tw-gradient-to: #4ade80 var(--tw-gradient-to-position)}.to-orange-200{--tw-gradient-to: #fed7aa var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.stroke-current{stroke:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-4{padding:1rem}.p-5{padding:1.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-8{padding-right:2rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.text-right{text-align:right}.indent-4{text-indent:1rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.uppercase{text-transform:uppercase}.leading-normal{line-height:1.5}.tracking-tight{letter-spacing:-.025em}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-orange-300{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.animate-gradient{background-size:300%;animation:animatedgradient 6s ease infinite alternate}@keyframes animatedgradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.sideli{margin-left:0;font-size:1.25rem;line-height:1.75rem}.sidemenu-style{min-height:100%;width:10rem;overflow:hidden;--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity));padding:1rem;--tw-text-opacity: 1;color:var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)))}.footer-style{margin-left:0;justify-content:space-between;--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity));padding-left:0;padding-bottom:1rem;padding-top:1rem;padding-right:4rem}.mobile-menu-link{display:flex;--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.mobile-menu-link:hover{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}@media (min-width: 768px){.mobile-menu-link{display:none}}.sidebar-link{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.sidebar-link:hover{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}.titlebar-link{display:flex;--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.titlebar-link:hover{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}@media (min-width: 768px){.titlebar-link{display:none}}.website-title{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #fdba74 var(--tw-gradient-from-position);--tw-gradient-to: rgb(253 186 116 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(252 165 165 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #fca5a5 var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: #fed7aa var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;font-size:1.875rem;line-height:2.25rem;font-weight:700;text-transform:uppercase;color:transparent;background-size:300%;animation:animatedgradient 6s ease infinite alternate}@media (min-width: 1024px){.lg\:drawer-open>.drawer-toggle{display:none}.lg\:drawer-open>.drawer-toggle~.drawer-side{pointer-events:auto;visibility:visible;position:sticky;display:block;width:auto;overscroll-behavior:auto}.lg\:drawer-open>.drawer-toggle~.drawer-side>*:not(.drawer-overlay){transform:translate(0)}[dir=rtl] .lg\:drawer-open>.drawer-toggle~.drawer-side>*:not(.drawer-overlay){transform:translate(0)}.lg\:drawer-open>.drawer-toggle:checked~.drawer-side{pointer-events:auto;visibility:visible}.lg\:drawer-open>.drawer-toggle~.drawer-side>.drawer-overlay{cursor:default;background-color:transparent}}.hover\:bg-neutral-700:hover{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.hover\:text-gray-400:hover{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.focus\:text-gray-400:focus{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width: 640px){.sm\:grid{display:grid}}@media (min-width: 768px){.md\:mt-0{margin-top:0}.md\:mt-6{margin-top:1.5rem}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-auto{height:auto}.md\:w-48{width:12rem}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-end{align-items:flex-end}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(2.5rem * var(--tw-space-x-reverse));margin-left:calc(2.5rem * calc(1 - var(--tw-space-x-reverse)))}.md\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.md\:rounded-none{border-radius:0}.md\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.md\:px-12{padding-left:3rem;padding-right:3rem}}@media (min-width: 1024px){.lg\:grid{display:grid}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:px-16{padding-left:4rem;padding-right:4rem}.lg\:px-24{padding-left:6rem;padding-right:6rem}}@media (prefers-color-scheme: dark){.dark\:border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}} diff --git a/dist/_app/immutable/assets/_layout.x88-ymMa.css.br b/dist/_app/immutable/assets/_layout.x88-ymMa.css.br new file mode 100644 index 0000000..1349fac Binary files /dev/null and b/dist/_app/immutable/assets/_layout.x88-ymMa.css.br differ diff --git a/dist/_app/immutable/assets/_layout.x88-ymMa.css.gz b/dist/_app/immutable/assets/_layout.x88-ymMa.css.gz new file mode 100644 index 0000000..8b558b6 Binary files /dev/null and b/dist/_app/immutable/assets/_layout.x88-ymMa.css.gz differ diff --git a/dist/_app/immutable/chunks/Info.ITY44f4q.js b/dist/_app/immutable/chunks/Info.ITY44f4q.js new file mode 100644 index 0000000..af6718d --- /dev/null +++ b/dist/_app/immutable/chunks/Info.ITY44f4q.js @@ -0,0 +1 @@ +import{s as p,n as v,o as x}from"./scheduler.aZRR5A_O.js";import{S as E,i as y,g as _,D as w,s as j,H,h as g,j as h,E as k,f as c,c as I,C as M,k as n,a as S,y as f}from"./index.kYoizZ4A.js";import{m as b}from"./marked.esm.hS8hU7E4.js";function B(m){let e,t,a,o,s,l;return{c(){e=_("div"),t=w("svg"),a=w("path"),o=j(),s=_("span"),l=new H(!1),this.h()},l(i){e=g(i,"DIV",{class:!0});var r=h(e);t=k(r,"svg",{xmlns:!0,fill:!0,viewBox:!0,class:!0});var d=h(t);a=k(d,"path",{"stroke-linecap":!0,"stroke-linejoin":!0,"stroke-width":!0,d:!0}),h(a).forEach(c),d.forEach(c),o=I(r),s=g(r,"SPAN",{class:!0});var u=h(s);l=M(u,!1),u.forEach(c),r.forEach(c),this.h()},h(){n(a,"stroke-linecap","round"),n(a,"stroke-linejoin","round"),n(a,"stroke-width","2"),n(a,"d","M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"),n(t,"xmlns","http://www.w3.org/2000/svg"),n(t,"fill","none"),n(t,"viewBox","0 0 24 24"),n(t,"class","stroke-current shrink-0 w-6 h-6"),l.a=null,n(s,"class","text-xl text-white"),n(e,"class","alert bg-neutral-600 border-none")},m(i,r){S(i,e,r),f(e,t),f(t,a),f(e,o),f(e,s),l.m(m[0],s)},p(i,[r]){r&1&&l.p(i[0])},i:v,o:v,d(i){i&&c(e)}}}function C(m,e,t){let{info:a}=e,{markdown:o}=e;return x(()=>{o&&b(a)}),m.$$set=s=>{"info"in s&&t(0,a=s.info),"markdown"in s&&t(1,o=s.markdown)},[a,o]}class A extends E{constructor(e){super(),y(this,e,C,B,p,{info:0,markdown:1})}}export{A as I}; diff --git a/dist/_app/immutable/chunks/Info.ITY44f4q.js.br b/dist/_app/immutable/chunks/Info.ITY44f4q.js.br new file mode 100644 index 0000000..cafb787 Binary files /dev/null and b/dist/_app/immutable/chunks/Info.ITY44f4q.js.br differ diff --git a/dist/_app/immutable/chunks/Info.ITY44f4q.js.gz b/dist/_app/immutable/chunks/Info.ITY44f4q.js.gz new file mode 100644 index 0000000..3a3a7a2 Binary files /dev/null and b/dist/_app/immutable/chunks/Info.ITY44f4q.js.gz differ diff --git a/dist/_app/immutable/chunks/SoftwareCard.xyFxzytb.js b/dist/_app/immutable/chunks/SoftwareCard.xyFxzytb.js new file mode 100644 index 0000000..5b94635 --- /dev/null +++ b/dist/_app/immutable/chunks/SoftwareCard.xyFxzytb.js @@ -0,0 +1 @@ +import{s as B,e as M,n as z}from"./scheduler.aZRR5A_O.js";import{S as F,i as J,g as d,s as D,m as V,h as m,j as g,c as q,n as y,f as u,k as l,a as K,y as s,o as C}from"./index.kYoizZ4A.js";function L(n){let e,a,h,_,f,i,c,t,b,I,v,x,S,w,E;return{c(){e=d("a"),a=d("img"),_=D(),f=d("div"),i=d("div"),c=d("div"),t=d("h5"),b=V(n[0]),I=D(),v=d("p"),x=V(n[1]),S=D(),w=d("p"),E=V(n[4]),this.h()},l(o){e=m(o,"A",{href:!0,class:!0});var r=g(e);a=m(r,"IMG",{class:!0,src:!0,alt:!0}),_=q(r),f=m(r,"DIV",{class:!0});var P=g(f);i=m(P,"DIV",{class:!0});var k=g(i);c=m(k,"DIV",{class:!0});var j=g(c);t=m(j,"H5",{class:!0});var A=g(t);b=y(A,n[0]),A.forEach(u),I=q(j),v=m(j,"P",{class:!0});var G=g(v);x=y(G,n[1]),G.forEach(u),j.forEach(u),S=q(k),w=m(k,"P",{class:!0});var H=g(w);E=y(H,n[4]),H.forEach(u),k.forEach(u),P.forEach(u),r.forEach(u),this.h()},h(){l(a,"class","object-cover w-full rounded-t-lg h-96 md:h-auto md:w-48 md:rounded-none md:rounded-l-lg"),M(a.src,h=n[3])||l(a,"src",h),l(a,"alt",""),l(t,"class","inline mb-2 text-2xl font-bold tracking-tight text-white"),l(v,"class","inline text-right text-orange-300"),l(c,"class","flex justify-between"),l(w,"class","mb-3 font-normal text-gray-400"),l(i,"class","flex flex-col justify-between p-4 leading-normal w-full"),l(f,"class","flex flex-col items-start md:items-end w-full"),l(e,"href",n[2]),l(e,"class","flex flex-col items-center bg-neutral-800 hover:bg-neutral-700 rounded-lg shadow md:flex-row")},m(o,r){K(o,e,r),s(e,a),s(e,_),s(e,f),s(f,i),s(i,c),s(c,t),s(t,b),s(c,I),s(c,v),s(v,x),s(i,S),s(i,w),s(w,E)},p(o,[r]){r&8&&!M(a.src,h=o[3])&&l(a,"src",h),r&1&&C(b,o[0]),r&2&&C(x,o[1]),r&16&&C(E,o[4]),r&4&&l(e,"href",o[2])},i:z,o:z,d(o){o&&u(e)}}}function N(n,e,a){let{name:h}=e,{creator:_}=e,{link:f}=e,{image:i}=e,{description:c}=e;return n.$$set=t=>{"name"in t&&a(0,h=t.name),"creator"in t&&a(1,_=t.creator),"link"in t&&a(2,f=t.link),"image"in t&&a(3,i=t.image),"description"in t&&a(4,c=t.description)},[h,_,f,i,c]}class R extends F{constructor(e){super(),J(this,e,N,L,B,{name:0,creator:1,link:2,image:3,description:4})}}export{R as S}; diff --git a/dist/_app/immutable/chunks/SoftwareCard.xyFxzytb.js.br b/dist/_app/immutable/chunks/SoftwareCard.xyFxzytb.js.br new file mode 100644 index 0000000..f85bea2 Binary files /dev/null and b/dist/_app/immutable/chunks/SoftwareCard.xyFxzytb.js.br differ diff --git a/dist/_app/immutable/chunks/SoftwareCard.xyFxzytb.js.gz b/dist/_app/immutable/chunks/SoftwareCard.xyFxzytb.js.gz new file mode 100644 index 0000000..e53d2b4 Binary files /dev/null and b/dist/_app/immutable/chunks/SoftwareCard.xyFxzytb.js.gz differ diff --git a/dist/_app/immutable/chunks/ajouter_information.szUJXvS-.js b/dist/_app/immutable/chunks/ajouter_information.szUJXvS-.js new file mode 100644 index 0000000..66438a5 --- /dev/null +++ b/dist/_app/immutable/chunks/ajouter_information.szUJXvS-.js @@ -0,0 +1 @@ +import{s as y,x as $,y as w,n as G}from"./scheduler.aZRR5A_O.js";import{S as O,i as P,r as R,u as S,v as k,d as I,t as V,w as A,g as _,s as h,h as g,x as v,c as x,k as B,a as i,f as r}from"./index.kYoizZ4A.js";import{G as D,g as E,a as T}from"./guides.fqK5Mftf.js";function F(f){let t,d="Ce site est conçu pour être rapidement mis à jour par la communauté des live coders francophones. Chaque section est construite automatiquement à partir des données mises à disposition par chacun : Évènements, Membres, Outils, Guides, Réseaux, Resources, Presse, etc. En séparant les données de la mise en page, cela permet au site d’évoluer rapidement et indépendamment des données amassées :)",l,a,s="Où se situent les données ?",n,u,z="Les données sont intégrées à la source du site :",C,p,L='

1) Rendez-vous sur le dépôt dans le dossier lib/data : ici.

2) Vous y trouverez un fichier JSON pour chaque section du site.

3) Éditez depuis l’éditeur intégré de GitHub ou modifiez en local.

4) Soumettez vos changements, attendez la mise à jour du site !

',b,m,M="Où se situent les guides ?",H,c,q='Les guides répondent à un format différent. Il existe un autre article qui vous guidera pour en créer/modifier un guide.';return{c(){t=_("p"),t.innerHTML=d,l=h(),a=_("h2"),a.textContent=s,n=h(),u=_("p"),u.textContent=z,C=h(),p=_("div"),p.innerHTML=L,b=h(),m=_("h2"),m.textContent=M,H=h(),c=_("p"),c.innerHTML=q,this.h()},l(e){t=g(e,"P",{"data-svelte-h":!0}),v(t)!=="svelte-1r1wqsk"&&(t.innerHTML=d),l=x(e),a=g(e,"H2",{"data-svelte-h":!0}),v(a)!=="svelte-17idpzd"&&(a.textContent=s),n=x(e),u=g(e,"P",{"data-svelte-h":!0}),v(u)!=="svelte-1wkphp0"&&(u.textContent=z),C=x(e),p=g(e,"DIV",{class:!0,"data-svelte-h":!0}),v(p)!=="svelte-p5v4nz"&&(p.innerHTML=L),b=x(e),m=g(e,"H2",{"data-svelte-h":!0}),v(m)!=="svelte-aapbly"&&(m.textContent=M),H=x(e),c=g(e,"P",{"data-svelte-h":!0}),v(c)!=="svelte-q9p27"&&(c.innerHTML=q),this.h()},h(){B(p,"class","pl-8 mt-4")},m(e,o){i(e,t,o),i(e,l,o),i(e,a,o),i(e,n,o),i(e,u,o),i(e,C,o),i(e,p,o),i(e,b,o),i(e,m,o),i(e,H,o),i(e,c,o)},p:G,d(e){e&&(r(t),r(l),r(a),r(n),r(u),r(C),r(p),r(b),r(m),r(H),r(c))}}}function J(f){let t,d;const l=[f[0],j];let a={$$slots:{default:[F]},$$scope:{ctx:f}};for(let s=0;s{d(0,t=$($({},t),w(l)))},t=w(t),[t]}class W extends O{constructor(t){super(),P(this,t,N,J,y,{})}}export{W as default,j as metadata}; diff --git a/dist/_app/immutable/chunks/ajouter_information.szUJXvS-.js.br b/dist/_app/immutable/chunks/ajouter_information.szUJXvS-.js.br new file mode 100644 index 0000000..063a761 Binary files /dev/null and b/dist/_app/immutable/chunks/ajouter_information.szUJXvS-.js.br differ diff --git a/dist/_app/immutable/chunks/ajouter_information.szUJXvS-.js.gz b/dist/_app/immutable/chunks/ajouter_information.szUJXvS-.js.gz new file mode 100644 index 0000000..604cd17 Binary files /dev/null and b/dist/_app/immutable/chunks/ajouter_information.szUJXvS-.js.gz differ diff --git a/dist/_app/immutable/chunks/apropos.6l0pPS20.js b/dist/_app/immutable/chunks/apropos.6l0pPS20.js new file mode 100644 index 0000000..2399187 --- /dev/null +++ b/dist/_app/immutable/chunks/apropos.6l0pPS20.js @@ -0,0 +1,5 @@ +import{s as i,n as a}from"./scheduler.aZRR5A_O.js";import{S as o,i as l,g as u,h as c,x as d,a as p,f as m}from"./index.kYoizZ4A.js";function f(s){let e,n=`Cette section sert pour héberger des articles généralistes en lien avec le live +coding. Il peut s’agir du compte-rendu d’un évènement, d’un article à propos +d’un nouveau logiciel, d’une réflexion sur un sujet, etc. La méthode à suivre +pour publier un article est détaillée dans la section Guides. Le +fonctionnement est similaire.`;return{c(){e=u("p"),e.innerHTML=n},l(t){e=c(t,"P",{"data-svelte-h":!0}),d(e)!=="svelte-1ewuhfv"&&(e.innerHTML=n)},m(t,r){p(t,e,r)},p:a,i:a,o:a,d(t){t&&m(e)}}}const g={title:"À propos des articles",author:"Raphaël Maurice Forment",date:"2024-01-01"};class _ extends o{constructor(e){super(),l(this,e,null,f,i,{})}}export{_ as default,g as metadata}; diff --git a/dist/_app/immutable/chunks/apropos.6l0pPS20.js.br b/dist/_app/immutable/chunks/apropos.6l0pPS20.js.br new file mode 100644 index 0000000..2c12844 Binary files /dev/null and b/dist/_app/immutable/chunks/apropos.6l0pPS20.js.br differ diff --git a/dist/_app/immutable/chunks/apropos.6l0pPS20.js.gz b/dist/_app/immutable/chunks/apropos.6l0pPS20.js.gz new file mode 100644 index 0000000..f89d581 Binary files /dev/null and b/dist/_app/immutable/chunks/apropos.6l0pPS20.js.gz differ diff --git a/dist/_app/immutable/chunks/biset_blank.E4K6VWMJ.js b/dist/_app/immutable/chunks/biset_blank.E4K6VWMJ.js new file mode 100644 index 0000000..1feaa69 --- /dev/null +++ b/dist/_app/immutable/chunks/biset_blank.E4K6VWMJ.js @@ -0,0 +1,4 @@ +import{s as H,e as I,n as y}from"./scheduler.aZRR5A_O.js";import{S as P,i as T,g as n,s as p,h as o,c,x as B,k as R,l as m,a as s,f as a}from"./index.kYoizZ4A.js";function j(L){let t,C,d,b,f,l,V=`Sébastien Huertas (gibbonJoyeux) est l'auteur de plusieurs modules pour l'environnement +VCVRack. Ses modules permettent de live coder VCVRack par le biais d'un langage spécialisé inspiré de la syntaxe des expressions +régulières : Biset Regex. Il est +aussi l'auteur d'un module tracker et de nombreux utilitaires permettant de faire de VCV un écosystème plus pertinent pour l'écriture musicale ou pour l'improvisation. Il a dernièrement publié un module en apparence trompeur, Blank. Un module blank, dans le jargon propre aux synthétiseurs modulaires, est d'ordinaire un module utilisé en lieu et place d'un véritable module. Il permet de combler un vide, de ne pas laisser une partie d'un rack exposée à la poussière ou à la chute accidentelle des objets sur l'alimentation électrique. Il peut aussi être utilisé de manière créative pour décorer un synthétiseur, comme en témoigne ce magnifique pigeon.`,v,x,h,r,q="Le Blank dont il est ici question modifie le comportement global de l'application et de son interface ! Une fois inséré dans un patch, chaque câble devient auscultable et s'anime. Il est possible d'aperçevoir la forme d'onde du signal passant au travers des câbles. Pour le public, cela permet de comprendre plus facilement le type de signaux utilisés et la nature des signaux qui transitent pour chaque connexion. Pour l'apprentissage ou la pédagogie, ce module remplace aisément l'utilisation d'un oscilloscope dédié. Passer la souris sur une connexion affiche aussi un oscilloscope dans une fenêtre popup. Le module est également relativement économe en ressources, ce qui est toujours un plus !",g,k,_,u,M="Ce module a initialement été conçu pour offrir un meilleur retour visuel au public au cours d'une performances de live coding. Son utilité dépasse désormais largement ce seul contexte. Félicitations à gibbonJoyeux pour son travail sur l'écosystème VCVRack.";return{c(){t=n("img"),d=p(),b=n("br"),f=p(),l=n("p"),l.innerHTML=V,v=p(),x=n("br"),h=p(),r=n("p"),r.innerHTML=q,g=p(),k=n("br"),_=p(),u=n("p"),u.innerHTML=M,this.h()},l(e){t=o(e,"IMG",{src:!0,alt:!0,style:!0}),d=c(e),b=o(e,"BR",{}),f=c(e),l=o(e,"P",{"data-svelte-h":!0}),B(l)!=="svelte-plfmxr"&&(l.innerHTML=V),v=c(e),x=o(e,"BR",{}),h=c(e),r=o(e,"P",{"data-svelte-h":!0}),B(r)!=="svelte-1tjhhux"&&(r.innerHTML=q),g=c(e),k=o(e,"BR",{}),_=c(e),u=o(e,"P",{"data-svelte-h":!0}),B(u)!=="svelte-xntazt"&&(u.innerHTML=M),this.h()},h(){I(t.src,C="../images/bisetblank.gif")||R(t,"src",C),R(t,"alt","Biset Blank"),m(t,"display","block"),m(t,"margin-left","auto"),m(t,"margin-right","auto"),m(t,"max-width","1000px"),m(t,"width","75%")},m(e,i){s(e,t,i),s(e,d,i),s(e,b,i),s(e,f,i),s(e,l,i),s(e,v,i),s(e,x,i),s(e,h,i),s(e,r,i),s(e,g,i),s(e,k,i),s(e,_,i),s(e,u,i)},p:y,i:y,o:y,d(e){e&&(a(t),a(d),a(b),a(f),a(l),a(v),a(x),a(h),a(r),a(g),a(k),a(_),a(u))}}}const F={title:"Biset Blank : un module VCVRack pour animer les performances de live coding",author:"Raphaël Maurice Forment",date:"2024-08-02"};class J extends P{constructor(t){super(),T(this,t,null,j,H,{})}}export{J as default,F as metadata}; diff --git a/dist/_app/immutable/chunks/biset_blank.E4K6VWMJ.js.br b/dist/_app/immutable/chunks/biset_blank.E4K6VWMJ.js.br new file mode 100644 index 0000000..594e0b2 Binary files /dev/null and b/dist/_app/immutable/chunks/biset_blank.E4K6VWMJ.js.br differ diff --git a/dist/_app/immutable/chunks/biset_blank.E4K6VWMJ.js.gz b/dist/_app/immutable/chunks/biset_blank.E4K6VWMJ.js.gz new file mode 100644 index 0000000..5943ed4 Binary files /dev/null and b/dist/_app/immutable/chunks/biset_blank.E4K6VWMJ.js.gz differ diff --git a/dist/_app/immutable/chunks/guides.fqK5Mftf.js b/dist/_app/immutable/chunks/guides.fqK5Mftf.js new file mode 100644 index 0000000..2c47832 --- /dev/null +++ b/dist/_app/immutable/chunks/guides.fqK5Mftf.js @@ -0,0 +1 @@ +import{s as u,c as r,u as _,g as d,d as m}from"./scheduler.aZRR5A_O.js";import{S as g,i as h,g as y,h as k,j as b,f as c,a as j,d as C,t as E}from"./index.kYoizZ4A.js";function A(s,o){const i={},f={},e={$$scope:1};let t=s.length;for(;t--;){const n=s[t],a=o[t];if(a){for(const l in n)l in a||(f[l]=1);for(const l in a)e[l]||(i[l]=a[l],e[l]=1);s[t]=a}else for(const l in n)e[l]=1}for(const n in f)n in i||(i[n]=void 0);return i}function I(s){return typeof s=="object"&&s!==null?s:{}}function G(s){let o,i;const f=s[3].default,e=r(f,s,s[2],null);return{c(){o=y("article"),e&&e.c()},l(t){o=k(t,"ARTICLE",{});var n=b(o);e&&e.l(n),n.forEach(c)},m(t,n){j(t,o,n),e&&e.m(o,null),i=!0},p(t,[n]){e&&e.p&&(!i||n&4)&&_(e,f,t,t[2],i?m(f,t[2],n,null):d(t[2]),null)},i(t){i||(C(e,t),i=!0)},o(t){E(e,t),i=!1},d(t){t&&c(o),e&&e.d(t)}}}function S(s,o,i){let{$$slots:f={},$$scope:e}=o,{title:t}=o,{date:n}=o;return s.$$set=a=>{"title"in a&&i(0,t=a.title),"date"in a&&i(1,n=a.date),"$$scope"in a&&i(2,e=a.$$scope)},[t,n,e,f]}class L extends g{constructor(o){super(),h(this,o,S,G,u,{title:0,date:1})}}export{L as G,I as a,A as g}; diff --git a/dist/_app/immutable/chunks/guides.fqK5Mftf.js.br b/dist/_app/immutable/chunks/guides.fqK5Mftf.js.br new file mode 100644 index 0000000..f2798d0 Binary files /dev/null and b/dist/_app/immutable/chunks/guides.fqK5Mftf.js.br differ diff --git a/dist/_app/immutable/chunks/guides.fqK5Mftf.js.gz b/dist/_app/immutable/chunks/guides.fqK5Mftf.js.gz new file mode 100644 index 0000000..fb6f61e Binary files /dev/null and b/dist/_app/immutable/chunks/guides.fqK5Mftf.js.gz differ diff --git a/dist/_app/immutable/chunks/index.kYoizZ4A.js b/dist/_app/immutable/chunks/index.kYoizZ4A.js new file mode 100644 index 0000000..2105d5c --- /dev/null +++ b/dist/_app/immutable/chunks/index.kYoizZ4A.js @@ -0,0 +1 @@ +import{r as p,n as x,f as N,h as B,i as b,j as D,k as v,l as P,m as j,p as E,q as I,v as R,w as q}from"./scheduler.aZRR5A_O.js";let $=!1;function G(){$=!0}function O(){$=!1}function z(e,t,n,i){for(;e>1);n(s)<=i?e=s+1:t=s}return e}function U(e){if(e.hydrate_init)return;e.hydrate_init=!0;let t=e.childNodes;if(e.nodeName==="HEAD"){const r=[];for(let a=0;a0&&t[n[s]].claim_order<=a?s+1:z(1,s,_=>t[n[_]].claim_order,a))-1;i[r]=n[u]+1;const o=u+1;n[o]=r,s=Math.max(o,s)}const c=[],l=[];let f=t.length-1;for(let r=n[s]+1;r!=0;r=i[r-1]){for(c.push(t[r-1]);f>=r;f--)l.push(t[f]);f--}for(;f>=0;f--)l.push(t[f]);c.reverse(),l.sort((r,a)=>r.claim_order-a.claim_order);for(let r=0,a=0;r=c[a].claim_order;)a++;const u=ae.removeEventListener(t,n,i)}function le(e,t,n){n==null?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function ae(e){return e.dataset.svelteH}function J(e){return Array.from(e.childNodes)}function L(e){e.claim_info===void 0&&(e.claim_info={last_index:0,total_claimed:0})}function C(e,t,n,i,s=!1){L(e);const c=(()=>{for(let l=e.claim_info.last_index;l=0;l--){const f=e[l];if(t(f)){const r=n(f);return r===void 0?e.splice(l,1):e[l]=r,s?r===void 0&&e.claim_info.last_index--:e.claim_info.last_index=l,f}}return i()})();return c.claim_order=e.claim_info.total_claimed,e.claim_info.total_claimed+=1,c}function M(e,t,n,i){return C(e,s=>s.nodeName===t,s=>{const c=[];for(let l=0;ls.removeAttribute(l))},()=>i(t))}function ce(e,t,n){return M(e,t,n,S)}function fe(e,t,n){return M(e,t,n,H)}function K(e,t){return C(e,n=>n.nodeType===3,n=>{const i=""+t;if(n.data.startsWith(i)){if(n.data.length!==i.length)return n.splitText(i.length)}else n.data=i},()=>g(t),!0)}function oe(e){return K(e," ")}function A(e,t,n){for(let i=n;i0&&n.push(s);return n}class Q{is_svg=!1;e=void 0;n=void 0;t=void 0;a=void 0;constructor(t=!1){this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,n,i=null){this.e||(this.is_svg?this.e=H(n.nodeName):this.e=S(n.nodeType===11?"TEMPLATE":n.nodeName),this.t=n.tagName!=="TEMPLATE"?n:n.content,this.c(t)),this.i(i)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.nodeName==="TEMPLATE"?this.e.content.childNodes:this.e.childNodes)}i(t){for(let n=0;n{h.delete(e),i&&(n&&e.d(1),i())}),e.o(t)}else i&&i()}function xe(e){e&&e.c()}function ge(e,t){e&&e.l(t)}function Y(e,t,n){const{fragment:i,after_update:s}=e.$$;i&&i.m(t,n),v(()=>{const c=e.$$.on_mount.map(I).filter(b);e.$$.on_destroy?e.$$.on_destroy.push(...c):p(c),e.$$.on_mount=[]}),s.forEach(v)}function Z(e,t){const n=e.$$;n.fragment!==null&&(P(n.after_update),p(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function k(e,t){e.$$.dirty[0]===-1&&(R.push(e),q(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const w=T.length?T[0]:_;return a.ctx&&s(a.ctx[o],a.ctx[o]=w)&&(!a.skip_bound&&a.bound[o]&&a.bound[o](w),u&&k(e,o)),_}):[],a.update(),u=!0,p(a.before_update),a.fragment=i?i(a.ctx):!1,t.target){if(t.hydrate){G();const o=J(t.target);a.fragment&&a.fragment.l(o),o.forEach(m)}else a.fragment&&a.fragment.c();t.intro&&X(e.$$.fragment),Y(e,t.target,t.anchor),O(),B()}E(r)}class we{$$=void 0;$$set=void 0;$destroy(){Z(this,1),this.$destroy=x}$on(t,n){if(!b(n))return x;const i=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return i.push(n),()=>{const s=i.indexOf(n);s!==-1&&i.splice(s,1)}}$set(t){this.$$set&&!D(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}const ee="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(ee);export{ne as A,he as B,ue as C,H as D,fe as E,y as H,we as S,F as a,$e as b,oe as c,X as d,se as e,m as f,S as g,ce as h,Te as i,J as j,le as k,_e as l,g as m,K as n,de as o,pe as p,me as q,xe as r,ie as s,ye as t,ge as u,Y as v,Z as w,ae as x,V as y,re as z}; diff --git a/dist/_app/immutable/chunks/index.kYoizZ4A.js.br b/dist/_app/immutable/chunks/index.kYoizZ4A.js.br new file mode 100644 index 0000000..f3f1c76 Binary files /dev/null and b/dist/_app/immutable/chunks/index.kYoizZ4A.js.br differ diff --git a/dist/_app/immutable/chunks/index.kYoizZ4A.js.gz b/dist/_app/immutable/chunks/index.kYoizZ4A.js.gz new file mode 100644 index 0000000..ac8293b Binary files /dev/null and b/dist/_app/immutable/chunks/index.kYoizZ4A.js.gz differ diff --git a/dist/_app/immutable/chunks/livecoding_supercollider.O4f0A5Qq.js b/dist/_app/immutable/chunks/livecoding_supercollider.O4f0A5Qq.js new file mode 100644 index 0000000..83e05f3 --- /dev/null +++ b/dist/_app/immutable/chunks/livecoding_supercollider.O4f0A5Qq.js @@ -0,0 +1,80 @@ +import{s as el,x as qs,y as $a,n as tl}from"./scheduler.aZRR5A_O.js";import{S as nl,i as sl,r as Ts,u as As,v as Fs,d as Ms,t as Hs,w as Ps,g as u,s as r,H as z,h as o,x as b,c as i,j as $,C as R,f as t,k as B,a as s}from"./index.kYoizZ4A.js";import{G as al,g as ll,a as Ra}from"./guides.fqK5Mftf.js";import{I as Ba}from"./Info.ITY44f4q.js";var Ia=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},rl={exports:{}};(function(Q){var y=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + */var m=function(h){var w=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,x=0,L={},f={manual:h.Prism&&h.Prism.manual,disableWorkerMessageHandler:h.Prism&&h.Prism.disableWorkerMessageHandler,util:{encode:function a(l){return l instanceof A?new A(l.type,a(l.content),l.alias):Array.isArray(l)?l.map(a):l.replace(/&/g,"&").replace(/"u")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(c){var a=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(c.stack)||[])[1];if(a){var l=document.getElementsByTagName("script");for(var p in l)if(l[p].src==a)return l[p]}return null}},isActive:function(a,l,p){for(var c="no-"+l;a;){var d=a.classList;if(d.contains(l))return!0;if(d.contains(c))return!1;a=a.parentElement}return!!p}},languages:{plain:L,plaintext:L,text:L,txt:L,extend:function(a,l){var p=f.util.clone(f.languages[a]);for(var c in l)p[c]=l[c];return p},insertBefore:function(a,l,p,c){c=c||f.languages;var d=c[a],g={};for(var k in d)if(d.hasOwnProperty(k)){if(k==l)for(var v in p)p.hasOwnProperty(v)&&(g[v]=p[v]);p.hasOwnProperty(k)||(g[k]=d[k])}var _=c[a];return c[a]=g,f.languages.DFS(f.languages,function(F,P){P===_&&F!=a&&(this[F]=g)}),g},DFS:function a(l,p,c,d){d=d||{};var g=f.util.objId;for(var k in l)if(l.hasOwnProperty(k)){p.call(l,k,l[k],c||k);var v=l[k],_=f.util.type(v);_==="Object"&&!d[g(v)]?(d[g(v)]=!0,a(v,p,null,d)):_==="Array"&&!d[g(v)]&&(d[g(v)]=!0,a(v,p,k,d))}}},plugins:{},highlightAll:function(a,l){f.highlightAllUnder(document,a,l)},highlightAllUnder:function(a,l,p){var c={callback:p,container:a,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};f.hooks.run("before-highlightall",c),c.elements=Array.prototype.slice.apply(c.container.querySelectorAll(c.selector)),f.hooks.run("before-all-elements-highlight",c);for(var d=0,g;g=c.elements[d++];)f.highlightElement(g,l===!0,c.callback)},highlightElement:function(a,l,p){var c=f.util.getLanguage(a),d=f.languages[c];f.util.setLanguage(a,c);var g=a.parentElement;g&&g.nodeName.toLowerCase()==="pre"&&f.util.setLanguage(g,c);var k=a.textContent,v={element:a,language:c,grammar:d,code:k};function _(P){v.highlightedCode=P,f.hooks.run("before-insert",v),v.element.innerHTML=v.highlightedCode,f.hooks.run("after-highlight",v),f.hooks.run("complete",v),p&&p.call(v.element)}if(f.hooks.run("before-sanity-check",v),g=v.element.parentElement,g&&g.nodeName.toLowerCase()==="pre"&&!g.hasAttribute("tabindex")&&g.setAttribute("tabindex","0"),!v.code){f.hooks.run("complete",v),p&&p.call(v.element);return}if(f.hooks.run("before-highlight",v),!v.grammar){_(f.util.encode(v.code));return}if(l&&h.Worker){var F=new Worker(f.filename);F.onmessage=function(P){_(P.data)},F.postMessage(JSON.stringify({language:v.language,code:v.code,immediateClose:!0}))}else _(f.highlight(v.code,v.grammar,v.language))},highlight:function(a,l,p){var c={code:a,grammar:l,language:p};if(f.hooks.run("before-tokenize",c),!c.grammar)throw new Error('The language "'+c.language+'" has no grammar.');return c.tokens=f.tokenize(c.code,c.grammar),f.hooks.run("after-tokenize",c),A.stringify(f.util.encode(c.tokens),c.language)},tokenize:function(a,l){var p=l.rest;if(p){for(var c in p)l[c]=p[c];delete l.rest}var d=new G;return D(d,d.head,a),te(a,d,l,d.head,0),I(d)},hooks:{all:{},add:function(a,l){var p=f.hooks.all;p[a]=p[a]||[],p[a].push(l)},run:function(a,l){var p=f.hooks.all[a];if(!(!p||!p.length))for(var c=0,d;d=p[c++];)d(l)}},Token:A};h.Prism=f;function A(a,l,p,c){this.type=a,this.content=l,this.alias=p,this.length=(c||"").length|0}A.stringify=function a(l,p){if(typeof l=="string")return l;if(Array.isArray(l)){var c="";return l.forEach(function(_){c+=a(_,p)}),c}var d={type:l.type,content:a(l.content,p),tag:"span",classes:["token",l.type],attributes:{},language:p},g=l.alias;g&&(Array.isArray(g)?Array.prototype.push.apply(d.classes,g):d.classes.push(g)),f.hooks.run("wrap",d);var k="";for(var v in d.attributes)k+=" "+v+'="'+(d.attributes[v]||"").replace(/"/g,""")+'"';return"<"+d.tag+' class="'+d.classes.join(" ")+'"'+k+">"+d.content+""};function H(a,l,p,c){a.lastIndex=l;var d=a.exec(p);if(d&&c&&d[1]){var g=d[1].length;d.index+=g,d[0]=d[0].slice(g)}return d}function te(a,l,p,c,d,g){for(var k in p)if(!(!p.hasOwnProperty(k)||!p[k])){var v=p[k];v=Array.isArray(v)?v:[v];for(var _=0;_=g.reach);E+=S.value.length,S=S.next){var O=S.value;if(l.length>a.length)return;if(!(O instanceof A)){var W=1,M;if(se){if(M=H(ae,E,a,ne),!M||M.index>=a.length)break;var j=M.index,Z=M.index+M[0].length,U=E;for(U+=S.value.length;j>=U;)S=S.next,U+=S.value.length;if(U-=S.value.length,E=U,S.value instanceof A)continue;for(var N=S;N!==l.tail&&(Ug.reach&&(g.reach=pt);var X=S.prev;K&&(X=D(l,X,K),E+=K.length),Y(l,X,W);var ct=new A(k,P?f.tokenize(le,P):le,J,le);if(S=D(l,X,ct),V&&D(l,S,V),W>1){var ee={cause:k+","+_,reach:pt};te(a,l,p,S.prev,E,ee),g&&ee.reach>g.reach&&(g.reach=ee.reach)}}}}}}function G(){var a={value:null,prev:null,next:null},l={value:null,prev:a,next:null};a.next=l,this.head=a,this.tail=l,this.length=0}function D(a,l,p){var c=l.next,d={value:p,prev:l,next:c};return l.next=d,c.prev=d,a.length++,d}function Y(a,l,p){for(var c=l.next,d=0;d/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},m.languages.markup.tag.inside["attr-value"].inside.entity=m.languages.markup.entity,m.languages.markup.doctype.inside["internal-subset"].inside=m.languages.markup,m.hooks.add("wrap",function(h){h.type==="entity"&&(h.attributes.title=h.content.replace(/&/,"&"))}),Object.defineProperty(m.languages.markup.tag,"addInlined",{value:function(w,x){var L={};L["language-"+x]={pattern:/(^$)/i,lookbehind:!0,inside:m.languages[x]},L.cdata=/^$/i;var f={"included-cdata":{pattern://i,inside:L}};f["language-"+x]={pattern:/[\s\S]+/,inside:m.languages[x]};var A={};A[w]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return w}),"i"),lookbehind:!0,greedy:!0,inside:f},m.languages.insertBefore("markup","cdata",A)}}),Object.defineProperty(m.languages.markup.tag,"addAttribute",{value:function(h,w){m.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+h+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[w,"language-"+w],inside:m.languages[w]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),m.languages.html=m.languages.markup,m.languages.mathml=m.languages.markup,m.languages.svg=m.languages.markup,m.languages.xml=m.languages.extend("markup",{}),m.languages.ssml=m.languages.xml,m.languages.atom=m.languages.xml,m.languages.rss=m.languages.xml,function(h){var w=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;h.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+w.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+w.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+w.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+w.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:w,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},h.languages.css.atrule.inside.rest=h.languages.css;var x=h.languages.markup;x&&(x.tag.addInlined("style","css"),x.tag.addAttribute("style","css"))}(m),m.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},m.languages.javascript=m.languages.extend("clike",{"class-name":[m.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),m.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,m.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:m.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:m.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:m.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:m.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:m.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),m.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:m.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),m.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),m.languages.markup&&(m.languages.markup.tag.addInlined("script","javascript"),m.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),m.languages.js=m.languages.javascript,function(){if(typeof m>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var h="Loading…",w=function(q,C){return"✖ Error "+q+" while fetching file: "+C},x="✖ Error: File does not exist or is empty",L={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},f="data-src-status",A="loading",H="loaded",te="failed",G="pre[data-src]:not(["+f+'="'+H+'"]):not(['+f+'="'+A+'"])';function D(q,C,T){var a=new XMLHttpRequest;a.open("GET",q,!0),a.onreadystatechange=function(){a.readyState==4&&(a.status<400&&a.responseText?C(a.responseText):a.status>=400?T(w(a.status,a.statusText)):T(x))},a.send(null)}function Y(q){var C=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(q||"");if(C){var T=Number(C[1]),a=C[2],l=C[3];return a?l?[T,Number(l)]:[T,void 0]:[T,T]}}m.hooks.add("before-highlightall",function(q){q.selector+=", "+G}),m.hooks.add("before-sanity-check",function(q){var C=q.element;if(C.matches(G)){q.code="",C.setAttribute(f,A);var T=C.appendChild(document.createElement("CODE"));T.textContent=h;var a=C.getAttribute("data-src"),l=q.language;if(l==="none"){var p=(/\.(\w+)$/.exec(a)||[,"none"])[1];l=L[p]||p}m.util.setLanguage(T,l),m.util.setLanguage(C,l);var c=m.plugins.autoloader;c&&c.loadLanguages(l),D(a,function(d){C.setAttribute(f,H);var g=Y(C.getAttribute("data-range"));if(g){var k=d.split(/\r\n?|\n/g),v=g[0],_=g[1]==null?k.length:g[1];v<0&&(v+=k.length),v=Math.max(0,Math.min(v-1,k.length)),_<0&&(_+=k.length),_=Math.max(0,Math.min(_,k.length)),d=k.slice(v,_).join(` +`),C.hasAttribute("data-start")||C.setAttribute("data-start",String(v+1))}T.textContent=d,m.highlightElement(T)},function(d){C.setAttribute(f,te),T.textContent=d})}}),m.plugins.fileHighlight={highlight:function(C){for(var T=(C||document).querySelectorAll(G),a=0,l;l=T[a++];)m.highlightElement(l)}};var I=!1;m.fileHighlight=function(){I||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),I=!0),m.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(rl);function il(Q){let y,m="Introduction",h,w,x='Après avoir travaillé longtemps sur Sardine et Topos, je me suis posé la question de savoir si j’étais encore capable de live coder sur SuperCollider. J’ai donc décidé de ramasser tout ce que je sais pour constituer un environnement de live coding minimal et efficace. Ce document est le résultat de cette expérience. Il existe aussi un petit Quark qui va un peu plus loin que ce guide, mais que je ne documente pas encore. J’avais une certaine jalousie latente vis à vis des artistes qui utilisent SuperCollider sans recourir à aucune extension ou surcouche logicielle qui facilite la tâche. Le langage et l’environnement de SuperCollider est monstrueux (de complexité, de détails, etc). Il offre toutefois un avantage intéressant : SuperCollider est très versatile. Au sein d’un seul langage / interface, il est possible de passer d’une section du code lié aux patterns musicaux à une autre partie du code directement liée à la synthèse et à l’écriture de traitements sonores. On peut aussi s’en servir pour écrire des utilitaires divers et des interfaces graphiques si besoin. SuperCollider est aussi un environnement relativement minimal et économe pour la production et le travail du son, développé depuis plus de vingt ans. Cela garantit de pouvoir le faire tourner sur toutes les machines sans aucun problème.',L,f,A,H,te='SuperCollider a joué un rôle crucial dans le développement du live coding au cours de ces 20 dernières années (dès la parution de SuperCollider 2). Il est toujours utilisé par l’immense majorité des artistes et performers sous une forme directe ou indirecte (au travers de Tidal, FoxDot ou Sonic Pi). Bien que ces derniers soient aujourd’hui populaires, il est également intéressant de voir que l’on peut réaliser peu ou prou la même chose tout en éliminant toute une catégorie de problèmes liés à l’installation, au déploiement ou à la personnalisation de ces interfaces.',G,D,Y,I,q,C,T,a,l='SuperCollider Logo',p,c,d,g,k="Mise en place",v,_,F='La mise en place est relativement simple. Nous aurons uniquement besoin de l’environnement de base et de la librairie JITLib, livrée par défaut avec SuperCollider. Nous augmenterons progressivement SuperCollider avec des plugins (Quarks) mais cela ne requiert pas d’installation directe et peut même se révéler facultatif.',P,ne,se,J,dt='1) Téléchargez et installez SuperCollider depuis le site officiel.',ae,S,E='2) Optionnel : téléchargez sc3-plugins, une collection officielle d’objets supplémentaires.',O,W,M,Z,U="Il est important de bien comprendre comment est structuré SuperCollider. Il s’agit d’un environnement composé de plusieurs briques logicielles interconnectées (ou non) :",N,j,le=`
  • SCLang : un langage de programmation inspiré de la famille C ou +SmallTalk
  • SCSynth / SCServer : un serveur chargé de l’exécution audio
  • SCIDE : l’éditeur par défaut, qui lie ces deux premiers composants
  • `,K,V,pt=`SCIDE est utile, mais si vous préférez utiliser un autre éditeur, il est +possible de lier VSCode, Emacs ou Neovim. SCLang et SCSynth sont les deux composants les plus importants, l’un servant au contrôle de l’autre. L’architecture de SuperCollider est toujours axée sur la différence entre un client (le langage) et le serveur (qui exécute l’audio).`,X,ct,ee,re,Es="Commandes de base",mt,ie,zs="Lorsque vous ouvrez SCIDE, vous vous trouvez face à un document texte vierge. C’est dans cette zone que vous devez programmer et écrire votre code. SuperCollider est un langage interprété. Cela signifie que vous allez graduellement soumettre du code à évaluation et recevoir le résultat des commandes éxecutées. Cela peut parfois poser problème aux débutants qui ne sont pas habitués à cette manière de concevoir la programmation :",ft,ue,$s=`
  • l’évaluation d’un fichier ne s’effectue pas toujours de manière linéaire. On +peut évaluer du code bloc par bloc ou modifier un bloc à la volée. +SuperCollider identifie un bloc à l’aide des parenthèses ().
  • il est possible d’évaluer un fichier de manière linéaire si besoin. Il existe +des commandes spécifiques pour ce faire (par ex. "blabla/mon_fichier.scd".loadRelative).
  • la librairie standard (classes, extensions) est lue / interprétée de manière +linéaire au démarrage de l’interpréteur. Vous ne pourrez pas démarrer +l’interpréteur si une erreur est identifiée dans cette partie du code : Library has not been compiled successfully.
  • `,gt,vt,bt,oe,Rs="Selon votre éditeur, les commandes pour évaluer du code ligne par ligne ou bloc par bloc peuvent varier (Shift + Enter, Control + Enter, etc). Vous pourrez trouvez les commandes dans le menu Language de SCIDE. Pour vérifier que tout fonctionne, évaluez la ligne suivante (note : les commentaires sont précédés des caractères // et ne sont pas évalués) :",ht,pe,kt,Da='s.boot // Démarrage du serveur',xt,ce,Bs=`Attendez quelques secondes pour vérifier que tout se passe correctement puis +tuez le serveur :`,Ct,de,_t,Oa='Server.killAll // Tuer le serveur',wt,me,Is=`SuperCollider permet de prendre l’habitude de ne pas considérer le code +comme un texte linéaire mais comme une interface, ce qui est une caractéristique +commune des outils de live coding. C’est aussi une constante des +environnements pour la programmation musicale (Max/MSP, Pure Data) qui +éliminent / gomment la distinction entre travail sur le programme et exécution +du programme.`,yt,St,Lt,fe,js=`Ce guide ne vous apprendra pas les rudiments du langage. Il existe de très +nombreux guides qui font cela très bien. Notez la parution récente d’un nouvel +ouvrage : SuperCollider for the Creative Musician par Eli Fieldsteel, également auteur d’une série de vidéos que je recommande.`,qt,Tt,At,ge,Ds="Prérequis",Ft,Mt,Ht,ve,Os="Dès maintenant, je pars du principe que vous êtes à l’aise avec l’environnement SuperCollider et que vous avez au moins quelques rudiments de son utilisation. Il n’est pas nécessaire d’en connaître beaucoup mais au moins de savoir évaluer du code, naviguer dans les fichiers d’aide et de maîtriser quelques raccourcis clavier. Le reste viendra naturellement en pratiquant. Voici quelques suggestions pour découvrir SuperCollider et son utilisation :",Pt,be,Us=`
  • se familiariser avec chaque élément de l’interface (s.scope, +s.freqscope, s.gui)
  • se familiariser avec la documentation intégrée, lire les guides disponibles
  • apprendre comment contrôler le serveur (s, Server.default) et l’interpréteur
    • démarrer et arrêter le serveur
    • recompiler la librairie / redémarrer l’interpréteur
  • apprendre la syntaxe de base d’une SynthDef (définition de synthèse)
  • apprendre à jouer avec la librairie des patterns (Pbind, Pseq, etc)
  • `,Et,he,Gs="Paramétrage du serveur",zt,$t,Rt,ke,Ns=`Nous allons maintenant commencer à travailler sur un fichier de lancement +réutilisable pour SuperCollider. Créez un fichier nommé startup.scd ou +tout autre nom qui vous permettra de l’identifier facilement.`,Bt,It,jt,xe,Vs="Choisir une interface audio",Dt,Ot,Ut,Ce,Qs="Pour connaître le nom des périphériques audio disponibles :",Gt,_e,Nt,Ua=`ServerOptions.devices; // Tout ce qui est disponible +ServerOptions.inDevices; // Les entrées uniquement +ServerOptions.outDevices; // Les sorties uniquement`,Vt,we,Js="Il est possible de spécifier une entrée et une sortie différente :",Qt,ye,Jt,Ga=`Server.default.options.inDevice_("Built-in Microph"); +Server.default.options.outDevice_("Built-in Output");`,Wt,Se,Ws="On peut aussi utiliser le même device pour l’entrée et la sortie :",Zt,Le,Xt,Na=`s.options.device = "BlackHole 16ch"; // Choix de l'interface +Server.default.options.device_("BlackHole 16ch"); // Alternative`,Yt,Kt,en,qe,Zs=`Pour appliquer les modifications, il sera nécessaire de redémarrer le serveur. +Veillez à ce que votre entrée et votre sortie audio soient à la même fréquence +d’échantillonnage (sampling rate). Si ce n’est pas le cas, le serveur refusera +de démarrer, ce qui est une erreur très courante. Paramétrez votre fréquence +sur 44100hz ou 48000hz.`,tn,nn,sn,Te,Xs=`Note : si vous avez pour habitude d’utiliser des écouteurs ou haut-parleurs +Bluetooth, les OS modernes ont tendance à changer automatiquement la +fréquence d’échantillonnage à la connexion/déconnexion. Il en va de même des +micros et carte sons externes.`,an,ln,rn,Ae,Ys="Router le son de SuperCollider vers un autre logiciel",un,on,pn,Fe,Ks='Il est tout à fait possible d’utiliser SuperCollider comme source principale et de router ensuite le son vers un autre logiciel pour le traitement. Cela vous permettra d’enregistrer plus facilement en multipiste, de disposer d’effets ou de synthétiseurs supplémentaires, etc. Vous pourrez aussi contrôler une partie de votre dispositif en MIDI ou OSC directement depuis SuperCollider. Pour pouvoir router librement les signaux sortants de SuperCollider, il est préférable d’utiliser une interface virtuelle comme BlackHole (cross-platform), Loopback (MacOS, payant), Jack (cross-platform) ou VB-Audio VoiceMeeter (Windows, payant). Ces logiciels permettent de créer des bus audio virtuels qui peuvent être utilisés comme entrée ou sortie par SuperCollider aussi bien que par n’importe quel autre logiciel. L’utilisation de bus audios virtuels offre une grande flexibilité et je recommande de prendre l’habitude de les utiliser.',cn,dn,mn,Me,ea=`1) Choisir comme entrée/sortie une interface virtuelle (BlackHole, Loopback, +etc).`,fn,He,ta=`2) Choisir comme entrée dans le logiciel de traitement le bus virtuel que vous +venez de créer.`,gn,Pe,na="3) Traiter / enregistrer le son canal par canal dans votre logiciel.",vn,bn,hn,Ee,sa='Routage de SuperCollider dans Reaper',kn,xn,Cn,ze,aa="Protéger ses oreilles",_n,wn,yn,$e,la='SuperCollider vous permet de manipuler le son sans aucune restriction. C’est très utile mais c’est aussi assez dangereux non seulement pour vous mais aussi pour votre public si vous vous produisez sur scène : larsens, clipping, explosion du volume, etc. Heureusement, ce problème est connu et il existe des moyens efficaces de se protéger. Nous allons utiliser le système de plugins interne pour installer un Quark très utile. Avec la commande suivante, installez BatLib:',Sn,Re,Ln,Va='Quarks.install("https://github.com/supercollider-quarks/BatLib")',qn,Be,ra="Recompilez ensuite la librairie et vous pourrez utiliser le StageLimiter. Il vous sauvera sans doute la vie de nombreuses fois. Vous verrez comment on le démarre dans le récapitulatif plus bas. TLDR, la commande est :",Tn,Ie,An,Qa='StageLimiter.activate;',Fn,je,ia='Notez que pour certains types de musique, il peut être intéressant de ne pas activer le StageLimiter. La protection a tendance à colorer le son et peut aller à l’encontre de ce que vous souhaitez réellement faire : distortion numérique, clipping volontaire. Il existe d’autres types de protection (le Quark SafetyNet) ou bien, tout simplement, vous pouvez vous fier à votre oreille et à votre expérience pour ne pas dépasser les limites.',Mn,Hn,Pn,De,ua="Choisir un dossier de stockage",En,zn,$n,Oe,oa=`Plutôt que de tout stocker dans le dossier par défaut, je préfère utiliser un +dossier qui contient tout ce dont j’ai besoin pour travailler : configuration, +définitions de synthèse, échantillons sonores. Cela permet de n’avoir qu’une +seule route à retenir si le système est relativement unifié. J’ai choisi de tout +stocker dans .config/livecoding/, ce qui est une route assez prévisible pour +tout ceux qui sont habitués à utiliser le terminal sur MacOS / Linux. +Voici à quoi ressemble mon dossier :`,Rn,Ue,Bn,Ja=`. +├── Configuration.scd +├── README.md +├── Synthdefs.scd +└── samples`,In,Ge,jn,Dn,On,Ne,pa=`Toute la configuration sera chargée à partir de la route +/Users/bubo/.config/livecoding. Il vous faudra changer ce chemin pour que cela +cole avec le dossier que vous aurez choisi. Pareillement, vous n’êtes pas +obligés de suivre cette étape qui repose uniquement sur une préférence +personnelle.`,Un,Gn,Nn,Ve,ca="Chargement automatique des échantillons",Vn,Qn,Jn,Qe,da='Plutôt que de charger les échantillons sonores au cas par cas, en précisant chaque chemin individuellement, je préfère automatiquement charger une grande bibliothèque d’échantillons. Par défaut, il n’existe aucun mécanisme permettant de gérer cela. Beaucoup de musiciens ont toutefois trouvé des solutions élégantes et assez minimales. Je me suis fié à la technique utilisé par Scott Carver. Il utilise une série d’extensions conçues spécialement par ses soins.',Wn,Zn,Xn,Je,ma="Pour installer les Quarks, on utilise une nouvelle fois la commande Quarks.install :",Yn,We,Kn,Wa=`Quarks.install("https://github.com/scztt/Require.quark"); +Quarks.install("https://github.com/scztt/Singleton.quark");`,es,ts,ns,Ze,fa='Une fois que cela est fait, il nous reste à installer la pièce finale, SAMP, qui est mentionnée dans un topic de discussion du forum SuperCollider. Il vous faudra créer ce fichier dans le dossier Extensions. Vous pouvez y accéder dans votre dossier de configuration SuperCollider (dépend de l’OS). Pour obtenir le chemin vers ce dossier, évaluez le code suivant dans SuperCollider :',ss,Xe,as,Za='Platform.userExtensionDir',ls,Ye,ga=`Créez ensuite SAMP.sc dans le dossier Extensions et collez le code du +lien précédemment ouvert. C’est tout ce dont vous avez besoin. Fermez tout et +recompilez la librairie une nouvelle fois. Nous détaillerons ultérieurement l’utilisation de SAMP pour gérer vos échantillons. Sachez que vous y avez maintenant accès !`,rs,is,us,Ke,va="Note : SAMP permet de réaliser un lazy loading des échantillons. Il s’agit d’une technique qui permet de ne pas surcharger d’entrée de jeu la RAM de votre ordinateur en mettant en cache trop d’échantillons. L’utilisation des ressources sera progressive, les échantillons étant chargés uniquement lorsque l’utilisateur les requiert.",os,ps,cs,et,ba="Récapitulatif",ds,ms,fs,tt,ha="Voici le code complet que j’utilise pour le démarrage et la configuration d’un serveur audio minimal pour le live coding :",gs,nt,vs,Xa=`( + s.options.numBuffers = 1024 * 128; // Nombre de buffers disponibles pour stocker des samples + s.options.memSize = 8192 * 64; // Mémoire disponible pour le serveur + s.options.numWireBufs = 2048; // Augmenter ce nombre si "exceeded number of interconnect buffers" + s.options.maxNodes = 1024 * 32; // Changer cette valeur si le son saute avec le message "too many nodes" + s.options.device = "BlackHole 16ch"; // Choix de l'interface audio à utiliser + s.options.numOutputBusChannels = 2; // Indiquer le nombre de sorties de son interface audio + s.options.numInputBusChannels = 2; // Indiquer le nombre d'entrées de son interface audio + p=ProxySpace.push(s.boot); // Démarrage du serveur dans un ProxySpace (JITLIB) + p.makeTempoClock; // Gestion du tempo + p.clock.tempo = 120/60; + SAMP.root = "/Users/bubo/.config/livecoding/samples/"; // Chemin vers les samples + SAMP.lazyLoading = true; // Chargement paresseux (permet de ne pas remplir la mémoire pour rien) + s.waitForBoot({ + "/Users/bubo/.config/livecoding/Synthdefs.scd".load; // Chargement des synthétiseurs + StageLimiter.activate; // StageLimiter pour les oreilles + "== 💻 LIVE CODING PRÊT 💻 == ".postln; + }); +)`,bs,st,ka="Sauvegardez cet extrait de code dans un fichier .scd situé dans votre dossier de stockage. Vous pourrez ensuite l’évaluer à chaque fois que vous voudrez démarrer à l’aide de la commande suivante qu’il vous faudra évaluer dans l’interpréteur :",hs,at,ks,Ya='"/Users/bubo/.config/livecoding/Configuration.scd".load;',xs,lt,xa="Si vous souhaitez démarrer SuperCollider avec cette configuration par défaut, vous pouvez également tirer parti du fichier de démarrage, qui s’exécute automatiquement à l’ouverture de SCIDe. Ce dernier se situe dans votre dossier de configuration SuperCollider. Vous pouvez le trouver en évaluant le code suivant :",Cs,rt,_s,Ka='Platform.userAppSupportDir',ws,it,Ca=`Il devrait exister un fichier startup.scd que vous pouvez remplir avec la +configuration ci-dessus, en adaptant les chemins.`,ys,ut,_a="Conclusion",Ss,ot,wa=`Cette configuration sera amenée à évoluer et pourra même faire l’objet d’une +refonte complète lorsque vous serez amenés à pré-charger d’autres composants : +synthétiseurs, effets pré-déclarés, etc. Nous y reviendrons.`,Ls;return I=new Ba({props:{info:`Ce guide est une approche personnelle de SuperCollider. Je ne +suis pas particulièrement expert sur le sujet et j'accueille volontiers toutes +les suggestions pour améliorer cette série d'articles.`,markdown:"false"}}),Ge=new Ba({props:{info:"Ce graphe est généré avec la commande tree -L 1",markdown:"false"}}),{c(){y=u("h2"),y.textContent=m,h=r(),w=u("p"),w.innerHTML=x,L=r(),f=u("br"),A=r(),H=u("p"),H.innerHTML=te,G=r(),D=u("br"),Y=r(),Ts(I.$$.fragment),q=r(),C=u("br"),T=r(),a=u("p"),a.innerHTML=l,p=r(),c=u("br"),d=r(),g=u("h2"),g.textContent=k,v=r(),_=u("p"),_.innerHTML=F,P=r(),ne=u("br"),se=r(),J=u("p"),J.innerHTML=dt,ae=r(),S=u("p"),S.innerHTML=E,O=r(),W=u("br"),M=r(),Z=u("p"),Z.innerHTML=U,N=r(),j=u("ul"),j.innerHTML=le,K=r(),V=u("p"),V.innerHTML=pt,X=r(),ct=u("br"),ee=r(),re=u("h2"),re.textContent=Es,mt=r(),ie=u("p"),ie.innerHTML=zs,ft=r(),ue=u("ul"),ue.innerHTML=$s,gt=r(),vt=u("br"),bt=r(),oe=u("p"),oe.innerHTML=Rs,ht=r(),pe=u("pre"),kt=new z(!1),xt=r(),ce=u("p"),ce.textContent=Bs,Ct=r(),de=u("pre"),_t=new z(!1),wt=r(),me=u("p"),me.innerHTML=Is,yt=r(),St=u("br"),Lt=r(),fe=u("p"),fe.innerHTML=js,qt=r(),Tt=u("br"),At=r(),ge=u("h2"),ge.textContent=Ds,Ft=r(),Mt=u("br"),Ht=r(),ve=u("p"),ve.innerHTML=Os,Pt=r(),be=u("ul"),be.innerHTML=Us,Et=r(),he=u("h2"),he.textContent=Gs,zt=r(),$t=u("br"),Rt=r(),ke=u("p"),ke.innerHTML=Ns,Bt=r(),It=u("br"),jt=r(),xe=u("h3"),xe.textContent=Vs,Dt=r(),Ot=u("br"),Ut=r(),Ce=u("p"),Ce.textContent=Qs,Gt=r(),_e=u("pre"),Nt=new z(!1),Vt=r(),we=u("p"),we.textContent=Js,Qt=r(),ye=u("pre"),Jt=new z(!1),Wt=r(),Se=u("p"),Se.innerHTML=Ws,Zt=r(),Le=u("pre"),Xt=new z(!1),Yt=r(),Kt=u("br"),en=r(),qe=u("p"),qe.innerHTML=Zs,tn=r(),nn=u("br"),sn=r(),Te=u("p"),Te.innerHTML=Xs,an=r(),ln=u("br"),rn=r(),Ae=u("h3"),Ae.textContent=Ys,un=r(),on=u("br"),pn=r(),Fe=u("p"),Fe.innerHTML=Ks,cn=r(),dn=u("br"),mn=r(),Me=u("p"),Me.textContent=ea,fn=r(),He=u("p"),He.textContent=ta,gn=r(),Pe=u("p"),Pe.textContent=na,vn=r(),bn=u("br"),hn=r(),Ee=u("p"),Ee.innerHTML=sa,kn=r(),xn=u("br"),Cn=r(),ze=u("h3"),ze.textContent=aa,_n=r(),wn=u("br"),yn=r(),$e=u("p"),$e.innerHTML=la,Sn=r(),Re=u("pre"),Ln=new z(!1),qn=r(),Be=u("p"),Be.innerHTML=ra,Tn=r(),Ie=u("pre"),An=new z(!1),Fn=r(),je=u("p"),je.innerHTML=ia,Mn=r(),Hn=u("br"),Pn=r(),De=u("h3"),De.textContent=ua,En=r(),zn=u("br"),$n=r(),Oe=u("p"),Oe.innerHTML=oa,Rn=r(),Ue=u("pre"),Bn=new z(!1),In=r(),Ts(Ge.$$.fragment),jn=r(),Dn=u("br"),On=r(),Ne=u("p"),Ne.innerHTML=pa,Un=r(),Gn=u("br"),Nn=r(),Ve=u("h3"),Ve.textContent=ca,Vn=r(),Qn=u("br"),Jn=r(),Qe=u("p"),Qe.innerHTML=da,Wn=r(),Zn=u("br"),Xn=r(),Je=u("p"),Je.innerHTML=ma,Yn=r(),We=u("pre"),Kn=new z(!1),es=r(),ts=u("br"),ns=r(),Ze=u("p"),Ze.innerHTML=fa,ss=r(),Xe=u("pre"),as=new z(!1),ls=r(),Ye=u("p"),Ye.innerHTML=ga,rs=r(),is=u("br"),us=r(),Ke=u("p"),Ke.innerHTML=va,os=r(),ps=u("br"),cs=r(),et=u("h3"),et.textContent=ba,ds=r(),ms=u("br"),fs=r(),tt=u("p"),tt.innerHTML=ha,gs=r(),nt=u("pre"),vs=new z(!1),bs=r(),st=u("p"),st.innerHTML=ka,hs=r(),at=u("pre"),ks=new z(!1),xs=r(),lt=u("p"),lt.innerHTML=xa,Cs=r(),rt=u("pre"),_s=new z(!1),ws=r(),it=u("p"),it.innerHTML=Ca,ys=r(),ut=u("h2"),ut.textContent=_a,Ss=r(),ot=u("p"),ot.textContent=wa,this.h()},l(e){y=o(e,"H2",{"data-svelte-h":!0}),b(y)!=="svelte-1ukekoe"&&(y.textContent=m),h=i(e),w=o(e,"P",{"data-svelte-h":!0}),b(w)!=="svelte-7rkpty"&&(w.innerHTML=x),L=i(e),f=o(e,"BR",{}),A=i(e),H=o(e,"P",{"data-svelte-h":!0}),b(H)!=="svelte-1rjzs2d"&&(H.innerHTML=te),G=i(e),D=o(e,"BR",{}),Y=i(e),As(I.$$.fragment,e),q=i(e),C=o(e,"BR",{}),T=i(e),a=o(e,"P",{"data-svelte-h":!0}),b(a)!=="svelte-50dijs"&&(a.innerHTML=l),p=i(e),c=o(e,"BR",{}),d=i(e),g=o(e,"H2",{"data-svelte-h":!0}),b(g)!=="svelte-xnmkjo"&&(g.textContent=k),v=i(e),_=o(e,"P",{"data-svelte-h":!0}),b(_)!=="svelte-1rinzxc"&&(_.innerHTML=F),P=i(e),ne=o(e,"BR",{}),se=i(e),J=o(e,"P",{"data-svelte-h":!0}),b(J)!=="svelte-d8v93c"&&(J.innerHTML=dt),ae=i(e),S=o(e,"P",{"data-svelte-h":!0}),b(S)!=="svelte-1takps0"&&(S.innerHTML=E),O=i(e),W=o(e,"BR",{}),M=i(e),Z=o(e,"P",{"data-svelte-h":!0}),b(Z)!=="svelte-1vyl27o"&&(Z.innerHTML=U),N=i(e),j=o(e,"UL",{"data-svelte-h":!0}),b(j)!=="svelte-hv4bkw"&&(j.innerHTML=le),K=i(e),V=o(e,"P",{"data-svelte-h":!0}),b(V)!=="svelte-3smba5"&&(V.innerHTML=pt),X=i(e),ct=o(e,"BR",{}),ee=i(e),re=o(e,"H2",{"data-svelte-h":!0}),b(re)!=="svelte-hua5op"&&(re.textContent=Es),mt=i(e),ie=o(e,"P",{"data-svelte-h":!0}),b(ie)!=="svelte-1bj8gjt"&&(ie.innerHTML=zs),ft=i(e),ue=o(e,"UL",{"data-svelte-h":!0}),b(ue)!=="svelte-8eutst"&&(ue.innerHTML=$s),gt=i(e),vt=o(e,"BR",{}),bt=i(e),oe=o(e,"P",{"data-svelte-h":!0}),b(oe)!=="svelte-oa7hms"&&(oe.innerHTML=Rs),ht=i(e),pe=o(e,"PRE",{class:!0});var n=$(pe);kt=R(n,!1),n.forEach(t),xt=i(e),ce=o(e,"P",{"data-svelte-h":!0}),b(ce)!=="svelte-51uwhi"&&(ce.textContent=Bs),Ct=i(e),de=o(e,"PRE",{class:!0});var ya=$(de);_t=R(ya,!1),ya.forEach(t),wt=i(e),me=o(e,"P",{"data-svelte-h":!0}),b(me)!=="svelte-10i0i02"&&(me.innerHTML=Is),yt=i(e),St=o(e,"BR",{}),Lt=i(e),fe=o(e,"P",{"data-svelte-h":!0}),b(fe)!=="svelte-1xrvjb"&&(fe.innerHTML=js),qt=i(e),Tt=o(e,"BR",{}),At=i(e),ge=o(e,"H2",{"data-svelte-h":!0}),b(ge)!=="svelte-11x115w"&&(ge.textContent=Ds),Ft=i(e),Mt=o(e,"BR",{}),Ht=i(e),ve=o(e,"P",{"data-svelte-h":!0}),b(ve)!=="svelte-oiiynv"&&(ve.innerHTML=Os),Pt=i(e),be=o(e,"UL",{"data-svelte-h":!0}),b(be)!=="svelte-1kykvor"&&(be.innerHTML=Us),Et=i(e),he=o(e,"H2",{"data-svelte-h":!0}),b(he)!=="svelte-1gkj9qe"&&(he.textContent=Gs),zt=i(e),$t=o(e,"BR",{}),Rt=i(e),ke=o(e,"P",{"data-svelte-h":!0}),b(ke)!=="svelte-89t05y"&&(ke.innerHTML=Ns),Bt=i(e),It=o(e,"BR",{}),jt=i(e),xe=o(e,"H3",{"data-svelte-h":!0}),b(xe)!=="svelte-tt5viu"&&(xe.textContent=Vs),Dt=i(e),Ot=o(e,"BR",{}),Ut=i(e),Ce=o(e,"P",{"data-svelte-h":!0}),b(Ce)!=="svelte-1b1pdsx"&&(Ce.textContent=Qs),Gt=i(e),_e=o(e,"PRE",{class:!0});var Sa=$(_e);Nt=R(Sa,!1),Sa.forEach(t),Vt=i(e),we=o(e,"P",{"data-svelte-h":!0}),b(we)!=="svelte-zxgqi1"&&(we.textContent=Js),Qt=i(e),ye=o(e,"PRE",{class:!0});var La=$(ye);Jt=R(La,!1),La.forEach(t),Wt=i(e),Se=o(e,"P",{"data-svelte-h":!0}),b(Se)!=="svelte-1ph5p4m"&&(Se.innerHTML=Ws),Zt=i(e),Le=o(e,"PRE",{class:!0});var qa=$(Le);Xt=R(qa,!1),qa.forEach(t),Yt=i(e),Kt=o(e,"BR",{}),en=i(e),qe=o(e,"P",{"data-svelte-h":!0}),b(qe)!=="svelte-1my7crh"&&(qe.innerHTML=Zs),tn=i(e),nn=o(e,"BR",{}),sn=i(e),Te=o(e,"P",{"data-svelte-h":!0}),b(Te)!=="svelte-ysw906"&&(Te.innerHTML=Xs),an=i(e),ln=o(e,"BR",{}),rn=i(e),Ae=o(e,"H3",{"data-svelte-h":!0}),b(Ae)!=="svelte-kfth7w"&&(Ae.textContent=Ys),un=i(e),on=o(e,"BR",{}),pn=i(e),Fe=o(e,"P",{"data-svelte-h":!0}),b(Fe)!=="svelte-aiy4wh"&&(Fe.innerHTML=Ks),cn=i(e),dn=o(e,"BR",{}),mn=i(e),Me=o(e,"P",{"data-svelte-h":!0}),b(Me)!=="svelte-nb5dha"&&(Me.textContent=ea),fn=i(e),He=o(e,"P",{"data-svelte-h":!0}),b(He)!=="svelte-uv9hed"&&(He.textContent=ta),gn=i(e),Pe=o(e,"P",{"data-svelte-h":!0}),b(Pe)!=="svelte-1edr512"&&(Pe.textContent=na),vn=i(e),bn=o(e,"BR",{}),hn=i(e),Ee=o(e,"P",{"data-svelte-h":!0}),b(Ee)!=="svelte-fbrdfo"&&(Ee.innerHTML=sa),kn=i(e),xn=o(e,"BR",{}),Cn=i(e),ze=o(e,"H3",{"data-svelte-h":!0}),b(ze)!=="svelte-4wsstc"&&(ze.textContent=aa),_n=i(e),wn=o(e,"BR",{}),yn=i(e),$e=o(e,"P",{"data-svelte-h":!0}),b($e)!=="svelte-1kgpabk"&&($e.innerHTML=la),Sn=i(e),Re=o(e,"PRE",{class:!0});var Ta=$(Re);Ln=R(Ta,!1),Ta.forEach(t),qn=i(e),Be=o(e,"P",{"data-svelte-h":!0}),b(Be)!=="svelte-dg58kp"&&(Be.innerHTML=ra),Tn=i(e),Ie=o(e,"PRE",{class:!0});var Aa=$(Ie);An=R(Aa,!1),Aa.forEach(t),Fn=i(e),je=o(e,"P",{"data-svelte-h":!0}),b(je)!=="svelte-8mr65h"&&(je.innerHTML=ia),Mn=i(e),Hn=o(e,"BR",{}),Pn=i(e),De=o(e,"H3",{"data-svelte-h":!0}),b(De)!=="svelte-eqy1p7"&&(De.textContent=ua),En=i(e),zn=o(e,"BR",{}),$n=i(e),Oe=o(e,"P",{"data-svelte-h":!0}),b(Oe)!=="svelte-1izbaiv"&&(Oe.innerHTML=oa),Rn=i(e),Ue=o(e,"PRE",{class:!0});var Fa=$(Ue);Bn=R(Fa,!1),Fa.forEach(t),In=i(e),As(Ge.$$.fragment,e),jn=i(e),Dn=o(e,"BR",{}),On=i(e),Ne=o(e,"P",{"data-svelte-h":!0}),b(Ne)!=="svelte-835hap"&&(Ne.innerHTML=pa),Un=i(e),Gn=o(e,"BR",{}),Nn=i(e),Ve=o(e,"H3",{"data-svelte-h":!0}),b(Ve)!=="svelte-9mx1vr"&&(Ve.textContent=ca),Vn=i(e),Qn=o(e,"BR",{}),Jn=i(e),Qe=o(e,"P",{"data-svelte-h":!0}),b(Qe)!=="svelte-nmdp3e"&&(Qe.innerHTML=da),Wn=i(e),Zn=o(e,"BR",{}),Xn=i(e),Je=o(e,"P",{"data-svelte-h":!0}),b(Je)!=="svelte-1xxxj79"&&(Je.innerHTML=ma),Yn=i(e),We=o(e,"PRE",{class:!0});var Ma=$(We);Kn=R(Ma,!1),Ma.forEach(t),es=i(e),ts=o(e,"BR",{}),ns=i(e),Ze=o(e,"P",{"data-svelte-h":!0}),b(Ze)!=="svelte-broz1s"&&(Ze.innerHTML=fa),ss=i(e),Xe=o(e,"PRE",{class:!0});var Ha=$(Xe);as=R(Ha,!1),Ha.forEach(t),ls=i(e),Ye=o(e,"P",{"data-svelte-h":!0}),b(Ye)!=="svelte-1kgbl5n"&&(Ye.innerHTML=ga),rs=i(e),is=o(e,"BR",{}),us=i(e),Ke=o(e,"P",{"data-svelte-h":!0}),b(Ke)!=="svelte-j6tawo"&&(Ke.innerHTML=va),os=i(e),ps=o(e,"BR",{}),cs=i(e),et=o(e,"H3",{"data-svelte-h":!0}),b(et)!=="svelte-ri7iuh"&&(et.textContent=ba),ds=i(e),ms=o(e,"BR",{}),fs=i(e),tt=o(e,"P",{"data-svelte-h":!0}),b(tt)!=="svelte-9svk99"&&(tt.innerHTML=ha),gs=i(e),nt=o(e,"PRE",{class:!0});var Pa=$(nt);vs=R(Pa,!1),Pa.forEach(t),bs=i(e),st=o(e,"P",{"data-svelte-h":!0}),b(st)!=="svelte-4w91o5"&&(st.innerHTML=ka),hs=i(e),at=o(e,"PRE",{class:!0});var Ea=$(at);ks=R(Ea,!1),Ea.forEach(t),xs=i(e),lt=o(e,"P",{"data-svelte-h":!0}),b(lt)!=="svelte-1ofmlv6"&&(lt.innerHTML=xa),Cs=i(e),rt=o(e,"PRE",{class:!0});var za=$(rt);_s=R(za,!1),za.forEach(t),ws=i(e),it=o(e,"P",{"data-svelte-h":!0}),b(it)!=="svelte-16ctipw"&&(it.innerHTML=Ca),ys=i(e),ut=o(e,"H2",{"data-svelte-h":!0}),b(ut)!=="svelte-grw4hp"&&(ut.textContent=_a),Ss=i(e),ot=o(e,"P",{"data-svelte-h":!0}),b(ot)!=="svelte-qw3nrf"&&(ot.textContent=wa),this.h()},h(){kt.a=null,B(pe,"class","language-js"),_t.a=null,B(de,"class","language-js"),Nt.a=null,B(_e,"class","language-supercollider"),Jt.a=null,B(ye,"class","language-supercollider"),Xt.a=null,B(Le,"class","language-supercollider"),Ln.a=null,B(Re,"class","language-supercollider"),An.a=null,B(Ie,"class","language-supercollider"),Bn.a=null,B(Ue,"class","language-bash"),Kn.a=null,B(We,"class","language-supercollider"),as.a=null,B(Xe,"class","language-supercollider"),vs.a=null,B(nt,"class","language-supercollider"),ks.a=null,B(at,"class","language-supercollider"),_s.a=null,B(rt,"class","language-supercollider")},m(e,n){s(e,y,n),s(e,h,n),s(e,w,n),s(e,L,n),s(e,f,n),s(e,A,n),s(e,H,n),s(e,G,n),s(e,D,n),s(e,Y,n),Fs(I,e,n),s(e,q,n),s(e,C,n),s(e,T,n),s(e,a,n),s(e,p,n),s(e,c,n),s(e,d,n),s(e,g,n),s(e,v,n),s(e,_,n),s(e,P,n),s(e,ne,n),s(e,se,n),s(e,J,n),s(e,ae,n),s(e,S,n),s(e,O,n),s(e,W,n),s(e,M,n),s(e,Z,n),s(e,N,n),s(e,j,n),s(e,K,n),s(e,V,n),s(e,X,n),s(e,ct,n),s(e,ee,n),s(e,re,n),s(e,mt,n),s(e,ie,n),s(e,ft,n),s(e,ue,n),s(e,gt,n),s(e,vt,n),s(e,bt,n),s(e,oe,n),s(e,ht,n),s(e,pe,n),kt.m(Da,pe),s(e,xt,n),s(e,ce,n),s(e,Ct,n),s(e,de,n),_t.m(Oa,de),s(e,wt,n),s(e,me,n),s(e,yt,n),s(e,St,n),s(e,Lt,n),s(e,fe,n),s(e,qt,n),s(e,Tt,n),s(e,At,n),s(e,ge,n),s(e,Ft,n),s(e,Mt,n),s(e,Ht,n),s(e,ve,n),s(e,Pt,n),s(e,be,n),s(e,Et,n),s(e,he,n),s(e,zt,n),s(e,$t,n),s(e,Rt,n),s(e,ke,n),s(e,Bt,n),s(e,It,n),s(e,jt,n),s(e,xe,n),s(e,Dt,n),s(e,Ot,n),s(e,Ut,n),s(e,Ce,n),s(e,Gt,n),s(e,_e,n),Nt.m(Ua,_e),s(e,Vt,n),s(e,we,n),s(e,Qt,n),s(e,ye,n),Jt.m(Ga,ye),s(e,Wt,n),s(e,Se,n),s(e,Zt,n),s(e,Le,n),Xt.m(Na,Le),s(e,Yt,n),s(e,Kt,n),s(e,en,n),s(e,qe,n),s(e,tn,n),s(e,nn,n),s(e,sn,n),s(e,Te,n),s(e,an,n),s(e,ln,n),s(e,rn,n),s(e,Ae,n),s(e,un,n),s(e,on,n),s(e,pn,n),s(e,Fe,n),s(e,cn,n),s(e,dn,n),s(e,mn,n),s(e,Me,n),s(e,fn,n),s(e,He,n),s(e,gn,n),s(e,Pe,n),s(e,vn,n),s(e,bn,n),s(e,hn,n),s(e,Ee,n),s(e,kn,n),s(e,xn,n),s(e,Cn,n),s(e,ze,n),s(e,_n,n),s(e,wn,n),s(e,yn,n),s(e,$e,n),s(e,Sn,n),s(e,Re,n),Ln.m(Va,Re),s(e,qn,n),s(e,Be,n),s(e,Tn,n),s(e,Ie,n),An.m(Qa,Ie),s(e,Fn,n),s(e,je,n),s(e,Mn,n),s(e,Hn,n),s(e,Pn,n),s(e,De,n),s(e,En,n),s(e,zn,n),s(e,$n,n),s(e,Oe,n),s(e,Rn,n),s(e,Ue,n),Bn.m(Ja,Ue),s(e,In,n),Fs(Ge,e,n),s(e,jn,n),s(e,Dn,n),s(e,On,n),s(e,Ne,n),s(e,Un,n),s(e,Gn,n),s(e,Nn,n),s(e,Ve,n),s(e,Vn,n),s(e,Qn,n),s(e,Jn,n),s(e,Qe,n),s(e,Wn,n),s(e,Zn,n),s(e,Xn,n),s(e,Je,n),s(e,Yn,n),s(e,We,n),Kn.m(Wa,We),s(e,es,n),s(e,ts,n),s(e,ns,n),s(e,Ze,n),s(e,ss,n),s(e,Xe,n),as.m(Za,Xe),s(e,ls,n),s(e,Ye,n),s(e,rs,n),s(e,is,n),s(e,us,n),s(e,Ke,n),s(e,os,n),s(e,ps,n),s(e,cs,n),s(e,et,n),s(e,ds,n),s(e,ms,n),s(e,fs,n),s(e,tt,n),s(e,gs,n),s(e,nt,n),vs.m(Xa,nt),s(e,bs,n),s(e,st,n),s(e,hs,n),s(e,at,n),ks.m(Ya,at),s(e,xs,n),s(e,lt,n),s(e,Cs,n),s(e,rt,n),_s.m(Ka,rt),s(e,ws,n),s(e,it,n),s(e,ys,n),s(e,ut,n),s(e,Ss,n),s(e,ot,n),Ls=!0},p:tl,i(e){Ls||(Ms(I.$$.fragment,e),Ms(Ge.$$.fragment,e),Ls=!0)},o(e){Hs(I.$$.fragment,e),Hs(Ge.$$.fragment,e),Ls=!1},d(e){e&&(t(y),t(h),t(w),t(L),t(f),t(A),t(H),t(G),t(D),t(Y),t(q),t(C),t(T),t(a),t(p),t(c),t(d),t(g),t(v),t(_),t(P),t(ne),t(se),t(J),t(ae),t(S),t(O),t(W),t(M),t(Z),t(N),t(j),t(K),t(V),t(X),t(ct),t(ee),t(re),t(mt),t(ie),t(ft),t(ue),t(gt),t(vt),t(bt),t(oe),t(ht),t(pe),t(xt),t(ce),t(Ct),t(de),t(wt),t(me),t(yt),t(St),t(Lt),t(fe),t(qt),t(Tt),t(At),t(ge),t(Ft),t(Mt),t(Ht),t(ve),t(Pt),t(be),t(Et),t(he),t(zt),t($t),t(Rt),t(ke),t(Bt),t(It),t(jt),t(xe),t(Dt),t(Ot),t(Ut),t(Ce),t(Gt),t(_e),t(Vt),t(we),t(Qt),t(ye),t(Wt),t(Se),t(Zt),t(Le),t(Yt),t(Kt),t(en),t(qe),t(tn),t(nn),t(sn),t(Te),t(an),t(ln),t(rn),t(Ae),t(un),t(on),t(pn),t(Fe),t(cn),t(dn),t(mn),t(Me),t(fn),t(He),t(gn),t(Pe),t(vn),t(bn),t(hn),t(Ee),t(kn),t(xn),t(Cn),t(ze),t(_n),t(wn),t(yn),t($e),t(Sn),t(Re),t(qn),t(Be),t(Tn),t(Ie),t(Fn),t(je),t(Mn),t(Hn),t(Pn),t(De),t(En),t(zn),t($n),t(Oe),t(Rn),t(Ue),t(In),t(jn),t(Dn),t(On),t(Ne),t(Un),t(Gn),t(Nn),t(Ve),t(Vn),t(Qn),t(Jn),t(Qe),t(Wn),t(Zn),t(Xn),t(Je),t(Yn),t(We),t(es),t(ts),t(ns),t(Ze),t(ss),t(Xe),t(ls),t(Ye),t(rs),t(is),t(us),t(Ke),t(os),t(ps),t(cs),t(et),t(ds),t(ms),t(fs),t(tt),t(gs),t(nt),t(bs),t(st),t(hs),t(at),t(xs),t(lt),t(Cs),t(rt),t(ws),t(it),t(ys),t(ut),t(Ss),t(ot)),Ps(I,e),Ps(Ge,e)}}}function ul(Q){let y,m;const h=[Q[0],ja];let w={$$slots:{default:[il]},$$scope:{ctx:Q}};for(let x=0;x{m(0,y=qs(qs({},y),$a(h)))},y=$a(y),[y]}class fl extends nl{constructor(y){super(),sl(this,y,ol,ul,el,{})}}export{fl as default,ja as metadata}; diff --git a/dist/_app/immutable/chunks/livecoding_supercollider.O4f0A5Qq.js.br b/dist/_app/immutable/chunks/livecoding_supercollider.O4f0A5Qq.js.br new file mode 100644 index 0000000..c5e99a5 Binary files /dev/null and b/dist/_app/immutable/chunks/livecoding_supercollider.O4f0A5Qq.js.br differ diff --git a/dist/_app/immutable/chunks/livecoding_supercollider.O4f0A5Qq.js.gz b/dist/_app/immutable/chunks/livecoding_supercollider.O4f0A5Qq.js.gz new file mode 100644 index 0000000..5246f19 Binary files /dev/null and b/dist/_app/immutable/chunks/livecoding_supercollider.O4f0A5Qq.js.gz differ diff --git a/dist/_app/immutable/chunks/livecoding_supercollider_2.sViYJyLo.js b/dist/_app/immutable/chunks/livecoding_supercollider_2.sViYJyLo.js new file mode 100644 index 0000000..ecad01c --- /dev/null +++ b/dist/_app/immutable/chunks/livecoding_supercollider_2.sViYJyLo.js @@ -0,0 +1,58 @@ +import{s as Fa,x as it,y as Ha,n as Va}from"./scheduler.aZRR5A_O.js";import{S as Ga,i as Aa,r as ga,u as Ma,v as Sa,d as Na,t as Oa,w as ja,g as a,s as p,H as f,h as o,x as u,c as l,j as v,C as b,f as e,l as Ka,k as r,a as t}from"./index.kYoizZ4A.js";import{G as Qa,g as Wa,a as Pa}from"./guides.fqK5Mftf.js";import{I as Xa}from"./Info.ITY44f4q.js";function Ya(zn){let c,L="Introduction",x,d,i="Le labyrinthe SuperCollider",m,k,rt=`

    Si vous avez lu et suivi le premier article, tout est en place et vous devriez +maintenant être prêt à jouer. L’une des qualités mais aussi l’un des défauts de SuperCollider est de ne +pas vous astreindre à suivre une route particulière concernant la manière dont il vous faut approcher la création sonore lorsque vous débutez. Le logiciel est extrêmement générique et chaque +utilisateur développe progressivement ses propres abstractions et une logique qui lui est propre. Il existe plusieurs dizaines de mécanismes +distincts et la documentation tentaculaire du logiciel recommande souvent des +approches contradictoires ou des solutions qui ne fonctionneront pas +nécessairement avec votre méthode de travail. Il est donc nécessaire d’être toujours +conscient des choix que vous avez opéré et ne pas hésiter à revenir en +arrière si ces derniers ne vous conviennent pas. SuperCollider est un logiciel +déjà ancien, et la librairie standard est si vaste qu’il est difficile de la comprendre entièrement et encore moins de la maîtriser. Il +est toutefois possible de développer une certaine expertise pour utiliser SuperCollider d’une certaine manière et de construire progressivement ses connaissances en fonction des projets.


    `,In,H,mt="JITLib et le live coding",hn,Bn,En,P,dt='L’approche que nous suivons dans ce guide repose sur la librairie JITLib. Cette librairie développée par Julian Rohrhuber est devenue si populaire qu’elle est désormais intégrée par défaut à SuperCollider lors de l’installation. Les avantages offerts par cette dernière ne sont pas évidents à saisir lorsqu’on débute sur SuperCollider. Un grand nombre d’utilisateurs l’ignorent complètement dans leur travail. La raison qui nous pousse à l’utiliser est que cette dernière est prévue, par défaut, pour permettre le live coding. Même dans ce domaine déjà très spécifique, JITLib reste encore relativement générique. Le mécanisme que la librairie implémente est très simple : JITLib permet de remplacer à chaud, en temps réel, n’importe quelle donnée (audio, information) par une information de nature similaire. Voici la traduction du premier paragraphe de la documentation :',Jn,$n,Un,_,kt="

    La programmation just in time (ou la programmation conversationnelle, le live coding, la programmation à la volée, la programmation interactive) est un paradigme qui inclut l’activité de programmation dans le déroulement du programme. Dans ce paradigme, le programme n’est pas considéré comme un outil qui est conçu avant d’être utilisé plus tard de manière productive. Plutôt, il s’agit de concevoir la conception dynamique des programmes comme une description et comme une conversation. Écrire du code devient une partie intégrante de l’expérience musicale ou de la pratique expérimentale.

    ",Dn,Fn,Vn,y,ft="JITLib intègre ce principe à SuperCollider de manière assez approfondie. On se retrouve rarement bloqué du fait d’une incompatibilité entre la librairie standard et JITLib. Par ailleurs, JITLib est si finement intégré qu’il est parfois délicat de savoir si telle ou telle fonctionnalité relève de cette librairie ou vient de l’installation standard de SuperCollider.",Gn,An,Kn,g,vt="Conseils de lecture",Qn,Wn,Xn,M,bt="Cette partie du guide est de loin la plus pénible. Elle introduit tout les concepts importants que nous manipulerons pour faire de la musique avec SuperCollider. Il s’agit en quelque sorte du solfège élémentaire pour un live coder utilisant SuperCollider. Je suis conscient que les premiers paragraphes sont particulièrement difficiles pour un utilisateur débutant. N’hésitez pas à continuer votre lecture si un détail vous échappe, vous finirez sans doute par comprendre ultérieurement par la pratique. Ne vous laissez pas arrêter par du vocabulaire ou des concepts peu familiers.",Yn,S,xt="ProxySpace et Ndefs",Zn,N,Lt="Le principe de base de la librairie",ne,ee,se,O,_t="Tout commence avec un peu de vocabulaire. JITLib introduit la notion de ProxySpace, un environnement de références vers des proxys : ”an environment of references on a server”. Une référence est un nom associé à un objet. C’est aussi simple que ~a = 2 ou ~a est un proxy et 2 un objet. Ce système fonctionne à l’aide de proxys, il nous faut donc comprendre ce qu’est un proxy. C’est une notion relativement simple, il s’agit d’un objet qui contient quelque chose.",te,ae,pe,q,qt="

    Proxy: un proxy est un contenant pour quelque chose qui tourne sur le serveur, généralement un contrôle ou un algorithme audio. C’est un objet vide ou non-vide. Un proxy peut contenir le node d’un oscillateur (cf. la suite) mais il pourrait aussi contenir un filtre audio, un synthétiseur que nous venons de créer ou même un pattern algorithmique. Le proxy englobe ce qu’il contient et réalise à notre place tout un tas d’opérations qu’il est d’ordinaire nécessaire de gérer manuellement. Par exemple, on peut remplacer le contenu d’un proxy par un autre node sans interruption du signal, supprimer le contenant d’un proxy sans pour autant supprimer la boîte elle-même.

    ",oe,le,ue,j,Tt="Un ProxySpace est un ensemble de clés et de valeurs, un grand sac dans lequel on manipule des proxy. Les clés sont des références vers des NodeProxy. Tout ceci est sans aucune importance tant que nous ne le manipulons pas pour générer du son.",ce,ie,re,w,Ct="Remplacer l’environnement par défaut par un ProxySpace",me,de,ke,R,Ht="Dans le guide précédent se trouvait une ligne assez inhabituelle, celle qui nous servait pour démarrer le serveur :",fe,z,ve,wa='p = ProxySpace.push(s.boot);',be,I,Pt="Sans entrer dans le détail, cette ligne réalise deux actions distinctes :",xe,T,yt="

    1) elle démarre le serveur audio de SuperCollider (s.boot)

    2) elle pousse l’environnement par défaut dans un ProxySpace

    ",Le,_e,qe,h,gt="Avec la méthode push, toutes les variables globales de l’environnement actuel deviennent mécaniquement des NodeProxy dans le ProxySpace. Pour s’en convaincre, il suffit de taper le nom d’une variable et d’observer la valeur de retour :",Te,Ce,He,B,Pe,Ra='~bob; // -> NodeProxy.nil(localhost, nil)',ye,E,Mt="Ce n’est pas très parlant si vous n’êtes oas habitués à SuperCollider ou à la programmation. Essayons maintenant de voir ce que cela signifie lorsque nous souhaitons manipuler du son, sans spécifiquement aborder tout les détails. Évaluez le code suivant ligne par ligne :",ge,J,Me,za=`~osc = {SinOsc.ar(200) * 0.5}; // J'évalue, rien ne se passe. Associe une fonction audio à un NodeProxy +~osc.play; // On connecte l'audio à la sortie et on joue la fonction +~osc = {SinOsc.ar(400) * 0.5}; // On remplace la fonction précédente par une autre (sans interruption !) +~osc.stop(fadeTime: 4); // On stoppe avec un joli fade-out +~osc.clear; // On libère la mémoire`,Se,Ne,Oe,$,St="Nous avons associé une fonction audio ({SinOsc.ar(200) * 0.5}) à une référence (~osc). C’est tout le principe de JITLib. Cette association peut être remplacée à tout moment sans interruption grâce au proxy. Le NodeProxy nommé ~osc accepte un grand nombre de manipulations différentes et son rôle est totalement redéfini par rapport au comportement habituel d’une variable en dehors de l’utilisation de JITLib.",je,we,Re,U,Nt="Ce n’est plus une variable, c’est un Proxy dans notre ProxySpace. La ligne ~osc.stop(fadeTime: 4) démontre aussi que les NodeProxy intègrent de nombreuses méthodes destinées à gérer l’audio: fade in, fade out, contrôle du niveau des sources : etc.",ze,Ie,he,D,Ot="Nous allons utiliser ce principe fondamental introduit par JITLib tout au long de ce guide pour contrôler tout ce que nous souhaitons / pouvons contrôler : algorithmes audio, patterns algorithmiques, effets sonores, etc. Il est essentiel de retenir ce principe du proxy car il nous permet de savoir réellement ce que nous sommes en train de manipuler à tout moment au cours du jeu : essentiellement des NodeProxy.",Be,Ee,Je,F,jt="Sans en savoir beaucoup plus, il est déjà possible de faire un petit peu de musique en s’amusant à remplacer une source par un autre :",$e,V,Ue,Ia=`~osc = {SinOsc.ar([200, 100]) * 0.5}; // On associe une source à un NodeProxy, un double oscillateur +~osc.play(fadeTime: 4); // On lance le NodeProxy avec un fade-in +~osc.fadeTime = 4; // On change le fadeTime général + +~osc = {LPF.ar(SinOsc.ar([400, 100]), SinOsc.ar(1/4).range(200,2000)) * 0.5}; // On remplace la source +~osc = {LPF.ar(SinOsc.ar([800, 350]), SinOsc.ar(1/4).range(200,2000)) * 0.5}; // On remplace la source +~osc = {LPF.ar(SinOsc.ar([200, 150]), SinOsc.ar(1/4).range(200,2000)) * 0.5}; // On remplace la source + +~osc.stop(fadeTime: 4); // Fade-out +~osc.clear; // On libère la mémoire`,De,Fe,Ve,G,wt="Même si tout reste assez primitif pour le moment, on peut déjà faire beaucoup de choses en suivant ce principe. Il est possible d’utiliser n’importe quel algorithme audio et de le mettre à jour graduellement tout au long d’une performance. Ce type de live coding centré autour de la musique à jour d’un générateur sonore se prête plutôt bien à de la musique électro-acoustique, ambient, noise, etc.",Ge,Ae,Ke,A,Rt="Les Ndefs : une autre manière de faire la même chose",Qe,We,Xe,K,zt="La technique que nous utilisons avec ProxySpace.push(s.boot) dissimule l’utilisation que nous faisons des NodeProxy. Cette fonctionnalité a été intégrée car elle permet de gagner du temps de frappe mais elle a pour désavantage de rendre plus difficilement perceptible ce que nous sommes réellement en train de faire. À première vue, il semble que ~a = 2 soit juste une assignation de variable comme dans un langage de programmation classique. Pourtant, il s’agit d’une opération qui crée/modifie un NodeProxy.",Ye,Ze,ns,Q,It="Nous occultons le fait que les variables globales de SuperCollider sont maintenant des NodeProxy. Il est possible de se passer entièrement de Proxyspace.push et de cet avantage/désagrément en utilisant les Ndefs. Il s’agit d’une préférence personnelle, presque d’ordre stylistique.",es,ss,ts,W,as,ps,os,X,ht="Le terme de NDef est un raccourci pour Node Proxy Definition. On retrouve du vocabulaire familier. C’est une autre manière de désigner exactement le même type d’objet que ce que nous manipulons depuis le début ! Seule la syntaxe diffère. Profitons-en quand même pour évoquer rapidement ce qu’est un node :",ls,us,cs,C,Bt="

    Node: un node est un objet défini en interne par le serveur audio de SuperCollider. Un synthétiseur est un node, beaucoup d’objets présents sur le serveur sont des nodes. Il s’agit d’un objet générique utilisé pour une opération audio : contrôle ou synthétiseur. C’est un objet abstrait, qu’on ne manipule jamais directement. Les fonctions audio que nous venons d’utiliser dans l’exemple précédent sont des nodes que l’on associe à un proxy. Un node tire ce nom du fait que ce sont des noeuds dans un graphe audio, des objets qui ont une position dans un graphe de traitement du signal.

    ",is,rs,ms,Y,Et="Les Ndefs ont pour avantage de ne pas se propager dans l’environnement local. Elles rendent tout un petit peu plus clair. Réécrivons l’exemple précédent en utilisant uniquement des Ndefs :",ds,Z,ks,ha=`Ndef(osc, {SinOsc.ar([200, 100]) * 0.5}); // On associe une source à un NodeProxy, un double oscillateur +Ndef(osc).play(fadeTime: 4); // On lance le NodeProxy avec un fade-in +Ndef(osc).fadeTime = 4; // On change le fadeTime général + +Ndef(osc, {LPF.ar(SinOsc.ar([400, 100]), SinOsc.ar(1/4).range(200,2000)) * 0.5}); // On remplace la source +Ndef(osc, {LPF.ar(SinOsc.ar([800, 350]), SinOsc.ar(1/4).range(200,2000)) * 0.5}); // On remplace la source +Ndef(osc, {LPF.ar(SinOsc.ar([200, 150]), SinOsc.ar(1/4).range(200,2000)) * 0.5}); // On remplace la source + +Ndef(osc).stop(fadeTime: 4); // Fade-out +Ndef(osc).clear; // On libère la mémoire`,fs,nn,Jt="C’est à vous de choisir quelle est la syntaxe que vous préférez.",vs,en,$t="Gestion des NodeProxy",bs,sn,Ut="fadeTime",xs,tn,Dt="Nous avons déjà utilisé la capacité des NodeProxy à opérer des fade-ins et des fade-outs. C’est une fonctionnalité très pratique, surtout lorsque vous manipulez des sources audio dynamiques et que vous souhaitez faire des transitions souples de l’une à l’autre. Il existe trois types de fade :",Ls,an,Ft="
  • fade-in à l’entrée : c’est un argument de la méthode .play : ~osc.play(fadeTime: 4) ou Ndef(\\osc).play(fadeTime: 4)
  • fade-in en sortie : c’est un argument de la méthode .stop ou .clear : ~osc.stop(fadeTime: 4) ou Ndef(\\osc).stop(fadeTime: 4)
  • fade général : c’est un attribut du NodeProxy que l’on contrôle avec la syntaxe ~osc.fadeTime = 4;
  • ",_s,pn,qs,Ba=`~osc = {SinOsc.ar(200) * 0.5}; // On crée une source audio + +~osc.play(fadeTime: 1); // On fait entrer doucement + +~osc.fadeTime = 12; // Transition très longue + +~osc = {SinOsc.ar(2000) * 0.5}; // Transition lente vers la fréquence voulue + +~osc.clear(fadeTime: 4); // On s'arrête`,Ts,Cs,Hs,on,Vt=".stop / .clear",Ps,ln,Gt="Les méthodes .stop et .clear ne réalisent pas la même opération :",ys,un,At="
  • .stop : déconnecte le NodeProxy du reste de la chaîne audio. Il continue à tourner (et à consommer des ressources) mais en silence ! Vous pourrez le reconnecter plus tard.
  • .clear : détruit le NodeProxy. Vous pouvez réaliser la même opération en tapant : ~osc = nil. Notez toutefois que .clear permet de spécifier un fade-out avant la destruction.
  • ",gs,cn,Kt="Si vous souhaitez vous débarrasser de tout les NodeProxy actifs, il existe cette commande :",Ms,rn,Ss,Ea='currentEnvironment.free;',Ns,mn,Qt=`Elle applique la fonction free à tout ce qui compose l’environnement global. +Puisque ce dernier est un ProxySpace, on libère tout les NodeProxy.`,Os,dn,Wt="Modifier un/des paramètres",js,kn,Xt="Vous n’êtes pas obligés de réévaluer l’algorithme dans son intégralité pour modifier une valeur sur un NodeProxy. Parfois, il est préférable de mettre à jour un paramètre sans que le fade-in et le fade-out ne s’appliquent. Ce problème sera particulièrement sensible lorsque vous utiliserez des effets tels qu’un délai ou une réverbération.",ws,Rs,zs,fn,Yt="Si vous changez uniquement de valeur en réévaluant l’algorithme en entier, cela causera des problèmes avec l’amplitude générale du signal. Cela peut aussi causer un effet de brouillon lié à la superposition de plusieurs algorithmes en cours de fade-in / fade-out. Deux méthodes existent pour mettre à jour un paramètre : .set (instantané) et .xset (progressif).",Is,vn,Zt=".set",hs,bn,na="La méthode .set met immédiatement à jour un paramètre immédiatement, dès que possible :",Bs,xn,Es,Ja=`~osc = { arg freq=200; SinOsc.ar(freq) * 0.5}; +~osc.play(fadeTime: 2); +~osc.set(\freq, 800); +~osc.set(\freq, 400); +~osc.clear(2);`,Js,Ln,ea=".xset",$s,_n,sa="La méthode .xset met immédiatement à jour un paramètre progressivement, suivant le fadeTime :",Us,qn,Ds,$a=`~osc = { arg freq=200; SinOsc.ar(freq) * 0.5}; +~osc.play(fadeTime: 2); +~osc.fadeTime = 8; // On change le fadeTime pour .xset +~osc.xset(\freq, 800); +~osc.xset(\freq, 400); +~osc.clear(2);`,Fs,Tn,ta="Contrôler plusieurs paramètres",Vs,Gs,As,Cn,aa=`Il est possible de contrôler plusieurs paramètres en une seule commande si +besoin est :`,Ks,Hn,Qs,Ua='~osc.xset(\freq, 800, amp, 0.2);',Ws,Pn,pa=`Tout dépend de ce dont vous avez besoin. Réévaluer la fonction entière peut +aussi être une stratégie intéressante dans certains cas.`,Xs,yn,oa="Communication entre NodeProxies",Ys,gn,la="On peut associer plusieurs NodeProxies pour former des algorithmes audio plus complexes et modulaires. Chaque NodeProxy peut être imaginé comme un module remplissant une fonction particulière dans un synthétiseur modulaire plus imposant. Pensez au patching dans un environnement comme Max/MSP ou Pure Data ou au patching analogique d’un synthétiseur physique.",Zs,nt,et,Mn,ua="Il est possible de définir un NodeProxy oscillateur puis un contrôle (de type LFO) pour moduler la fréquence de cet oscillateur. Voici la méthode la plus simple que vous puissiez employer :",st,Sn,tt,Da=`~source = {arg freq=400; SinOsc.ar(freq) * 0.5}; // Une source que l'on souhaite moduler +~source.play; +~source.set(\freq, 300); // On peut utiliser set pour une valeur statique +~freq = { SinOsc.ar(1/2) * 400 }; // Voici un LFO (Low Frequency Oscillator) +~source.map(\\freq, ~freq); // Utilisation de la fonction map`,at,Nn,ca=`.map possède une fonction alternative, nommée .xmap. Elle fonctionne tout +comme .set et .xset.`,pt,On,ia="Conclusion",ot,jn,ra="Dans cette section du guide, nous avons appris :",lt,wn,ma="
  • Ce qu’est un NodeProxy et un ProxySpace, l’outil de base offert par JITLib
  • La différence entre ProxySpace.push et l’utilisation explicite des NDefs
  • Comment démarrer, stopper et arrêter un NodeProxy
  • Comment contrôler le fade-in et le fade-out et la transition entre algorithmes
  • ",ut,Rn,da="Je ne fais ici qu’effleurer les différentes commandes que possèdent les NodeProxy. Si vous souhaitez en apprendre plus, allez voir la documentation. Nous utiliserons un nombre limité de méthodes au fur et à mesure, lorsque nous en aurons besoin.",ct;return W=new Xa({props:{info:"Pour être plus précis, ProxySpace.push(...) transforme le scope global en un ProxySpace. Seule les variables de a à z sont épargnées.",markdown:"false"}}),{c(){c=a("h2"),c.textContent=L,x=p(),d=a("h3"),d.innerHTML=i,m=p(),k=a("div"),k.innerHTML=rt,In=p(),H=a("h3"),H.innerHTML=mt,hn=p(),Bn=a("br"),En=p(),P=a("p"),P.innerHTML=dt,Jn=p(),$n=a("br"),Un=p(),_=a("blockquote"),_.innerHTML=kt,Dn=p(),Fn=a("br"),Vn=p(),y=a("p"),y.innerHTML=ft,Gn=p(),An=a("br"),Kn=p(),g=a("h3"),g.textContent=vt,Qn=p(),Wn=a("br"),Xn=p(),M=a("p"),M.innerHTML=bt,Yn=p(),S=a("h2"),S.innerHTML=xt,Zn=p(),N=a("h3"),N.textContent=Lt,ne=p(),ee=a("br"),se=p(),O=a("p"),O.innerHTML=_t,te=p(),ae=a("br"),pe=p(),q=a("div"),q.innerHTML=qt,oe=p(),le=a("br"),ue=p(),j=a("p"),j.innerHTML=Tt,ce=p(),ie=a("br"),re=p(),w=a("h3"),w.innerHTML=Ct,me=p(),de=a("br"),ke=p(),R=a("p"),R.textContent=Ht,fe=p(),z=a("pre"),ve=new f(!1),be=p(),I=a("p"),I.textContent=Pt,xe=p(),T=a("div"),T.innerHTML=yt,Le=p(),_e=a("br"),qe=p(),h=a("p"),h.innerHTML=gt,Te=p(),Ce=a("br"),He=p(),B=a("pre"),Pe=new f(!1),ye=p(),E=a("p"),E.innerHTML=Mt,ge=p(),J=a("pre"),Me=new f(!1),Se=p(),Ne=a("br"),Oe=p(),$=a("p"),$.innerHTML=St,je=p(),we=a("br"),Re=p(),U=a("p"),U.innerHTML=Nt,ze=p(),Ie=a("br"),he=p(),D=a("p"),D.innerHTML=Ot,Be=p(),Ee=a("br"),Je=p(),F=a("p"),F.textContent=jt,$e=p(),V=a("pre"),Ue=new f(!1),De=p(),Fe=a("br"),Ve=p(),G=a("p"),G.innerHTML=wt,Ge=p(),Ae=a("br"),Ke=p(),A=a("h3"),A.innerHTML=Rt,Qe=p(),We=a("br"),Xe=p(),K=a("p"),K.innerHTML=zt,Ye=p(),Ze=a("br"),ns=p(),Q=a("p"),Q.innerHTML=It,es=p(),ss=a("br"),ts=p(),ga(W.$$.fragment),as=p(),ps=a("br"),os=p(),X=a("p"),X.innerHTML=ht,ls=p(),us=a("br"),cs=p(),C=a("div"),C.innerHTML=Bt,is=p(),rs=a("br"),ms=p(),Y=a("p"),Y.innerHTML=Et,ds=p(),Z=a("pre"),ks=new f(!1),fs=p(),nn=a("p"),nn.textContent=Jt,vs=p(),en=a("h2"),en.innerHTML=$t,bs=p(),sn=a("h3"),sn.innerHTML=Ut,xs=p(),tn=a("p"),tn.innerHTML=Dt,Ls=p(),an=a("ul"),an.innerHTML=Ft,_s=p(),pn=a("pre"),qs=new f(!1),Ts=p(),Cs=a("br"),Hs=p(),on=a("h3"),on.innerHTML=Vt,Ps=p(),ln=a("p"),ln.innerHTML=Gt,ys=p(),un=a("ul"),un.innerHTML=At,gs=p(),cn=a("p"),cn.innerHTML=Kt,Ms=p(),rn=a("pre"),Ss=new f(!1),Ns=p(),mn=a("p"),mn.innerHTML=Qt,Os=p(),dn=a("h2"),dn.textContent=Wt,js=p(),kn=a("p"),kn.innerHTML=Xt,ws=p(),Rs=a("br"),zs=p(),fn=a("p"),fn.innerHTML=Yt,Is=p(),vn=a("h3"),vn.innerHTML=Zt,hs=p(),bn=a("p"),bn.innerHTML=na,Bs=p(),xn=a("pre"),Es=new f(!1),Js=p(),Ln=a("h3"),Ln.innerHTML=ea,$s=p(),_n=a("p"),_n.innerHTML=sa,Us=p(),qn=a("pre"),Ds=new f(!1),Fs=p(),Tn=a("h3"),Tn.textContent=ta,Vs=p(),Gs=a("br"),As=p(),Cn=a("p"),Cn.textContent=aa,Ks=p(),Hn=a("pre"),Qs=new f(!1),Ws=p(),Pn=a("p"),Pn.textContent=pa,Xs=p(),yn=a("h2"),yn.innerHTML=oa,Ys=p(),gn=a("p"),gn.innerHTML=la,Zs=p(),nt=a("br"),et=p(),Mn=a("p"),Mn.innerHTML=ua,st=p(),Sn=a("pre"),tt=new f(!1),at=p(),Nn=a("p"),Nn.innerHTML=ca,pt=p(),On=a("h2"),On.textContent=ia,ot=p(),jn=a("p"),jn.textContent=ra,lt=p(),wn=a("ul"),wn.innerHTML=ma,ut=p(),Rn=a("p"),Rn.innerHTML=da,this.h()},l(n){c=o(n,"H2",{"data-svelte-h":!0}),u(c)!=="svelte-1ukekoe"&&(c.textContent=L),x=l(n),d=o(n,"H3",{"data-svelte-h":!0}),u(d)!=="svelte-tla2tn"&&(d.innerHTML=i),m=l(n),k=o(n,"DIV",{style:!0,"data-svelte-h":!0}),u(k)!=="svelte-u3kyqm"&&(k.innerHTML=rt),In=l(n),H=o(n,"H3",{"data-svelte-h":!0}),u(H)!=="svelte-hvsu7a"&&(H.innerHTML=mt),hn=l(n),Bn=o(n,"BR",{}),En=l(n),P=o(n,"P",{"data-svelte-h":!0}),u(P)!=="svelte-1ebejs"&&(P.innerHTML=dt),Jn=l(n),$n=o(n,"BR",{}),Un=l(n),_=o(n,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),u(_)!=="svelte-mc41r1"&&(_.innerHTML=kt),Dn=l(n),Fn=o(n,"BR",{}),Vn=l(n),y=o(n,"P",{"data-svelte-h":!0}),u(y)!=="svelte-jjfyzb"&&(y.innerHTML=ft),Gn=l(n),An=o(n,"BR",{}),Kn=l(n),g=o(n,"H3",{"data-svelte-h":!0}),u(g)!=="svelte-kghh5b"&&(g.textContent=vt),Qn=l(n),Wn=o(n,"BR",{}),Xn=l(n),M=o(n,"P",{"data-svelte-h":!0}),u(M)!=="svelte-18ss6m2"&&(M.innerHTML=bt),Yn=l(n),S=o(n,"H2",{"data-svelte-h":!0}),u(S)!=="svelte-wziajp"&&(S.innerHTML=xt),Zn=l(n),N=o(n,"H3",{"data-svelte-h":!0}),u(N)!=="svelte-1czqyl4"&&(N.textContent=Lt),ne=l(n),ee=o(n,"BR",{}),se=l(n),O=o(n,"P",{"data-svelte-h":!0}),u(O)!=="svelte-1qme27z"&&(O.innerHTML=_t),te=l(n),ae=o(n,"BR",{}),pe=l(n),q=o(n,"DIV",{class:!0,"data-svelte-h":!0}),u(q)!=="svelte-1307hli"&&(q.innerHTML=qt),oe=l(n),le=o(n,"BR",{}),ue=l(n),j=o(n,"P",{"data-svelte-h":!0}),u(j)!=="svelte-prqoyf"&&(j.innerHTML=Tt),ce=l(n),ie=o(n,"BR",{}),re=l(n),w=o(n,"H3",{"data-svelte-h":!0}),u(w)!=="svelte-rrudo5"&&(w.innerHTML=Ct),me=l(n),de=o(n,"BR",{}),ke=l(n),R=o(n,"P",{"data-svelte-h":!0}),u(R)!=="svelte-q4c6o4"&&(R.textContent=Ht),fe=l(n),z=o(n,"PRE",{class:!0});var s=v(z);ve=b(s,!1),s.forEach(e),be=l(n),I=o(n,"P",{"data-svelte-h":!0}),u(I)!=="svelte-15qr1gz"&&(I.textContent=Pt),xe=l(n),T=o(n,"DIV",{class:!0,"data-svelte-h":!0}),u(T)!=="svelte-1b0se9j"&&(T.innerHTML=yt),Le=l(n),_e=o(n,"BR",{}),qe=l(n),h=o(n,"P",{"data-svelte-h":!0}),u(h)!=="svelte-39j5eg"&&(h.innerHTML=gt),Te=l(n),Ce=o(n,"BR",{}),He=l(n),B=o(n,"PRE",{class:!0});var ka=v(B);Pe=b(ka,!1),ka.forEach(e),ye=l(n),E=o(n,"P",{"data-svelte-h":!0}),u(E)!=="svelte-1uzz73c"&&(E.innerHTML=Mt),ge=l(n),J=o(n,"PRE",{class:!0});var fa=v(J);Me=b(fa,!1),fa.forEach(e),Se=l(n),Ne=o(n,"BR",{}),Oe=l(n),$=o(n,"P",{"data-svelte-h":!0}),u($)!=="svelte-2ptytj"&&($.innerHTML=St),je=l(n),we=o(n,"BR",{}),Re=l(n),U=o(n,"P",{"data-svelte-h":!0}),u(U)!=="svelte-4rtqxi"&&(U.innerHTML=Nt),ze=l(n),Ie=o(n,"BR",{}),he=l(n),D=o(n,"P",{"data-svelte-h":!0}),u(D)!=="svelte-1n2er81"&&(D.innerHTML=Ot),Be=l(n),Ee=o(n,"BR",{}),Je=l(n),F=o(n,"P",{"data-svelte-h":!0}),u(F)!=="svelte-nk7hbz"&&(F.textContent=jt),$e=l(n),V=o(n,"PRE",{class:!0});var va=v(V);Ue=b(va,!1),va.forEach(e),De=l(n),Fe=o(n,"BR",{}),Ve=l(n),G=o(n,"P",{"data-svelte-h":!0}),u(G)!=="svelte-mlyqm"&&(G.innerHTML=wt),Ge=l(n),Ae=o(n,"BR",{}),Ke=l(n),A=o(n,"H3",{"data-svelte-h":!0}),u(A)!=="svelte-1t7im02"&&(A.innerHTML=Rt),Qe=l(n),We=o(n,"BR",{}),Xe=l(n),K=o(n,"P",{"data-svelte-h":!0}),u(K)!=="svelte-ngon7m"&&(K.innerHTML=zt),Ye=l(n),Ze=o(n,"BR",{}),ns=l(n),Q=o(n,"P",{"data-svelte-h":!0}),u(Q)!=="svelte-f4v0jn"&&(Q.innerHTML=It),es=l(n),ss=o(n,"BR",{}),ts=l(n),Ma(W.$$.fragment,n),as=l(n),ps=o(n,"BR",{}),os=l(n),X=o(n,"P",{"data-svelte-h":!0}),u(X)!=="svelte-l6ldcg"&&(X.innerHTML=ht),ls=l(n),us=o(n,"BR",{}),cs=l(n),C=o(n,"DIV",{class:!0,"data-svelte-h":!0}),u(C)!=="svelte-19ar4er"&&(C.innerHTML=Bt),is=l(n),rs=o(n,"BR",{}),ms=l(n),Y=o(n,"P",{"data-svelte-h":!0}),u(Y)!=="svelte-1i92p2x"&&(Y.innerHTML=Et),ds=l(n),Z=o(n,"PRE",{class:!0});var ba=v(Z);ks=b(ba,!1),ba.forEach(e),fs=l(n),nn=o(n,"P",{"data-svelte-h":!0}),u(nn)!=="svelte-13bak3j"&&(nn.textContent=Jt),vs=l(n),en=o(n,"H2",{"data-svelte-h":!0}),u(en)!=="svelte-1i05dg4"&&(en.innerHTML=$t),bs=l(n),sn=o(n,"H3",{"data-svelte-h":!0}),u(sn)!=="svelte-1clix3u"&&(sn.innerHTML=Ut),xs=l(n),tn=o(n,"P",{"data-svelte-h":!0}),u(tn)!=="svelte-iadzxn"&&(tn.innerHTML=Dt),Ls=l(n),an=o(n,"UL",{"data-svelte-h":!0}),u(an)!=="svelte-1vm6l4q"&&(an.innerHTML=Ft),_s=l(n),pn=o(n,"PRE",{class:!0});var xa=v(pn);qs=b(xa,!1),xa.forEach(e),Ts=l(n),Cs=o(n,"BR",{}),Hs=l(n),on=o(n,"H3",{"data-svelte-h":!0}),u(on)!=="svelte-1pfcn9s"&&(on.innerHTML=Vt),Ps=l(n),ln=o(n,"P",{"data-svelte-h":!0}),u(ln)!=="svelte-wngjim"&&(ln.innerHTML=Gt),ys=l(n),un=o(n,"UL",{"data-svelte-h":!0}),u(un)!=="svelte-1hgojc8"&&(un.innerHTML=At),gs=l(n),cn=o(n,"P",{"data-svelte-h":!0}),u(cn)!=="svelte-qhss8m"&&(cn.innerHTML=Kt),Ms=l(n),rn=o(n,"PRE",{class:!0});var La=v(rn);Ss=b(La,!1),La.forEach(e),Ns=l(n),mn=o(n,"P",{"data-svelte-h":!0}),u(mn)!=="svelte-1scrxs3"&&(mn.innerHTML=Qt),Os=l(n),dn=o(n,"H2",{"data-svelte-h":!0}),u(dn)!=="svelte-1wfsiwi"&&(dn.textContent=Wt),js=l(n),kn=o(n,"P",{"data-svelte-h":!0}),u(kn)!=="svelte-1yofu9l"&&(kn.innerHTML=Xt),ws=l(n),Rs=o(n,"BR",{}),zs=l(n),fn=o(n,"P",{"data-svelte-h":!0}),u(fn)!=="svelte-1tefuf0"&&(fn.innerHTML=Yt),Is=l(n),vn=o(n,"H3",{"data-svelte-h":!0}),u(vn)!=="svelte-1890c3r"&&(vn.innerHTML=Zt),hs=l(n),bn=o(n,"P",{"data-svelte-h":!0}),u(bn)!=="svelte-18br2j9"&&(bn.innerHTML=na),Bs=l(n),xn=o(n,"PRE",{class:!0});var _a=v(xn);Es=b(_a,!1),_a.forEach(e),Js=l(n),Ln=o(n,"H3",{"data-svelte-h":!0}),u(Ln)!=="svelte-1ywd8zx"&&(Ln.innerHTML=ea),$s=l(n),_n=o(n,"P",{"data-svelte-h":!0}),u(_n)!=="svelte-1fkbmv9"&&(_n.innerHTML=sa),Us=l(n),qn=o(n,"PRE",{class:!0});var qa=v(qn);Ds=b(qa,!1),qa.forEach(e),Fs=l(n),Tn=o(n,"H3",{"data-svelte-h":!0}),u(Tn)!=="svelte-1vok2p4"&&(Tn.textContent=ta),Vs=l(n),Gs=o(n,"BR",{}),As=l(n),Cn=o(n,"P",{"data-svelte-h":!0}),u(Cn)!=="svelte-xi4rz2"&&(Cn.textContent=aa),Ks=l(n),Hn=o(n,"PRE",{class:!0});var Ta=v(Hn);Qs=b(Ta,!1),Ta.forEach(e),Ws=l(n),Pn=o(n,"P",{"data-svelte-h":!0}),u(Pn)!=="svelte-7x740t"&&(Pn.textContent=pa),Xs=l(n),yn=o(n,"H2",{"data-svelte-h":!0}),u(yn)!=="svelte-1rbm8z9"&&(yn.innerHTML=oa),Ys=l(n),gn=o(n,"P",{"data-svelte-h":!0}),u(gn)!=="svelte-4omyha"&&(gn.innerHTML=la),Zs=l(n),nt=o(n,"BR",{}),et=l(n),Mn=o(n,"P",{"data-svelte-h":!0}),u(Mn)!=="svelte-10x1h48"&&(Mn.innerHTML=ua),st=l(n),Sn=o(n,"PRE",{class:!0});var Ca=v(Sn);tt=b(Ca,!1),Ca.forEach(e),at=l(n),Nn=o(n,"P",{"data-svelte-h":!0}),u(Nn)!=="svelte-548767"&&(Nn.innerHTML=ca),pt=l(n),On=o(n,"H2",{"data-svelte-h":!0}),u(On)!=="svelte-grw4hp"&&(On.textContent=ia),ot=l(n),jn=o(n,"P",{"data-svelte-h":!0}),u(jn)!=="svelte-v1qoh8"&&(jn.textContent=ra),lt=l(n),wn=o(n,"UL",{"data-svelte-h":!0}),u(wn)!=="svelte-ax6drr"&&(wn.innerHTML=ma),ut=l(n),Rn=o(n,"P",{"data-svelte-h":!0}),u(Rn)!=="svelte-j92gtb"&&(Rn.innerHTML=da),this.h()},h(){Ka(k,"margin-bottom","100px"),r(_,"class","bg-base-300 px-4 py-8 border-l-2"),r(q,"class","pl-8 pt-4 pb-4 bg-base-300"),ve.a=null,r(z,"class","language-supercollider"),r(T,"class","pl-8"),Pe.a=null,r(B,"class","language-supercollider"),Me.a=null,r(J,"class","language-cpp"),Ue.a=null,r(V,"class","language-cpp"),r(C,"class","pl-8 pt-4 pb-4 bg-base-300"),ks.a=null,r(Z,"class","language-cpp"),qs.a=null,r(pn,"class","language-cpp"),Ss.a=null,r(rn,"class","language-supercollider"),Es.a=null,r(xn,"class","language-cpp"),Ds.a=null,r(qn,"class","language-cpp"),Qs.a=null,r(Hn,"class","language-supercollider"),tt.a=null,r(Sn,"class","language-cpp")},m(n,s){t(n,c,s),t(n,x,s),t(n,d,s),t(n,m,s),t(n,k,s),t(n,In,s),t(n,H,s),t(n,hn,s),t(n,Bn,s),t(n,En,s),t(n,P,s),t(n,Jn,s),t(n,$n,s),t(n,Un,s),t(n,_,s),t(n,Dn,s),t(n,Fn,s),t(n,Vn,s),t(n,y,s),t(n,Gn,s),t(n,An,s),t(n,Kn,s),t(n,g,s),t(n,Qn,s),t(n,Wn,s),t(n,Xn,s),t(n,M,s),t(n,Yn,s),t(n,S,s),t(n,Zn,s),t(n,N,s),t(n,ne,s),t(n,ee,s),t(n,se,s),t(n,O,s),t(n,te,s),t(n,ae,s),t(n,pe,s),t(n,q,s),t(n,oe,s),t(n,le,s),t(n,ue,s),t(n,j,s),t(n,ce,s),t(n,ie,s),t(n,re,s),t(n,w,s),t(n,me,s),t(n,de,s),t(n,ke,s),t(n,R,s),t(n,fe,s),t(n,z,s),ve.m(wa,z),t(n,be,s),t(n,I,s),t(n,xe,s),t(n,T,s),t(n,Le,s),t(n,_e,s),t(n,qe,s),t(n,h,s),t(n,Te,s),t(n,Ce,s),t(n,He,s),t(n,B,s),Pe.m(Ra,B),t(n,ye,s),t(n,E,s),t(n,ge,s),t(n,J,s),Me.m(za,J),t(n,Se,s),t(n,Ne,s),t(n,Oe,s),t(n,$,s),t(n,je,s),t(n,we,s),t(n,Re,s),t(n,U,s),t(n,ze,s),t(n,Ie,s),t(n,he,s),t(n,D,s),t(n,Be,s),t(n,Ee,s),t(n,Je,s),t(n,F,s),t(n,$e,s),t(n,V,s),Ue.m(Ia,V),t(n,De,s),t(n,Fe,s),t(n,Ve,s),t(n,G,s),t(n,Ge,s),t(n,Ae,s),t(n,Ke,s),t(n,A,s),t(n,Qe,s),t(n,We,s),t(n,Xe,s),t(n,K,s),t(n,Ye,s),t(n,Ze,s),t(n,ns,s),t(n,Q,s),t(n,es,s),t(n,ss,s),t(n,ts,s),Sa(W,n,s),t(n,as,s),t(n,ps,s),t(n,os,s),t(n,X,s),t(n,ls,s),t(n,us,s),t(n,cs,s),t(n,C,s),t(n,is,s),t(n,rs,s),t(n,ms,s),t(n,Y,s),t(n,ds,s),t(n,Z,s),ks.m(ha,Z),t(n,fs,s),t(n,nn,s),t(n,vs,s),t(n,en,s),t(n,bs,s),t(n,sn,s),t(n,xs,s),t(n,tn,s),t(n,Ls,s),t(n,an,s),t(n,_s,s),t(n,pn,s),qs.m(Ba,pn),t(n,Ts,s),t(n,Cs,s),t(n,Hs,s),t(n,on,s),t(n,Ps,s),t(n,ln,s),t(n,ys,s),t(n,un,s),t(n,gs,s),t(n,cn,s),t(n,Ms,s),t(n,rn,s),Ss.m(Ea,rn),t(n,Ns,s),t(n,mn,s),t(n,Os,s),t(n,dn,s),t(n,js,s),t(n,kn,s),t(n,ws,s),t(n,Rs,s),t(n,zs,s),t(n,fn,s),t(n,Is,s),t(n,vn,s),t(n,hs,s),t(n,bn,s),t(n,Bs,s),t(n,xn,s),Es.m(Ja,xn),t(n,Js,s),t(n,Ln,s),t(n,$s,s),t(n,_n,s),t(n,Us,s),t(n,qn,s),Ds.m($a,qn),t(n,Fs,s),t(n,Tn,s),t(n,Vs,s),t(n,Gs,s),t(n,As,s),t(n,Cn,s),t(n,Ks,s),t(n,Hn,s),Qs.m(Ua,Hn),t(n,Ws,s),t(n,Pn,s),t(n,Xs,s),t(n,yn,s),t(n,Ys,s),t(n,gn,s),t(n,Zs,s),t(n,nt,s),t(n,et,s),t(n,Mn,s),t(n,st,s),t(n,Sn,s),tt.m(Da,Sn),t(n,at,s),t(n,Nn,s),t(n,pt,s),t(n,On,s),t(n,ot,s),t(n,jn,s),t(n,lt,s),t(n,wn,s),t(n,ut,s),t(n,Rn,s),ct=!0},p:Va,i(n){ct||(Na(W.$$.fragment,n),ct=!0)},o(n){Oa(W.$$.fragment,n),ct=!1},d(n){n&&(e(c),e(x),e(d),e(m),e(k),e(In),e(H),e(hn),e(Bn),e(En),e(P),e(Jn),e($n),e(Un),e(_),e(Dn),e(Fn),e(Vn),e(y),e(Gn),e(An),e(Kn),e(g),e(Qn),e(Wn),e(Xn),e(M),e(Yn),e(S),e(Zn),e(N),e(ne),e(ee),e(se),e(O),e(te),e(ae),e(pe),e(q),e(oe),e(le),e(ue),e(j),e(ce),e(ie),e(re),e(w),e(me),e(de),e(ke),e(R),e(fe),e(z),e(be),e(I),e(xe),e(T),e(Le),e(_e),e(qe),e(h),e(Te),e(Ce),e(He),e(B),e(ye),e(E),e(ge),e(J),e(Se),e(Ne),e(Oe),e($),e(je),e(we),e(Re),e(U),e(ze),e(Ie),e(he),e(D),e(Be),e(Ee),e(Je),e(F),e($e),e(V),e(De),e(Fe),e(Ve),e(G),e(Ge),e(Ae),e(Ke),e(A),e(Qe),e(We),e(Xe),e(K),e(Ye),e(Ze),e(ns),e(Q),e(es),e(ss),e(ts),e(as),e(ps),e(os),e(X),e(ls),e(us),e(cs),e(C),e(is),e(rs),e(ms),e(Y),e(ds),e(Z),e(fs),e(nn),e(vs),e(en),e(bs),e(sn),e(xs),e(tn),e(Ls),e(an),e(_s),e(pn),e(Ts),e(Cs),e(Hs),e(on),e(Ps),e(ln),e(ys),e(un),e(gs),e(cn),e(Ms),e(rn),e(Ns),e(mn),e(Os),e(dn),e(js),e(kn),e(ws),e(Rs),e(zs),e(fn),e(Is),e(vn),e(hs),e(bn),e(Bs),e(xn),e(Js),e(Ln),e($s),e(_n),e(Us),e(qn),e(Fs),e(Tn),e(Vs),e(Gs),e(As),e(Cn),e(Ks),e(Hn),e(Ws),e(Pn),e(Xs),e(yn),e(Ys),e(gn),e(Zs),e(nt),e(et),e(Mn),e(st),e(Sn),e(at),e(Nn),e(pt),e(On),e(ot),e(jn),e(lt),e(wn),e(ut),e(Rn)),ja(W,n)}}}function Za(zn){let c,L;const x=[zn[0],ya];let d={$$slots:{default:[Ya]},$$scope:{ctx:zn}};for(let i=0;i{L(0,c=it(it({},c),Ha(x)))},c=Ha(c),[c]}class pp extends Ga{constructor(c){super(),Aa(this,c,np,Za,Fa,{})}}export{pp as default,ya as metadata}; diff --git a/dist/_app/immutable/chunks/livecoding_supercollider_2.sViYJyLo.js.br b/dist/_app/immutable/chunks/livecoding_supercollider_2.sViYJyLo.js.br new file mode 100644 index 0000000..a3c2c86 Binary files /dev/null and b/dist/_app/immutable/chunks/livecoding_supercollider_2.sViYJyLo.js.br differ diff --git a/dist/_app/immutable/chunks/livecoding_supercollider_2.sViYJyLo.js.gz b/dist/_app/immutable/chunks/livecoding_supercollider_2.sViYJyLo.js.gz new file mode 100644 index 0000000..61e5279 Binary files /dev/null and b/dist/_app/immutable/chunks/livecoding_supercollider_2.sViYJyLo.js.gz differ diff --git a/dist/_app/immutable/chunks/ordinateur_tete.043bV6hn.js b/dist/_app/immutable/chunks/ordinateur_tete.043bV6hn.js new file mode 100644 index 0000000..9e81301 --- /dev/null +++ b/dist/_app/immutable/chunks/ordinateur_tete.043bV6hn.js @@ -0,0 +1,16 @@ +import{s as B,e as w,n as g}from"./scheduler.aZRR5A_O.js";import{S as T,i as R,g as r,s as o,h as m,x as L,c as d,k as O,l as p,a,f as i}from"./index.kYoizZ4A.js";function A(P){let s,k=`Rémi Georges a lancé depuis plus d’un an un label de musique dédiée à la musique +live codée. Le label a pour nom Ordinateur dans la tête : ”Live-coding Cassette & prints Label Code as music, for humans and computers.”. Par un pied de +nez formidable, le label publie essentiellement de la musique au format cassette +ou disquette (floppy disk). Il n’existe à ce jour que quatre cassettes dans le +catalogue, et bien plus à paraître. Rémi édite aussi un fanzine du nom de Codé, consacré à quelques +figures de la scène live coding francophone. Ce label fonctionne sur un +principe DIY. Tout est fait à la main et assemblé quelque part entre Lyon et +Vaulx-en-Velin. Chaque cassette n’est produite qu’à quelques exemplaires mais +Bandcamp permet aussi d’acheter la musique au format numérique.`,c,f,b,l,C,q,h,v,u,M=`Le plus rigolo dans l’histoire, c’est qu’il ne s’agit pas du seul artiste +lyonnais qui édite de la musique produite par des outils de live coding. Nous +étions tombé il y a quelques mois sur un album publié par l’artiste américain +Mike Hodnick : Prompt 3. Cet +album est produit par Nil Hartman (un lyonnais !) et propose aussi une forme physique avec un +format de distribution original : ”2GB USB flash drive archival of 16-bit WAV files of Prompt 3 by Kindohm, engraved with the 3OP logo. High quality 12,7cm x 12,7cm matte paper digital print of Prompt 3 cover art by Kindohm & Andrew Bates. Archival includes: exclusive outtakes, live performances, alternate artwork files, and Mike’s Prompt 3 workspace folder of .tidal and .flp files.“.`,y,_,x,n,H=`Nous attendons de pied ferme l’apparition d’un troisième label publiant de la +musique live codée à Lyon. Il semblerait que cela ne soit qu’une question de +temps.`;return{c(){s=r("p"),s.innerHTML=k,c=o(),f=r("br"),b=o(),l=r("embed"),q=o(),h=r("br"),v=o(),u=r("p"),u.innerHTML=M,y=o(),_=r("br"),x=o(),n=r("p"),n.innerHTML=H,this.h()},l(e){s=m(e,"P",{"data-svelte-h":!0}),L(s)!=="svelte-1tl3fbq"&&(s.innerHTML=k),c=d(e),f=m(e,"BR",{}),b=d(e),l=m(e,"EMBED",{src:!0,style:!0}),q=d(e),h=m(e,"BR",{}),v=d(e),u=m(e,"P",{"data-svelte-h":!0}),L(u)!=="svelte-7nydhy"&&(u.innerHTML=M),y=d(e),_=m(e,"BR",{}),x=d(e),n=m(e,"P",{"data-svelte-h":!0}),L(n)!=="svelte-1308sfy"&&(n.innerHTML=H),this.h()},h(){w(l.src,C="https://ordinateurdanslatete.bandcamp.com/")||O(l,"src",C),p(l,"display","block"),p(l,"margin-left","auto"),p(l,"margin-right","auto"),p(l,"max-width","1000px"),p(l,"width","90%"),p(l,"height","500px")},m(e,t){a(e,s,t),a(e,c,t),a(e,f,t),a(e,b,t),a(e,l,t),a(e,q,t),a(e,h,t),a(e,v,t),a(e,u,t),a(e,y,t),a(e,_,t),a(e,x,t),a(e,n,t)},p:g,i:g,o:g,d(e){e&&(i(s),i(c),i(f),i(b),i(l),i(q),i(h),i(v),i(u),i(y),i(_),i(x),i(n))}}}const S={title:"Ordinateur dans la tête : un label de musique live codée",author:"Raphaël Maurice Forment",date:"2024-09-02"};class V extends T{constructor(s){super(),R(this,s,null,A,B,{})}}export{V as default,S as metadata}; diff --git a/dist/_app/immutable/chunks/ordinateur_tete.043bV6hn.js.br b/dist/_app/immutable/chunks/ordinateur_tete.043bV6hn.js.br new file mode 100644 index 0000000..6cbf7d0 Binary files /dev/null and b/dist/_app/immutable/chunks/ordinateur_tete.043bV6hn.js.br differ diff --git a/dist/_app/immutable/chunks/ordinateur_tete.043bV6hn.js.gz b/dist/_app/immutable/chunks/ordinateur_tete.043bV6hn.js.gz new file mode 100644 index 0000000..cceb594 Binary files /dev/null and b/dist/_app/immutable/chunks/ordinateur_tete.043bV6hn.js.gz differ diff --git a/dist/_app/immutable/chunks/proposer_guide.4sbkj3tu.js b/dist/_app/immutable/chunks/proposer_guide.4sbkj3tu.js new file mode 100644 index 0000000..ac78c85 --- /dev/null +++ b/dist/_app/immutable/chunks/proposer_guide.4sbkj3tu.js @@ -0,0 +1,5 @@ +import{s as F,x as P,y as U,n as G}from"./scheduler.aZRR5A_O.js";import{S as J,i as N,r as V,u as I,v as K,d as O,t as Q,w as W,g as p,s as m,H as X,h as c,x as d,c as f,j as Y,C as Z,f as a,k as ee,a as l}from"./index.kYoizZ4A.js";import{G as te,g as se,a as B}from"./guides.fqK5Mftf.js";function ne(q){let t,i='Les guides sont rédigés en MarkDown, un format de balisage léger qui facilite l’écriture et la publication. Une fois ajoutés au site, ces derniers sont automatiquement recensés et publiés. Chaque article reçoit un entête simple qui permet de l’identifier. Voici l’entête de l’article actuel :',u,o,s,r=`--- +title: Comment proposer un guide ? +date: '2023-12-22' +author: "Raphaël Maurice Forment" +---`,v,_,$="Il n’est pas nécessaire de répéter le titre au début de votre article. Chaque balise se comprend assez facilement :",M,g,z="
  • title : le titre complet de l’article
  • date : au format AAAA-MM-JJ
  • author : nom complet ou votre pseudonyme
  • ",w,h,j="Le site utilise ensuite ces données pour générer un entête. Les données peuvent ensuite être utilisées sous plusieurs formes pour faire référence au guide sur d’autres pages.",H,x,S="Contenu de l’article",y,b,A="Écrivez ce que vous voulez ! Notez que vous pouvez librement mélanger MarkDown, HTML/CSS et composants Svelte pour les plus confirmés. Vous ne devriez pas avoir de problème pour publier quoi que ce soit sous la forme que vous imaginez ! Si vous écrivez du MarkDown pur et simple, votre article recevra le style par défaut utilisé par le site.",L,C,R="Publication",T,k,D='Une fois votre article prêt, il vous faudra faire une Pull Request pour que ce dernier soit au dépôt du site et validé par un contributeur. Bonne chance ! Nous avons besoin de guides pour couvrir l’essentiel des plateformes existantes !';return{c(){t=p("p"),t.innerHTML=i,u=m(),o=p("pre"),s=new X(!1),v=m(),_=p("p"),_.textContent=$,M=m(),g=p("ul"),g.innerHTML=z,w=m(),h=p("p"),h.textContent=j,H=m(),x=p("h2"),x.textContent=S,y=m(),b=p("p"),b.innerHTML=A,L=m(),C=p("h2"),C.textContent=R,T=m(),k=p("p"),k.innerHTML=D,this.h()},l(e){t=c(e,"P",{"data-svelte-h":!0}),d(t)!=="svelte-1jy9acf"&&(t.innerHTML=i),u=f(e),o=c(e,"PRE",{class:!0});var n=Y(o);s=Z(n,!1),n.forEach(a),v=f(e),_=c(e,"P",{"data-svelte-h":!0}),d(_)!=="svelte-hsuogf"&&(_.textContent=$),M=f(e),g=c(e,"UL",{"data-svelte-h":!0}),d(g)!=="svelte-1objkrr"&&(g.innerHTML=z),w=f(e),h=c(e,"P",{"data-svelte-h":!0}),d(h)!=="svelte-uedqlf"&&(h.textContent=j),H=f(e),x=c(e,"H2",{"data-svelte-h":!0}),d(x)!=="svelte-1g5ta6o"&&(x.textContent=S),y=f(e),b=c(e,"P",{"data-svelte-h":!0}),d(b)!=="svelte-13oxmt0"&&(b.innerHTML=A),L=f(e),C=c(e,"H2",{"data-svelte-h":!0}),d(C)!=="svelte-qjxet8"&&(C.textContent=R),T=f(e),k=c(e,"P",{"data-svelte-h":!0}),d(k)!=="svelte-pldlgo"&&(k.innerHTML=D),this.h()},h(){s.a=null,ee(o,"class","language-yaml")},m(e,n){l(e,t,n),l(e,u,n),l(e,o,n),s.m(r,o),l(e,v,n),l(e,_,n),l(e,M,n),l(e,g,n),l(e,w,n),l(e,h,n),l(e,H,n),l(e,x,n),l(e,y,n),l(e,b,n),l(e,L,n),l(e,C,n),l(e,T,n),l(e,k,n)},p:G,d(e){e&&(a(t),a(u),a(o),a(v),a(_),a(M),a(g),a(w),a(h),a(H),a(x),a(y),a(b),a(L),a(C),a(T),a(k))}}}function ae(q){let t,i;const u=[q[0],E];let o={$$slots:{default:[ne]},$$scope:{ctx:q}};for(let s=0;s{i(0,t=P(P({},t),U(u)))},t=U(t),[t]}class re extends J{constructor(t){super(),N(this,t,le,ae,F,{})}}export{re as default,E as metadata}; diff --git a/dist/_app/immutable/chunks/proposer_guide.4sbkj3tu.js.br b/dist/_app/immutable/chunks/proposer_guide.4sbkj3tu.js.br new file mode 100644 index 0000000..9d415b2 Binary files /dev/null and b/dist/_app/immutable/chunks/proposer_guide.4sbkj3tu.js.br differ diff --git a/dist/_app/immutable/chunks/proposer_guide.4sbkj3tu.js.gz b/dist/_app/immutable/chunks/proposer_guide.4sbkj3tu.js.gz new file mode 100644 index 0000000..8f1ea74 Binary files /dev/null and b/dist/_app/immutable/chunks/proposer_guide.4sbkj3tu.js.gz differ diff --git a/dist/_app/immutable/chunks/renardo.MT7iUhNS.js b/dist/_app/immutable/chunks/renardo.MT7iUhNS.js new file mode 100644 index 0000000..ac4b9d5 --- /dev/null +++ b/dist/_app/immutable/chunks/renardo.MT7iUhNS.js @@ -0,0 +1 @@ +import{s as I,e as K,n as y}from"./scheduler.aZRR5A_O.js";import{S as Q,i as U,g as i,s as a,h as o,x as v,c as u,k as S,l as g,a as l,f as r}from"./index.kYoizZ4A.js";function z(A){let s,P='Jules Cipher a récemment commencé à publier ses efforts pour moderniser l’environnement FoxDot dont le développement a été mis en pause par son développeur, Ryan Kirkbride. Preuve de l’intérêt que cette démarche suscite, le groupe Telegram qui centralise les utilisateurs de FoxDot vient d’être renommé FoxDot/Renardo. Le travail de Jules Cipher propose de faciliter l’installation du logiciel et de ses dépendances tout en apportant quelques nouvelles fonctionnalités. Le lien est ici : Renardo.',x,_,b,n,F,w,C,L,d,k="Qu’y a-t-il de neuf ?",H,p,D="Renardo contient quelques fonctionnalités développées par l’auteur :",R,m,j="
  • un utilitaire de configuration inclus avec le logiciel
  • un gestionnaire communautaire d’échantillons sonores : le téléchargement se fait depuis un serveur
  • de nouvelles méthodes pour gérer l’interpolation et la transition entre patterns
  • des générateurs de rythme et d’autres fonctions liées à la composition
  • des décorateurs (Python) pour transformer une pièce live codée en pièce composée (et donc réécoutable)
  • ",M,c,B='Cette modernisation de FoxDot promet également une meilleure intégration avec d’autres outils de production (Reaper) ainsi que la possibilité de synchroniser FoxDot à d’autres logiciels par le biais l’aide de l’horloge Ableton Link. Renardo semble déjà gérer l’installation automatique d’un éditeur de code (Pulsar) et sa configuration pour ceux qui ne seraient pas à l’aise avec cette démarche.',q,f,G="État du projet",T,h,J='La première version de Renardo est parue il y a moins d’une semaine. Faites part de vos retours sur GitHub pour faciliter la suite du développement et la correction des erreurs.';return{c(){s=i("p"),s.innerHTML=P,x=a(),_=i("br"),b=a(),n=i("img"),w=a(),C=i("br"),L=a(),d=i("h2"),d.textContent=k,H=a(),p=i("p"),p.innerHTML=D,R=a(),m=i("ul"),m.innerHTML=j,M=a(),c=i("p"),c.innerHTML=B,q=a(),f=i("h2"),f.textContent=G,T=a(),h=i("p"),h.innerHTML=J,this.h()},l(e){s=o(e,"P",{"data-svelte-h":!0}),v(s)!=="svelte-78l73d"&&(s.innerHTML=P),x=u(e),_=o(e,"BR",{}),b=u(e),n=o(e,"IMG",{src:!0,alt:!0,style:!0}),w=u(e),C=o(e,"BR",{}),L=u(e),d=o(e,"H2",{"data-svelte-h":!0}),v(d)!=="svelte-1l5m3e8"&&(d.textContent=k),H=u(e),p=o(e,"P",{"data-svelte-h":!0}),v(p)!=="svelte-drh59d"&&(p.innerHTML=D),R=u(e),m=o(e,"UL",{"data-svelte-h":!0}),v(m)!=="svelte-n6hwg8"&&(m.innerHTML=j),M=u(e),c=o(e,"P",{"data-svelte-h":!0}),v(c)!=="svelte-mh7fbk"&&(c.innerHTML=B),q=u(e),f=o(e,"H2",{"data-svelte-h":!0}),v(f)!=="svelte-3avgdx"&&(f.textContent=G),T=u(e),h=o(e,"P",{"data-svelte-h":!0}),v(h)!=="svelte-235wam"&&(h.innerHTML=J),this.h()},h(){K(n.src,F="https://renardo.org/images/screenshot1.png")||S(n,"src",F),S(n,"alt","Renardo"),g(n,"display","block"),g(n,"margin-left","auto"),g(n,"margin-right","auto"),g(n,"max-width","1000px"),g(n,"width","90%")},m(e,t){l(e,s,t),l(e,x,t),l(e,_,t),l(e,b,t),l(e,n,t),l(e,w,t),l(e,C,t),l(e,L,t),l(e,d,t),l(e,H,t),l(e,p,t),l(e,R,t),l(e,m,t),l(e,M,t),l(e,c,t),l(e,q,t),l(e,f,t),l(e,T,t),l(e,h,t)},p:y,i:y,o:y,d(e){e&&(r(s),r(x),r(_),r(b),r(n),r(w),r(C),r(L),r(d),r(H),r(p),r(R),r(m),r(M),r(c),r(q),r(f),r(T),r(h))}}}const O={title:"Premières versions de Renardo",author:"Raphaël Maurice Forment",date:"2024-03-02"};class V extends Q{constructor(s){super(),U(this,s,null,z,I,{})}}export{V as default,O as metadata}; diff --git a/dist/_app/immutable/chunks/renardo.MT7iUhNS.js.br b/dist/_app/immutable/chunks/renardo.MT7iUhNS.js.br new file mode 100644 index 0000000..e8b2340 Binary files /dev/null and b/dist/_app/immutable/chunks/renardo.MT7iUhNS.js.br differ diff --git a/dist/_app/immutable/chunks/renardo.MT7iUhNS.js.gz b/dist/_app/immutable/chunks/renardo.MT7iUhNS.js.gz new file mode 100644 index 0000000..cf4b56e Binary files /dev/null and b/dist/_app/immutable/chunks/renardo.MT7iUhNS.js.gz differ diff --git a/dist/_app/immutable/chunks/teletypecinqzero.Y9FiRfnd.js b/dist/_app/immutable/chunks/teletypecinqzero.Y9FiRfnd.js new file mode 100644 index 0000000..341a543 --- /dev/null +++ b/dist/_app/immutable/chunks/teletypecinqzero.Y9FiRfnd.js @@ -0,0 +1,13 @@ +import{s as U,e as F,n as M}from"./scheduler.aZRR5A_O.js";import{S as W,i as j,g as n,s as a,h as o,x as u,c as p,k as b,l as y,a as l,f as s}from"./index.kYoizZ4A.js";function B(X){let i,H="Une très brève présentation du Teletype",w,c,q='Le Monome Teletype est un module Eurorack open source (relativement cher et rare..) qui embarque un interpréteur pour un petit langage de programmation dédié à la composition algorithmique et au contrôle des synthétiseurs Eurorack. Le Teletype permet aux plus courageux de pratiquer le live coding sans ordinateur, directement au contact de la machine. Un clavier connecté en facade du module constitue l’interface principale pour interagir avec ce dernier. Il est aussi possible de recevoir des signaux (CV) et des impulsions (Gate) pour contrôler le déclenchement de scripts ou pour nourrir vos scripts de données externes. Une version VCVRack (gratuite !) existe également et autorise le live coding directement depuis ce logiciel.',x,t,S="",I,C,m,R='Le live coding sur le Teletype n’est pas la discipline la plus répandue. Les machines conçues par Monome ont une réputation rarement usurpée de minimalisme et d’austérité. Ce sont des machines conçues pour être programmées, modifiées et étendues par leurs utilisateurs. Il existe une myriade de projets construits autour de ces modules, ce qui inclut par ailleurs de nouvelles extensions physiques (Telexi, Telexo, i2c2midi) ou même des versions alternatives du logiciel à flasher soi-même sur le contrôleur. En raison de ces spécificités, les Teletype peuvent être utilisés comme modules utilitaires, comme outils de composition mais aussi plus rarement… comme outils pour live coder l’intégralité d’un synthétiseur ou d’un système.',T,_,L,d,V="Nouvelle version du firmware Teletype",g,f,$='Le Teletype, depuis l’an passé, n’est plus produit par Monome. Il est toutefois possible de trouver les plans pour en construire soi-même. On peut aussi également contribuer au code source. On peut facilement trouver ce module à la revente sur internet, aussi bien neuf que d’occasion. En bref, le Teletype continue sa vie et ne semble pas prêt de disparaître. Une nouvelle version du firmware vient d’être publiée et apporte une myriade de nouvelles choses :',k,v,O=`- drum ops [Byzero]
    +- support for multiple faderbanks [Lightbreaker]
    +- I2C2MIDI ops [attowatt / scanner_darkly]
    +- new disting ex ops: dual algorithms, EX.M.N#, EX.M.NO#, EX.M.CC# [scanner_darkly]
    +- new op CV.GET [scanner_darkly]
    +- new op: SCALE0 [scanner_darkly]
    +- new ops: $F, $F1, $F2, $L, $L1, $L2, $S, $S1, $S2, I1, I2, FR [scanner_darkly]
    +- improved TR.P accuracy [scanner_darkly]
    +- all line endings now accepted for USB files [scanner_darkly]
    +- basic menu for reading/writing scenes when a USB stick is inserted [Dewb]
    +- new ops: CV.CAL and CV.CAL.RESET to calibrate CV outputs [Dewb]
    +- new Disting EX ops: EX.CH, EX.#, EX.N#, EX.NO# [scanner_darkly]
    +- new dual W/ ops: W/.SEL, W/S.POLY, W/S.POLY.RESET, W/1, W/2 [scanner_darkly]
    `,E,h,P="Elle est d’ores et déjà disponible pour VCVRack : la mise à jour se fait automatiquement. Pour ceux qui souhaitent découvrir une nouvelle manière de live coder ou même débuter en étant au plus près de la synthèse, c’est sans doute la bonne chose à faire.";return{c(){i=n("h2"),i.textContent=H,w=a(),c=n("p"),c.innerHTML=q,x=a(),t=n("iframe"),t.innerHTML=S,C=a(),m=n("p"),m.innerHTML=R,T=a(),_=n("br"),L=a(),d=n("h2"),d.textContent=V,g=a(),f=n("p"),f.innerHTML=$,k=a(),v=n("blockquote"),v.innerHTML=O,E=a(),h=n("p"),h.innerHTML=P,this.h()},l(e){i=o(e,"H2",{"data-svelte-h":!0}),u(i)!=="svelte-1kcklcl"&&(i.textContent=H),w=p(e),c=o(e,"P",{"data-svelte-h":!0}),u(c)!=="svelte-la9dvv"&&(c.innerHTML=q),x=p(e),t=o(e,"IFRAME",{src:!0,width:!0,height:!0,frameborder:!0,allow:!0,style:!0,"data-svelte-h":!0}),u(t)!=="svelte-j1y3mw"&&(t.innerHTML=S),C=p(e),m=o(e,"P",{"data-svelte-h":!0}),u(m)!=="svelte-1dwpoyj"&&(m.innerHTML=R),T=p(e),_=o(e,"BR",{}),L=p(e),d=o(e,"H2",{"data-svelte-h":!0}),u(d)!=="svelte-w8a9k4"&&(d.textContent=V),g=p(e),f=o(e,"P",{"data-svelte-h":!0}),u(f)!=="svelte-1xttz17"&&(f.innerHTML=$),k=p(e),v=o(e,"BLOCKQUOTE",{"data-svelte-h":!0}),u(v)!=="svelte-cprp7p"&&(v.innerHTML=O),E=p(e),h=o(e,"P",{"data-svelte-h":!0}),u(h)!=="svelte-elpw0p"&&(h.innerHTML=P),this.h()},h(){F(t.src,I="https://player.vimeo.com/video/129271731?h=0070353db0&color=ff7700&title=0&byline=0&portrait=0")||b(t,"src",I),b(t,"width","640"),b(t,"height","360"),b(t,"frameborder","0"),b(t,"allow","autoplay; fullscreen; picture-in-picture allowfullscreen"),y(t,"display","block"),y(t,"margin-left","auto"),y(t,"margin-right","auto"),y(t,"margin-top","20px"),y(t,"margin-bottom","20px")},m(e,r){l(e,i,r),l(e,w,r),l(e,c,r),l(e,x,r),l(e,t,r),l(e,C,r),l(e,m,r),l(e,T,r),l(e,_,r),l(e,L,r),l(e,d,r),l(e,g,r),l(e,f,r),l(e,k,r),l(e,v,r),l(e,E,r),l(e,h,r)},p:M,i:M,o:M,d(e){e&&(s(i),s(w),s(c),s(x),s(t),s(C),s(m),s(T),s(_),s(L),s(d),s(g),s(f),s(k),s(v),s(E),s(h))}}}const D={title:"Teletype 5.0",author:"Raphaël Maurice Forment",date:"2024-03-02"};class z extends W{constructor(i){super(),j(this,i,null,B,U,{})}}export{z as default,D as metadata}; diff --git a/dist/_app/immutable/chunks/teletypecinqzero.Y9FiRfnd.js.br b/dist/_app/immutable/chunks/teletypecinqzero.Y9FiRfnd.js.br new file mode 100644 index 0000000..f32ef1d Binary files /dev/null and b/dist/_app/immutable/chunks/teletypecinqzero.Y9FiRfnd.js.br differ diff --git a/dist/_app/immutable/chunks/teletypecinqzero.Y9FiRfnd.js.gz b/dist/_app/immutable/chunks/teletypecinqzero.Y9FiRfnd.js.gz new file mode 100644 index 0000000..b59ba7a Binary files /dev/null and b/dist/_app/immutable/chunks/teletypecinqzero.Y9FiRfnd.js.gz differ diff --git a/dist/_app/immutable/entry/app.feFbK-O9.js b/dist/_app/immutable/entry/app.feFbK-O9.js new file mode 100644 index 0000000..2061e34 --- /dev/null +++ b/dist/_app/immutable/entry/app.feFbK-O9.js @@ -0,0 +1,7 @@ +import{_ as c}from"../chunks/preload-helper.0HuHagjb.js";import{s as S,a as j,o as C,t as M,b as V}from"../chunks/scheduler.aZRR5A_O.js";import{S as U,i as z,s as B,e as d,c as F,a as w,t as h,b as P,d as g,f as E,g as G,h as H,j as J,k as A,l as p,m as K,n as Q,o as W,p as R,q as v,r as k,u as L,v as D,w as I}from"../chunks/index.kYoizZ4A.js";const nt={};function X(s){let t,i,n;var r=s[1][0];function u(e,o){return{props:{data:e[3],form:e[2]}}}return r&&(t=v(r,u(s)),s[12](t)),{c(){t&&k(t.$$.fragment),i=d()},l(e){t&&L(t.$$.fragment,e),i=d()},m(e,o){t&&D(t,e,o),w(e,i,o),n=!0},p(e,o){if(o&2&&r!==(r=e[1][0])){if(t){R();const _=t;h(_.$$.fragment,1,0,()=>{I(_,1)}),P()}r?(t=v(r,u(e)),e[12](t),k(t.$$.fragment),g(t.$$.fragment,1),D(t,i.parentNode,i)):t=null}else if(r){const _={};o&8&&(_.data=e[3]),o&4&&(_.form=e[2]),t.$set(_)}},i(e){n||(t&&g(t.$$.fragment,e),n=!0)},o(e){t&&h(t.$$.fragment,e),n=!1},d(e){e&&E(i),s[12](null),t&&I(t,e)}}}function Y(s){let t,i,n;var r=s[1][0];function u(e,o){return{props:{data:e[3],$$slots:{default:[Z]},$$scope:{ctx:e}}}}return r&&(t=v(r,u(s)),s[11](t)),{c(){t&&k(t.$$.fragment),i=d()},l(e){t&&L(t.$$.fragment,e),i=d()},m(e,o){t&&D(t,e,o),w(e,i,o),n=!0},p(e,o){if(o&2&&r!==(r=e[1][0])){if(t){R();const _=t;h(_.$$.fragment,1,0,()=>{I(_,1)}),P()}r?(t=v(r,u(e)),e[11](t),k(t.$$.fragment),g(t.$$.fragment,1),D(t,i.parentNode,i)):t=null}else if(r){const _={};o&8&&(_.data=e[3]),o&8215&&(_.$$scope={dirty:o,ctx:e}),t.$set(_)}},i(e){n||(t&&g(t.$$.fragment,e),n=!0)},o(e){t&&h(t.$$.fragment,e),n=!1},d(e){e&&E(i),s[11](null),t&&I(t,e)}}}function Z(s){let t,i,n;var r=s[1][1];function u(e,o){return{props:{data:e[4],form:e[2]}}}return r&&(t=v(r,u(s)),s[10](t)),{c(){t&&k(t.$$.fragment),i=d()},l(e){t&&L(t.$$.fragment,e),i=d()},m(e,o){t&&D(t,e,o),w(e,i,o),n=!0},p(e,o){if(o&2&&r!==(r=e[1][1])){if(t){R();const _=t;h(_.$$.fragment,1,0,()=>{I(_,1)}),P()}r?(t=v(r,u(e)),e[10](t),k(t.$$.fragment),g(t.$$.fragment,1),D(t,i.parentNode,i)):t=null}else if(r){const _={};o&16&&(_.data=e[4]),o&4&&(_.form=e[2]),t.$set(_)}},i(e){n||(t&&g(t.$$.fragment,e),n=!0)},o(e){t&&h(t.$$.fragment,e),n=!1},d(e){e&&E(i),s[10](null),t&&I(t,e)}}}function O(s){let t,i=s[6]&&T(s);return{c(){t=G("div"),i&&i.c(),this.h()},l(n){t=H(n,"DIV",{id:!0,"aria-live":!0,"aria-atomic":!0,style:!0});var r=J(t);i&&i.l(r),r.forEach(E),this.h()},h(){A(t,"id","svelte-announcer"),A(t,"aria-live","assertive"),A(t,"aria-atomic","true"),p(t,"position","absolute"),p(t,"left","0"),p(t,"top","0"),p(t,"clip","rect(0 0 0 0)"),p(t,"clip-path","inset(50%)"),p(t,"overflow","hidden"),p(t,"white-space","nowrap"),p(t,"width","1px"),p(t,"height","1px")},m(n,r){w(n,t,r),i&&i.m(t,null)},p(n,r){n[6]?i?i.p(n,r):(i=T(n),i.c(),i.m(t,null)):i&&(i.d(1),i=null)},d(n){n&&E(t),i&&i.d()}}}function T(s){let t;return{c(){t=K(s[7])},l(i){t=Q(i,s[7])},m(i,n){w(i,t,n)},p(i,n){n&128&&W(t,i[7])},d(i){i&&E(t)}}}function $(s){let t,i,n,r,u;const e=[Y,X],o=[];function _(a,m){return a[1][1]?0:1}t=_(s),i=o[t]=e[t](s);let f=s[5]&&O(s);return{c(){i.c(),n=B(),f&&f.c(),r=d()},l(a){i.l(a),n=F(a),f&&f.l(a),r=d()},m(a,m){o[t].m(a,m),w(a,n,m),f&&f.m(a,m),w(a,r,m),u=!0},p(a,[m]){let b=t;t=_(a),t===b?o[t].p(a,m):(R(),h(o[b],1,1,()=>{o[b]=null}),P(),i=o[t],i?i.p(a,m):(i=o[t]=e[t](a),i.c()),g(i,1),i.m(n.parentNode,n)),a[5]?f?f.p(a,m):(f=O(a),f.c(),f.m(r.parentNode,r)):f&&(f.d(1),f=null)},i(a){u||(g(i),u=!0)},o(a){h(i),u=!1},d(a){a&&(E(n),E(r)),o[t].d(a),f&&f.d(a)}}}function x(s,t,i){let{stores:n}=t,{page:r}=t,{constructors:u}=t,{components:e=[]}=t,{form:o}=t,{data_0:_=null}=t,{data_1:f=null}=t;j(n.page.notify);let a=!1,m=!1,b=null;C(()=>{const l=n.page.subscribe(()=>{a&&(i(6,m=!0),M().then(()=>{i(7,b=document.title||"untitled page")}))});return i(5,a=!0),l});function y(l){V[l?"unshift":"push"](()=>{e[1]=l,i(0,e)})}function N(l){V[l?"unshift":"push"](()=>{e[0]=l,i(0,e)})}function q(l){V[l?"unshift":"push"](()=>{e[0]=l,i(0,e)})}return s.$$set=l=>{"stores"in l&&i(8,n=l.stores),"page"in l&&i(9,r=l.page),"constructors"in l&&i(1,u=l.constructors),"components"in l&&i(0,e=l.components),"form"in l&&i(2,o=l.form),"data_0"in l&&i(3,_=l.data_0),"data_1"in l&&i(4,f=l.data_1)},s.$$.update=()=>{s.$$.dirty&768&&n.page.set(r)},[e,u,o,_,f,a,m,b,n,r,y,N,q]}class rt extends U{constructor(t){super(),z(this,t,x,$,S,{stores:8,page:9,constructors:1,components:0,form:2,data_0:3,data_1:4})}}const ot=[()=>c(()=>import("../nodes/0.qqbATDHs.js"),__vite__mapDeps([0,1,2,3]),import.meta.url),()=>c(()=>import("../nodes/1.Q0oWupMN.js"),__vite__mapDeps([4,1,2]),import.meta.url),()=>c(()=>import("../nodes/2.tHpihOLv.js"),__vite__mapDeps([5,1,2,6,7,8]),import.meta.url),()=>c(()=>import("../nodes/3.9WtJUhz3.js"),__vite__mapDeps([9,1,2,6,7]),import.meta.url),()=>c(()=>import("../nodes/4.kQqPvB-1.js"),__vite__mapDeps([10,1,2,8,6,7]),import.meta.url),()=>c(()=>import("../nodes/5.VzW-0bpn.js"),__vite__mapDeps([11,12,13,1,2]),import.meta.url),()=>c(()=>import("../nodes/6.UVEywxfC.js"),__vite__mapDeps([14,1,2,7]),import.meta.url),()=>c(()=>import("../nodes/7.nFoyFWGt.js"),__vite__mapDeps([15,1,2,6,7]),import.meta.url),()=>c(()=>import("../nodes/8.t0INpW33.js"),__vite__mapDeps([16,1,2,8,6,7]),import.meta.url),()=>c(()=>import("../nodes/9.49Ykn-Wh.js"),__vite__mapDeps([17,12,13,1,2]),import.meta.url),()=>c(()=>import("../nodes/10.MahYvtVJ.js"),__vite__mapDeps([18,1,2,8,19]),import.meta.url),()=>c(()=>import("../nodes/11.Ty1HKUO7.js"),__vite__mapDeps([20,1,2,8,21,6,7,19]),import.meta.url),()=>c(()=>import("../nodes/12.r3eAYD25.js"),__vite__mapDeps([22,1,2,8,19]),import.meta.url),()=>c(()=>import("../nodes/13.e8ieHNId.js"),__vite__mapDeps([23,1,2,8,21,6,7,19]),import.meta.url),()=>c(()=>import("../nodes/14.at8j2c03.js"),__vite__mapDeps([24,1,2,6,7]),import.meta.url)],st=[],_t={"/":[2],"/accueil":[3],"/articles":[4],"/articles/[slug]":[5],"/contacts":[6],"/evenements":[7],"/guides":[8],"/guides/[slug]":[9],"/membres":[10],"/outils":[11],"/presse":[12],"/reseaux":[13],"/ressources":[14]},at={handleError:({error:s})=>{console.error(s)}};export{_t as dictionary,at as hooks,nt as matchers,ot as nodes,rt as root,st as server_loads}; +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ["../nodes/0.qqbATDHs.js","../chunks/scheduler.aZRR5A_O.js","../chunks/index.kYoizZ4A.js","../assets/0.x88-ymMa.css","../nodes/1.Q0oWupMN.js","../nodes/2.tHpihOLv.js","../chunks/Info.ITY44f4q.js","../chunks/marked.esm.hS8hU7E4.js","../chunks/each.-oqiv04n.js","../nodes/3.9WtJUhz3.js","../nodes/4.kQqPvB-1.js","../nodes/5.VzW-0bpn.js","../chunks/preload-helper.0HuHagjb.js","../chunks/dynamic-import-helper.0gtGTknh.js","../nodes/6.UVEywxfC.js","../nodes/7.nFoyFWGt.js","../nodes/8.t0INpW33.js","../nodes/9.49Ykn-Wh.js","../nodes/10.MahYvtVJ.js","../chunks/utils.Tkfr06Vk.js","../nodes/11.Ty1HKUO7.js","../chunks/SoftwareCard.xyFxzytb.js","../nodes/12.r3eAYD25.js","../nodes/13.e8ieHNId.js","../nodes/14.at8j2c03.js"] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} \ No newline at end of file diff --git a/dist/_app/immutable/entry/app.feFbK-O9.js.br b/dist/_app/immutable/entry/app.feFbK-O9.js.br new file mode 100644 index 0000000..ca6d6c4 Binary files /dev/null and b/dist/_app/immutable/entry/app.feFbK-O9.js.br differ diff --git a/dist/_app/immutable/entry/app.feFbK-O9.js.gz b/dist/_app/immutable/entry/app.feFbK-O9.js.gz new file mode 100644 index 0000000..1db0f79 Binary files /dev/null and b/dist/_app/immutable/entry/app.feFbK-O9.js.gz differ diff --git a/dist/_app/immutable/entry/start.SbcWS3OD.js b/dist/_app/immutable/entry/start.SbcWS3OD.js new file mode 100644 index 0000000..2b85f8c --- /dev/null +++ b/dist/_app/immutable/entry/start.SbcWS3OD.js @@ -0,0 +1,4 @@ +import{n as $e,s as $t,o as Ie,t as Pe}from"../chunks/scheduler.aZRR5A_O.js";new URL("sveltekit-internal://");function It(e,n){return e==="/"||n==="ignore"?e:n==="never"?e.endsWith("/")?e.slice(0,-1):e:n==="always"&&!e.endsWith("/")?e+"/":e}function Pt(e){return e.split("%25").map(decodeURI).join("%25")}function xt(e){for(const n in e)e[n]=decodeURIComponent(e[n]);return e}function xe({href:e}){return e.split("#")[0]}const jt=["href","pathname","search","toString","toJSON"];function Lt(e,n,s){const o=new URL(e);Object.defineProperty(o,"searchParams",{value:new Proxy(o.searchParams,{get(l,f){if(f==="get"||f==="getAll"||f==="has")return i=>(s(i),l[f](i));n();const _=Reflect.get(l,f);return typeof _=="function"?_.bind(l):_}}),enumerable:!0,configurable:!0});for(const l of jt)Object.defineProperty(o,l,{get(){return n(),e[l]},enumerable:!0,configurable:!0});return Nt(o),o}function Nt(e){Object.defineProperty(e,"hash",{get(){throw new Error("Cannot access event.url.hash. Consider using `$page.url.hash` inside a component instead")}})}const Ut="/__data.json",Tt=".html__data.json";function Ct(e){return e.endsWith(".html")?e.replace(/\.html$/,Tt):e.replace(/\/$/,"")+Ut}function Dt(...e){let n=5381;for(const s of e)if(typeof s=="string"){let o=s.length;for(;o;)n=n*33^s.charCodeAt(--o)}else if(ArrayBuffer.isView(s)){const o=new Uint8Array(s.buffer,s.byteOffset,s.byteLength);let l=o.length;for(;l;)n=n*33^o[--l]}else throw new TypeError("value must be a string or TypedArray");return(n>>>0).toString(36)}const ht=window.fetch;window.fetch=(e,n)=>((e instanceof Request?e.method:n?.method||"GET")!=="GET"&&se.delete(Fe(e)),ht(e,n));const se=new Map;function Vt(e){const n=atob(e),s=new Uint8Array(n.length);for(let o=0;o0){const o=Fe(e,s),l=se.get(o);if(l){if(performance.now(){const l=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(o);if(l)return n.push({name:l[1],matcher:l[2],optional:!1,rest:!0,chained:!0}),"(?:/(.*))?";const f=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(o);if(f)return n.push({name:f[1],matcher:f[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!o)return;const _=o.split(/\[(.+?)\](?!\])/);return"/"+_.map((d,c)=>{if(c%2){if(d.startsWith("x+"))return je(String.fromCharCode(parseInt(d.slice(2),16)));if(d.startsWith("u+"))return je(String.fromCharCode(...d.slice(2).split("-").map(R=>parseInt(R,16))));const g=qt.exec(d);if(!g)throw new Error(`Invalid param: ${d}. Params and matcher names can only have underscores and alphanumeric characters.`);const[,w,I,k,$]=g;return n.push({name:k,matcher:$,optional:!!w,rest:!!I,chained:I?c===1&&_[0]==="":!1}),I?"(.*?)":w?"([^/]*)?":"([^/]+?)"}return je(d)}).join("")}).join("")}/?$`),params:n}}function Gt(e){return!/^\([^)]+\)$/.test(e)}function zt(e){return e.slice(1).split("/").filter(Gt)}function Ht(e,n,s){const o={},l=e.slice(1),f=l.filter(i=>i!==void 0);let _=0;for(let i=0;ig).join("/"),_=0),c===void 0){d.rest&&(o[d.name]="");continue}if(!d.matcher||s[d.matcher](c)){o[d.name]=c;const g=n[i+1],w=l[i+1];g&&!g.rest&&g.optional&&w&&d.chained&&(_=0),!g&&!w&&Object.keys(o).length===f.length&&(_=0);continue}if(d.optional&&d.chained){_++;continue}return}if(!_)return o}function je(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Jt({nodes:e,server_loads:n,dictionary:s,matchers:o}){const l=new Set(n);return Object.entries(s).map(([i,[d,c,g]])=>{const{pattern:w,params:I}=Bt(i),k={id:i,exec:$=>{const R=w.exec($);if(R)return Ht(R,I,o)},errors:[1,...g||[]].map($=>e[$]),layouts:[0,...c||[]].map(_),leaf:f(d)};return k.errors.length=k.layouts.length=Math.max(k.errors.length,k.layouts.length),k});function f(i){const d=i<0;return d&&(i=~i),[d,e[i]]}function _(i){return i===void 0?i:[l.has(i),e[i]]}}function qe(e,n=JSON.parse){try{return n(sessionStorage[e])}catch{}}function Le(e,n,s=JSON.stringify){const o=s(n);try{sessionStorage[e]=o}catch{}}const W=[];function Be(e,n=$e){let s;const o=new Set;function l(i){if($t(e,i)&&(e=i,s)){const d=!W.length;for(const c of o)c[1](),W.push(c,e);if(d){for(let c=0;c{o.delete(c),o.size===0&&s&&(s(),s=null)}}return{set:l,update:f,subscribe:_}}const M=globalThis.__sveltekit_1nzxa8i?.base??"",Kt=globalThis.__sveltekit_1nzxa8i?.assets??M,Yt="1707522659898",_t="sveltekit:snapshot",gt="sveltekit:scroll",mt="sveltekit:states",Ne="sveltekit:pageurl",B="sveltekit:history",J="sveltekit:navigation",ve={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ie=location.origin;function ae(e){if(e instanceof URL)return e;let n=document.baseURI;if(!n){const s=document.getElementsByTagName("base");n=s.length?s[0].href:document.URL}return new URL(e,n)}function Me(){return{x:pageXOffset,y:pageYOffset}}function X(e,n){return e.getAttribute(`data-sveltekit-${n}`)}const at={...ve,"":ve.hover};function yt(e){let n=e.assignedSlot??e.parentNode;return n?.nodeType===11&&(n=n.host),n}function ot(e,n){for(;e&&e!==n;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=yt(e)}}function Ue(e,n){let s;try{s=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI)}catch{}const o=e instanceof SVGAElement?e.target.baseVal:e.target,l=!s||!!o||ye(s,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),f=s?.origin===ie&&e.hasAttribute("download");return{url:s,external:l,target:o,download:f}}function _e(e){let n=null,s=null,o=null,l=null,f=null,_=null,i=e;for(;i&&i!==document.documentElement;)o===null&&(o=X(i,"preload-code")),l===null&&(l=X(i,"preload-data")),n===null&&(n=X(i,"keepfocus")),s===null&&(s=X(i,"noscroll")),f===null&&(f=X(i,"reload")),_===null&&(_=X(i,"replacestate")),i=yt(i);function d(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:at[o??"off"],preload_data:at[l??"off"],keepfocus:d(n),noscroll:d(s),reload:d(f),replace_state:d(_)}}function st(e){const n=Be(e);let s=!0;function o(){s=!0,n.update(_=>_)}function l(_){s=!1,n.set(_)}function f(_){let i;return n.subscribe(d=>{(i===void 0||s&&d!==i)&&_(i=d)})}return{notify:o,set:l,subscribe:f}}function Wt(){const{set:e,subscribe:n}=Be(!1);let s;async function o(){clearTimeout(s);try{const l=await fetch(`${Kt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!l.ok)return!1;const _=(await l.json()).version!==Yt;return _&&(e(!0),clearTimeout(s)),_}catch{return!1}}return{subscribe:n,check:o}}function ye(e,n){return e.origin!==ie||!e.pathname.startsWith(n)}class Te extends Error{constructor(n,s){super(n),this.name="DevalueError",this.path=s.join("")}}function it(e){return Object(e)!==e}const Xt=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Zt(e){const n=Object.getPrototypeOf(e);return n===Object.prototype||n===null||Object.getOwnPropertyNames(n).sort().join("\0")===Xt}function Qt(e){return Object.prototype.toString.call(e).slice(8,-1)}function en(e){switch(e){case'"':return'\\"';case"<":return"\\u003C";case"\\":return"\\\\";case` +`:return"\\n";case"\r":return"\\r";case" ":return"\\t";case"\b":return"\\b";case"\f":return"\\f";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:return e<" "?`\\u${e.charCodeAt(0).toString(16).padStart(4,"0")}`:""}}function Q(e){let n="",s=0;const o=e.length;for(let l=0;l0&&(w+=","),R in c?(f.push(`[${R}]`),w+=i(c[R]),f.pop()):w+=vt;w+="]";break;case"Set":w='["Set"';for(const R of c)w+=`,${i(R)}`;w+="]";break;case"Map":w='["Map"';for(const[R,D]of c)f.push(`.get(${it(R)?Ce(R):"..."})`),w+=`,${i(R)},${i(D)}`;w+="]";break;default:if(!Zt(c))throw new Te("Cannot stringify arbitrary non-POJOs",f);if(Object.getOwnPropertySymbols(c).length>0)throw new Te("Cannot stringify POJOs with symbolic keys",f);if(Object.getPrototypeOf(c)===null){w='["null"';for(const R in c)f.push(`.${R}`),w+=`,${Q(R)},${i(c[R])}`,f.pop();w+="]"}else{w="{";let R=!1;for(const D in c)R&&(w+=","),R=!0,f.push(`.${D}`),w+=`${Q(D)}:${i(c[D])}`,f.pop();w+="}"}}return s[g]=w,g}const d=i(e);return d<0?`${d}`:`[${s.join(",")}]`}function Ce(e){const n=typeof e;return n==="string"?Q(e):e instanceof String?Q(e.toString()):e===void 0?Ge.toString():e===0&&1/e<0?ze.toString():n==="bigint"?`["BigInt","${e}"]`:String(e)}const St=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...St];const rn=new Set([...St]);[...rn];function an(e){return e.filter(n=>n!=null)}class we{constructor(n,s){this.status=n,typeof s=="string"?this.body={message:s}:s?this.body=s:this.body={message:`Error: ${n}`}}toString(){return JSON.stringify(this.body)}}class ct{constructor(n,s){this.status=n,this.location=s}}class He extends Error{constructor(n,s,o){super(o),this.status=n,this.text=s}}const on="x-sveltekit-invalidated",sn="x-sveltekit-trailing-slash";function cn(e){e.client}const G={url:st({}),page:st({}),navigating:Be(null),updated:Wt()};function ge(e){return e instanceof we||e instanceof He?e.status:500}function ln(e){return e instanceof He?e.text:"Internal Error"}const K=qe(gt)??{},oe=qe(mt,tn)??{},ce=qe(_t)??{},lt=history.pushState,me=history.replaceState;function De(e){K[e]=Me()}function ft(e,n){let s=e+1;for(;K[s];)delete K[s],s+=1;for(s=n+1;ce[s];)delete ce[s],s+=1}function Z(e){return location.href=e.href,new Promise(()=>{})}function ut(){}function fn(e,n){const s=Jt(e),o=e.nodes[0],l=e.nodes[1];o(),l();const f=document.documentElement,_=[],i=[];let d=null;const c={before_navigate:[],on_navigate:[],after_navigate:[]};let g={branch:[],error:null,url:null},w=!1,I=!1,k=!0,$=!1,R=!1,D=!1,ee=!1,le=!1,F,L=history.state?.[B],V=history.state?.[J];L||(L=V=Date.now(),me.call(history,{...history.state,[B]:L,[J]:V},"",location.href));const be=K[L];be&&(history.scrollRestoration="manual",scrollTo(be.x,be.y));let x,Y,ke;async function Je(){if(await(ke||=Promise.resolve()),!ke)return;ke=null;const r=ne(g.url,!0);d=null;const t=Y={},a=r&&await Ae(r);t===Y&&(a&&(a.type==="redirect"?await fe(new URL(a.location,g.url).href,{},1,t):(a.props.page!==void 0&&(x=a.props.page),F.$set(a.props))),_.length=0)}function Ke(r){i.some(t=>t?.snapshot)&&(ce[r]=i.map(t=>t?.snapshot?.capture()))}function Ye(r){ce[r]?.forEach((t,a)=>{i[a]?.snapshot?.restore(t)})}function We(){De(L),Le(gt,K),Ke(V),Le(_t,ce),Le(mt,oe,nn)}async function fe(r,t,a,u){return pe({type:"goto",url:ae(r),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,redirect_count:a,state:t.state,nav_token:u,accept:()=>{t.invalidateAll&&(le=!0)}})}async function Xe(r){return d={id:r.id,promise:Ae(r).then(t=>(t.type==="loaded"&&t.state.error&&(d=null),t))},d.promise}async function ue(r){const t=s.find(a=>a.exec(tt(r)));t&&await Promise.all([...t.layouts,t.leaf].map(a=>a?.[1]()))}function Ze(r){g=r.state;const t=document.querySelector("style[data-sveltekit]");t&&t.remove(),x=r.props.page,F=new e.root({target:n,props:{...r.props,stores:G,components:i},hydrate:!0}),Ye(V);const a={from:null,to:{params:g.params,route:{id:g.route?.id??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};c.after_navigate.forEach(u=>u(a)),I=!0}async function te({url:r,params:t,branch:a,status:u,error:p,route:h,form:m}){let v="never";for(const A of a)A?.slash!==void 0&&(v=A.slash);r.pathname=It(r.pathname,v),r.search=r.search;const E={type:"loaded",state:{url:r,params:t,branch:a,error:p,route:h},props:{constructors:an(a).map(A=>A.node.component),page:x}};m!==void 0&&(E.props.form=m);let b={},N=!x,U=0;for(let A=0;A(v&&(E.route=!0),y[A])}),params:new Proxy(u,{get:(y,A)=>(v&&E.params.add(A),y[A])}),data:h?.data??null,url:Lt(a,()=>{v&&(E.url=!0)},y=>{v&&E.search_params.add(y)}),async fetch(y,A){let j;y instanceof Request?(j=y.url,A={body:y.method==="GET"||y.method==="HEAD"?void 0:await y.blob(),cache:y.cache,credentials:y.credentials,headers:y.headers,integrity:y.integrity,keepalive:y.keepalive,method:y.method,mode:y.mode,redirect:y.redirect,referrer:y.referrer,referrerPolicy:y.referrerPolicy,signal:y.signal,...A}):j=y;const O=new URL(j,a);return v&&N(O.href),O.origin===a.origin&&(j=O.href.slice(a.origin.length)),I?Ft(j,O.href,A):Mt(j,A)},setHeaders:()=>{},depends:N,parent(){return v&&(E.parent=!0),t()},untrack(y){v=!1;try{return y()}finally{v=!0}}};m=await b.universal.load.call(null,U)??null}return{node:b,loader:r,server:h,universal:b.universal?.load?{type:"data",data:m,uses:E}:null,data:m??h?.data??null,slash:M&&(a.pathname===M||a.pathname===M+"/")?"always":b.universal?.trailingSlash??h?.slash}}function Qe(r,t,a,u,p,h){if(le)return!0;if(!p)return!1;if(p.parent&&r||p.route&&t||p.url&&a)return!0;for(const m of p.search_params)if(u.has(m))return!0;for(const m of p.params)if(h[m]!==g.params[m])return!0;for(const m of p.dependencies)if(_.some(v=>v(new URL(m))))return!0;return!1}function Se(r,t){return r?.type==="data"?r:r?.type==="skip"?t??null:null}function Rt(r,t){if(!r)return new Set(t.searchParams.keys());const a=new Set([...r.searchParams.keys(),...t.searchParams.keys()]);for(const u of a){const p=r.searchParams.getAll(u),h=t.searchParams.getAll(u);p.every(m=>h.includes(m))&&h.every(m=>p.includes(m))&&a.delete(u)}return a}async function Ae({id:r,invalidating:t,url:a,params:u,route:p}){if(d?.id===r)return d.promise;const{errors:h,layouts:m,leaf:v}=p,E=[...m,v];h.forEach(S=>S?.().catch(()=>{})),E.forEach(S=>S?.[1]().catch(()=>{}));let b=null;const N=g.url?r!==g.url.pathname+g.url.search:!1,U=g.route?p.id!==g.route.id:!1,y=Rt(g.url,a);let A=!1;const j=E.map((S,P)=>{const T=g.branch[P],C=!!S?.[0]&&(T?.loader!==S[1]||Qe(A,U,N,y,T.server?.uses,u));return C&&(A=!0),C});if(j.some(Boolean)){try{b=await dt(a,j)}catch(S){return de({status:ge(S),error:await re(S,{url:a,params:u,route:{id:p.id}}),url:a,route:p})}if(b.type==="redirect")return b}const O=b?.nodes;let q=!1;const z=E.map(async(S,P)=>{if(!S)return;const T=g.branch[P],C=O?.[P];if((!C||C.type==="skip")&&S[1]===T?.loader&&!Qe(q,U,N,y,T.universal?.uses,u))return T;if(q=!0,C?.type==="error")throw C;return Ee({loader:S[1],url:a,params:u,route:p,parent:async()=>{const Re={};for(let Oe=0;Oe{});const H=[];for(let S=0;SPromise.resolve({}),server_data_node:Se(h)}),E={node:await l(),loader:l,universal:null,server:null,data:null};return await te({url:a,params:p,branch:[v,E],status:r,error:t,route:null})}function ne(r,t){if(ye(r,M))return;const a=tt(r.pathname);for(const u of s){const p=u.exec(a);if(p)return{id:r.pathname+r.search,invalidating:t,route:u,params:xt(p),url:r}}}function tt(r){return Pt(r.slice(M.length)||"/")}function nt({url:r,type:t,intent:a,delta:u}){let p=!1;const h=pt(g,a,r,t);u!==void 0&&(h.navigation.delta=u);const m={...h.navigation,cancel:()=>{p=!0,h.reject(new Error("navigation was cancelled"))}};return R||c.before_navigate.forEach(v=>v(m)),p?null:h}async function pe({type:r,url:t,popped:a,keepfocus:u,noscroll:p,replace_state:h,state:m={},redirect_count:v=0,nav_token:E={},accept:b=ut,block:N=ut}){const U=ne(t,!1),y=nt({url:t,type:r,delta:a?.delta,intent:U});if(!y){N();return}const A=L,j=V;b(),R=!0,I&&G.navigating.set(y.navigation),Y=E;let O=U&&await Ae(U);if(!O){if(ye(t,M))return await Z(t);O=await rt(t,{id:null},await re(new He(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404)}if(t=U?.url||t,Y!==E)return y.reject(new Error("navigation was aborted")),!1;if(O.type==="redirect")if(v>=20)O=await de({status:500,error:await re(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}});else return fe(new URL(O.location,t).href,{},v+1,E),!1;else O.props.page.status>=400&&await G.updated.check()&&await Z(t);if(_.length=0,le=!1,$=!0,De(A),Ke(j),O.props.page.url.pathname!==t.pathname&&(t.pathname=O.props.page.url.pathname),m=a?a.state:m,!a){const S=h?0:1,P={[B]:L+=S,[J]:V+=S};(h?me:lt).call(history,P,"",t),h||ft(L,V)}if(oe[L]=m,d=null,O.props.page.state=m,I){g=O.state,O.props.page&&(O.props.page.url=t);const S=(await Promise.all(c.on_navigate.map(P=>P(y.navigation)))).filter(P=>typeof P=="function");if(S.length>0){let P=function(){c.after_navigate=c.after_navigate.filter(T=>!S.includes(T))};S.push(P),c.after_navigate.push(...S)}F.$set(O.props),ee=!0}else Ze(O);const{activeElement:q}=document;await Pe();const z=a?a.scroll:p?Me():null;if(k){const S=t.hash&&document.getElementById(decodeURIComponent(t.hash.slice(1)));z?scrollTo(z.x,z.y):S?S.scrollIntoView():scrollTo(0,0)}const H=document.activeElement!==q&&document.activeElement!==document.body;!u&&!H&&Ve(),k=!0,O.props.page&&(x=O.props.page),R=!1,r==="popstate"&&Ye(V),y.fulfil(void 0),c.after_navigate.forEach(S=>S(y.navigation)),G.navigating.set(null),$=!1}async function rt(r,t,a,u){return r.origin===ie&&r.pathname===location.pathname&&!w?await de({status:u,error:a,url:r,route:t}):await Z(r)}function Ot(){let r;f.addEventListener("mousemove",h=>{const m=h.target;clearTimeout(r),r=setTimeout(()=>{u(m,2)},20)});function t(h){u(h.composedPath()[0],1)}f.addEventListener("mousedown",t),f.addEventListener("touchstart",t,{passive:!0});const a=new IntersectionObserver(h=>{for(const m of h)m.isIntersecting&&(ue(m.target.href),a.unobserve(m.target))},{threshold:0});function u(h,m){const v=ot(h,f);if(!v)return;const{url:E,external:b,download:N}=Ue(v,M);if(b||N)return;const U=_e(v);if(!U.reload)if(m<=U.preload_data){const y=ne(E,!1);y&&Xe(y)}else m<=U.preload_code&&ue(E.pathname)}function p(){a.disconnect();for(const h of f.querySelectorAll("a")){const{url:m,external:v,download:E}=Ue(h,M);if(v||E)continue;const b=_e(h);b.reload||(b.preload_code===ve.viewport&&a.observe(h),b.preload_code===ve.eager&&ue(m.pathname))}}c.after_navigate.push(p),p()}function re(r,t){if(r instanceof we)return r.body;const a=ge(r),u=ln(r);return e.hooks.handleError({error:r,event:t,status:a,message:u})??{message:u}}return{after_navigate:r=>{Ie(()=>(c.after_navigate.push(r),()=>{const t=c.after_navigate.indexOf(r);c.after_navigate.splice(t,1)}))},before_navigate:r=>{Ie(()=>(c.before_navigate.push(r),()=>{const t=c.before_navigate.indexOf(r);c.before_navigate.splice(t,1)}))},on_navigate:r=>{Ie(()=>(c.on_navigate.push(r),()=>{const t=c.on_navigate.indexOf(r);c.on_navigate.splice(t,1)}))},disable_scroll_handling:()=>{($||!I)&&(k=!1)},goto:(r,t={})=>(r=ae(r),r.origin!==ie?Promise.reject(new Error("goto: invalid URL")):fe(r,t,0)),invalidate:r=>{if(typeof r=="function")_.push(r);else{const{href:t}=new URL(r,location.href);_.push(a=>a.href===t)}return Je()},invalidate_all:()=>(le=!0,Je()),preload_data:async r=>{const t=ae(r),a=ne(t,!1);if(!a)throw new Error(`Attempted to preload a URL that does not belong to this app: ${t}`);const u=await Xe(a);if(u.type==="redirect")return{type:u.type,location:u.location};const{status:p,data:h}=u.props.page??x;return{type:u.type,status:p,data:h}},preload_code:r=>ue(r),push_state:(r,t)=>{const a={[B]:L+=1,[J]:V,[Ne]:x.url.href};lt.call(history,a,"",ae(r)),x={...x,state:t},F.$set({page:x}),oe[L]=t,ft(L,V)},replace_state:(r,t)=>{const a={[B]:L,[J]:V,[Ne]:x.url.href};me.call(history,a,"",ae(r)),x={...x,state:t},F.$set({page:x}),oe[L]=t},apply_action:async r=>{if(r.type==="error"){const t=new URL(location.href),{branch:a,route:u}=g;if(!u)return;const p=await et(g.branch.length,a,u.errors);if(p){const h=await te({url:t,params:g.params,branch:a.slice(0,p.idx).concat(p.node),status:r.status??500,error:r.error,route:u});g=h.state,F.$set(h.props),Pe().then(Ve)}}else r.type==="redirect"?fe(r.location,{invalidateAll:!0},0):(F.$set({form:null,page:{...x,form:r.data,status:r.status}}),await Pe(),F.$set({form:r.data}),r.type==="success"&&Ve())},_start_router:()=>{history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let a=!1;if(We(),!R){const u=pt(g,void 0,null,"leave"),p={...u.navigation,cancel:()=>{a=!0,u.reject(new Error("navigation was cancelled"))}};c.before_navigate.forEach(h=>h(p))}a?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&We()}),navigator.connection?.saveData||Ot(),f.addEventListener("click",t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const a=ot(t.composedPath()[0],f);if(!a)return;const{url:u,external:p,target:h,download:m}=Ue(a,M);if(!u)return;if(h==="_parent"||h==="_top"){if(window.parent!==window)return}else if(h&&h!=="_self")return;const v=_e(a);if(!(a instanceof SVGAElement)&&u.protocol!==location.protocol&&!(u.protocol==="https:"||u.protocol==="http:")||m)return;if(p||v.reload){nt({url:u,type:"link"})?R=!0:t.preventDefault();return}const[b,N]=u.href.split("#");if(N!==void 0&&b===xe(location)){if(g.url.hash===u.hash){t.preventDefault(),a.ownerDocument.getElementById(N)?.scrollIntoView();return}if(D=!0,De(L),r(u),!v.replace_state)return;D=!1}t.preventDefault(),pe({type:"link",url:u,keepfocus:v.keepfocus,noscroll:v.noscroll,replace_state:v.replace_state??u.href===location.href})}),f.addEventListener("submit",t=>{if(t.defaultPrevented)return;const a=HTMLFormElement.prototype.cloneNode.call(t.target),u=t.submitter;if((u?.formMethod||a.method)!=="get")return;const h=new URL(u?.hasAttribute("formaction")&&u?.formAction||a.action);if(ye(h,M))return;const m=t.target,v=_e(m);if(v.reload)return;t.preventDefault(),t.stopPropagation();const E=new FormData(m),b=u?.getAttribute("name");b&&E.append(b,u?.getAttribute("value")??""),h.search=new URLSearchParams(E).toString(),pe({type:"form",url:h,keepfocus:v.keepfocus,noscroll:v.noscroll,replace_state:v.replace_state??h.href===location.href})}),addEventListener("popstate",async t=>{if(t.state?.[B]){const a=t.state[B];if(Y={},a===L)return;const u=K[a],p=oe[a]??{},h=new URL(t.state[Ne]??location.href),m=t.state[J],v=xe(location)===xe(g.url);if(m===V&&(ee||v)){r(h),K[L]=Me(),u&&scrollTo(u.x,u.y),p!==x.state&&(x={...x,state:p},F.$set({page:x})),L=a;return}const b=a-L;await pe({type:"popstate",url:h,popped:{state:p,scroll:u,delta:b},accept:()=>{L=a,V=m},block:()=>{history.go(-b)},nav_token:Y})}else if(!D){const a=new URL(location.href);r(a)}}),addEventListener("hashchange",()=>{D&&(D=!1,me.call(history,{...history.state,[B]:++L,[J]:V},"",location.href))});for(const t of document.querySelectorAll("link"))t.rel==="icon"&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&G.navigating.set(null)});function r(t){g.url=t,G.page.set({...x,url:t}),G.page.notify()}},_hydrate:async({status:r=200,error:t,node_ids:a,params:u,route:p,data:h,form:m})=>{w=!0;const v=new URL(location.href);({params:u={},route:p={id:null}}=ne(v,!1)||{});let E;try{const b=a.map(async(y,A)=>{const j=h[A];return j?.uses&&(j.uses=At(j.uses)),Ee({loader:e.nodes[y],url:v,params:u,route:p,parent:async()=>{const O={};for(let q=0;qy===p.id);if(U){const y=U.layouts;for(let A=0;Al?"1":"0").join(""));const o=await ht(s.href);if(!o.ok){let l;throw o.headers.get("content-type")?.includes("application/json")?l=await o.json():o.status===404?l="Not Found":o.status===500&&(l="Internal Error"),new we(o.status,l)}return new Promise(async l=>{const f=new Map,_=o.body.getReader(),i=new TextDecoder;function d(g){return Et(g,{Promise:w=>new Promise((I,k)=>{f.set(w,{fulfil:I,reject:k})})})}let c="";for(;;){const{done:g,value:w}=await _.read();if(g&&!c)break;for(c+=!w&&c?` +`:i.decode(w);;){const I=c.indexOf(` +`);if(I===-1)break;const k=JSON.parse(c.slice(0,I));if(c=c.slice(I+1),k.type==="redirect")return l(k);if(k.type==="data")k.nodes?.forEach($=>{$?.type==="data"&&($.uses=At($.uses),$.data=d($.data))}),l(k);else if(k.type==="chunk"){const{id:$,data:R,error:D}=k,ee=f.get($);f.delete($),D?ee.reject(d(D)):ee.fulfil(d(R))}}}})}function At(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}function Ve(){const e=document.querySelector("[autofocus]");if(e)e.focus();else{const n=document.body,s=n.getAttribute("tabindex");n.tabIndex=-1,n.focus({preventScroll:!0,focusVisible:!1}),s!==null?n.setAttribute("tabindex",s):n.removeAttribute("tabindex");const o=getSelection();if(o&&o.type!=="None"){const l=[];for(let f=0;f{if(o.rangeCount===l.length){for(let f=0;f{l=d,f=c});return _.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url},to:s&&{params:n?.params??null,route:{id:n?.route?.id??null},url:s},willUnload:!n,type:o,complete:_},fulfil:l,reject:f}}async function dn(e,n,s){const o=fn(e,n);cn({client:o}),s?await o._hydrate(s):o.goto(location.href,{replaceState:!0}),o._start_router()}export{dn as start}; diff --git a/dist/_app/immutable/entry/start.SbcWS3OD.js.br b/dist/_app/immutable/entry/start.SbcWS3OD.js.br new file mode 100644 index 0000000..ec5e3c3 Binary files /dev/null and b/dist/_app/immutable/entry/start.SbcWS3OD.js.br differ diff --git a/dist/_app/immutable/entry/start.SbcWS3OD.js.gz b/dist/_app/immutable/entry/start.SbcWS3OD.js.gz new file mode 100644 index 0000000..30ea667 Binary files /dev/null and b/dist/_app/immutable/entry/start.SbcWS3OD.js.gz differ diff --git a/dist/_app/immutable/nodes/0.qqbATDHs.js b/dist/_app/immutable/nodes/0.qqbATDHs.js new file mode 100644 index 0000000..96da8af --- /dev/null +++ b/dist/_app/immutable/nodes/0.qqbATDHs.js @@ -0,0 +1 @@ +import{s as ge,c as ke,u as ye,g as we,d as Ae}from"../chunks/scheduler.aZRR5A_O.js";import{S as Me,i as Ie,g as a,s as i,h as r,j,x as d,c as o,f as u,k as e,a as P,y as t,z as Ee,d as Te,t as Ve}from"../chunks/index.kYoizZ4A.js";const je=!0,Oe=Object.freeze(Object.defineProperty({__proto__:null,prerender:je},Symbol.toStringTag,{value:"Module"}));function De(C){let h,_,x,m,b,L="livecoding.fr",N,v,re='',U,l,g,ne="Évènements",J,k,ie="Membres",K,y,oe="Outils",Q,w,ce="Guides",W,A,de="Articles",X,M,ue="Réseaux",Y,I,fe="Ressources",Z,E,me="Presse",ee,T,ve="Contact",S,G,D,p,O,te,R,se,$,he=' ',q,V,xe='

    Raphaël Forment

    GitHub

    ',H,le,be;const ae=C[4].default,c=ke(ae,C,C[3],null);return{c(){h=a("div"),_=a("div"),x=a("nav"),m=a("div"),b=a("a"),b.textContent=L,N=i(),v=a("div"),v.innerHTML=re,U=i(),l=a("div"),g=a("a"),g.textContent=ne,J=i(),k=a("a"),k.textContent=ie,K=i(),y=a("a"),y.textContent=oe,Q=i(),w=a("a"),w.textContent=ce,W=i(),A=a("a"),A.textContent=de,X=i(),M=a("a"),M.textContent=ue,Y=i(),I=a("a"),I.textContent=fe,Z=i(),E=a("a"),E.textContent=me,ee=i(),T=a("a"),T.textContent=ve,G=i(),D=a("main"),p=a("div"),O=a("input"),te=i(),R=a("div"),c&&c.c(),se=i(),$=a("div"),$.innerHTML=he,q=i(),V=a("footer"),V.innerHTML=xe,this.h()},l(s){h=r(s,"DIV",{});var f=j(h);_=r(f,"DIV",{class:!0});var pe=j(_);x=r(pe,"NAV",{class:!0});var B=j(x);m=r(B,"DIV",{class:!0});var F=j(m);b=r(F,"A",{href:!0,class:!0,"data-svelte-h":!0}),d(b)!=="svelte-15xybd8"&&(b.textContent=L),N=o(F),v=r(F,"DIV",{class:!0,"data-svelte-h":!0}),d(v)!=="svelte-glwq61"&&(v.innerHTML=re),F.forEach(u),U=o(B),l=r(B,"DIV",{class:!0});var n=j(l);g=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),d(g)!=="svelte-11zf95a"&&(g.textContent=ne),J=o(n),k=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),d(k)!=="svelte-1a3do61"&&(k.textContent=ie),K=o(n),y=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),d(y)!=="svelte-ee0p45"&&(y.textContent=oe),Q=o(n),w=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),d(w)!=="svelte-5misk3"&&(w.textContent=ce),W=o(n),A=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),d(A)!=="svelte-kglg6r"&&(A.textContent=de),X=o(n),M=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),d(M)!=="svelte-6wk0bt"&&(M.textContent=ue),Y=o(n),I=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),d(I)!=="svelte-ziwryh"&&(I.textContent=fe),Z=o(n),E=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),d(E)!=="svelte-6fl78t"&&(E.textContent=me),ee=o(n),T=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),d(T)!=="svelte-1skvj1i"&&(T.textContent=ve),n.forEach(u),B.forEach(u),pe.forEach(u),f.forEach(u),G=o(s),D=r(s,"MAIN",{class:!0});var _e=j(D);p=r(_e,"DIV",{class:!0});var z=j(p);O=r(z,"INPUT",{id:!0,type:!0,class:!0}),te=o(z),R=r(z,"DIV",{class:!0});var Ce=j(R);c&&c.l(Ce),Ce.forEach(u),se=o(z),$=r(z,"DIV",{class:!0,"data-svelte-h":!0}),d($)!=="svelte-11ixv29"&&($.innerHTML=he),z.forEach(u),_e.forEach(u),q=o(s),V=r(s,"FOOTER",{class:!0,"data-svelte-h":!0}),d(V)!=="svelte-1gkeg8z"&&(V.innerHTML=xe),this.h()},h(){e(b,"href","/"),e(b,"class","website-title text-2xl font-bold bg-gradient-to-r from-orange-700 via-blue-500 to-green-400 text-transparent bg-clip-text animate-gradient"),e(v,"class","flex md:hidden"),e(m,"class","flex items-center justify-between"),e(g,"href","/evenements"),e(g,"class","mobile-menu-link"),e(k,"href","/membres"),e(k,"class","mobile-menu-link"),e(y,"href","/outils"),e(y,"class","mobile-menu-link"),e(w,"href","/guides"),e(w,"class","mobile-menu-link"),e(A,"href","/articles"),e(A,"class","mobile-menu-link"),e(M,"href","/reseaux"),e(M,"class","mobile-menu-link"),e(I,"href","/ressources"),e(I,"class","mobile-menu-link"),e(E,"href","/presse"),e(E,"class","mobile-menu-link"),e(T,"href","/contacts"),e(T,"class","mobile-menu-link"),e(l,"class",S="flex-col mt-8 space-y-4 md:flex md:space-y-0 md:flex-row md:items-center md:space-x-10 md:mt-0 "+(C[0]?"flex":"hidden")),e(x,"class","pl-8 py-2 md:flex md:justify-between md:items-center pr-8"),e(_,"class","bg-neutral-800"),e(O,"id","my-drawer-2"),e(O,"type","checkbox"),e(O,"class","drawer-toggle"),e(R,"class","drawer-content space-y-4 flex flex-col lg:px-16 px-4 py-8"),e($,"class","drawer-side no-scrollbar m-0"),e(p,"class","drawer lg:drawer-open"),e(D,"class","bg-neutral-900"),e(V,"class","footer-style")},m(s,f){P(s,h,f),t(h,_),t(_,x),t(x,m),t(m,b),t(m,N),t(m,v),t(x,U),t(x,l),t(l,g),t(l,J),t(l,k),t(l,K),t(l,y),t(l,Q),t(l,w),t(l,W),t(l,A),t(l,X),t(l,M),t(l,Y),t(l,I),t(l,Z),t(l,E),t(l,ee),t(l,T),P(s,G,f),P(s,D,f),t(D,p),t(p,O),t(p,te),t(p,R),c&&c.m(R,null),t(p,se),t(p,$),P(s,q,f),P(s,V,f),H=!0,le||(be=Ee(v,"click",C[1]),le=!0)},p(s,[f]){(!H||f&1&&S!==(S="flex-col mt-8 space-y-4 md:flex md:space-y-0 md:flex-row md:items-center md:space-x-10 md:mt-0 "+(s[0]?"flex":"hidden")))&&e(l,"class",S),c&&c.p&&(!H||f&8)&&ye(c,ae,s,s[3],H?Ae(ae,s[3],f,null):we(s[3]),null)},i(s){H||(Te(c,s),H=!0)},o(s){Ve(c,s),H=!1},d(s){s&&(u(h),u(G),u(D),u(q),u(V)),c&&c.d(s),le=!1,be()}}}function $e(C,h,_){let{$$slots:x={},$$scope:m}=h;const b=!0;let L=!1;function N(){_(0,L=!L)}return C.$$set=v=>{"$$scope"in v&&_(3,m=v.$$scope)},[L,N,b,m,x]}class Re extends Me{constructor(h){super(),Ie(this,h,$e,De,ge,{prerender:2})}get prerender(){return this.$$.ctx[2]}}export{Re as component,Oe as universal}; diff --git a/dist/_app/immutable/nodes/0.qqbATDHs.js.br b/dist/_app/immutable/nodes/0.qqbATDHs.js.br new file mode 100644 index 0000000..4bf979a Binary files /dev/null and b/dist/_app/immutable/nodes/0.qqbATDHs.js.br differ diff --git a/dist/_app/immutable/nodes/0.qqbATDHs.js.gz b/dist/_app/immutable/nodes/0.qqbATDHs.js.gz new file mode 100644 index 0000000..8276de0 Binary files /dev/null and b/dist/_app/immutable/nodes/0.qqbATDHs.js.gz differ diff --git a/dist/_app/immutable/nodes/1.Q0oWupMN.js b/dist/_app/immutable/nodes/1.Q0oWupMN.js new file mode 100644 index 0000000..58fe943 --- /dev/null +++ b/dist/_app/immutable/nodes/1.Q0oWupMN.js @@ -0,0 +1 @@ +import{s as r,n as o}from"../chunks/scheduler.aZRR5A_O.js";import{S as i,i as c,g as l,h,x as m,k as d,a as f,f as u}from"../chunks/index.kYoizZ4A.js";function x(s){let t,a="404: Page non trouvée !";return{c(){t=l("h1"),t.textContent=a,this.h()},l(e){t=h(e,"H1",{class:!0,"data-svelte-h":!0}),m(t)!=="svelte-6hb6i7"&&(t.textContent=a),this.h()},h(){d(t,"class","text-center")},m(e,n){f(e,t,n)},p:o,i:o,o,d(e){e&&u(t)}}}function p(s,t,a){let{data:e}=t;return e.pages,s.$$set=n=>{"data"in n&&a(0,e=n.data)},[e]}class v extends i{constructor(t){super(),c(this,t,p,x,r,{data:0})}}export{v as component}; diff --git a/dist/_app/immutable/nodes/1.Q0oWupMN.js.br b/dist/_app/immutable/nodes/1.Q0oWupMN.js.br new file mode 100644 index 0000000..815cdd3 Binary files /dev/null and b/dist/_app/immutable/nodes/1.Q0oWupMN.js.br differ diff --git a/dist/_app/immutable/nodes/1.Q0oWupMN.js.gz b/dist/_app/immutable/nodes/1.Q0oWupMN.js.gz new file mode 100644 index 0000000..0a922aa Binary files /dev/null and b/dist/_app/immutable/nodes/1.Q0oWupMN.js.gz differ diff --git a/dist/_app/immutable/nodes/10.MahYvtVJ.js b/dist/_app/immutable/nodes/10.MahYvtVJ.js new file mode 100644 index 0000000..b708e27 --- /dev/null +++ b/dist/_app/immutable/nodes/10.MahYvtVJ.js @@ -0,0 +1 @@ +import{s as q,n as I}from"../chunks/scheduler.aZRR5A_O.js";import{S as N,i as O,g as _,s as j,m as B,h as b,j as w,f as h,c as x,n as S,k as g,l as z,a as E,y as f,o as F,B as Y,x as K,d as V,b as T,t as R,A as Z,r as Q,u as U,v as W,w as X,p as $}from"../chunks/index.kYoizZ4A.js";import{e as L}from"../chunks/each.-oqiv04n.js";import{s as ee}from"../chunks/utils.Tkfr06Vk.js";function te(l){let e,i,o,n,s,m,d,t,D,a,c,r,p,y,A;return{c(){e=_("div"),i=_("div"),o=j(),n=_("div"),s=_("div"),m=j(),d=_("h5"),t=B(l[1]),D=j(),a=_("span"),c=B(l[3]),r=j(),p=_("div"),y=_("a"),A=B("Site"),this.h()},l(v){e=b(v,"DIV",{class:!0});var u=w(e);i=b(u,"DIV",{class:!0}),w(i).forEach(h),o=x(u),n=b(u,"DIV",{class:!0});var k=w(n);s=b(k,"DIV",{class:!0,style:!0}),w(s).forEach(h),m=x(k),d=b(k,"H5",{class:!0});var C=w(d);t=S(C,l[1]),C.forEach(h),D=x(k),a=b(k,"SPAN",{class:!0});var M=w(a);c=S(M,l[3]),M.forEach(h),r=x(k),p=b(k,"DIV",{class:!0});var P=w(p);y=b(P,"A",{href:!0,class:!0});var J=w(y);A=S(J,"Site"),J.forEach(h),P.forEach(h),k.forEach(h),u.forEach(h),this.h()},h(){g(i,"class","flex justify-end px-4 pt-4"),g(s,"class","w-24 h-24 mb-3 rounded-full shadow-lg"),z(s,"background-image","url('"+l[0]+"')"),z(s,"background-size","cover"),z(s,"background-position","center"),g(d,"class","mb-1 text-xl font-medium text-white"),g(a,"class","text-sm text-gray-400"),g(y,"href",l[2]),g(y,"class","btn btn-tertiary border-none bg-neutral-700 text-white"),g(p,"class","flex mt-4 space-x-3 md:mt-6"),g(n,"class","flex flex-col items-center pb-10"),g(e,"class","mx-2 w-72 my-4 bg-neutral-800 rounded-lg shadow dark:border-gray-700")},m(v,u){E(v,e,u),f(e,i),f(e,o),f(e,n),f(n,s),f(n,m),f(n,d),f(d,t),f(n,D),f(n,a),f(a,c),f(n,r),f(n,p),f(p,y),f(y,A)},p(v,[u]){u&1&&z(s,"background-image","url('"+v[0]+"')"),u&2&&F(t,v[1]),u&8&&F(c,v[3]),u&4&&g(y,"href",v[2])},i:I,o:I,d(v){v&&h(e)}}}function ae(l,e,i){let{image:o}=e,{name:n}=e,{mail:s}=e,{site:m}=e,{description:d}=e;return l.$$set=t=>{"image"in t&&i(0,o=t.image),"name"in t&&i(1,n=t.name),"mail"in t&&i(4,s=t.mail),"site"in t&&i(2,m=t.site),"description"in t&&i(3,d=t.description)},[o,n,m,d,s]}class ie extends N{constructor(e){super(),O(this,e,ae,te,q,{image:0,name:1,mail:4,site:2,description:3})}}const se=[{name:"Raphaël Forment",description:"BuboBubo",image:"https://avatars.githubusercontent.com/u/45191785?s=400&u=3ee9062082ce04b6f08f811e657797fe9528d106&v=4",site:"https://raphaelforment.fr",mail:""},{name:"Rémi Georges",description:"Ralt144Mi",image:"https://avatars.githubusercontent.com/u/75539795?v=4",site:"https://remigeorges.fr/",mail:""},{name:"Yassin Siouda",description:"Rocoda",image:"/images/yassin.png",site:"https://yassin.siouda.com/",mail:""},{name:"Agathe Herrou",description:"th4",image:"https://club.tidalcycles.org/user_avatar/club.tidalcycles.org/th4/144/505_2.png",site:"https://th4music.net",mail:""},{name:"Raphaël Bastide",description:"_",image:"https://radicalnetworks.org/archives/2018/participants/raphael-bastide/raphaelbastide.jpg",site:"https://raphaelbastide.com",mail:""},{name:"Mamady Diarra",description:"ΛFΛLFL",image:"https://image-cdn.later.com/linkinbio_attachments/avatar/uploads-8d2b4941-bbce-6e0a-f8fd-c45c1736c9fb/thumb_md.jpg",site:"https://linkin.bio/afalfl",mail:""},{name:"AZERTYPE",description:"_",image:"https://cyberflemme.org/azertype/azertype_acceuil_fichiers/frontpage_azertype.jpg",site:"http://www.azertype.fr/",mail:""},{name:"Crash Server",description:"_",image:"https://crashserver.fr/wp-content/uploads/2021/03/transparent_blanc.png",site:"https://crashserver.fr/",mail:""},{name:"Jonathan Lefebvre",description:"Krease / VJBlind",image:"images/vj.jpeg",site:"https://www.linkedin.com/in/jonathan-lefebvre-a4867744/",mail:""},{name:"Adel Faure",description:"_",image:"https://pbs.twimg.com/profile_images/1702001658731896836/yEVPisBu_400x400.jpg",site:"https://adelfaure.net",mail:""},{name:"Léon Denise",description:"Néon Delice / ponk",image:"/images/leondenise.jpeg",site:"https://leon196.github.io/",mail:""},{name:"Sébastien Maire",description:"z0rg",image:"/images/z0rg.jpeg",site:"https://linktr.ee/z0rg",mail:""},{name:"Élie Gavoty",description:"Jules Cipher",image:"https://www.cookie.paris/static/4a546ebfffd8961ff03a81a8ba24f5f0/9f5d6/13.webp",site:"https://linktr.ee/julescipher",mail:""},{name:"Johann Philippe",description:"_",image:"https://www.ateliersmedicis.fr/sites/atelier-medicis.fr/files/styles/acteur/public/2021-04/landscape.webp?itok=zsBOuROD",site:"https://soundcloud.com/johannphilippe",mail:""},{name:"Jacopo Greco d'Alceo",description:"_",image:"https://avatars.githubusercontent.com/u/92983918?v=4",site:"https://jacopogrecodalceo.github.io/",mail:""}];function G(l,e,i){const o=l.slice();return o[1]=e[i].name,o[2]=e[i].description,o[3]=e[i].image,o[4]=e[i].site,o[5]=e[i].mail,o[7]=i,o}function H(l){let e,i,o,n;return i=new ie({props:{name:l[1],description:l[2],image:l[3],site:l[4],mail:l[5]}}),{c(){e=_("div"),Q(i.$$.fragment),o=j()},l(s){e=b(s,"DIV",{});var m=w(e);U(i.$$.fragment,m),o=x(m),m.forEach(h)},m(s,m){E(s,e,m),W(i,e,null),f(e,o),n=!0},p:I,i(s){n||(V(i.$$.fragment,s),n=!0)},o(s){R(i.$$.fragment,s),n=!1},d(s){s&&h(e),X(i)}}}function re(l){let e,i,o="Membres",n,s,m,d=L(l[0]),t=[];for(let a=0;aR(t[a],1,1,()=>{t[a]=null});return{c(){e=j(),i=_("h1"),i.textContent=o,n=j(),s=_("div");for(let a=0;alive coding. Pour une page plus généraliste, consulter Awesome Live Coding. Pour élargir un petit peu, consultez également Awesome Music et autres listes sur les logiciels DIY. Éditez le site pour rajouter votre outil ! Toutes les contributions sont acceptées !",",":!0,markdown:"false"}});let u=k(a[0]),t=[];for(let e=0;ev(t[e],1,1,()=>{t[e]=null});return{c(){n=b(),s=j("h1"),s.textContent=i,c=b(),q(l.$$.fragment),h=b();for(let e=0;ee.length>v?e.slice(0,v-3)+"...":e;return i.$$set=e=>{"title"in e&&s(0,a=e.title),"description"in e&&s(1,d=e.description),"image"in e&&s(2,u=e.image),"link"in e&&s(3,l=e.link)},[a,d,u,l,c]}class ne extends K{constructor(t){super(),O(this,t,se,ae,T,{title:0,description:1,image:2,link:3})}}const ie=[{title:"Aux « algoraves », on danse sur une musique codée en direct",picture:"https://img.lemde.fr/2019/04/12/0/0/5122/3467/800/0/75/0/f22d969_x_FC8S1alEp4TYxEfX9-vnhW.jpg",link:"https://www.lemonde.fr/pixels/article/2019/04/13/aux-algoraves-on-danse-sur-une-musique-codee-en-direct_5449894_4408996.html",author:"Bruno Lus (Le Monde)"},{title:"OK Computer: Live coding creates music for dancing or dreaming in France's biggest algorave",picture:"https://static.euronews.com/articles/stories/07/52/54/80/1200x675_cmsv2_eb8921b9-1953-5db0-853f-6479b45a22c6-7525480.jpg",link:"https://www.euronews.com/culture/2023/05/03/ok-computer-live-coding-creates-music-for-dancing-or-dreaming-in-frances-biggest-algorave",author:"Gaël Camba (Euronews)"},{title:"Live coding : de la musique codée en direct pour danser ou rêver",picture:"https://static.euronews.com/articles/stories/07/52/54/80/1200x675_cmsv2_2c54c051-fb9c-5807-8429-da05ee6ef77d-7525480.jpg",link:"https://fr.euronews.com/culture/2023/04/26/live-coding-de-la-musique-codee-en-direct-pour-danser-ou-rever#:~:text=Live%20coding%20:%20de%20la%20musique%20cod%C3%A9e%20en%20direct%20pour%20danser%20ou%20r%C3%AAver,-Francesco%20Corvi%20se&text=Entre%20technique%20exp%C3%A9rimentale%20et%20composition,en%20programmant%20du%20code%20informatique.",author:"Gaël Camba (Euronews)"},{title:"Culture numérique : la Micro-folie sillonnera le territoire Barséquanais",picture:"https://scontent-cdg4-3.xx.fbcdn.net/v/t39.30808-6/395383692_828993012361704_4923466258603181196_n.jpg?_nc_cat=106&ccb=1-7&_nc_sid=5f2048&_nc_ohc=P4og5e7HJFcAX9sV97R&_nc_oc=AQnpycSxjK2s7sw24lYWjFB35aW1YxcaomLjlLD5bOmqnLxWcDYy3Pc19jBW1-eBsfY&_nc_ht=scontent-cdg4-3.xx&oh=00_AfA7QP0HSWCzDT1coLx7o9bCnMIdFSQpZafGNffwms03Cw&oe=654B351E",link:"https://www.lest-eclair.fr/id531959/article/2023-10-20/la-micro-folie-sillonnera-le-territoire-barsequanais",author:"L'Est Éclair"},{title:"Qu’est-ce que l’algorave, ce nouveau clubbing où ...",picture:"https://trxprds3.s3.amazonaws.com/uploads/2020/03/by-dan-hett.jpg",link:"https://www.traxmag.com/algorave-live-coding-dancefloor/",author:"Loïc Hecht (Trax Magazine)"},{title:"Le festival de jazz d'Uzeste, toujours aussi déjanté",picture:"https://www.radiofrance.fr/s3/cruiser-production/2023/08/a064c42c-f1fc-4ef8-90b8-2615d352e1e6/560x315_sc_capture-d-ecran-2023-08-09-a-15-11-31.webp",link:"https://www.radiofrance.fr/franceculture/podcasts/l-invite-e-des-matins-d-ete/le-festival-de-jazz-d-uzeste-toujours-aussi-dejante-2076865",author:"France Culture"}];function Q(i,t,s){const a=i.slice();return a[1]=t[s].title,a[2]=t[s].picture,a[3]=t[s].link,a[4]=t[s].author,a[6]=s,a}function V(i){let t,s;return t=new ne({props:{title:i[1],description:i[4],image:i[2],link:i[3]}}),{c(){U(t.$$.fragment)},l(a){Z(t.$$.fragment,a)},m(a,d){$(t,a,d),s=!0},p:B,i(a){s||(A(t.$$.fragment,a),s=!0)},o(a){F(t.$$.fragment,a),s=!1},d(a){ee(t,a)}}}function oe(i){let t,s,a="Presse",d,u,l,c=G(i[0]),e=[];for(let r=0;rF(e[r],1,1,()=>{e[r]=null});return{c(){t=C(),s=w("h1"),s.textContent=a,d=C(),u=w("div");for(let r=0;rlive coding. Cette page est un recensement des groupes connus. Si vous êtes actifs, faites-le nous savoir ou ajoutez quelque chose ici depuis le dépôt GitHub.",markdown:"false"}});let l=w(r[0]),t=[];for(let e=0;e_(t[e],1,1,()=>{t[e]=null});return{c(){a=v(),o=P("h1"),o.textContent=n,c=v(),y(u.$$.fragment),f=v();for(let e=0;e

    TOPLAP : TOPLAP est le collectif historique qui a +promu la pratique du live coding à partir de sa fondation en 2004. Le +collectif est toujours actif et a aujourd’hui évolué pour constituer un grand +réseau international de chercheurs et d’artistes travaillant autour de la +question du live coding dans l’ensemble les arts (son, visuels, chorégraphie, +etc).

  • Algorave : un site de recensement des Algoraves, +pour Algorithmic Rave Parties. Mouvement d’évènements lancé en 2012 par Nick +Collins et Alex McLean, pour une pratique du live coding dans un contexte +festif, en imitation des rave parties britanniques.

  • Awesome Live Coding : Une +longue liste de ressources liées au live coding : logiciels, liens, sites, +archives, etc. La liste est maintenue de longue date et elle reste active. Vous trouverez +beaucoup de choses intéressantes là-bas.

  • Lines Forum : initialement, le forum de la communauté +Monome. Ce forum accueille toutefois beaucoup de musiciens et d’artistes +intéressés par la programmation et le DIY. Beaucoup de choses intéressantes +pour le live coding.

  • SuperCollider Forum : le forum officiel dédié à +SuperCollider. SuperCollider est en grande partie responsable de +l’émergence de la scène musicale du live coding, et pour de bonnes raisons. +Foisonnant, infini, logiciel tentaculaire et puissant.

  • `,C,a,A="Ressources généralistes",x,u,$=`
  • Labomedia : collection de +ressources pour le creative coding.
  • `,b;return i=new z({props:{info:`Cette page est une liste de ressources généralistes sur le live +coding. Au vu de l'objectif poursuivi par ce site, il est préférable de +mentionner les sources francophones en premier puis d'inclure des liens +généralistes.`,markdown:"false"}}),{c(){c=m(),n=d("h1"),n.textContent=L,v=m(),y(i.$$.fragment),h=m(),o=d("h2"),o.textContent=w,_=m(),r=d("ul"),r.innerHTML=q,C=m(),a=d("h2"),a.textContent=A,x=m(),u=d("ul"),u.innerHTML=$,this.h()},l(e){R("svelte-1q3gdtb",document.head).forEach(s),c=p(e),n=f(e,"H1",{"data-svelte-h":!0}),g(n)!=="svelte-1cbhex0"&&(n.textContent=L),v=p(e),j(i.$$.fragment,e),h=p(e),o=f(e,"H2",{"data-svelte-h":!0}),g(o)!=="svelte-bg310f"&&(o.textContent=w),_=p(e),r=f(e,"UL",{"data-svelte-h":!0}),g(r)!=="svelte-1lzqyun"&&(r.innerHTML=q),C=p(e),a=f(e,"H2",{"data-svelte-h":!0}),g(a)!=="svelte-eg7erq"&&(a.textContent=A),x=p(e),u=f(e,"UL",{"data-svelte-h":!0}),g(u)!=="svelte-1se4f8f"&&(u.innerHTML=$),this.h()},h(){document.title="Ressources"},m(e,t){l(e,c,t),l(e,n,t),l(e,v,t),F(i,e,t),l(e,h,t),l(e,o,t),l(e,_,t),l(e,r,t),l(e,C,t),l(e,a,t),l(e,x,t),l(e,u,t),b=!0},p:P,i(e){b||(I(i.$$.fragment,e),b=!0)},o(e){U(i.$$.fragment,e),b=!1},d(e){e&&(s(c),s(n),s(v),s(h),s(o),s(_),s(r),s(C),s(a),s(x),s(u)),k(i,e)}}}class N extends S{constructor(c){super(),T(this,c,null,B,M,{})}}export{N as component}; diff --git a/dist/_app/immutable/nodes/14.at8j2c03.js.br b/dist/_app/immutable/nodes/14.at8j2c03.js.br new file mode 100644 index 0000000..36dc7e3 Binary files /dev/null and b/dist/_app/immutable/nodes/14.at8j2c03.js.br differ diff --git a/dist/_app/immutable/nodes/14.at8j2c03.js.gz b/dist/_app/immutable/nodes/14.at8j2c03.js.gz new file mode 100644 index 0000000..f01e751 Binary files /dev/null and b/dist/_app/immutable/nodes/14.at8j2c03.js.gz differ diff --git a/dist/_app/immutable/nodes/2.tHpihOLv.js b/dist/_app/immutable/nodes/2.tHpihOLv.js new file mode 100644 index 0000000..7bff9b3 --- /dev/null +++ b/dist/_app/immutable/nodes/2.tHpihOLv.js @@ -0,0 +1 @@ +import{s as X,n as R,e as F}from"../chunks/scheduler.aZRR5A_O.js";import{S as Z,i as ee,g as f,h,j as te,f as o,k as $,a as l,A as ie,s as m,c as d,y as O,r as S,B as re,x as v,u as V,v as J,d as N,t as Q,w as Y}from"../chunks/index.kYoizZ4A.js";import{I as ne}from"../chunks/Info.ITY44f4q.js";import{e as K}from"../chunks/each.-oqiv04n.js";function U(p,n,s){const i=p.slice();return i[1]=n[s],i}function W(p){let n,s,i,r,u;return{c(){n=f("div"),s=f("img"),u=m(),this.h()},l(t){n=h(t,"DIV",{});var c=te(n);s=h(c,"IMG",{class:!0,src:!0,alt:!0}),u=d(c),c.forEach(o),this.h()},h(){$(s,"class","h-auto max-w-full rounded-lg"),F(s.src,i=p[1].link)||$(s,"src",i),$(s,"alt",r=p[1].description)},m(t,c){l(t,n,c),O(n,s),O(n,u)},p(t,c){c&1&&!F(s.src,i=t[1].link)&&$(s,"src",i),c&1&&r!==(r=t[1].description)&&$(s,"alt",r)},d(t){t&&o(n)}}}function se(p){let n,s=K(p[0]),i=[];for(let r=0;r{"pictures"in r&&s(0,i=r.pictures)},[i]}class ae extends Z{constructor(n){super(),ee(this,n,oe,se,X,{pictures:0})}}function le(p){let n,s,i="Bienvenue",r,u,t='Livecoding.fr est un site d’information consacré à la pratique du live coding. Il est maintenu par l’effort communautaire d’un groupe d’artistes, de musiciens et de développeurs francophones. Son objectif est de centraliser les informations sur cette pratique et de servir de portail : guides, articles, évènements, information sur les artistes, etc. Tout ajout est le bienvenu. Consulter ce guide ou ce guide pour apprendre comment ajouter une information.',c,g,k,_,A="Qu’est-ce que le live-coding ?",y,q,H,b,B='Historiquement, le live coding est un type de création porté par le collectif TOPLAP. Il existe de nombreux groupes en Europe et dans le monde qui sont issus de ce collectif : TOPLAP Barcelona, Livecode NYC, parmi d’autres. La pratique du live coding s’est popularisée au travers du Manifeste TOPLAP et des Algoraves (algorithmic rave parties). Limiter le live coding à ce phénomène culturel reviendrait à ne prêter à attention qu’à l’arbre qui cache la forêt. Le live coding est une pratique qui existe depuis la fin des années 1980 et que l’on retrouve un peu partout, de manière épisodique, dans l’ensemble des arts numériques.',P,x,z="À propos de ce site",j,L,D='Ce site est conçu pour combler le vide qui existe aujourd’hui autour de ces pratiques. La communauté francophone du live coding ne possédait pas de site permettant aux artistes et musiciens français de se trouver et d’échanger facilement. Disposer d’un site dédié permet de rompre avec la nécessité de se tenir informé sans cesse sur les réseaux sociaux sous peine de manquer une information. Ce site est conçu et maintenu par Raphaël Forment (BuboBubo). L’information sur chacune des pages est randomisée pour favoriser la découverte.',T,w,E="Comment contribuer ?",M,C,G='Le site est hébergé sur GitHub. Pour ajouter une information au site, veuillez créer une Pull Request. Vous pouvez aussi contacter l’un des membres qui se chargera de transmettre l’information.',I;return g=new ae({props:{pictures:p[0]}}),q=new ne({props:{info:"Le live coding est une pratique qui consiste à improviser de la musique ou des visuels par l'utilisation d'un langage de programmation. Le live coding fait de l'acte de programmation un geste expressif et artistique. Les live coders considèrent l'interface de programmation comme un instrument artistique pour la création temps réel. Le live coding se situe aujourd'hui au croisement entre synthèse sonore, improvisation musicale et musique algorithmique générative.

    Le live coding encourage une approche pluri-disciplinaire de la création qui mêle musique, arts visuels, informatique, jeux vidéos, danse, etc. Il s'agit aussi d'un domaine de critique des outils utilisés pour la création numérique. Par nature, la pratique encourage les artistes à ré-imaginer leur rapport à l'informatique. Le live coding est traversé par la culture hacker, par la philosophie du logiciel libre et open source. Les live coders ont tendance à considérer l'ordinateur comme un outil pour la programmation exploratoire ou la programmation conversationnelle, comme un outil de discussion et de médiation plutôt que comme un simple outil.",markdown:"false"}}),{c(){n=m(),s=f("h1"),s.textContent=i,r=m(),u=f("p"),u.innerHTML=t,c=m(),S(g.$$.fragment),k=m(),_=f("h1"),_.textContent=A,y=m(),S(q.$$.fragment),H=m(),b=f("p"),b.innerHTML=B,P=m(),x=f("h1"),x.textContent=z,j=m(),L=f("p"),L.innerHTML=D,T=m(),w=f("h1"),w.textContent=E,M=m(),C=f("p"),C.innerHTML=G,this.h()},l(e){re("svelte-si4wcq",document.head).forEach(o),n=d(e),s=h(e,"H1",{"data-svelte-h":!0}),v(s)!=="svelte-1bwy2rx"&&(s.textContent=i),r=d(e),u=h(e,"P",{"data-svelte-h":!0}),v(u)!=="svelte-1a50fgq"&&(u.innerHTML=t),c=d(e),V(g.$$.fragment,e),k=d(e),_=h(e,"H1",{"data-svelte-h":!0}),v(_)!=="svelte-z12tl4"&&(_.textContent=A),y=d(e),V(q.$$.fragment,e),H=d(e),b=h(e,"P",{"data-svelte-h":!0}),v(b)!=="svelte-15f82xj"&&(b.innerHTML=B),P=d(e),x=h(e,"H1",{"data-svelte-h":!0}),v(x)!=="svelte-9nyscp"&&(x.textContent=z),j=d(e),L=h(e,"P",{"data-svelte-h":!0}),v(L)!=="svelte-584miz"&&(L.innerHTML=D),T=d(e),w=h(e,"H1",{"data-svelte-h":!0}),v(w)!=="svelte-15qmnqt"&&(w.textContent=E),M=d(e),C=h(e,"P",{"data-svelte-h":!0}),v(C)!=="svelte-1ht7736"&&(C.innerHTML=G),this.h()},h(){document.title="LC.FR"},m(e,a){l(e,n,a),l(e,s,a),l(e,r,a),l(e,u,a),l(e,c,a),J(g,e,a),l(e,k,a),l(e,_,a),l(e,y,a),J(q,e,a),l(e,H,a),l(e,b,a),l(e,P,a),l(e,x,a),l(e,j,a),l(e,L,a),l(e,T,a),l(e,w,a),l(e,M,a),l(e,C,a),I=!0},p:R,i(e){I||(N(g.$$.fragment,e),N(q.$$.fragment,e),I=!0)},o(e){Q(g.$$.fragment,e),Q(q.$$.fragment,e),I=!1},d(e){e&&(o(n),o(s),o(r),o(u),o(c),o(k),o(_),o(y),o(H),o(b),o(P),o(x),o(j),o(L),o(T),o(w),o(M),o(C)),Y(g,e),Y(q,e)}}}function ue(p){return[[{link:"https://ralt144mi.remigeorges.fr/Ralt144MI3.png",description:"Rémi Georges"},{link:"https://www.cookie.paris/static/bc65c5fd7f7c76dc70bcd9892dc17a4d/5cc0d/16.webp",description:"Azertype"},{link:"https://www.cookie.paris/static/9dbc442f1f54a41b9210b3ba1b835226/5cc0d/13.webp",description:"Jules Cipher"},{link:"../images/leondenise.jpeg",description:"Léon Denise"},{link:"https://renardo.org/images/screenshot1.png",description:"Renardo"},{link:"https://sardine.raphaelforment.fr/presentation/what_is_live_coding.jpeg#center",description:"Raphaël Forment"}]]}class fe extends Z{constructor(n){super(),ee(this,n,ue,le,X,{})}}export{fe as component}; diff --git a/dist/_app/immutable/nodes/2.tHpihOLv.js.br b/dist/_app/immutable/nodes/2.tHpihOLv.js.br new file mode 100644 index 0000000..d6f9bd6 Binary files /dev/null and b/dist/_app/immutable/nodes/2.tHpihOLv.js.br differ diff --git a/dist/_app/immutable/nodes/2.tHpihOLv.js.gz b/dist/_app/immutable/nodes/2.tHpihOLv.js.gz new file mode 100644 index 0000000..ff24a6e Binary files /dev/null and b/dist/_app/immutable/nodes/2.tHpihOLv.js.gz differ diff --git a/dist/_app/immutable/nodes/3.9WtJUhz3.js b/dist/_app/immutable/nodes/3.9WtJUhz3.js new file mode 100644 index 0000000..4ef1126 --- /dev/null +++ b/dist/_app/immutable/nodes/3.9WtJUhz3.js @@ -0,0 +1 @@ +import{s as j,n as z}from"../chunks/scheduler.aZRR5A_O.js";import{S as k,i as O,s as n,g as f,r as E,B as R,f as i,c as o,h as v,x as h,u as S,a as s,v as D,d as F,t as G,w as N}from"../chunks/index.kYoizZ4A.js";import{I as Q}from"../chunks/Info.ITY44f4q.js";function V(B){let g,r,H="Qu’est-ce que le live-coding ?",q,a,x,l,T='Historiquement, le live coding est un type de création porté par le collectif TOPLAP. Il existe de nombreux groupes en Europe et dans le monde qui sont issus de ce collectif : TOPLAP Barcelona, Livecode NYC, parmi d’autres. La pratique du live coding s’est popularisée au travers du Manifeste TOPLAP et des Algoraves (algorithmic rave parties). Il s’agit pourtant de l’arbre qui cache la forêt : le live coding est une pratique qui existe depuis la fin des années 1980, et que l’on retrouve un peu partout dans les arts numériques.',_,u,y="À propos de ce site",b,m,$='Ce site est une collection de ressources. Il est conçu pour combler un vide. La communauté francophone du live coding ne possédait pas de site permettant aux artistes et musiciens français de se trouver et d’échanger facilement. Disposer d’un site dédié permet de rompre avec la nécessité de se tenir informé sans cesse sur les réseaux sociaux sous peine de manquer une information. Ce site est conçu et maintenu par Raphaël Forment (BuboBubo).',C,p,M="L’information sur chacune des pages est randomisée pour favoriser la découverte.",L,c,I="Comment contribuer ?",P,d,A='Le site est hébergé sur GitHub. Pour ajouter une information au site, veuillez créer une Pull Request. Vous pouvez aussi contacter l’un des membres qui se chargera de transmettre l’information.',w;return a=new Q({props:{info:"Le live coding est une pratique artistique qui fait de l'acte de programmation un geste expressif et performatif. Les live coders considèrent l'interface de programmation comme un instrument de musique. Le live coding est un art au croisement entre synthèse sonore, improvisation musicale et musique algorithmique générative.

    Le live coding est au croisement de plusieurs arts et encourage des approches transdisciplinaires de la création : musique, arts visuels, informatique, jeux vidéos, danse, etc. Plus largement, le live coding est un domaine critique qui encourage les artistes à repenser leur rapport à l'informatique. Le live coding est traversé par la culture hacker, par la philosophie du logiciel libre et open source. Il souhaite également développer une nouvelle forme d'expressivité au sein des arts, en considérant l'ordinateur comme une interface pour la programmation exploratoire ou programmation conversationnelle.",markdown:"false"}}),{c(){g=n(),r=f("h1"),r.textContent=H,q=n(),E(a.$$.fragment),x=n(),l=f("p"),l.innerHTML=T,_=n(),u=f("h1"),u.textContent=y,b=n(),m=f("p"),m.innerHTML=$,C=n(),p=f("p"),p.textContent=M,L=n(),c=f("h1"),c.textContent=I,P=n(),d=f("p"),d.innerHTML=A,this.h()},l(e){R("svelte-ydjrmh",document.head).forEach(i),g=o(e),r=v(e,"H1",{"data-svelte-h":!0}),h(r)!=="svelte-z12tl4"&&(r.textContent=H),q=o(e),S(a.$$.fragment,e),x=o(e),l=v(e,"P",{"data-svelte-h":!0}),h(l)!=="svelte-qso192"&&(l.innerHTML=T),_=o(e),u=v(e,"H1",{"data-svelte-h":!0}),h(u)!=="svelte-9nyscp"&&(u.textContent=y),b=o(e),m=v(e,"P",{"data-svelte-h":!0}),h(m)!=="svelte-ffh2di"&&(m.innerHTML=$),C=o(e),p=v(e,"P",{"data-svelte-h":!0}),h(p)!=="svelte-1bpzmjt"&&(p.textContent=M),L=o(e),c=v(e,"H1",{"data-svelte-h":!0}),h(c)!=="svelte-15qmnqt"&&(c.textContent=I),P=o(e),d=v(e,"P",{"data-svelte-h":!0}),h(d)!=="svelte-1ht7736"&&(d.innerHTML=A),this.h()},h(){document.title="Accueil"},m(e,t){s(e,g,t),s(e,r,t),s(e,q,t),D(a,e,t),s(e,x,t),s(e,l,t),s(e,_,t),s(e,u,t),s(e,b,t),s(e,m,t),s(e,C,t),s(e,p,t),s(e,L,t),s(e,c,t),s(e,P,t),s(e,d,t),w=!0},p:z,i(e){w||(F(a.$$.fragment,e),w=!0)},o(e){G(a.$$.fragment,e),w=!1},d(e){e&&(i(g),i(r),i(q),i(x),i(l),i(_),i(u),i(b),i(m),i(C),i(p),i(L),i(c),i(P),i(d)),N(a,e)}}}class U extends k{constructor(g){super(),O(this,g,null,V,j,{})}}export{U as component}; diff --git a/dist/_app/immutable/nodes/3.9WtJUhz3.js.br b/dist/_app/immutable/nodes/3.9WtJUhz3.js.br new file mode 100644 index 0000000..b77d1ee Binary files /dev/null and b/dist/_app/immutable/nodes/3.9WtJUhz3.js.br differ diff --git a/dist/_app/immutable/nodes/3.9WtJUhz3.js.gz b/dist/_app/immutable/nodes/3.9WtJUhz3.js.gz new file mode 100644 index 0000000..854ccf5 Binary files /dev/null and b/dist/_app/immutable/nodes/3.9WtJUhz3.js.gz differ diff --git a/dist/_app/immutable/nodes/4.kQqPvB-1.js b/dist/_app/immutable/nodes/4.kQqPvB-1.js new file mode 100644 index 0000000..e106a72 --- /dev/null +++ b/dist/_app/immutable/nodes/4.kQqPvB-1.js @@ -0,0 +1,2 @@ +import{s as D}from"../chunks/scheduler.aZRR5A_O.js";import{S as F,i as G,g,s as w,r as J,h as b,x as H,c as P,u as K,j as k,f,k as j,a as $,v as N,d as Q,t as R,w as V,A as W,m as A,n as I,y as m,o as q}from"../chunks/index.kYoizZ4A.js";import{e as M}from"../chunks/each.-oqiv04n.js";import{I as X}from"../chunks/Info.ITY44f4q.js";const Y=async({fetch:c})=>({articles:await(await c("/api/articles")).json()}),ne=Object.freeze(Object.defineProperty({__proto__:null,load:Y},Symbol.toStringTag,{value:"Module"}));function T(c,a,u){const s=c.slice();return s[1]=a[u],s}function U(c){let a,u,s,r=c[1].meta.title+"",v,h,y,o,i,C="Publié le :",p,l=c[1].meta.date+"",e,n,t,x=c[1].meta.author+"",z,S;return{c(){a=g("li"),u=g("h2"),s=g("a"),v=A(r),y=w(),o=g("p"),i=g("b"),i.textContent=C,p=w(),e=A(l),n=A(" par "),t=g("i"),z=A(x),S=w(),this.h()},l(d){a=b(d,"LI",{class:!0});var _=k(a);u=b(_,"H2",{});var L=k(u);s=b(L,"A",{href:!0});var O=k(s);v=I(O,r),O.forEach(f),L.forEach(f),y=P(_),o=b(_,"P",{class:!0});var E=k(o);i=b(E,"B",{"data-svelte-h":!0}),H(i)!=="svelte-1y3xx1s"&&(i.textContent=C),p=P(E),e=I(E,l),n=I(E," par "),t=b(E,"I",{});var B=k(t);z=I(B,x),B.forEach(f),E.forEach(f),S=P(_),_.forEach(f),this.h()},h(){j(s,"href",h=c[1].path),j(o,"class","pt-2"),j(a,"class","ml-0 list-none px-4 pb-4 my-4 rounded-lg border-1 border-color-base-100 bg-neutral-800 hover:bg-neutral-700")},m(d,_){$(d,a,_),m(a,u),m(u,s),m(s,v),m(a,y),m(a,o),m(o,i),m(o,p),m(o,e),m(o,n),m(o,t),m(t,z),m(a,S)},p(d,_){_&1&&r!==(r=d[1].meta.title+"")&&q(v,r),_&1&&h!==(h=d[1].path)&&j(s,"href",h),_&1&&l!==(l=d[1].meta.date+"")&&q(e,l),_&1&&x!==(x=d[1].meta.author+"")&&q(z,x)},d(d){d&&f(a)}}}function Z(c){let a,u="Articles",s,r,v,h,y="Articles publiés",o,i,C;r=new X({props:{info:`Cette section sert pour tout les articles généralistes qui ne peuvent + pas réellement être considérés comme des guides. Publiez ce que vous voulez !`,markdown:"false"}});let p=M(c[0].articles),l=[];for(let e=0;e{"data"in r&&u(0,s=r.data)},[s]}class re extends F{constructor(a){super(),G(this,a,ee,Z,D,{data:0})}}export{re as component,ne as universal}; diff --git a/dist/_app/immutable/nodes/4.kQqPvB-1.js.br b/dist/_app/immutable/nodes/4.kQqPvB-1.js.br new file mode 100644 index 0000000..e5c4914 Binary files /dev/null and b/dist/_app/immutable/nodes/4.kQqPvB-1.js.br differ diff --git a/dist/_app/immutable/nodes/4.kQqPvB-1.js.gz b/dist/_app/immutable/nodes/4.kQqPvB-1.js.gz new file mode 100644 index 0000000..950ccb9 Binary files /dev/null and b/dist/_app/immutable/nodes/4.kQqPvB-1.js.gz differ diff --git a/dist/_app/immutable/nodes/5.VzW-0bpn.js b/dist/_app/immutable/nodes/5.VzW-0bpn.js new file mode 100644 index 0000000..42d5fa9 --- /dev/null +++ b/dist/_app/immutable/nodes/5.VzW-0bpn.js @@ -0,0 +1,7 @@ +import{_ as I}from"../chunks/preload-helper.0HuHagjb.js";import{_ as W}from"../chunks/dynamic-import-helper.0gtGTknh.js";import{s as X}from"../chunks/scheduler.aZRR5A_O.js";import{S as Y,i as Z,q as G,g as p,m as T,s as j,r as J,h as v,j as b,n as A,f as h,c as x,u as tt,x as et,k as D,a as at,y as r,v as K,o as z,t as N,b as rt,d as Q,w as U,p as nt}from"../chunks/index.kYoizZ4A.js";async function ot({params:s}){const e=await W(Object.assign({"../apropos.md":()=>I(()=>import("../chunks/apropos.6l0pPS20.js"),__vite__mapDeps([0,1,2]),import.meta.url),"../biset_blank.md":()=>I(()=>import("../chunks/biset_blank.E4K6VWMJ.js"),__vite__mapDeps([3,1,2]),import.meta.url),"../ordinateur_tete.md":()=>I(()=>import("../chunks/ordinateur_tete.043bV6hn.js"),__vite__mapDeps([4,1,2]),import.meta.url),"../renardo.md":()=>I(()=>import("../chunks/renardo.MT7iUhNS.js"),__vite__mapDeps([5,1,2]),import.meta.url),"../teletypecinqzero.md":()=>I(()=>import("../chunks/teletypecinqzero.Y9FiRfnd.js"),__vite__mapDeps([6,1,2]),import.meta.url)}),`../${s.slug}.md`),{title:i,date:o,author:l}=e.metadata,E=e.default;return{title:i,date:o,author:l,content:E}}const mt=Object.freeze(Object.defineProperty({__proto__:null,load:ot},Symbol.toStringTag,{value:"Module"}));function st(s){let e,i,o=s[0].title+"",l,E,c,u,H,$=s[0].date+"",L,S,m,k,P=s[0].author+"",O,q,_,t,R,d,B='Revenir à l'index',f;var g=s[0].content;function F(a,n){return{}}return g&&(t=G(g,F())),{c(){e=p("article"),i=p("h1"),l=T(o),E=j(),c=p("div"),u=p("p"),H=T("Publié le : "),L=T($),S=j(),m=p("p"),k=T("Auteur : "),O=T(P),q=j(),_=p("div"),t&&J(t.$$.fragment),R=j(),d=p("p"),d.innerHTML=B,this.h()},l(a){e=v(a,"ARTICLE",{});var n=b(e);i=v(n,"H1",{});var y=b(i);l=A(y,o),y.forEach(h),E=x(n),c=v(n,"DIV",{class:!0});var V=b(c);u=v(V,"P",{class:!0});var C=b(u);H=A(C,"Publié le : "),L=A(C,$),C.forEach(h),S=x(V),m=v(V,"P",{class:!0});var M=b(m);k=A(M,"Auteur : "),O=A(M,P),M.forEach(h),V.forEach(h),q=x(n),_=v(n,"DIV",{class:!0});var w=b(_);t&&tt(t.$$.fragment,w),R=x(w),d=v(w,"P",{class:!0,"data-svelte-h":!0}),et(d)!=="svelte-o6y0y"&&(d.innerHTML=B),w.forEach(h),n.forEach(h),this.h()},h(){D(u,"class","inline font-bold"),D(m,"class","inline font-bold"),D(c,"class","pt-4 flex justify-between mb-12"),D(d,"class","rounded-lg font-bold border-2 py-2 pl-2 mt-8 bg-neutral-800"),D(_,"class","lg:px-12 content-center")},m(a,n){at(a,e,n),r(e,i),r(i,l),r(e,E),r(e,c),r(c,u),r(u,H),r(u,L),r(c,S),r(c,m),r(m,k),r(m,O),r(e,q),r(e,_),t&&K(t,_,null),r(_,R),r(_,d),f=!0},p(a,[n]){if((!f||n&1)&&o!==(o=a[0].title+"")&&z(l,o),(!f||n&1)&&$!==($=a[0].date+"")&&z(L,$),(!f||n&1)&&P!==(P=a[0].author+"")&&z(O,P),n&1&&g!==(g=a[0].content)){if(t){nt();const y=t;N(y.$$.fragment,1,0,()=>{U(y,1)}),rt()}g?(t=G(g,F()),J(t.$$.fragment),Q(t.$$.fragment,1),K(t,_,R)):t=null}},i(a){f||(t&&Q(t.$$.fragment,a),f=!0)},o(a){t&&N(t.$$.fragment,a),f=!1},d(a){a&&h(e),t&&U(t)}}}function it(s,e,i){let{data:o}=e;return s.$$set=l=>{"data"in l&&i(0,o=l.data)},[o]}class dt extends Y{constructor(e){super(),Z(this,e,it,st,X,{data:0})}}export{dt as component,mt as universal}; +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ["../chunks/apropos.6l0pPS20.js","../chunks/scheduler.aZRR5A_O.js","../chunks/index.kYoizZ4A.js","../chunks/biset_blank.E4K6VWMJ.js","../chunks/ordinateur_tete.043bV6hn.js","../chunks/renardo.MT7iUhNS.js","../chunks/teletypecinqzero.Y9FiRfnd.js"] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} \ No newline at end of file diff --git a/dist/_app/immutable/nodes/5.VzW-0bpn.js.br b/dist/_app/immutable/nodes/5.VzW-0bpn.js.br new file mode 100644 index 0000000..63fde4f Binary files /dev/null and b/dist/_app/immutable/nodes/5.VzW-0bpn.js.br differ diff --git a/dist/_app/immutable/nodes/5.VzW-0bpn.js.gz b/dist/_app/immutable/nodes/5.VzW-0bpn.js.gz new file mode 100644 index 0000000..5dc9242 Binary files /dev/null and b/dist/_app/immutable/nodes/5.VzW-0bpn.js.gz differ diff --git a/dist/_app/immutable/nodes/6.UVEywxfC.js b/dist/_app/immutable/nodes/6.UVEywxfC.js new file mode 100644 index 0000000..551d94a --- /dev/null +++ b/dist/_app/immutable/nodes/6.UVEywxfC.js @@ -0,0 +1 @@ +import{s as x,n as d}from"../chunks/scheduler.aZRR5A_O.js";import{S as L,i as b,s as f,g as u,B as P,f as s,c as p,h as m,x as h,k as T,a}from"../chunks/index.kYoizZ4A.js";import"../chunks/marked.esm.hS8hU7E4.js";function w(g){let n,i,v="Contact",r,l,C='Livecoding.fr n’est ni un collectif ni une organisation. L’objectif de ce site est uniquement de centraliser l’information et de donner plus de visibilité à la scène live coding francophone. Pour discuter et rencontre des live coders francophones, voici quelques liens :',c,t,_='
    • Cookie Collective (Discord) : Discord du collectif parisien Cookie Collective, rassemble beaucoup de live coders.
    • Creative Code Lyon (Discord) : Discord du groupe Creative Code Lyon pour l’est/sud-est de la France.
    • TOPLAP (Discord) : Collectif international TOPLAP, avec des sections francophones.
    • Mais aussi, contacter individuellement des artistes et performers.
    ';return{c(){n=f(),i=u("h1"),i.textContent=v,r=f(),l=u("p"),l.innerHTML=C,c=f(),t=u("div"),t.innerHTML=_,this.h()},l(e){P("svelte-1y6bndz",document.head).forEach(s),n=p(e),i=m(e,"H1",{"data-svelte-h":!0}),h(i)!=="svelte-tbczl2"&&(i.textContent=v),r=p(e),l=m(e,"P",{"data-svelte-h":!0}),h(l)!=="svelte-14pxfkf"&&(l.innerHTML=C),c=p(e),t=m(e,"DIV",{class:!0,"data-svelte-h":!0}),h(t)!=="svelte-kbttm2"&&(t.innerHTML=_),this.h()},h(){document.title="Contact",T(t,"class","pl-8")},m(e,o){a(e,n,o),a(e,i,o),a(e,r,o),a(e,l,o),a(e,c,o),a(e,t,o)},p:d,i:d,o:d,d(e){e&&(s(n),s(i),s(r),s(l),s(c),s(t))}}}class A extends L{constructor(n){super(),b(this,n,null,w,x,{})}}export{A as component}; diff --git a/dist/_app/immutable/nodes/6.UVEywxfC.js.br b/dist/_app/immutable/nodes/6.UVEywxfC.js.br new file mode 100644 index 0000000..a28da0a Binary files /dev/null and b/dist/_app/immutable/nodes/6.UVEywxfC.js.br differ diff --git a/dist/_app/immutable/nodes/6.UVEywxfC.js.gz b/dist/_app/immutable/nodes/6.UVEywxfC.js.gz new file mode 100644 index 0000000..6b9cf64 Binary files /dev/null and b/dist/_app/immutable/nodes/6.UVEywxfC.js.gz differ diff --git a/dist/_app/immutable/nodes/7.nFoyFWGt.js b/dist/_app/immutable/nodes/7.nFoyFWGt.js new file mode 100644 index 0000000..5eab296 --- /dev/null +++ b/dist/_app/immutable/nodes/7.nFoyFWGt.js @@ -0,0 +1 @@ +import{s as q,e as w,n as A}from"../chunks/scheduler.aZRR5A_O.js";import{S as E,i as b,s as p,g as d,r as j,B as k,f as n,c as h,h as _,x as z,u as F,j as I,k as v,a as r,v as y,d as H,t as R,w as S}from"../chunks/index.kYoizZ4A.js";import{I as B}from"../chunks/Info.ITY44f4q.js";function D(g){let l,a,x="Évènements",c,i,m,o,C="Agenda du Cookie Collective",u,t,$,f;return i=new B({props:{info:"Cette page recense tout les évènements dédiés au live coding organisés par la scène francophone. Ajoutez vos évènements. N'oubliez pas de fournir un lien si possible. Renseignez les évènements avec quelques photographies ou captations pour faciliter l'archivage !",markdown:"false"}}),{c(){l=p(),a=d("h1"),a.textContent=x,c=p(),j(i.$$.fragment),m=p(),o=d("h2"),o.textContent=C,u=p(),t=d("iframe"),this.h()},l(e){k("svelte-1ihunsg",document.head).forEach(n),l=h(e),a=_(e,"H1",{"data-svelte-h":!0}),z(a)!=="svelte-vpqc01"&&(a.textContent=x),c=h(e),F(i.$$.fragment,e),m=h(e),o=_(e,"H2",{"data-svelte-h":!0}),z(o)!=="svelte-1olz5c9"&&(o.textContent=C),u=h(e),t=_(e,"IFRAME",{width:!0,height:!0,src:!0}),I(t).forEach(n),this.h()},h(){document.title="Évènements",v(t,"width","100%"),v(t,"height","700"),w(t.src,$="https://framagenda.org/apps/calendar/embed/zpDjE9gGFeFZAmdz")||v(t,"src",$)},m(e,s){r(e,l,s),r(e,a,s),r(e,c,s),y(i,e,s),r(e,m,s),r(e,o,s),r(e,u,s),r(e,t,s),f=!0},p:A,i(e){f||(H(i.$$.fragment,e),f=!0)},o(e){R(i.$$.fragment,e),f=!1},d(e){e&&(n(l),n(a),n(c),n(m),n(o),n(u),n(t)),S(i,e)}}}function G(g){return[]}class Z extends E{constructor(l){super(),b(this,l,G,D,q,{})}}export{Z as component}; diff --git a/dist/_app/immutable/nodes/7.nFoyFWGt.js.br b/dist/_app/immutable/nodes/7.nFoyFWGt.js.br new file mode 100644 index 0000000..277d49d Binary files /dev/null and b/dist/_app/immutable/nodes/7.nFoyFWGt.js.br differ diff --git a/dist/_app/immutable/nodes/7.nFoyFWGt.js.gz b/dist/_app/immutable/nodes/7.nFoyFWGt.js.gz new file mode 100644 index 0000000..f782d14 Binary files /dev/null and b/dist/_app/immutable/nodes/7.nFoyFWGt.js.gz differ diff --git a/dist/_app/immutable/nodes/8.t0INpW33.js b/dist/_app/immutable/nodes/8.t0INpW33.js new file mode 100644 index 0000000..b2191ee --- /dev/null +++ b/dist/_app/immutable/nodes/8.t0INpW33.js @@ -0,0 +1 @@ +import{s as T}from"../chunks/scheduler.aZRR5A_O.js";import{S as U,i as D,g as v,s as k,r as F,h as b,x as L,c as w,u as J,j as P,f as p,a as $,v as K,d as Q,t as R,w as V,A as W,m as I,n as S,k as z,y as m,o as H}from"../chunks/index.kYoizZ4A.js";import{e as G}from"../chunks/each.-oqiv04n.js";import{I as X}from"../chunks/Info.ITY44f4q.js";const Y=async({fetch:i})=>({guides:await(await i("/api/guides")).json()}),ne=Object.freeze(Object.defineProperty({__proto__:null,load:Y},Symbol.toStringTag,{value:"Module"}));function M(i,a,c){const s=i.slice();return s[1]=a[c],s}function N(i){let a,c,s,o=i[1].meta.title+"",g,f,y,r,u,C="Publié le :",h,l=i[1].meta.date+"",e,n,t,x=i[1].meta.author+"",j,A;return{c(){a=v("li"),c=v("h2"),s=v("a"),g=I(o),y=k(),r=v("p"),u=v("b"),u.textContent=C,h=k(),e=I(l),n=I(" par "),t=v("i"),j=I(x),A=k(),this.h()},l(_){a=b(_,"LI",{class:!0});var d=P(a);c=b(d,"H2",{});var O=P(c);s=b(O,"A",{href:!0});var q=P(s);g=S(q,o),q.forEach(p),O.forEach(p),y=w(d),r=b(d,"P",{class:!0});var E=P(r);u=b(E,"B",{"data-svelte-h":!0}),L(u)!=="svelte-1y3xx1s"&&(u.textContent=C),h=w(E),e=S(E,l),n=S(E," par "),t=b(E,"I",{});var B=P(t);j=S(B,x),B.forEach(p),E.forEach(p),A=w(d),d.forEach(p),this.h()},h(){z(s,"href",f=i[1].path),z(r,"class","pt-2"),z(a,"class","ml-0 list-none px-4 pb-4 my-4 rounded-lg border-1 border-color-base-100 bg-neutral-800 hover:bg-neutral-700")},m(_,d){$(_,a,d),m(a,c),m(c,s),m(s,g),m(a,y),m(a,r),m(r,u),m(r,h),m(r,e),m(r,n),m(r,t),m(t,j),m(a,A)},p(_,d){d&1&&o!==(o=_[1].meta.title+"")&&H(g,o),d&1&&f!==(f=_[1].path)&&z(s,"href",f),d&1&&l!==(l=_[1].meta.date+"")&&H(e,l),d&1&&x!==(x=_[1].meta.author+"")&&H(j,x)},d(_){_&&p(a)}}}function Z(i){let a,c="Guides",s,o,g,f,y="Articles publiés",r,u,C;o=new X({props:{info:"Cette page est un recensement de guides proposés par les membres de la communauté pour apprendre à live coder ou se perfectionner. L'idée est de proposer des articles plus ou moins courts consacrés à un outil ou à une approche particulière du live coding Pour proposer un guide, référez-vous à l'article Proposer un guide. Nous acceptons toutes les collaborations.",markdown:"false"}});let h=G(i[0].guides),l=[];for(let e=0;e{"data"in o&&c(0,s=o.data)},[s]}class oe extends U{constructor(a){super(),D(this,a,ee,Z,T,{data:0})}}export{oe as component,ne as universal}; diff --git a/dist/_app/immutable/nodes/8.t0INpW33.js.br b/dist/_app/immutable/nodes/8.t0INpW33.js.br new file mode 100644 index 0000000..0a5793e Binary files /dev/null and b/dist/_app/immutable/nodes/8.t0INpW33.js.br differ diff --git a/dist/_app/immutable/nodes/8.t0INpW33.js.gz b/dist/_app/immutable/nodes/8.t0INpW33.js.gz new file mode 100644 index 0000000..f1e71b7 Binary files /dev/null and b/dist/_app/immutable/nodes/8.t0INpW33.js.gz differ diff --git a/dist/_app/immutable/nodes/9.49Ykn-Wh.js b/dist/_app/immutable/nodes/9.49Ykn-Wh.js new file mode 100644 index 0000000..d9b75f0 --- /dev/null +++ b/dist/_app/immutable/nodes/9.49Ykn-Wh.js @@ -0,0 +1,7 @@ +import{_ as w}from"../chunks/preload-helper.0HuHagjb.js";import{_ as W}from"../chunks/dynamic-import-helper.0gtGTknh.js";import{s as X}from"../chunks/scheduler.aZRR5A_O.js";import{S as Y,i as Z,q as G,g as p,m as I,s as V,r as J,h as v,j as b,n as T,f as h,c as x,u as tt,x as et,k as A,a as at,y as r,v as K,o as z,t as N,b as rt,d as Q,w as U,p as nt}from"../chunks/index.kYoizZ4A.js";async function ot({params:s}){const e=await W(Object.assign({"../ajouter_information.md":()=>w(()=>import("../chunks/ajouter_information.szUJXvS-.js"),__vite__mapDeps([0,1,2,3]),import.meta.url),"../livecoding_supercollider.md":()=>w(()=>import("../chunks/livecoding_supercollider.O4f0A5Qq.js"),__vite__mapDeps([4,1,2,3,5,6]),import.meta.url),"../livecoding_supercollider_2.md":()=>w(()=>import("../chunks/livecoding_supercollider_2.sViYJyLo.js"),__vite__mapDeps([7,1,2,3,5,6]),import.meta.url),"../proposer_guide.md":()=>w(()=>import("../chunks/proposer_guide.4sbkj3tu.js"),__vite__mapDeps([8,1,2,3]),import.meta.url)}),`../${s.slug}.md`),{title:i,date:o,author:l}=e.metadata,E=e.default;return{title:i,date:o,author:l,content:E}}const dt=Object.freeze(Object.defineProperty({__proto__:null,load:ot},Symbol.toStringTag,{value:"Module"}));function st(s){let e,i,o=s[0].title+"",l,E,c,u,H,$=s[0].date+"",D,S,d,C,P=s[0].author+"",L,M,_,t,O,m,B='Revenir à l'index',f;var g=s[0].content;function F(a,n){return{}}return g&&(t=G(g,F())),{c(){e=p("article"),i=p("h1"),l=I(o),E=V(),c=p("div"),u=p("p"),H=I("Publié le : "),D=I($),S=V(),d=p("p"),C=I("Auteur : "),L=I(P),M=V(),_=p("div"),t&&J(t.$$.fragment),O=V(),m=p("p"),m.innerHTML=B,this.h()},l(a){e=v(a,"ARTICLE",{});var n=b(e);i=v(n,"H1",{});var y=b(i);l=T(y,o),y.forEach(h),E=x(n),c=v(n,"DIV",{class:!0});var R=b(c);u=v(R,"P",{class:!0});var k=b(u);H=T(k,"Publié le : "),D=T(k,$),k.forEach(h),S=x(R),d=v(R,"P",{class:!0});var q=b(d);C=T(q,"Auteur : "),L=T(q,P),q.forEach(h),R.forEach(h),M=x(n),_=v(n,"DIV",{class:!0});var j=b(_);t&&tt(t.$$.fragment,j),O=x(j),m=v(j,"P",{class:!0,"data-svelte-h":!0}),et(m)!=="svelte-1mht20g"&&(m.innerHTML=B),j.forEach(h),n.forEach(h),this.h()},h(){A(u,"class","inline font-bold"),A(d,"class","inline font-bold"),A(c,"class","pt-4 flex justify-between mb-12"),A(m,"class","rounded-lg font-bold border-2 py-2 pl-2 mt-8 bg-neutral-800"),A(_,"class","lg:px-24 md:px-12 content-center")},m(a,n){at(a,e,n),r(e,i),r(i,l),r(e,E),r(e,c),r(c,u),r(u,H),r(u,D),r(c,S),r(c,d),r(d,C),r(d,L),r(e,M),r(e,_),t&&K(t,_,null),r(_,O),r(_,m),f=!0},p(a,[n]){if((!f||n&1)&&o!==(o=a[0].title+"")&&z(l,o),(!f||n&1)&&$!==($=a[0].date+"")&&z(D,$),(!f||n&1)&&P!==(P=a[0].author+"")&&z(L,P),n&1&&g!==(g=a[0].content)){if(t){nt();const y=t;N(y.$$.fragment,1,0,()=>{U(y,1)}),rt()}g?(t=G(g,F()),J(t.$$.fragment),Q(t.$$.fragment,1),K(t,_,O)):t=null}},i(a){f||(t&&Q(t.$$.fragment,a),f=!0)},o(a){t&&N(t.$$.fragment,a),f=!1},d(a){a&&h(e),t&&U(t)}}}function it(s,e,i){let{data:o}=e;return s.$$set=l=>{"data"in l&&i(0,o=l.data)},[o]}class mt extends Y{constructor(e){super(),Z(this,e,it,st,X,{data:0})}}export{mt as component,dt as universal}; +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ["../chunks/ajouter_information.szUJXvS-.js","../chunks/scheduler.aZRR5A_O.js","../chunks/index.kYoizZ4A.js","../chunks/guides.fqK5Mftf.js","../chunks/livecoding_supercollider.O4f0A5Qq.js","../chunks/Info.ITY44f4q.js","../chunks/marked.esm.hS8hU7E4.js","../chunks/livecoding_supercollider_2.sViYJyLo.js","../chunks/proposer_guide.4sbkj3tu.js"] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} \ No newline at end of file diff --git a/dist/_app/immutable/nodes/9.49Ykn-Wh.js.br b/dist/_app/immutable/nodes/9.49Ykn-Wh.js.br new file mode 100644 index 0000000..34e9032 Binary files /dev/null and b/dist/_app/immutable/nodes/9.49Ykn-Wh.js.br differ diff --git a/dist/_app/immutable/nodes/9.49Ykn-Wh.js.gz b/dist/_app/immutable/nodes/9.49Ykn-Wh.js.gz new file mode 100644 index 0000000..5339e8e Binary files /dev/null and b/dist/_app/immutable/nodes/9.49Ykn-Wh.js.gz differ diff --git a/dist/articles/apropos.html b/dist/articles/apropos.html new file mode 100644 index 0000000..a3a0a54 --- /dev/null +++ b/dist/articles/apropos.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + +

    À propos des articles

    Publié le : 2024-01-01

    Auteur : Raphaël Maurice Forment

    Cette section sert pour héberger des articles généralistes en lien avec le live +coding. Il peut s’agir du compte-rendu d’un évènement, d’un article à propos +d’un nouveau logiciel, d’une réflexion sur un sujet, etc. La méthode à suivre +pour publier un article est détaillée dans la section Guides. Le +fonctionnement est similaire.

    Revenir à l'index

    + + +
    + + diff --git a/dist/articles/apropos.html.br b/dist/articles/apropos.html.br new file mode 100644 index 0000000..4203ce0 Binary files /dev/null and b/dist/articles/apropos.html.br differ diff --git a/dist/articles/apropos.html.gz b/dist/articles/apropos.html.gz new file mode 100644 index 0000000..de094a8 Binary files /dev/null and b/dist/articles/apropos.html.gz differ diff --git a/dist/articles/biset_blank.html b/dist/articles/biset_blank.html new file mode 100644 index 0000000..c72e3c2 --- /dev/null +++ b/dist/articles/biset_blank.html @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + +

    Biset Blank : un module VCVRack pour animer les performances de live coding

    Publié le : 2024-08-02

    Auteur : Raphaël Maurice Forment

    Biset Blank

    Sébastien Huertas (gibbonJoyeux) est l'auteur de plusieurs modules pour l'environnement +VCVRack. Ses modules permettent de live coder VCVRack par le biais d'un langage spécialisé inspiré de la syntaxe des expressions +régulières : Biset Regex. Il est +aussi l'auteur d'un module tracker et de nombreux utilitaires permettant de faire de VCV un écosystème plus pertinent pour l'écriture musicale ou pour l'improvisation. Il a dernièrement publié un module en apparence trompeur, Blank. Un module blank, dans le jargon propre aux synthétiseurs modulaires, est d'ordinaire un module utilisé en lieu et place d'un véritable module. Il permet de combler un vide, de ne pas laisser une partie d'un rack exposée à la poussière ou à la chute accidentelle des objets sur l'alimentation électrique. Il peut aussi être utilisé de manière créative pour décorer un synthétiseur, comme en témoigne ce magnifique pigeon.


    Le Blank dont il est ici question modifie le comportement global de l'application et de son interface ! Une fois inséré dans un patch, chaque câble devient auscultable et s'anime. Il est possible d'aperçevoir la forme d'onde du signal passant au travers des câbles. Pour le public, cela permet de comprendre plus facilement le type de signaux utilisés et la nature des signaux qui transitent pour chaque connexion. Pour l'apprentissage ou la pédagogie, ce module remplace aisément l'utilisation d'un oscilloscope dédié. Passer la souris sur une connexion affiche aussi un oscilloscope dans une fenêtre popup. Le module est également relativement économe en ressources, ce qui est toujours un plus !


    Ce module a initialement été conçu pour offrir un meilleur retour visuel au public au cours d'une performances de live coding. Son utilité dépasse désormais largement ce seul contexte. Félicitations à gibbonJoyeux pour son travail sur l'écosystème VCVRack.

    Revenir à l'index

    + + +
    + + diff --git a/dist/articles/biset_blank.html.br b/dist/articles/biset_blank.html.br new file mode 100644 index 0000000..0160533 Binary files /dev/null and b/dist/articles/biset_blank.html.br differ diff --git a/dist/articles/biset_blank.html.gz b/dist/articles/biset_blank.html.gz new file mode 100644 index 0000000..c3d0d18 Binary files /dev/null and b/dist/articles/biset_blank.html.gz differ diff --git a/dist/articles/ordinateur_tete.html b/dist/articles/ordinateur_tete.html new file mode 100644 index 0000000..2c1574b --- /dev/null +++ b/dist/articles/ordinateur_tete.html @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + +

    Ordinateur dans la tête : un label de musique live codée

    Publié le : 2024-09-02

    Auteur : Raphaël Maurice Forment

    Rémi Georges a lancé depuis plus d’un an un label de musique dédiée à la musique +live codée. Le label a pour nom Ordinateur dans la tête : ”Live-coding Cassette & prints Label Code as music, for humans and computers.”. Par un pied de +nez formidable, le label publie essentiellement de la musique au format cassette +ou disquette (floppy disk). Il n’existe à ce jour que quatre cassettes dans le +catalogue, et bien plus à paraître. Rémi édite aussi un fanzine du nom de Codé, consacré à quelques +figures de la scène live coding francophone. Ce label fonctionne sur un +principe DIY. Tout est fait à la main et assemblé quelque part entre Lyon et +Vaulx-en-Velin. Chaque cassette n’est produite qu’à quelques exemplaires mais +Bandcamp permet aussi d’acheter la musique au format numérique.



    Le plus rigolo dans l’histoire, c’est qu’il ne s’agit pas du seul artiste +lyonnais qui édite de la musique produite par des outils de live coding. Nous +étions tombé il y a quelques mois sur un album publié par l’artiste américain +Mike Hodnick : Prompt 3. Cet +album est produit par Nil Hartman (un lyonnais !) et propose aussi une forme physique avec un +format de distribution original : ”2GB USB flash drive archival of 16-bit WAV files of Prompt 3 by Kindohm, engraved with the 3OP logo. High quality 12,7cm x 12,7cm matte paper digital print of Prompt 3 cover art by Kindohm & Andrew Bates. Archival includes: exclusive outtakes, live performances, alternate artwork files, and Mike’s Prompt 3 workspace folder of .tidal and .flp files.“.


    Nous attendons de pied ferme l’apparition d’un troisième label publiant de la +musique live codée à Lyon. Il semblerait que cela ne soit qu’une question de +temps.

    Revenir à l'index

    + + +
    + + diff --git a/dist/articles/ordinateur_tete.html.br b/dist/articles/ordinateur_tete.html.br new file mode 100644 index 0000000..15c4049 Binary files /dev/null and b/dist/articles/ordinateur_tete.html.br differ diff --git a/dist/articles/ordinateur_tete.html.gz b/dist/articles/ordinateur_tete.html.gz new file mode 100644 index 0000000..0dbbc6f Binary files /dev/null and b/dist/articles/ordinateur_tete.html.gz differ diff --git a/dist/articles/renardo.html b/dist/articles/renardo.html new file mode 100644 index 0000000..a1afc6b --- /dev/null +++ b/dist/articles/renardo.html @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + +

    Premières versions de Renardo

    Publié le : 2024-03-02

    Auteur : Raphaël Maurice Forment

    Jules Cipher a récemment commencé à publier ses efforts pour moderniser l’environnement FoxDot dont le développement a été mis en pause par son développeur, Ryan Kirkbride. Preuve de l’intérêt que cette démarche suscite, le groupe Telegram qui centralise les utilisateurs de FoxDot vient d’être renommé FoxDot/Renardo. Le travail de Jules Cipher propose de faciliter l’installation du logiciel et de ses dépendances tout en apportant quelques nouvelles fonctionnalités. Le lien est ici : Renardo.


    Renardo

    Qu’y a-t-il de neuf ?

    Renardo contient quelques fonctionnalités développées par l’auteur :

    • un utilitaire de configuration inclus avec le logiciel
    • un gestionnaire communautaire d’échantillons sonores : le téléchargement se fait depuis un serveur
    • de nouvelles méthodes pour gérer l’interpolation et la transition entre patterns
    • des générateurs de rythme et d’autres fonctions liées à la composition
    • des décorateurs (Python) pour transformer une pièce live codée en pièce composée (et donc réécoutable)

    Cette modernisation de FoxDot promet également une meilleure intégration avec d’autres outils de production (Reaper) ainsi que la possibilité de synchroniser FoxDot à d’autres logiciels par le biais l’aide de l’horloge Ableton Link. Renardo semble déjà gérer l’installation automatique d’un éditeur de code (Pulsar) et sa configuration pour ceux qui ne seraient pas à l’aise avec cette démarche.

    État du projet

    La première version de Renardo est parue il y a moins d’une semaine. Faites part de vos retours sur GitHub pour faciliter la suite du développement et la correction des erreurs.

    Revenir à l'index

    + + +
    + + diff --git a/dist/articles/renardo.html.br b/dist/articles/renardo.html.br new file mode 100644 index 0000000..4ce0518 Binary files /dev/null and b/dist/articles/renardo.html.br differ diff --git a/dist/articles/renardo.html.gz b/dist/articles/renardo.html.gz new file mode 100644 index 0000000..ede1c99 Binary files /dev/null and b/dist/articles/renardo.html.gz differ diff --git a/dist/articles/teletypecinqzero.html b/dist/articles/teletypecinqzero.html new file mode 100644 index 0000000..4d95b31 --- /dev/null +++ b/dist/articles/teletypecinqzero.html @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + +

    Teletype 5.0

    Publié le : 2024-03-02

    Auteur : Raphaël Maurice Forment

    Une très brève présentation du Teletype

    Le Monome Teletype est un module Eurorack open source (relativement cher et rare..) qui embarque un interpréteur pour un petit langage de programmation dédié à la composition algorithmique et au contrôle des synthétiseurs Eurorack. Le Teletype permet aux plus courageux de pratiquer le live coding sans ordinateur, directement au contact de la machine. Un clavier connecté en facade du module constitue l’interface principale pour interagir avec ce dernier. Il est aussi possible de recevoir des signaux (CV) et des impulsions (Gate) pour contrôler le déclenchement de scripts ou pour nourrir vos scripts de données externes. Une version VCVRack (gratuite !) existe également et autorise le live coding directement depuis ce logiciel.

    Le live coding sur le Teletype n’est pas la discipline la plus répandue. Les machines conçues par Monome ont une réputation rarement usurpée de minimalisme et d’austérité. Ce sont des machines conçues pour être programmées, modifiées et étendues par leurs utilisateurs. Il existe une myriade de projets construits autour de ces modules, ce qui inclut par ailleurs de nouvelles extensions physiques (Telexi, Telexo, i2c2midi) ou même des versions alternatives du logiciel à flasher soi-même sur le contrôleur. En raison de ces spécificités, les Teletype peuvent être utilisés comme modules utilitaires, comme outils de composition mais aussi plus rarement… comme outils pour live coder l’intégralité d’un synthétiseur ou d’un système.


    Nouvelle version du firmware Teletype

    Le Teletype, depuis l’an passé, n’est plus produit par Monome. Il est toutefois possible de trouver les plans pour en construire soi-même. On peut aussi également contribuer au code source. On peut facilement trouver ce module à la revente sur internet, aussi bien neuf que d’occasion. En bref, le Teletype continue sa vie et ne semble pas prêt de disparaître. Une nouvelle version du firmware vient d’être publiée et apporte une myriade de nouvelles choses :

    - drum ops [Byzero]
    +- support for multiple faderbanks [Lightbreaker]
    +- I2C2MIDI ops [attowatt / scanner_darkly]
    +- new disting ex ops: dual algorithms, EX.M.N#, EX.M.NO#, EX.M.CC# [scanner_darkly]
    +- new op CV.GET [scanner_darkly]
    +- new op: SCALE0 [scanner_darkly]
    +- new ops: $F, $F1, $F2, $L, $L1, $L2, $S, $S1, $S2, I1, I2, FR [scanner_darkly]
    +- improved TR.P accuracy [scanner_darkly]
    +- all line endings now accepted for USB files [scanner_darkly]
    +- basic menu for reading/writing scenes when a USB stick is inserted [Dewb]
    +- new ops: CV.CAL and CV.CAL.RESET to calibrate CV outputs [Dewb]
    +- new Disting EX ops: EX.CH, EX.#, EX.N#, EX.NO# [scanner_darkly]
    +- new dual W/ ops: W/.SEL, W/S.POLY, W/S.POLY.RESET, W/1, W/2 [scanner_darkly]

    Elle est d’ores et déjà disponible pour VCVRack : la mise à jour se fait automatiquement. Pour ceux qui souhaitent découvrir une nouvelle manière de live coder ou même débuter en étant au plus près de la synthèse, c’est sans doute la bonne chose à faire.

    Revenir à l'index

    + + +
    + + diff --git a/dist/articles/teletypecinqzero.html.br b/dist/articles/teletypecinqzero.html.br new file mode 100644 index 0000000..921ade1 Binary files /dev/null and b/dist/articles/teletypecinqzero.html.br differ diff --git a/dist/articles/teletypecinqzero.html.gz b/dist/articles/teletypecinqzero.html.gz new file mode 100644 index 0000000..33a20a0 Binary files /dev/null and b/dist/articles/teletypecinqzero.html.gz differ diff --git a/dist/images/bisetblank.gif b/dist/images/bisetblank.gif new file mode 100644 index 0000000..97075bd Binary files /dev/null and b/dist/images/bisetblank.gif differ diff --git a/src/routes/ressources/+page.svelte.md b/src/routes/ressources/+page.svelte.md index ca567ef..fc9c014 100644 --- a/src/routes/ressources/+page.svelte.md +++ b/src/routes/ressources/+page.svelte.md @@ -12,7 +12,7 @@ coding. Au vu de l'objectif poursuivi par ce site, il est préférable de mentionner les sources francophones en premier puis d'inclure des liens généralistes." markdown=false /> -## Sites internet +## Ressources anglophones - [TOPLAP](https://toplap.org) : **TOPLAP** est le collectif historique qui a promu la pratique du _live coding_ à partir de sa fondation en 2004. Le @@ -40,7 +40,6 @@ généralistes." markdown=false /> l'émergence de la scène musicale du _live coding_, et pour de bonnes raisons. Foisonnant, infini, logiciel tentaculaire et puissant. -## Ressources généralistes +## Ressources francophones -- [Labomedia](https://ressources.labomedia.org/live_coding) : collection de - ressources pour le _creative coding_. +- [Labomedia](https://ressources.labomedia.org/live_coding) : collection de ressources pour le _creative coding_.