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._ytOF6l3.js.br b/dist/_app/immutable/chunks/ajouter_information._ytOF6l3.js.br
new file mode 100644
index 0000000..1492da6
Binary files /dev/null and b/dist/_app/immutable/chunks/ajouter_information._ytOF6l3.js.br differ
diff --git a/dist/_app/immutable/chunks/ajouter_information._ytOF6l3.js.gz b/dist/_app/immutable/chunks/ajouter_information._ytOF6l3.js.gz
new file mode 100644
index 0000000..1f15288
Binary files /dev/null and b/dist/_app/immutable/chunks/ajouter_information._ytOF6l3.js.gz differ
diff --git a/dist/_app/immutable/chunks/dynamic-import-helper.0gtGTknh.js b/dist/_app/immutable/chunks/dynamic-import-helper.0gtGTknh.js
new file mode 100644
index 0000000..3a43120
--- /dev/null
+++ b/dist/_app/immutable/chunks/dynamic-import-helper.0gtGTknh.js
@@ -0,0 +1 @@
+const t=(r,n)=>{const e=r[n];return e?typeof e=="function"?e():Promise.resolve(e):new Promise((i,o)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(o.bind(null,new Error("Unknown variable dynamic import: "+n)))})};export{t as _};
diff --git a/dist/_app/immutable/chunks/dynamic-import-helper.0gtGTknh.js.br b/dist/_app/immutable/chunks/dynamic-import-helper.0gtGTknh.js.br
new file mode 100644
index 0000000..f5ed825
Binary files /dev/null and b/dist/_app/immutable/chunks/dynamic-import-helper.0gtGTknh.js.br differ
diff --git a/dist/_app/immutable/chunks/dynamic-import-helper.0gtGTknh.js.gz b/dist/_app/immutable/chunks/dynamic-import-helper.0gtGTknh.js.gz
new file mode 100644
index 0000000..2b39ead
Binary files /dev/null and b/dist/_app/immutable/chunks/dynamic-import-helper.0gtGTknh.js.gz differ
diff --git a/dist/_app/immutable/chunks/guides.RN6emr9S.js b/dist/_app/immutable/chunks/guides.RN6emr9S.js
new file mode 100644
index 0000000..34668e5
--- /dev/null
+++ b/dist/_app/immutable/chunks/guides.RN6emr9S.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.AIcdAWo0.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.RN6emr9S.js.br b/dist/_app/immutable/chunks/guides.RN6emr9S.js.br
new file mode 100644
index 0000000..0195212
Binary files /dev/null and b/dist/_app/immutable/chunks/guides.RN6emr9S.js.br differ
diff --git a/dist/_app/immutable/chunks/guides.RN6emr9S.js.gz b/dist/_app/immutable/chunks/guides.RN6emr9S.js.gz
new file mode 100644
index 0000000..d3f7f71
Binary files /dev/null and b/dist/_app/immutable/chunks/guides.RN6emr9S.js.gz differ
diff --git a/dist/_app/immutable/chunks/index.ciNBPAxl.js b/dist/_app/immutable/chunks/index.AIcdAWo0.js
similarity index 99%
rename from dist/_app/immutable/chunks/index.ciNBPAxl.js
rename to dist/_app/immutable/chunks/index.AIcdAWo0.js
index 9800e71..5f0457b 100644
--- a/dist/_app/immutable/chunks/index.ciNBPAxl.js
+++ b/dist/_app/immutable/chunks/index.AIcdAWo0.js
@@ -1 +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{he as A,ne as B,H as C,fe as D,ue 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};
+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{he as A,ne 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.AIcdAWo0.js.br b/dist/_app/immutable/chunks/index.AIcdAWo0.js.br
new file mode 100644
index 0000000..037ba04
Binary files /dev/null and b/dist/_app/immutable/chunks/index.AIcdAWo0.js.br differ
diff --git a/dist/_app/immutable/chunks/index.ciNBPAxl.js.gz b/dist/_app/immutable/chunks/index.AIcdAWo0.js.gz
similarity index 95%
rename from dist/_app/immutable/chunks/index.ciNBPAxl.js.gz
rename to dist/_app/immutable/chunks/index.AIcdAWo0.js.gz
index aff1ba2..a36560e 100644
Binary files a/dist/_app/immutable/chunks/index.ciNBPAxl.js.gz and b/dist/_app/immutable/chunks/index.AIcdAWo0.js.gz differ
diff --git a/dist/_app/immutable/chunks/index.ciNBPAxl.js.br b/dist/_app/immutable/chunks/index.ciNBPAxl.js.br
deleted file mode 100644
index 1b04976..0000000
Binary files a/dist/_app/immutable/chunks/index.ciNBPAxl.js.br and /dev/null differ
diff --git a/dist/_app/immutable/chunks/livecoding_supercollider.sLrjm2WB.js b/dist/_app/immutable/chunks/livecoding_supercollider.sLrjm2WB.js
new file mode 100644
index 0000000..d3ae46e
--- /dev/null
+++ b/dist/_app/immutable/chunks/livecoding_supercollider.sLrjm2WB.js
@@ -0,0 +1,90 @@
+import{s as el,x as Ts,y as $a,n as tl}from"./scheduler.aZRR5A_O.js";import{S as nl,i as sl,r as As,u as qs,v as Fs,d as Ms,t as Hs,w as Ps,g as u,s as i,H as z,h as o,x as b,c as r,j as $,C as R,f as t,k as B,a as s}from"./index.AIcdAWo0.js";import{G as al,g as ll,a as Ra}from"./guides.RN6emr9S.js";import{I as Ba}from"./Info.bs_Ss2Q-.js";var ja=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},il={exports:{}};(function(J){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 q?new q(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),q.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),j(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:q};h.Prism=f;function q(a,l,p,c){this.type=a,this.content=l,this.alias=p,this.length=(c||"").length|0}q.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+""+d.tag+">"};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 q)){var W=1,M;if(se){if(M=H(ae,E,a,ne),!M||M.index>=a.length)break;var I=M.index,Z=M.index+M[0].length,U=E;for(U+=S.value.length;I>=U;)S=S.next,U+=S.value.length;if(U-=S.value.length,E=U,S.value instanceof q)continue;for(var V=S;V!==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 q(k,P?f.tokenize(le,P):le,Q,le);if(S=D(l,X,ct),N&&D(l,S,N),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"},/?[\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 q={};q[w]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return w}),"i"),lookbehind:!0,greedy:!0,inside:f},m.languages.insertBefore("markup","cdata",q)}}),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(T,C){return"✖ Error "+T+" 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",q="loading",H="loaded",te="failed",G="pre[data-src]:not(["+f+'="'+H+'"]):not(['+f+'="'+q+'"])';function D(T,C,A){var a=new XMLHttpRequest;a.open("GET",T,!0),a.onreadystatechange=function(){a.readyState==4&&(a.status<400&&a.responseText?C(a.responseText):a.status>=400?A(w(a.status,a.statusText)):A(x))},a.send(null)}function Y(T){var C=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(T||"");if(C){var A=Number(C[1]),a=C[2],l=C[3];return a?l?[A,Number(l)]:[A,void 0]:[A,A]}}m.hooks.add("before-highlightall",function(T){T.selector+=", "+G}),m.hooks.add("before-sanity-check",function(T){var C=T.element;if(C.matches(G)){T.code="",C.setAttribute(f,q);var A=C.appendChild(document.createElement("CODE"));A.textContent=h;var a=C.getAttribute("data-src"),l=T.language;if(l==="none"){var p=(/\.(\w+)$/.exec(a)||[,"none"])[1];l=L[p]||p}m.util.setLanguage(A,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))}A.textContent=d,m.highlightElement(A)},function(d){C.setAttribute(f,te),A.textContent=d})}}),m.plugins.fileHighlight={highlight:function(C){for(var A=(C||document).querySelectorAll(G),a=0,l;l=A[a++];)m.highlightElement(l)}};var j=!1;m.fileHighlight=function(){j||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),j=!0),m.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(il);function rl(J){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,q,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,j,T,C,A,a,l='',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,Q,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) :",V,I,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,N,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,ie,Es="Commandes de base",mt,re,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,js=`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,Is=`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.`,Tt,At,qt,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,Vs=`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,jt,It,xe,Ns="Choisir une interface audio",Dt,Ot,Ut,Ce,Js="Pour connaître le nom des périphériques audio disponibles :",Gt,_e,Vt,Ua=`ServerOptions.devices;// Tout ce qui est disponible
+ServerOptions.inDevices;// Les entrées uniquement
+ServerOptions.outDevices;// Les sorties uniquement`,Nt,we,Qs="Il est possible de spécifier une entrée et une sortie différente :",Jt,ye,Qt,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,Va=`s.options.device ="BlackHole 16ch";// Choix de l'interface
+Server.default.options.device_("BlackHole 16ch");// Alternative`,Yt,Kt,en,Te,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,Ae,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,qe,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='',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,Na='Quarks.install("https://github.com/supercollider-quarks/BatLib")',Tn,Be,ia=`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 :`,An,je,qn,Ja='StageLimiter.activate;',Fn,Ie,ra=`Si vous routez le son de SuperCollider vers une autre application, n’hésitez
+pas à installer des protections similaires dans cette application (limiter,
+etc).`,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,Qa=`.
+├── Configuration.scd
+├── README.md
+├── Synthdefs.scd
+└── samples`,jn,Ge,In,Dn,On,Ve,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,Vn,Ne,ca="Chargement automatique des échantillons",Nn,Jn,Qn,Je,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,Qe,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 !`,is,rs,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,it,_s,Ka='Platform.userAppSupportDir',ws,rt,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 j=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=i(),w=u("p"),w.innerHTML=x,L=i(),f=u("br"),q=i(),H=u("p"),H.innerHTML=te,G=i(),D=u("br"),Y=i(),As(j.$$.fragment),T=i(),C=u("br"),A=i(),a=u("p"),a.innerHTML=l,p=i(),c=u("br"),d=i(),g=u("h2"),g.textContent=k,v=i(),_=u("p"),_.innerHTML=F,P=i(),ne=u("br"),se=i(),Q=u("p"),Q.innerHTML=dt,ae=i(),S=u("p"),S.innerHTML=E,O=i(),W=u("br"),M=i(),Z=u("p"),Z.innerHTML=U,V=i(),I=u("ul"),I.innerHTML=le,K=i(),N=u("p"),N.innerHTML=pt,X=i(),ct=u("br"),ee=i(),ie=u("h2"),ie.textContent=Es,mt=i(),re=u("p"),re.innerHTML=zs,ft=i(),ue=u("ul"),ue.innerHTML=$s,gt=i(),vt=u("br"),bt=i(),oe=u("p"),oe.innerHTML=Rs,ht=i(),pe=u("pre"),kt=new z(!1),xt=i(),ce=u("p"),ce.textContent=Bs,Ct=i(),de=u("pre"),_t=new z(!1),wt=i(),me=u("p"),me.innerHTML=js,yt=i(),St=u("br"),Lt=i(),fe=u("p"),fe.innerHTML=Is,Tt=i(),At=u("br"),qt=i(),ge=u("h2"),ge.textContent=Ds,Ft=i(),Mt=u("br"),Ht=i(),ve=u("p"),ve.innerHTML=Os,Pt=i(),be=u("ul"),be.innerHTML=Us,Et=i(),he=u("h2"),he.textContent=Gs,zt=i(),$t=u("br"),Rt=i(),ke=u("p"),ke.innerHTML=Vs,Bt=i(),jt=u("br"),It=i(),xe=u("h3"),xe.textContent=Ns,Dt=i(),Ot=u("br"),Ut=i(),Ce=u("p"),Ce.textContent=Js,Gt=i(),_e=u("pre"),Vt=new z(!1),Nt=i(),we=u("p"),we.textContent=Qs,Jt=i(),ye=u("pre"),Qt=new z(!1),Wt=i(),Se=u("p"),Se.innerHTML=Ws,Zt=i(),Le=u("pre"),Xt=new z(!1),Yt=i(),Kt=u("br"),en=i(),Te=u("p"),Te.innerHTML=Zs,tn=i(),nn=u("br"),sn=i(),Ae=u("p"),Ae.innerHTML=Xs,an=i(),ln=u("br"),rn=i(),qe=u("h3"),qe.textContent=Ys,un=i(),on=u("br"),pn=i(),Fe=u("p"),Fe.innerHTML=Ks,cn=i(),dn=u("br"),mn=i(),Me=u("p"),Me.textContent=ea,fn=i(),He=u("p"),He.textContent=ta,gn=i(),Pe=u("p"),Pe.textContent=na,vn=i(),bn=u("br"),hn=i(),Ee=u("p"),Ee.innerHTML=sa,kn=i(),xn=u("br"),Cn=i(),ze=u("h3"),ze.textContent=aa,_n=i(),wn=u("br"),yn=i(),$e=u("p"),$e.innerHTML=la,Sn=i(),Re=u("pre"),Ln=new z(!1),Tn=i(),Be=u("p"),Be.innerHTML=ia,An=i(),je=u("pre"),qn=new z(!1),Fn=i(),Ie=u("p"),Ie.innerHTML=ra,Mn=i(),Hn=u("br"),Pn=i(),De=u("h3"),De.textContent=ua,En=i(),zn=u("br"),$n=i(),Oe=u("p"),Oe.innerHTML=oa,Rn=i(),Ue=u("pre"),Bn=new z(!1),jn=i(),As(Ge.$$.fragment),In=i(),Dn=u("br"),On=i(),Ve=u("p"),Ve.innerHTML=pa,Un=i(),Gn=u("br"),Vn=i(),Ne=u("h3"),Ne.textContent=ca,Nn=i(),Jn=u("br"),Qn=i(),Je=u("p"),Je.innerHTML=da,Wn=i(),Zn=u("br"),Xn=i(),Qe=u("p"),Qe.innerHTML=ma,Yn=i(),We=u("pre"),Kn=new z(!1),es=i(),ts=u("br"),ns=i(),Ze=u("p"),Ze.innerHTML=fa,ss=i(),Xe=u("pre"),as=new z(!1),ls=i(),Ye=u("p"),Ye.innerHTML=ga,is=i(),rs=u("br"),us=i(),Ke=u("p"),Ke.innerHTML=va,os=i(),ps=u("br"),cs=i(),et=u("h3"),et.textContent=ba,ds=i(),ms=u("br"),fs=i(),tt=u("p"),tt.innerHTML=ha,gs=i(),nt=u("pre"),vs=new z(!1),bs=i(),st=u("p"),st.innerHTML=ka,hs=i(),at=u("pre"),ks=new z(!1),xs=i(),lt=u("p"),lt.innerHTML=xa,Cs=i(),it=u("pre"),_s=new z(!1),ws=i(),rt=u("p"),rt.innerHTML=Ca,ys=i(),ut=u("h2"),ut.textContent=_a,Ss=i(),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=r(e),w=o(e,"P",{"data-svelte-h":!0}),b(w)!=="svelte-7rkpty"&&(w.innerHTML=x),L=r(e),f=o(e,"BR",{}),q=r(e),H=o(e,"P",{"data-svelte-h":!0}),b(H)!=="svelte-1rjzs2d"&&(H.innerHTML=te),G=r(e),D=o(e,"BR",{}),Y=r(e),qs(j.$$.fragment,e),T=r(e),C=o(e,"BR",{}),A=r(e),a=o(e,"P",{"data-svelte-h":!0}),b(a)!=="svelte-50dijs"&&(a.innerHTML=l),p=r(e),c=o(e,"BR",{}),d=r(e),g=o(e,"H2",{"data-svelte-h":!0}),b(g)!=="svelte-xnmkjo"&&(g.textContent=k),v=r(e),_=o(e,"P",{"data-svelte-h":!0}),b(_)!=="svelte-1rinzxc"&&(_.innerHTML=F),P=r(e),ne=o(e,"BR",{}),se=r(e),Q=o(e,"P",{"data-svelte-h":!0}),b(Q)!=="svelte-d8v93c"&&(Q.innerHTML=dt),ae=r(e),S=o(e,"P",{"data-svelte-h":!0}),b(S)!=="svelte-1takps0"&&(S.innerHTML=E),O=r(e),W=o(e,"BR",{}),M=r(e),Z=o(e,"P",{"data-svelte-h":!0}),b(Z)!=="svelte-1vyl27o"&&(Z.innerHTML=U),V=r(e),I=o(e,"UL",{"data-svelte-h":!0}),b(I)!=="svelte-hv4bkw"&&(I.innerHTML=le),K=r(e),N=o(e,"P",{"data-svelte-h":!0}),b(N)!=="svelte-3smba5"&&(N.innerHTML=pt),X=r(e),ct=o(e,"BR",{}),ee=r(e),ie=o(e,"H2",{"data-svelte-h":!0}),b(ie)!=="svelte-hua5op"&&(ie.textContent=Es),mt=r(e),re=o(e,"P",{"data-svelte-h":!0}),b(re)!=="svelte-1bj8gjt"&&(re.innerHTML=zs),ft=r(e),ue=o(e,"UL",{"data-svelte-h":!0}),b(ue)!=="svelte-8eutst"&&(ue.innerHTML=$s),gt=r(e),vt=o(e,"BR",{}),bt=r(e),oe=o(e,"P",{"data-svelte-h":!0}),b(oe)!=="svelte-oa7hms"&&(oe.innerHTML=Rs),ht=r(e),pe=o(e,"PRE",{class:!0});var n=$(pe);kt=R(n,!1),n.forEach(t),xt=r(e),ce=o(e,"P",{"data-svelte-h":!0}),b(ce)!=="svelte-51uwhi"&&(ce.textContent=Bs),Ct=r(e),de=o(e,"PRE",{class:!0});var ya=$(de);_t=R(ya,!1),ya.forEach(t),wt=r(e),me=o(e,"P",{"data-svelte-h":!0}),b(me)!=="svelte-10i0i02"&&(me.innerHTML=js),yt=r(e),St=o(e,"BR",{}),Lt=r(e),fe=o(e,"P",{"data-svelte-h":!0}),b(fe)!=="svelte-1xrvjb"&&(fe.innerHTML=Is),Tt=r(e),At=o(e,"BR",{}),qt=r(e),ge=o(e,"H2",{"data-svelte-h":!0}),b(ge)!=="svelte-11x115w"&&(ge.textContent=Ds),Ft=r(e),Mt=o(e,"BR",{}),Ht=r(e),ve=o(e,"P",{"data-svelte-h":!0}),b(ve)!=="svelte-oiiynv"&&(ve.innerHTML=Os),Pt=r(e),be=o(e,"UL",{"data-svelte-h":!0}),b(be)!=="svelte-1kykvor"&&(be.innerHTML=Us),Et=r(e),he=o(e,"H2",{"data-svelte-h":!0}),b(he)!=="svelte-1gkj9qe"&&(he.textContent=Gs),zt=r(e),$t=o(e,"BR",{}),Rt=r(e),ke=o(e,"P",{"data-svelte-h":!0}),b(ke)!=="svelte-89t05y"&&(ke.innerHTML=Vs),Bt=r(e),jt=o(e,"BR",{}),It=r(e),xe=o(e,"H3",{"data-svelte-h":!0}),b(xe)!=="svelte-tt5viu"&&(xe.textContent=Ns),Dt=r(e),Ot=o(e,"BR",{}),Ut=r(e),Ce=o(e,"P",{"data-svelte-h":!0}),b(Ce)!=="svelte-1b1pdsx"&&(Ce.textContent=Js),Gt=r(e),_e=o(e,"PRE",{class:!0});var Sa=$(_e);Vt=R(Sa,!1),Sa.forEach(t),Nt=r(e),we=o(e,"P",{"data-svelte-h":!0}),b(we)!=="svelte-zxgqi1"&&(we.textContent=Qs),Jt=r(e),ye=o(e,"PRE",{class:!0});var La=$(ye);Qt=R(La,!1),La.forEach(t),Wt=r(e),Se=o(e,"P",{"data-svelte-h":!0}),b(Se)!=="svelte-1ph5p4m"&&(Se.innerHTML=Ws),Zt=r(e),Le=o(e,"PRE",{class:!0});var Ta=$(Le);Xt=R(Ta,!1),Ta.forEach(t),Yt=r(e),Kt=o(e,"BR",{}),en=r(e),Te=o(e,"P",{"data-svelte-h":!0}),b(Te)!=="svelte-1my7crh"&&(Te.innerHTML=Zs),tn=r(e),nn=o(e,"BR",{}),sn=r(e),Ae=o(e,"P",{"data-svelte-h":!0}),b(Ae)!=="svelte-ysw906"&&(Ae.innerHTML=Xs),an=r(e),ln=o(e,"BR",{}),rn=r(e),qe=o(e,"H3",{"data-svelte-h":!0}),b(qe)!=="svelte-kfth7w"&&(qe.textContent=Ys),un=r(e),on=o(e,"BR",{}),pn=r(e),Fe=o(e,"P",{"data-svelte-h":!0}),b(Fe)!=="svelte-aiy4wh"&&(Fe.innerHTML=Ks),cn=r(e),dn=o(e,"BR",{}),mn=r(e),Me=o(e,"P",{"data-svelte-h":!0}),b(Me)!=="svelte-nb5dha"&&(Me.textContent=ea),fn=r(e),He=o(e,"P",{"data-svelte-h":!0}),b(He)!=="svelte-uv9hed"&&(He.textContent=ta),gn=r(e),Pe=o(e,"P",{"data-svelte-h":!0}),b(Pe)!=="svelte-1edr512"&&(Pe.textContent=na),vn=r(e),bn=o(e,"BR",{}),hn=r(e),Ee=o(e,"P",{"data-svelte-h":!0}),b(Ee)!=="svelte-fbrdfo"&&(Ee.innerHTML=sa),kn=r(e),xn=o(e,"BR",{}),Cn=r(e),ze=o(e,"H3",{"data-svelte-h":!0}),b(ze)!=="svelte-4wsstc"&&(ze.textContent=aa),_n=r(e),wn=o(e,"BR",{}),yn=r(e),$e=o(e,"P",{"data-svelte-h":!0}),b($e)!=="svelte-1jfe1ue"&&($e.innerHTML=la),Sn=r(e),Re=o(e,"PRE",{class:!0});var Aa=$(Re);Ln=R(Aa,!1),Aa.forEach(t),Tn=r(e),Be=o(e,"P",{"data-svelte-h":!0}),b(Be)!=="svelte-1xdvwf3"&&(Be.innerHTML=ia),An=r(e),je=o(e,"PRE",{class:!0});var qa=$(je);qn=R(qa,!1),qa.forEach(t),Fn=r(e),Ie=o(e,"P",{"data-svelte-h":!0}),b(Ie)!=="svelte-gq30x"&&(Ie.innerHTML=ra),Mn=r(e),Hn=o(e,"BR",{}),Pn=r(e),De=o(e,"H3",{"data-svelte-h":!0}),b(De)!=="svelte-eqy1p7"&&(De.textContent=ua),En=r(e),zn=o(e,"BR",{}),$n=r(e),Oe=o(e,"P",{"data-svelte-h":!0}),b(Oe)!=="svelte-1izbaiv"&&(Oe.innerHTML=oa),Rn=r(e),Ue=o(e,"PRE",{class:!0});var Fa=$(Ue);Bn=R(Fa,!1),Fa.forEach(t),jn=r(e),qs(Ge.$$.fragment,e),In=r(e),Dn=o(e,"BR",{}),On=r(e),Ve=o(e,"P",{"data-svelte-h":!0}),b(Ve)!=="svelte-835hap"&&(Ve.innerHTML=pa),Un=r(e),Gn=o(e,"BR",{}),Vn=r(e),Ne=o(e,"H3",{"data-svelte-h":!0}),b(Ne)!=="svelte-9mx1vr"&&(Ne.textContent=ca),Nn=r(e),Jn=o(e,"BR",{}),Qn=r(e),Je=o(e,"P",{"data-svelte-h":!0}),b(Je)!=="svelte-nmdp3e"&&(Je.innerHTML=da),Wn=r(e),Zn=o(e,"BR",{}),Xn=r(e),Qe=o(e,"P",{"data-svelte-h":!0}),b(Qe)!=="svelte-1xxxj79"&&(Qe.innerHTML=ma),Yn=r(e),We=o(e,"PRE",{class:!0});var Ma=$(We);Kn=R(Ma,!1),Ma.forEach(t),es=r(e),ts=o(e,"BR",{}),ns=r(e),Ze=o(e,"P",{"data-svelte-h":!0}),b(Ze)!=="svelte-broz1s"&&(Ze.innerHTML=fa),ss=r(e),Xe=o(e,"PRE",{class:!0});var Ha=$(Xe);as=R(Ha,!1),Ha.forEach(t),ls=r(e),Ye=o(e,"P",{"data-svelte-h":!0}),b(Ye)!=="svelte-1kgbl5n"&&(Ye.innerHTML=ga),is=r(e),rs=o(e,"BR",{}),us=r(e),Ke=o(e,"P",{"data-svelte-h":!0}),b(Ke)!=="svelte-j6tawo"&&(Ke.innerHTML=va),os=r(e),ps=o(e,"BR",{}),cs=r(e),et=o(e,"H3",{"data-svelte-h":!0}),b(et)!=="svelte-ri7iuh"&&(et.textContent=ba),ds=r(e),ms=o(e,"BR",{}),fs=r(e),tt=o(e,"P",{"data-svelte-h":!0}),b(tt)!=="svelte-9svk99"&&(tt.innerHTML=ha),gs=r(e),nt=o(e,"PRE",{class:!0});var Pa=$(nt);vs=R(Pa,!1),Pa.forEach(t),bs=r(e),st=o(e,"P",{"data-svelte-h":!0}),b(st)!=="svelte-4w91o5"&&(st.innerHTML=ka),hs=r(e),at=o(e,"PRE",{class:!0});var Ea=$(at);ks=R(Ea,!1),Ea.forEach(t),xs=r(e),lt=o(e,"P",{"data-svelte-h":!0}),b(lt)!=="svelte-1ofmlv6"&&(lt.innerHTML=xa),Cs=r(e),it=o(e,"PRE",{class:!0});var za=$(it);_s=R(za,!1),za.forEach(t),ws=r(e),rt=o(e,"P",{"data-svelte-h":!0}),b(rt)!=="svelte-16ctipw"&&(rt.innerHTML=Ca),ys=r(e),ut=o(e,"H2",{"data-svelte-h":!0}),b(ut)!=="svelte-grw4hp"&&(ut.textContent=_a),Ss=r(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"),Vt.a=null,B(_e,"class","language-supercollider"),Qt.a=null,B(ye,"class","language-supercollider"),Xt.a=null,B(Le,"class","language-supercollider"),Ln.a=null,B(Re,"class","language-supercollider"),qn.a=null,B(je,"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(it,"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,q,n),s(e,H,n),s(e,G,n),s(e,D,n),s(e,Y,n),Fs(j,e,n),s(e,T,n),s(e,C,n),s(e,A,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,Q,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,V,n),s(e,I,n),s(e,K,n),s(e,N,n),s(e,X,n),s(e,ct,n),s(e,ee,n),s(e,ie,n),s(e,mt,n),s(e,re,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,Tt,n),s(e,At,n),s(e,qt,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,jt,n),s(e,It,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),Vt.m(Ua,_e),s(e,Nt,n),s(e,we,n),s(e,Jt,n),s(e,ye,n),Qt.m(Ga,ye),s(e,Wt,n),s(e,Se,n),s(e,Zt,n),s(e,Le,n),Xt.m(Va,Le),s(e,Yt,n),s(e,Kt,n),s(e,en,n),s(e,Te,n),s(e,tn,n),s(e,nn,n),s(e,sn,n),s(e,Ae,n),s(e,an,n),s(e,ln,n),s(e,rn,n),s(e,qe,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(Na,Re),s(e,Tn,n),s(e,Be,n),s(e,An,n),s(e,je,n),qn.m(Ja,je),s(e,Fn,n),s(e,Ie,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(Qa,Ue),s(e,jn,n),Fs(Ge,e,n),s(e,In,n),s(e,Dn,n),s(e,On,n),s(e,Ve,n),s(e,Un,n),s(e,Gn,n),s(e,Vn,n),s(e,Ne,n),s(e,Nn,n),s(e,Jn,n),s(e,Qn,n),s(e,Je,n),s(e,Wn,n),s(e,Zn,n),s(e,Xn,n),s(e,Qe,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,is,n),s(e,rs,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,it,n),_s.m(Ka,it),s(e,ws,n),s(e,rt,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(j.$$.fragment,e),Ms(Ge.$$.fragment,e),Ls=!0)},o(e){Hs(j.$$.fragment,e),Hs(Ge.$$.fragment,e),Ls=!1},d(e){e&&(t(y),t(h),t(w),t(L),t(f),t(q),t(H),t(G),t(D),t(Y),t(T),t(C),t(A),t(a),t(p),t(c),t(d),t(g),t(v),t(_),t(P),t(ne),t(se),t(Q),t(ae),t(S),t(O),t(W),t(M),t(Z),t(V),t(I),t(K),t(N),t(X),t(ct),t(ee),t(ie),t(mt),t(re),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(Tt),t(At),t(qt),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(jt),t(It),t(xe),t(Dt),t(Ot),t(Ut),t(Ce),t(Gt),t(_e),t(Nt),t(we),t(Jt),t(ye),t(Wt),t(Se),t(Zt),t(Le),t(Yt),t(Kt),t(en),t(Te),t(tn),t(nn),t(sn),t(Ae),t(an),t(ln),t(rn),t(qe),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(Tn),t(Be),t(An),t(je),t(Fn),t(Ie),t(Mn),t(Hn),t(Pn),t(De),t(En),t(zn),t($n),t(Oe),t(Rn),t(Ue),t(jn),t(In),t(Dn),t(On),t(Ve),t(Un),t(Gn),t(Vn),t(Ne),t(Nn),t(Jn),t(Qn),t(Je),t(Wn),t(Zn),t(Xn),t(Qe),t(Yn),t(We),t(es),t(ts),t(ns),t(Ze),t(ss),t(Xe),t(ls),t(Ye),t(is),t(rs),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(it),t(ws),t(rt),t(ys),t(ut),t(Ss),t(ot)),Ps(j,e),Ps(Ge,e)}}}function ul(J){let y,m;const h=[J[0],Ia];let w={$$slots:{default:[rl]},$$scope:{ctx:J}};for(let x=0;x{m(0,y=Ts(Ts({},y),$a(h)))},y=$a(y),[y]}class fl extends nl{constructor(y){super(),sl(this,y,ol,ul,el,{})}}export{fl as default,Ia as metadata};
diff --git a/dist/_app/immutable/chunks/livecoding_supercollider.sLrjm2WB.js.br b/dist/_app/immutable/chunks/livecoding_supercollider.sLrjm2WB.js.br
new file mode 100644
index 0000000..af1113e
Binary files /dev/null and b/dist/_app/immutable/chunks/livecoding_supercollider.sLrjm2WB.js.br differ
diff --git a/dist/_app/immutable/chunks/livecoding_supercollider.sLrjm2WB.js.gz b/dist/_app/immutable/chunks/livecoding_supercollider.sLrjm2WB.js.gz
new file mode 100644
index 0000000..c6e4929
Binary files /dev/null and b/dist/_app/immutable/chunks/livecoding_supercollider.sLrjm2WB.js.gz differ
diff --git a/dist/_app/immutable/chunks/livecoding_supercollider_2.8rv2dy6_.js b/dist/_app/immutable/chunks/livecoding_supercollider_2.8rv2dy6_.js
new file mode 100644
index 0000000..9c82a5b
--- /dev/null
+++ b/dist/_app/immutable/chunks/livecoding_supercollider_2.8rv2dy6_.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.AIcdAWo0.js";import{G as Qa,g as Wa,a as Pa}from"./guides.RN6emr9S.js";import{I as Xa}from"./Info.bs_Ss2Q-.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.8rv2dy6_.js.br b/dist/_app/immutable/chunks/livecoding_supercollider_2.8rv2dy6_.js.br
new file mode 100644
index 0000000..f06d7ec
Binary files /dev/null and b/dist/_app/immutable/chunks/livecoding_supercollider_2.8rv2dy6_.js.br differ
diff --git a/dist/_app/immutable/chunks/livecoding_supercollider_2.8rv2dy6_.js.gz b/dist/_app/immutable/chunks/livecoding_supercollider_2.8rv2dy6_.js.gz
new file mode 100644
index 0000000..b695fcc
Binary files /dev/null and b/dist/_app/immutable/chunks/livecoding_supercollider_2.8rv2dy6_.js.gz differ
diff --git a/dist/_app/immutable/chunks/ordinateur_crier.w4EusLTJ.js b/dist/_app/immutable/chunks/ordinateur_crier.w4EusLTJ.js
new file mode 100644
index 0000000..15a35cc
--- /dev/null
+++ b/dist/_app/immutable/chunks/ordinateur_crier.w4EusLTJ.js
@@ -0,0 +1,4 @@
+import{s as Ze,n as He}from"./scheduler.aZRR5A_O.js";import{S as Xe,i as $e,g as r,s as n,h as l,x as a,c as u,k as Ne,a as s,f as i}from"./index.AIcdAWo0.js";function et(Ve){let o,Me="À propos",I,z,O,c,Te='Cet article était initialement publié dans la revue Bugne Bugne, une “Revue lyonnaise dédiée aux musiques électroniques et aux enjeux politiques et sociaux de la fête, indépendante et non-lucrative ✊”. L’objectif de cet article était de présenter le live coding à un large public et de parler des concerts que nous organisons à Lyon. Je reprends ici l’intégralité du texte et je rajoute des liens supplémentaires pour enrichir la chose :)',R,k,B,d,_e=`J’ai pris la liberté de rajouter tout un tas de liens divers qui apportent
+souvent un contrepoint décalé au texte.`,J,v,Pe="Introduction",E,f,Ie='Quelques personnes en Europe et dans le monde pratiquent le live coding. Nous sommes quelques centaines ou quelques milliers. Live coder, cela consiste à improviser de la musique directement au travers de langages de programmation, sur scène, devant tout le monde, avec les bugs, les crashs, etc. que cela implique. Tout au long de la performance, les live coders éditent du code et le soumettent à l’ordinateur. Ils découvrent le résultat en même temps que le public et sont pareillement surpris ou inquiets de ce qu’ils entendent.',F,A,D,q,ze='Live coder, cela veut tout et rien dire et personne ne semble souhaiter définir le terme précisément. On peut programmer et modifier des synthétiseurs en temps réel, créer des séquences musicales, des visuels, etc. On peut allumer des ampoules en rythme ou broder un pull sur scène, la seule limite restant le crash et la capacité technique de faire ce que l’on veut. Le live coding peut mobiliser toutes les ressources de l’ordinateur, pour le meilleur comme pour le pire. Certains aiment programmer de la musique, d’autres aiment programmer des visuels. Faites cela de manière conjointe, et vous obtenez une Algorave, une algorithmic rave party. L’idée derrière ce terme était, à l’origine, de faire de la musique de club au travers du code, de faire danser les gens sur des algorithmes. Ca ne ressemble pas du tout à de la musique de club, mais cela reste dansant quand même. C’est une musique à part, avec ses propres sonorités et ses gestes musicaux particuliers.',Y,Q,S,h,Oe="Live coder, cela ne signifie pas nécessairement programmer quelque chose pour arriver à une fin. Il n’y a pas de patron pour surveiller que vous terminiez votre programme dans les temps. Live coder, c’est surtout programmer sans but, errer dans un système musical et chercher ce qui sonne bien, ce qui sonne mal, et aussi pas mal chercher ce que l’on veut réellement faire. C’est un peu du jazz d’ordinateur. C’est une conversation à la fois avec votre ordinateur et avec votre propre capacité ou incapacité à vous exprimer musicalement au travers du code.",K,b,Re="Renouer avec l’ordinateur",U,w,ke='Il y a longtemps que les gens font ça, mais originellement, tout le monde s’en fichait. Il y a quelques décennies, il était normal d’utiliser des langages de programmation pour créer de la musique. C’était souvent la seule interface dont on disposait pour dialoguer avec la machine, pour composer, pour contrôler des synthétiseurs, des échantillonneurs, des machines, etc. L’apparition des interfaces graphiques a aussi introduit le fait de cliquer partout, puis les fenêtres, puis tout un tas d’idées et de concepts dont on n’avait pas vraiment besoin pour faire de la musique. En bref, les interfaces graphiques ont rompu quelque chose d’important dans la manière dont on approche l’interaction avec l’ordinateur.',W,G,N,g,Be='Les ordinateurs sont faits pour manger du texte, des nombres, des instructions. Ils sont ridiculement petits, puissants et versatiles. Ce sont des calculatrices qui calculent vite. Ils sont partout et sont d’ailleurs faits pour être emportés partout. On passe déjà notre vie avec. Le seul problème est que l’on ne les utilise pas comme des ordinateurs. On ne les utilise pas non plus, d’ailleurs, comme des instruments de musique et les musiciens passent généralement beaucoup de temps et consacrent beaucoup d’énergie à éviter de se confronter à la vrai nature de l’ordinateur.',V,Z,X,x,Je=`Parlons un petit peu des métaphores. Ouvrez n’importe quel logiciel de production musicale (Ableton, Fruity Loops, Pro Tools). Regardez un peu ce que l’on vous montre à l’écran. Les logiciels pour créer de la musique sont remplis de métaphores étranges que personne n’a jamais réellement souhaité. On édite des mélodies MIDI sur des piano rolls comme si l’on manipulait un piano mécanique avec des rouleaux. On montre un studio d’enregistrement avec des tranches de console et des potentiomètres alors qu’on a juste un clavier et une souris. Les synthétiseurs virtuels ont des boutons et des potentiomètres qu’on ne peut pas pousser. Vous ne pouvez cliquer que sur un bouton à la fois, et les contrôleurs sont pénibles à utiliser. Les synthétiseurs virtuels ont des lumières tristes qui ne brillent même pas et ils peuvent planter tout comme Word ou Excel. Il y a quelque chose qui coince. Il fallait initialement vendre ces logiciels aux musiciens et on leur a vendu ce qu’ils connaissent le mieux. C’est tout pareil que votre bureau avec ses dossiers, ses fichiers, etc. Votre bureau n’existe pas, et les dossiers ne sont pas des dossiers en carton jaune moche que vous rangez dans une armoire.
+Les platines sont devenues des instruments lorsque les musiciens ont commencé à s’intéresser à leurs qualités musicales. De même, l’ordinateur peut devenir un instrument de musique si l’on s’intéresse à ses qualités intrinsèques : l’idée n’est pas d’éviter ce qu’il est vraiment, mais de chercher ses qualités dans le domaine musical.`,$,ee,te,m,Ee="I'm the operator with my pocket calculator I am adding, and subtracting... I'm controlling, and composing! By pressing down a special key, It plays a little melody.",se,ie,re,C,Fe='Pourtant, il est toujours possible de programmer sa musique. On peut même faire la même chose qu’avant, mais en beaucoup mieux, on peut faire la même chose que nos ancêtres, mais en temps réel. On peut tout programmer si on essaie vraiment. C’est super amusant mais c’est aussi devenu bizarre. Plus personne ne fait ça, à tel point que programmer son ordinateur en direct est devenu un parti pris. Programmer est devenu un geste expressif, tout comme peut l’être le fait de danser, de crier ou de faire un solo de guitare. C’est aussi parfois devenu un geste politique ou un acte militant. Depuis le début des années 2000, les live coders ont plus ou moins tous décidé de montrer ce qu’ils font à leur public (collectif TOPLAP, etc.) car ils estiment que c’est important. Ils font leurs concerts dans le noir et projettent leurs écrans pour que le public puisse lire le code et voir le curseur d’édition bouger :',le,ne,ue,p,Ae="Give us access to the performer's mind, to the whole human instrument. Obscurantism is dangerous. Show us your screens.",ae,oe,me,L,De="Pourquoi live coder ?",pe,j,Ye="Rémi : “Je cherchais au départ des manières de composer des rythmes complexes. J’ai sombré. J’ai découvert une nouvelle façon de faire et de contrôler la musique et c’était sans doute la manière de faire que j’avais toujours cherchée sans la trouver. Je suis plus proche des sphères de la musique DIY, et le live coding c’est un peu le DIY du numérique. En plus de bidouller l’électronique de mes synthés et j’ai commencé à pouvoir tout fabriquer, tout programmer. J’ai pu d’une certaine manière “augmenter” ou contrôler différemment tout mon matériel et j’y garde toujours ce plaisir du crash et de l’erreur. J’aime le fait que mon programme soit bancal, et qu’il puisse s’arrêter ou se comporter différemment du but premier. Je vais tout faire pour que tout se passe bien mais je ne peux jamais en être certain. J’ai jamais réussi à faire de la musique avec des logiciels faits pour cela, ça a toujours été sans saveur, incompréhensible, super compliqué à démarrer.",ce,de,ve,y,Qe="Maintenant je crois pas que se soit foncièrement plus simple à démarrer mais au moins je ne peux m’en prendre qu’à moi-même. Je viens du milieu de la technique du son, le live coding m’a aussi appris la programmation, il m’a ouvert la porte de la programmation appliquée à l’audio, et c’est maintenant ce dans quoi j’essaie de travailler.”",fe,qe,he,H,Se='Raphaël : “J’ai appris à programmer en m’intéressant au live coding. J’étais déjà assez pote avec les ordinateurs car mes amis et moi nous amusions à modder des jeux ou à créer des choses intéressantes à l’ordinateur. Je cherchais initialement une manière d’écrire de la musique qui ne soit ni partition graphique, ni partition classique. Je tape super vite sur un clavier et j’aime beaucoup manipuler du texte. Il semblait assez clair que cette pratique était faite pour moi. J’ai appris à faire de la musique avec du code avant de savoir réellement programmer. J’ai commencé ensuite à modifier les outils pour les adapter à ma pratique puis à concevoir les miens. C’est aussi fascinant que nul. On apprend beaucoup, on crée son propre instrument, mais on arrive souvent à un résultat que l’on n’avait pas anticipé ! Je m’intéressais déjà beaucoup à toutes les musiques basées sur des systèmes de règles ou sur des processus génératifs. J’aime beaucoup John Cage, non pas pour sa musique, mais pour les idées qu’il a pu transmettre à tous les musiciens qui l’ont écouté. Aujourd’hui, je live code car j’étudie ces musiques là dans un cadre universitaire mais j’y trouve également du plaisir. Cela ne se ressemble jamais, cela donne perpétuellement l’envie de recommencer. C’est le propre d’un instrument de musique, et je suis content d’avoir fait de mon ordinateur un instrument de musique.”',be,M,Ke="Le live-coding en France",we,T,Ue='Le 8 avril 2023, nous avons organisé une gigantesque algorave au Grrrnd Zero à Lyon. 19 projets différents venant de toute la France et parfois même de l’étranger (Italie, Pays-Bas, Etats-Unis) ont joué de la musique ou fait des visuels de 18h à 8h du matin. C’est sans doute la plus grosse algorave de la très longue histoire de France. Même si les gens se reconnaissent comme live coders, il n’est pas dit qu’ils se comprennent. On sait qu’on fait la même chose, mais pas nécessairement la même musique. On ne programme pas tous de la même manière, pas avec les mêmes outils ou le même langage, pas pour le même but, etc mais c’est déjà pas mal de savoir qu’on n’est pas tous seuls à avoir une lubie. Organiser des événements de live coding permet de faire vivre cette pratique et de se rendre compte sa diversité. C’est une sorte de grande foire. En France, cela est d’autant plus sensible que la plupart des live coders ont un lien avec la demoscene ou avec des cultures informatiques underground qui n’ont jamais vraiment disparues.',ge,xe,Ce,_,We=`Aujourd’hui on s’est un peu lancés comme mission de rassembler toute la communauté française ou du moins de se faire savoir qu’on existe entre nous. On essaie d’organiser des workshops, car le live coding est une pratique toujours plus simple à démarrer avec quelqu’un plutôt qu’en écumant des forums.
+Nous sommes aussi allés représenter cette communauté francophone du live-coding à l’International Conférence on Live-Coding à Utrecht en avril 2023. Ça nous a permis de comparer cette scène à l’échelle mondiale et de pouvoir rencontrer en personne tous ces développeurs-artistes d’un petit milieu où tout le monde se connaît un peu.`,Le,je,ye,P,Ge='Si on cherche bien, il y a des live coders partout. Il suffit de les débusquer, souvent dans les écoles d’art, dans les écoles d’ingé ou vraiment un peu partout là où on ne pense jamais à regarder. Bizarrement, on trouve assez peu de live coding dans les conservatoires ou dans les écoles de musique. Tous les live coders ne savent pas nécessairement qu’ils live codent. Parfois, ce n’est juste pas important pour eux, ou cela leur paraît naturel. Les live coders naviguent entre milieux DIY, réseaux hackers / makers, milieu des arts numériques, etc. Considérer que le live coding est une forme d’art en soi est un réflexe assez anglais, lié à la manière dont la pratique a été popularisée dans les années 2000. En France, le live coding est souvent considéré comme un outil. Ailleurs c’est considéré comme une fin en soi, ce qui n’est pas plus mal !';return{c(){o=r("h2"),o.textContent=Me,I=n(),z=r("br"),O=n(),c=r("p"),c.innerHTML=Te,R=n(),k=r("br"),B=n(),d=r("p"),d.textContent=_e,J=n(),v=r("h2"),v.textContent=Pe,E=n(),f=r("p"),f.innerHTML=Ie,F=n(),A=r("br"),D=n(),q=r("p"),q.innerHTML=ze,Y=n(),Q=r("br"),S=n(),h=r("p"),h.innerHTML=Oe,K=n(),b=r("h2"),b.textContent=Re,U=n(),w=r("p"),w.innerHTML=ke,W=n(),G=r("br"),N=n(),g=r("p"),g.innerHTML=Be,V=n(),Z=r("br"),X=n(),x=r("p"),x.innerHTML=Je,$=n(),ee=r("br"),te=n(),m=r("blockquote"),m.innerHTML=Ee,se=n(),ie=r("br"),re=n(),C=r("p"),C.innerHTML=Fe,le=n(),ne=r("br"),ue=n(),p=r("blockquote"),p.innerHTML=Ae,ae=n(),oe=r("br"),me=n(),L=r("h2"),L.textContent=De,pe=n(),j=r("p"),j.innerHTML=Ye,ce=n(),de=r("br"),ve=n(),y=r("p"),y.innerHTML=Qe,fe=n(),qe=r("br"),he=n(),H=r("p"),H.innerHTML=Se,be=n(),M=r("h2"),M.textContent=Ke,we=n(),T=r("p"),T.innerHTML=Ue,ge=n(),xe=r("br"),Ce=n(),_=r("p"),_.innerHTML=We,Le=n(),je=r("br"),ye=n(),P=r("p"),P.innerHTML=Ge,this.h()},l(e){o=l(e,"H2",{"data-svelte-h":!0}),a(o)!=="svelte-v3hynp"&&(o.textContent=Me),I=u(e),z=l(e,"BR",{}),O=u(e),c=l(e,"P",{"data-svelte-h":!0}),a(c)!=="svelte-ipt142"&&(c.innerHTML=Te),R=u(e),k=l(e,"BR",{}),B=u(e),d=l(e,"P",{"data-svelte-h":!0}),a(d)!=="svelte-evh15u"&&(d.textContent=_e),J=u(e),v=l(e,"H2",{"data-svelte-h":!0}),a(v)!=="svelte-1ukekoe"&&(v.textContent=Pe),E=u(e),f=l(e,"P",{"data-svelte-h":!0}),a(f)!=="svelte-1jaott7"&&(f.innerHTML=Ie),F=u(e),A=l(e,"BR",{}),D=u(e),q=l(e,"P",{"data-svelte-h":!0}),a(q)!=="svelte-rjd13f"&&(q.innerHTML=ze),Y=u(e),Q=l(e,"BR",{}),S=u(e),h=l(e,"P",{"data-svelte-h":!0}),a(h)!=="svelte-ysico6"&&(h.innerHTML=Oe),K=u(e),b=l(e,"H2",{"data-svelte-h":!0}),a(b)!=="svelte-evmfyz"&&(b.textContent=Re),U=u(e),w=l(e,"P",{"data-svelte-h":!0}),a(w)!=="svelte-1hkw5fv"&&(w.innerHTML=ke),W=u(e),G=l(e,"BR",{}),N=u(e),g=l(e,"P",{"data-svelte-h":!0}),a(g)!=="svelte-6aepzc"&&(g.innerHTML=Be),V=u(e),Z=l(e,"BR",{}),X=u(e),x=l(e,"P",{"data-svelte-h":!0}),a(x)!=="svelte-carczs"&&(x.innerHTML=Je),$=u(e),ee=l(e,"BR",{}),te=u(e),m=l(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),a(m)!=="svelte-1xedkml"&&(m.innerHTML=Ee),se=u(e),ie=l(e,"BR",{}),re=u(e),C=l(e,"P",{"data-svelte-h":!0}),a(C)!=="svelte-vabc81"&&(C.innerHTML=Fe),le=u(e),ne=l(e,"BR",{}),ue=u(e),p=l(e,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),a(p)!=="svelte-1ezeov8"&&(p.innerHTML=Ae),ae=u(e),oe=l(e,"BR",{}),me=u(e),L=l(e,"H2",{"data-svelte-h":!0}),a(L)!=="svelte-15cy2pk"&&(L.textContent=De),pe=u(e),j=l(e,"P",{"data-svelte-h":!0}),a(j)!=="svelte-1duieby"&&(j.innerHTML=Ye),ce=u(e),de=l(e,"BR",{}),ve=u(e),y=l(e,"P",{"data-svelte-h":!0}),a(y)!=="svelte-ywnqg2"&&(y.innerHTML=Qe),fe=u(e),qe=l(e,"BR",{}),he=u(e),H=l(e,"P",{"data-svelte-h":!0}),a(H)!=="svelte-1s3sbij"&&(H.innerHTML=Se),be=u(e),M=l(e,"H2",{"data-svelte-h":!0}),a(M)!=="svelte-17h2ie8"&&(M.textContent=Ke),we=u(e),T=l(e,"P",{"data-svelte-h":!0}),a(T)!=="svelte-cpicl9"&&(T.innerHTML=Ue),ge=u(e),xe=l(e,"BR",{}),Ce=u(e),_=l(e,"P",{"data-svelte-h":!0}),a(_)!=="svelte-15i7s9r"&&(_.innerHTML=We),Le=u(e),je=l(e,"BR",{}),ye=u(e),P=l(e,"P",{"data-svelte-h":!0}),a(P)!=="svelte-1if5wzj"&&(P.innerHTML=Ge),this.h()},h(){Ne(m,"class","pl-8 text-2xl"),Ne(p,"class","pl-8 text-2xl")},m(e,t){s(e,o,t),s(e,I,t),s(e,z,t),s(e,O,t),s(e,c,t),s(e,R,t),s(e,k,t),s(e,B,t),s(e,d,t),s(e,J,t),s(e,v,t),s(e,E,t),s(e,f,t),s(e,F,t),s(e,A,t),s(e,D,t),s(e,q,t),s(e,Y,t),s(e,Q,t),s(e,S,t),s(e,h,t),s(e,K,t),s(e,b,t),s(e,U,t),s(e,w,t),s(e,W,t),s(e,G,t),s(e,N,t),s(e,g,t),s(e,V,t),s(e,Z,t),s(e,X,t),s(e,x,t),s(e,$,t),s(e,ee,t),s(e,te,t),s(e,m,t),s(e,se,t),s(e,ie,t),s(e,re,t),s(e,C,t),s(e,le,t),s(e,ne,t),s(e,ue,t),s(e,p,t),s(e,ae,t),s(e,oe,t),s(e,me,t),s(e,L,t),s(e,pe,t),s(e,j,t),s(e,ce,t),s(e,de,t),s(e,ve,t),s(e,y,t),s(e,fe,t),s(e,qe,t),s(e,he,t),s(e,H,t),s(e,be,t),s(e,M,t),s(e,we,t),s(e,T,t),s(e,ge,t),s(e,xe,t),s(e,Ce,t),s(e,_,t),s(e,Le,t),s(e,je,t),s(e,ye,t),s(e,P,t)},p:He,i:He,o:He,d(e){e&&(i(o),i(I),i(z),i(O),i(c),i(R),i(k),i(B),i(d),i(J),i(v),i(E),i(f),i(F),i(A),i(D),i(q),i(Y),i(Q),i(S),i(h),i(K),i(b),i(U),i(w),i(W),i(G),i(N),i(g),i(V),i(Z),i(X),i(x),i($),i(ee),i(te),i(m),i(se),i(ie),i(re),i(C),i(le),i(ne),i(ue),i(p),i(ae),i(oe),i(me),i(L),i(pe),i(j),i(ce),i(de),i(ve),i(y),i(fe),i(qe),i(he),i(H),i(be),i(M),i(we),i(T),i(ge),i(xe),i(Ce),i(_),i(Le),i(je),i(ye),i(P))}}}const it={title:"Les ordinateurs peuvent-t-ils crier ?",date:"2023-12-23",author:"Raphaël Forment et Rémi Georges"};class rt extends Xe{constructor(o){super(),$e(this,o,null,et,Ze,{})}}export{rt as default,it as metadata};
diff --git a/dist/_app/immutable/chunks/ordinateur_crier.w4EusLTJ.js.br b/dist/_app/immutable/chunks/ordinateur_crier.w4EusLTJ.js.br
new file mode 100644
index 0000000..4963326
Binary files /dev/null and b/dist/_app/immutable/chunks/ordinateur_crier.w4EusLTJ.js.br differ
diff --git a/dist/_app/immutable/chunks/ordinateur_crier.w4EusLTJ.js.gz b/dist/_app/immutable/chunks/ordinateur_crier.w4EusLTJ.js.gz
new file mode 100644
index 0000000..950cd9b
Binary files /dev/null and b/dist/_app/immutable/chunks/ordinateur_crier.w4EusLTJ.js.gz differ
diff --git a/dist/_app/immutable/chunks/proposer_guide.X_s8Xpr2.js b/dist/_app/immutable/chunks/proposer_guide.X_s8Xpr2.js
new file mode 100644
index 0000000..775ab33
--- /dev/null
+++ b/dist/_app/immutable/chunks/proposer_guide.X_s8Xpr2.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.AIcdAWo0.js";import{G as te,g as se,a as B}from"./guides.RN6emr9S.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.X_s8Xpr2.js.br b/dist/_app/immutable/chunks/proposer_guide.X_s8Xpr2.js.br
new file mode 100644
index 0000000..52ad23f
Binary files /dev/null and b/dist/_app/immutable/chunks/proposer_guide.X_s8Xpr2.js.br differ
diff --git a/dist/_app/immutable/chunks/proposer_guide.X_s8Xpr2.js.gz b/dist/_app/immutable/chunks/proposer_guide.X_s8Xpr2.js.gz
new file mode 100644
index 0000000..2ba4c03
Binary files /dev/null and b/dist/_app/immutable/chunks/proposer_guide.X_s8Xpr2.js.gz differ
diff --git a/dist/_app/immutable/chunks/proposer_guide.jq4D-DxX.js b/dist/_app/immutable/chunks/proposer_guide.jq4D-DxX.js
deleted file mode 100644
index bdd8bc7..0000000
--- a/dist/_app/immutable/chunks/proposer_guide.jq4D-DxX.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import{s as F,c as K,u as O,g as Q,d as W,x as j,y as D,n as X}from"./scheduler.aZRR5A_O.js";import{S as J,i as N,g as m,h as d,j as V,f as r,a as p,d as G,t as I,r as Y,u as Z,v as ee,w as te,s as _,H as ne,x as g,c as v,E as se,k as le}from"./index.ciNBPAxl.js";function ae(o,t){const a={},c={},s={$$scope:1};let e=o.length;for(;e--;){const l=o[e],u=t[e];if(u){for(const f in l)f in u||(c[f]=1);for(const f in u)s[f]||(a[f]=u[f],s[f]=1);o[e]=u}else for(const f in l)s[f]=1}for(const l in c)l in a||(a[l]=void 0);return a}function U(o){return typeof o=="object"&&o!==null?o:{}}function oe(o){let t,a;const c=o[3].default,s=K(c,o,o[2],null);return{c(){t=m("article"),s&&s.c()},l(e){t=d(e,"ARTICLE",{});var l=V(t);s&&s.l(l),l.forEach(r)},m(e,l){p(e,t,l),s&&s.m(t,null),a=!0},p(e,[l]){s&&s.p&&(!a||l&4)&&O(s,c,e,e[2],a?W(c,e[2],l,null):Q(e[2]),null)},i(e){a||(G(s,e),a=!0)},o(e){I(s,e),a=!1},d(e){e&&r(t),s&&s.d(e)}}}function ue(o,t,a){let{$$slots:c={},$$scope:s}=t,{title:e}=t,{date:l}=t;return o.$$set=u=>{"title"in u&&a(0,e=u.title),"date"in u&&a(1,l=u.date),"$$scope"in u&&a(2,s=u.$$scope)},[e,l,s,c]}class ie extends J{constructor(t){super(),N(this,t,ue,oe,F,{title:0,date:1})}}function re(o){let t,a='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. Voici l’entête de l’article actuel :',c,s,e,l=`---
-title: Comment proposer un guide ?
-date:'2023-12-22'
-author:"Raphaël Maurice Forment"
----`,u,f,z="Chaque balise se comprend assez facilement :",w,h,P="
title : le titre complet de l’article
date : au format AAAA-MM-JJ
author : nom complet ou votre pseudonyme
",y,k,S="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.",M,b,A="Contenu de l’article",H,C,E="É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 particulier à 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,x,R="Publication",T,q,$='Une fois votre article prêt, il vous faudra faire une Pull Request pour que ce dernier soit ajouté 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=m("p"),t.innerHTML=a,c=_(),s=m("pre"),e=new ne(!1),u=_(),f=m("p"),f.textContent=z,w=_(),h=m("ul"),h.innerHTML=P,y=_(),k=m("p"),k.textContent=S,M=_(),b=m("h2"),b.textContent=A,H=_(),C=m("p"),C.innerHTML=E,L=_(),x=m("h2"),x.textContent=R,T=_(),q=m("p"),q.innerHTML=$,this.h()},l(n){t=d(n,"P",{"data-svelte-h":!0}),g(t)!=="svelte-xfb6jk"&&(t.innerHTML=a),c=v(n),s=d(n,"PRE",{class:!0});var i=V(s);e=se(i,!1),i.forEach(r),u=v(n),f=d(n,"P",{"data-svelte-h":!0}),g(f)!=="svelte-rwvclt"&&(f.textContent=z),w=v(n),h=d(n,"UL",{"data-svelte-h":!0}),g(h)!=="svelte-1objkrr"&&(h.innerHTML=P),y=v(n),k=d(n,"P",{"data-svelte-h":!0}),g(k)!=="svelte-uedqlf"&&(k.textContent=S),M=v(n),b=d(n,"H2",{"data-svelte-h":!0}),g(b)!=="svelte-1g5ta6o"&&(b.textContent=A),H=v(n),C=d(n,"P",{"data-svelte-h":!0}),g(C)!=="svelte-rulmzu"&&(C.innerHTML=E),L=v(n),x=d(n,"H2",{"data-svelte-h":!0}),g(x)!=="svelte-qjxet8"&&(x.textContent=R),T=v(n),q=d(n,"P",{"data-svelte-h":!0}),g(q)!=="svelte-1m0ijoc"&&(q.innerHTML=$),this.h()},h(){e.a=null,le(s,"class","language-yaml")},m(n,i){p(n,t,i),p(n,c,i),p(n,s,i),e.m(l,s),p(n,u,i),p(n,f,i),p(n,w,i),p(n,h,i),p(n,y,i),p(n,k,i),p(n,M,i),p(n,b,i),p(n,H,i),p(n,C,i),p(n,L,i),p(n,x,i),p(n,T,i),p(n,q,i)},p:X,d(n){n&&(r(t),r(c),r(s),r(u),r(f),r(w),r(h),r(y),r(k),r(M),r(b),r(H),r(C),r(L),r(x),r(T),r(q))}}}function ce(o){let t,a;const c=[o[0],B];let s={$$slots:{default:[re]},$$scope:{ctx:o}};for(let e=0;e{a(0,t=j(j({},t),D(c)))},t=D(t),[t]}class de extends J{constructor(t){super(),N(this,t,pe,ce,F,{})}}export{de as default,B as metadata};
diff --git a/dist/_app/immutable/chunks/proposer_guide.jq4D-DxX.js.br b/dist/_app/immutable/chunks/proposer_guide.jq4D-DxX.js.br
deleted file mode 100644
index 122b28a..0000000
Binary files a/dist/_app/immutable/chunks/proposer_guide.jq4D-DxX.js.br and /dev/null differ
diff --git a/dist/_app/immutable/chunks/proposer_guide.jq4D-DxX.js.gz b/dist/_app/immutable/chunks/proposer_guide.jq4D-DxX.js.gz
deleted file mode 100644
index 32f08a2..0000000
Binary files a/dist/_app/immutable/chunks/proposer_guide.jq4D-DxX.js.gz and /dev/null differ
diff --git a/dist/_app/immutable/entry/app.KkPoROGc.js b/dist/_app/immutable/entry/app.KkPoROGc.js
new file mode 100644
index 0000000..e43eec4
--- /dev/null
+++ b/dist/_app/immutable/entry/app.KkPoROGc.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.AIcdAWo0.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.uMzUYRGs.js"),__vite__mapDeps([0,1,2,3]),import.meta.url),()=>c(()=>import("../nodes/1.tUBg_osC.js"),__vite__mapDeps([4,1,2]),import.meta.url),()=>c(()=>import("../nodes/2.RD5SDQWd.js"),__vite__mapDeps([5,1,2,6,7]),import.meta.url),()=>c(()=>import("../nodes/3.48xp-1q7.js"),__vite__mapDeps([8,1,2,6,7]),import.meta.url),()=>c(()=>import("../nodes/4.uhJTyLRn.js"),__vite__mapDeps([9,1,2,10,6,7]),import.meta.url),()=>c(()=>import("../nodes/5.AXV32Mz_.js"),__vite__mapDeps([11,12,13,1,2]),import.meta.url),()=>c(()=>import("../nodes/6.9JEuxLd_.js"),__vite__mapDeps([14,1,2,7]),import.meta.url),()=>c(()=>import("../nodes/7.jrp5SQtg.js"),__vite__mapDeps([15,1,2,10,6,7]),import.meta.url),()=>c(()=>import("../nodes/8.id8kTULq.js"),__vite__mapDeps([16,1,2,10,6,7]),import.meta.url),()=>c(()=>import("../nodes/9.ceqUHxWv.js"),__vite__mapDeps([17,12,13,1,2]),import.meta.url),()=>c(()=>import("../nodes/10.FW_xLFIP.js"),__vite__mapDeps([18,1,2,10,19]),import.meta.url),()=>c(()=>import("../nodes/11.yj6_Ot6w.js"),__vite__mapDeps([20,1,2,10,21,19]),import.meta.url),()=>c(()=>import("../nodes/12.SIaWLFDS.js"),__vite__mapDeps([22,1,2,10,19]),import.meta.url),()=>c(()=>import("../nodes/13.b5Jjh3ef.js"),__vite__mapDeps([23,1,2,10,21,6,7,19]),import.meta.url),()=>c(()=>import("../nodes/14.ELzCsYqP.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.uMzUYRGs.js","../chunks/scheduler.aZRR5A_O.js","../chunks/index.AIcdAWo0.js","../assets/0.B2YDv0ji.css","../nodes/1.tUBg_osC.js","../nodes/2.RD5SDQWd.js","../chunks/Info.bs_Ss2Q-.js","../chunks/marked.esm.hS8hU7E4.js","../nodes/3.48xp-1q7.js","../nodes/4.uhJTyLRn.js","../chunks/each.-oqiv04n.js","../nodes/5.AXV32Mz_.js","../chunks/preload-helper.0HuHagjb.js","../chunks/dynamic-import-helper.0gtGTknh.js","../nodes/6.9JEuxLd_.js","../nodes/7.jrp5SQtg.js","../nodes/8.id8kTULq.js","../nodes/9.ceqUHxWv.js","../nodes/10.FW_xLFIP.js","../chunks/utils.Tkfr06Vk.js","../nodes/11.yj6_Ot6w.js","../chunks/SoftwareCard.4ve1z996.js","../nodes/12.SIaWLFDS.js","../nodes/13.b5Jjh3ef.js","../nodes/14.ELzCsYqP.js"]
+ }
+ return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
+}
\ No newline at end of file
diff --git a/dist/_app/immutable/entry/app.KkPoROGc.js.br b/dist/_app/immutable/entry/app.KkPoROGc.js.br
new file mode 100644
index 0000000..7755e58
Binary files /dev/null and b/dist/_app/immutable/entry/app.KkPoROGc.js.br differ
diff --git a/dist/_app/immutable/entry/app.KkPoROGc.js.gz b/dist/_app/immutable/entry/app.KkPoROGc.js.gz
new file mode 100644
index 0000000..159f191
Binary files /dev/null and b/dist/_app/immutable/entry/app.KkPoROGc.js.gz differ
diff --git a/dist/_app/immutable/entry/app.eWdXDQlY.js b/dist/_app/immutable/entry/app.eWdXDQlY.js
deleted file mode 100644
index d98d71d..0000000
--- a/dist/_app/immutable/entry/app.eWdXDQlY.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import{_ as u}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 E,t as h,b as P,d as g,f as w,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.ciNBPAxl.js";const nt={};function X(o){let t,i,n;var r=o[1][0];function c(e,s){return{props:{data:e[3],form:e[2]}}}return r&&(t=v(r,c(o)),o[12](t)),{c(){t&&k(t.$$.fragment),i=d()},l(e){t&&L(t.$$.fragment,e),i=d()},m(e,s){t&&D(t,e,s),E(e,i,s),n=!0},p(e,s){if(s&2&&r!==(r=e[1][0])){if(t){R();const _=t;h(_.$$.fragment,1,0,()=>{I(_,1)}),P()}r?(t=v(r,c(e)),e[12](t),k(t.$$.fragment),g(t.$$.fragment,1),D(t,i.parentNode,i)):t=null}else if(r){const _={};s&8&&(_.data=e[3]),s&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&&w(i),o[12](null),t&&I(t,e)}}}function Y(o){let t,i,n;var r=o[1][0];function c(e,s){return{props:{data:e[3],$$slots:{default:[Z]},$$scope:{ctx:e}}}}return r&&(t=v(r,c(o)),o[11](t)),{c(){t&&k(t.$$.fragment),i=d()},l(e){t&&L(t.$$.fragment,e),i=d()},m(e,s){t&&D(t,e,s),E(e,i,s),n=!0},p(e,s){if(s&2&&r!==(r=e[1][0])){if(t){R();const _=t;h(_.$$.fragment,1,0,()=>{I(_,1)}),P()}r?(t=v(r,c(e)),e[11](t),k(t.$$.fragment),g(t.$$.fragment,1),D(t,i.parentNode,i)):t=null}else if(r){const _={};s&8&&(_.data=e[3]),s&8215&&(_.$$scope={dirty:s,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&&w(i),o[11](null),t&&I(t,e)}}}function Z(o){let t,i,n;var r=o[1][1];function c(e,s){return{props:{data:e[4],form:e[2]}}}return r&&(t=v(r,c(o)),o[10](t)),{c(){t&&k(t.$$.fragment),i=d()},l(e){t&&L(t.$$.fragment,e),i=d()},m(e,s){t&&D(t,e,s),E(e,i,s),n=!0},p(e,s){if(s&2&&r!==(r=e[1][1])){if(t){R();const _=t;h(_.$$.fragment,1,0,()=>{I(_,1)}),P()}r?(t=v(r,c(e)),e[10](t),k(t.$$.fragment),g(t.$$.fragment,1),D(t,i.parentNode,i)):t=null}else if(r){const _={};s&16&&(_.data=e[4]),s&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&&w(i),o[10](null),t&&I(t,e)}}}function O(o){let t,i=o[6]&&T(o);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(w),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){E(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&&w(t),i&&i.d()}}}function T(o){let t;return{c(){t=K(o[7])},l(i){t=Q(i,o[7])},m(i,n){E(i,t,n)},p(i,n){n&128&&W(t,i[7])},d(i){i&&w(t)}}}function $(o){let t,i,n,r,c;const e=[Y,X],s=[];function _(a,m){return a[1][1]?0:1}t=_(o),i=s[t]=e[t](o);let l=o[5]&&O(o);return{c(){i.c(),n=B(),l&&l.c(),r=d()},l(a){i.l(a),n=F(a),l&&l.l(a),r=d()},m(a,m){s[t].m(a,m),E(a,n,m),l&&l.m(a,m),E(a,r,m),c=!0},p(a,[m]){let b=t;t=_(a),t===b?s[t].p(a,m):(R(),h(s[b],1,1,()=>{s[b]=null}),P(),i=s[t],i?i.p(a,m):(i=s[t]=e[t](a),i.c()),g(i,1),i.m(n.parentNode,n)),a[5]?l?l.p(a,m):(l=O(a),l.c(),l.m(r.parentNode,r)):l&&(l.d(1),l=null)},i(a){c||(g(i),c=!0)},o(a){h(i),c=!1},d(a){a&&(w(n),w(r)),s[t].d(a),l&&l.d(a)}}}function x(o,t,i){let{stores:n}=t,{page:r}=t,{constructors:c}=t,{components:e=[]}=t,{form:s}=t,{data_0:_=null}=t,{data_1:l=null}=t;j(n.page.notify);let a=!1,m=!1,b=null;C(()=>{const f=n.page.subscribe(()=>{a&&(i(6,m=!0),M().then(()=>{i(7,b=document.title||"untitled page")}))});return i(5,a=!0),f});function y(f){V[f?"unshift":"push"](()=>{e[1]=f,i(0,e)})}function N(f){V[f?"unshift":"push"](()=>{e[0]=f,i(0,e)})}function q(f){V[f?"unshift":"push"](()=>{e[0]=f,i(0,e)})}return o.$$set=f=>{"stores"in f&&i(8,n=f.stores),"page"in f&&i(9,r=f.page),"constructors"in f&&i(1,c=f.constructors),"components"in f&&i(0,e=f.components),"form"in f&&i(2,s=f.form),"data_0"in f&&i(3,_=f.data_0),"data_1"in f&&i(4,l=f.data_1)},o.$$.update=()=>{o.$$.dirty&768&&n.page.set(r)},[e,c,s,_,l,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 st=[()=>u(()=>import("../nodes/0.60GMPCkA.js"),__vite__mapDeps([0,1,2,3]),import.meta.url),()=>u(()=>import("../nodes/1.pZvj6-CS.js"),__vite__mapDeps([4,1,2]),import.meta.url),()=>u(()=>import("../nodes/2.YD8HTYt7.js"),__vite__mapDeps([5,1,2,6,7]),import.meta.url),()=>u(()=>import("../nodes/3.qqim2H7R.js"),__vite__mapDeps([8,1,2,6,7]),import.meta.url),()=>u(()=>import("../nodes/4.CPFN9ZRQ.js"),__vite__mapDeps([9,1,2,7]),import.meta.url),()=>u(()=>import("../nodes/5.LhrW8NTK.js"),__vite__mapDeps([10,1,2,11,6,7]),import.meta.url),()=>u(()=>import("../nodes/6.uAKuUh7A.js"),__vite__mapDeps([12,1,2,11,6,7]),import.meta.url),()=>u(()=>import("../nodes/7.1t__7h1j.js"),__vite__mapDeps([13,14,1,2]),import.meta.url),()=>u(()=>import("../nodes/8.WpdHpzGp.js"),__vite__mapDeps([15,1,2,11,16]),import.meta.url),()=>u(()=>import("../nodes/9.RIT4c5a5.js"),__vite__mapDeps([17,1,2,11,18,16]),import.meta.url),()=>u(()=>import("../nodes/10.a7r1yW9n.js"),__vite__mapDeps([19,1,2,11,16]),import.meta.url),()=>u(()=>import("../nodes/11.wHHXrLZY.js"),__vite__mapDeps([20,1,2,11,18,6,7,16]),import.meta.url),()=>u(()=>import("../nodes/12.lDmIZB1G.js"),__vite__mapDeps([21,1,2,6,7]),import.meta.url)],ot=[],_t={"/":[2],"/accueil":[3],"/contacts":[4],"/evenements":[5],"/guides":[6],"/guides/[slug]":[7],"/membres":[8],"/outils":[9],"/presse":[10],"/reseaux":[11],"/ressources":[12]},at={handleError:({error:o})=>{console.error(o)}};export{_t as dictionary,at as hooks,nt as matchers,st as nodes,rt as root,ot as server_loads};
-function __vite__mapDeps(indexes) {
- if (!__vite__mapDeps.viteFileDeps) {
- __vite__mapDeps.viteFileDeps = ["../nodes/0.60GMPCkA.js","../chunks/scheduler.aZRR5A_O.js","../chunks/index.ciNBPAxl.js","../assets/0.i2cAdolL.css","../nodes/1.pZvj6-CS.js","../nodes/2.YD8HTYt7.js","../chunks/Info.NO-uVT9H.js","../chunks/marked.esm.hS8hU7E4.js","../nodes/3.qqim2H7R.js","../nodes/4.CPFN9ZRQ.js","../nodes/5.LhrW8NTK.js","../chunks/each.-oqiv04n.js","../nodes/6.uAKuUh7A.js","../nodes/7.1t__7h1j.js","../chunks/preload-helper.0HuHagjb.js","../nodes/8.WpdHpzGp.js","../chunks/utils.Tkfr06Vk.js","../nodes/9.RIT4c5a5.js","../chunks/SoftwareCard.9Bpc13j4.js","../nodes/10.a7r1yW9n.js","../nodes/11.wHHXrLZY.js","../nodes/12.lDmIZB1G.js"]
- }
- return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
-}
\ No newline at end of file
diff --git a/dist/_app/immutable/entry/app.eWdXDQlY.js.br b/dist/_app/immutable/entry/app.eWdXDQlY.js.br
deleted file mode 100644
index 0bcf49f..0000000
Binary files a/dist/_app/immutable/entry/app.eWdXDQlY.js.br and /dev/null differ
diff --git a/dist/_app/immutable/entry/app.eWdXDQlY.js.gz b/dist/_app/immutable/entry/app.eWdXDQlY.js.gz
deleted file mode 100644
index fcc6d80..0000000
Binary files a/dist/_app/immutable/entry/app.eWdXDQlY.js.gz and /dev/null differ
diff --git a/dist/_app/immutable/entry/start.eDKqTZyY.js b/dist/_app/immutable/entry/start.8lMiaYl3.js
similarity index 83%
rename from dist/_app/immutable/entry/start.eDKqTZyY.js
rename to dist/_app/immutable/entry/start.8lMiaYl3.js
index ea47cc1..90b130f 100644
--- a/dist/_app/immutable/entry/start.eDKqTZyY.js
+++ b/dist/_app/immutable/entry/start.8lMiaYl3.js
@@ -1,4 +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 jt(e){for(const n in e)e[n]=decodeURIComponent(e[n]);return e}function je({href:e}){return e.split("#")[0]}const xt=["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 xt)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(Me(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=Me(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 xe(String.fromCharCode(parseInt(d.slice(2),16)));if(d.startsWith("u+"))return xe(String.fromCharCode(...d.slice(2).split("-").map(R=>parseInt(R,16))));const g=Ft.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 xe(d)}).join("")}).join("")}/?$`),params:n}}function Gt(e){return!/^\([^)]+\)$/.test(e)}function Ht(e){return e.slice(1).split("/").filter(Gt)}function Jt(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 xe(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Kt({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 Jt(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 Fe(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 q=globalThis.__sveltekit_qg8pvi?.base??"",zt=globalThis.__sveltekit_qg8pvi?.assets??q,Yt="1703349664352",_t="sveltekit:snapshot",gt="sveltekit:scroll",mt="sveltekit:states",Ne="sveltekit:pageurl",B="sveltekit:history",K="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 qe(){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(`${zt}/_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?He.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 Je 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 Je?e.status:500}function ln(e){return e instanceof Je?e.text:"Internal Error"}const z=Fe(gt)??{},oe=Fe(mt,tn)??{},ce=Fe(_t)??{},lt=history.pushState,me=history.replaceState;function De(e){z[e]=qe()}function ft(e,n){let s=e+1;for(;z[s];)delete z[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=Kt(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,M,L=history.state?.[B],V=history.state?.[K];L||(L=V=Date.now(),me.call(history,{...history.state,[B]:L,[K]:V},"",location.href));const be=z[L];be&&(history.scrollRestoration="manual",scrollTo(be.x,be.y));let j,Y,ke;async function Ke(){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&&(j=a.props.page),M.$set(a.props))),_.length=0)}function ze(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,z),ze(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(),j=r.props.page,M=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:j}};m!==void 0&&(E.props.form=m);let b={},N=!j,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 x;y instanceof Request?(x=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}):x=y;const O=new URL(x,a);return v&&N(O.href),O.origin===a.origin&&(x=O.href.slice(a.origin.length)),I?Mt(x,O.href,A):qt(x,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:q&&(a.pathname===q||a.pathname===q+"/")?"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 x=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(x.some(Boolean)){try{b=await dt(a,x)}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 F=!1;const H=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(F,U,N,y,T.universal?.uses,u))return T;if(F=!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
',$,le,pe;const ae=_[4].default,d=we(ae,_,_[3],null);return{c(){v=a("div"),b=a("div"),m=a("nav"),f=a("div"),p=a("a"),p.textContent=H,N=o(),h=a("div"),h.innerHTML=re,U=o(),l=a("div"),y=a("a"),y.textContent=ne,J=o(),w=a("a"),w.textContent=oe,K=o(),C=a("a"),C.textContent=ie,Q=o(),A=a("a"),A.textContent=de,W=o(),k=a("a"),k.textContent=ce,X=o(),M=a("a"),M.textContent=ue,Y=o(),j=a("a"),j.textContent=xe,Z=o(),I=a("a"),I.textContent=fe,ee=o(),E=a("a"),E.textContent=he,G=o(),z=a("main"),g=a("div"),L=a("input"),te=o(),O=a("div"),d&&d.c(),se=o(),D=a("div"),D.innerHTML=ve,q=o(),T=a("footer"),T.innerHTML=me,this.h()},l(s){v=r(s,"DIV",{});var x=V(v);b=r(x,"DIV",{class:!0});var ge=V(b);m=r(ge,"NAV",{class:!0});var B=V(m);f=r(B,"DIV",{class:!0});var F=V(f);p=r(F,"A",{href:!0,class:!0,"data-svelte-h":!0}),c(p)!=="svelte-sv4vin"&&(p.textContent=H),N=i(F),h=r(F,"DIV",{class:!0,"data-svelte-h":!0}),c(h)!=="svelte-pz0dbb"&&(h.innerHTML=re),F.forEach(u),U=i(B),l=r(B,"DIV",{class:!0});var n=V(l);y=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),c(y)!=="svelte-1me9jmo"&&(y.textContent=ne),J=i(n),w=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),c(w)!=="svelte-1ho9i2z"&&(w.textContent=oe),K=i(n),C=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),c(C)!=="svelte-1sj2l4z"&&(C.textContent=ie),Q=i(n),A=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),c(A)!=="svelte-yd78nx"&&(A.textContent=de),W=i(n),k=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),c(k)!=="svelte-zz9yjp"&&(k.textContent=ce),X=i(n),M=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),c(M)!=="svelte-z9wl3r"&&(M.textContent=ue),Y=i(n),j=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),c(j)!=="svelte-1u3kp53"&&(j.textContent=xe),Z=i(n),I=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),c(I)!=="svelte-1yq8r9j"&&(I.textContent=fe),ee=i(n),E=r(n,"A",{href:!0,class:!0,"data-svelte-h":!0}),c(E)!=="svelte-14fua0o"&&(E.textContent=he),n.forEach(u),B.forEach(u),ge.forEach(u),x.forEach(u),G=i(s),z=r(s,"MAIN",{class:!0});var be=V(z);g=r(be,"DIV",{class:!0});var R=V(g);L=r(R,"INPUT",{id:!0,type:!0,class:!0}),te=i(R),O=r(R,"DIV",{class:!0});var _e=V(O);d&&d.l(_e),_e.forEach(u),se=i(R),D=r(R,"DIV",{class:!0,"data-svelte-h":!0}),c(D)!=="svelte-1yk067b"&&(D.innerHTML=ve),R.forEach(u),be.forEach(u),q=i(s),T=r(s,"FOOTER",{class:!0,"data-svelte-h":!0}),c(T)!=="svelte-1yg0fuy"&&(T.innerHTML=me),this.h()},h(){e(p,"href","/"),e(p,"class","text-3xl font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-orange-300 to-orange-200 uppercase"),e(h,"class","flex md:hidden"),e(f,"class","flex items-center justify-between"),e(y,"href","/evenements"),e(y,"class","text-gray-100 hover:text-orange-300 flex md:hidden"),e(w,"href","/membres"),e(w,"class","text-gray-100 hover:text-orange-300 flex md:hidden"),e(C,"href","/outils"),e(C,"class","text-gray-100 hover:text-orange-300 flex md:hidden"),e(A,"href","/guides"),e(A,"class","text-gray-100 hover:text-orange-300 flex md:hidden"),e(k,"href","/articles"),e(k,"class","text-gray-100 hover:text-orange-300 flex md:hidden"),e(M,"href","/reseaux"),e(M,"class","text-gray-100 hover:text-orange-300 flex md:hidden"),e(j,"href","/ressources"),e(j,"class","text-gray-100 hover:text-orange-300 flex md:hidden"),e(I,"href","/presse"),e(I,"class","text-gray-100 hover:text-orange-300 flex md:hidden"),e(E,"href","/contacts"),e(E,"class","text-gray-100 hover:text-orange-300 flex md:hidden"),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 "+(_[0]?"flex":"hidden")),e(m,"class","pl-8 py-2 md:flex md:justify-between md:items-center pr-8"),e(b,"class","bg-neutral-800 dark:bg-base-300"),e(L,"id","my-drawer-2"),e(L,"type","checkbox"),e(L,"class","drawer-toggle"),e(O,"class","drawer-content space-y-4 flex flex-col lg:px-16 px-4 py-8"),e(D,"class","drawer-side"),e(g,"class","drawer lg:drawer-open"),e(z,"class","bg-gray-100 dark:bg-base-100"),e(T,"class","footer ml-0 pl-0 pb-4 pt-4 bg-neutral-800 dark:bg-base-300 justify-between pr-16")},m(s,x){P(s,v,x),t(v,b),t(b,m),t(m,f),t(f,p),t(f,N),t(f,h),t(m,U),t(m,l),t(l,y),t(l,J),t(l,w),t(l,K),t(l,C),t(l,Q),t(l,A),t(l,W),t(l,k),t(l,X),t(l,M),t(l,Y),t(l,j),t(l,Z),t(l,I),t(l,ee),t(l,E),P(s,G,x),P(s,z,x),t(z,g),t(g,L),t(g,te),t(g,O),d&&d.m(O,null),t(g,se),t(g,D),P(s,q,x),P(s,T,x),$=!0,le||(pe=Ie(h,"click",_[1]),le=!0)},p(s,[x]){(!$||x&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),d&&d.p&&(!$||x&8)&&Ce(d,ae,s,s[3],$?ke(ae,s[3],x,null):Ae(s[3]),null)},i(s){$||(Ee(d,s),$=!0)},o(s){Te(d,s),$=!1},d(s){s&&(u(v),u(G),u(z),u(q),u(T)),d&&d.d(s),le=!1,pe()}}}function De(_,v,b){let{$$slots:m={},$$scope:f}=v;const p=!0;let H=!1;function N(){b(0,H=!H)}return _.$$set=h=>{"$$scope"in h&&b(3,f=h.$$scope)},[H,N,p,f,m]}class Oe extends Me{constructor(v){super(),je(this,v,De,ze,ye,{prerender:2})}get prerender(){return this.$$.ctx[2]}}export{Oe as component,Le as universal};
diff --git a/dist/_app/immutable/nodes/0.uMzUYRGs.js.br b/dist/_app/immutable/nodes/0.uMzUYRGs.js.br
new file mode 100644
index 0000000..e895bf4
Binary files /dev/null and b/dist/_app/immutable/nodes/0.uMzUYRGs.js.br differ
diff --git a/dist/_app/immutable/nodes/0.uMzUYRGs.js.gz b/dist/_app/immutable/nodes/0.uMzUYRGs.js.gz
new file mode 100644
index 0000000..0481068
Binary files /dev/null and b/dist/_app/immutable/nodes/0.uMzUYRGs.js.gz differ
diff --git a/dist/_app/immutable/nodes/1.pZvj6-CS.js.br b/dist/_app/immutable/nodes/1.pZvj6-CS.js.br
deleted file mode 100644
index 8aa4b23..0000000
Binary files a/dist/_app/immutable/nodes/1.pZvj6-CS.js.br and /dev/null differ
diff --git a/dist/_app/immutable/nodes/1.pZvj6-CS.js.gz b/dist/_app/immutable/nodes/1.pZvj6-CS.js.gz
deleted file mode 100644
index cf6c64c..0000000
Binary files a/dist/_app/immutable/nodes/1.pZvj6-CS.js.gz and /dev/null differ
diff --git a/dist/_app/immutable/nodes/1.pZvj6-CS.js b/dist/_app/immutable/nodes/1.tUBg_osC.js
similarity index 89%
rename from dist/_app/immutable/nodes/1.pZvj6-CS.js
rename to dist/_app/immutable/nodes/1.tUBg_osC.js
index 21109de..79d1c7b 100644
--- a/dist/_app/immutable/nodes/1.pZvj6-CS.js
+++ b/dist/_app/immutable/nodes/1.tUBg_osC.js
@@ -1 +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.ciNBPAxl.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};
+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.AIcdAWo0.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.tUBg_osC.js.br b/dist/_app/immutable/nodes/1.tUBg_osC.js.br
new file mode 100644
index 0000000..96725c3
Binary files /dev/null and b/dist/_app/immutable/nodes/1.tUBg_osC.js.br differ
diff --git a/dist/_app/immutable/nodes/1.tUBg_osC.js.gz b/dist/_app/immutable/nodes/1.tUBg_osC.js.gz
new file mode 100644
index 0000000..82ade11
Binary files /dev/null and b/dist/_app/immutable/nodes/1.tUBg_osC.js.gz differ
diff --git a/dist/_app/immutable/nodes/8.WpdHpzGp.js b/dist/_app/immutable/nodes/10.FW_xLFIP.js
similarity index 98%
rename from dist/_app/immutable/nodes/8.WpdHpzGp.js
rename to dist/_app/immutable/nodes/10.FW_xLFIP.js
index 6a7ce06..0feb580 100644
--- a/dist/_app/immutable/nodes/8.WpdHpzGp.js
+++ b/dist/_app/immutable/nodes/10.FW_xLFIP.js
@@ -1 +1 @@
-import{s as N,e as F,n as I}from"../chunks/scheduler.aZRR5A_O.js";import{S as O,i as Y,g,s as j,m as S,h as _,j as w,f as d,c as x,n as V,k as p,a as z,y as h,o as G,A as K,x as T,d as A,b as Z,t as M,B as Q,r as U,u as W,v as X,w as $,p as ee}from"../chunks/index.ciNBPAxl.js";import{e as L}from"../chunks/each.-oqiv04n.js";import{s as te}from"../chunks/utils.Tkfr06Vk.js";function ae(o){let t,a,c,n,i,m,f,e,E,s,l,r,b,D,y,B;return{c(){t=g("div"),a=g("div"),c=j(),n=g("div"),i=g("img"),f=j(),e=g("h5"),E=S(o[1]),s=j(),l=g("span"),r=S(o[3]),b=j(),D=g("div"),y=g("a"),B=S("Site"),this.h()},l(v){t=_(v,"DIV",{class:!0});var u=w(t);a=_(u,"DIV",{class:!0}),w(a).forEach(d),c=x(u),n=_(u,"DIV",{class:!0});var k=w(n);i=_(k,"IMG",{class:!0,src:!0,alt:!0}),f=x(k),e=_(k,"H5",{class:!0});var P=w(e);E=V(P,o[1]),P.forEach(d),s=x(k),l=_(k,"SPAN",{class:!0});var R=w(l);r=V(R,o[3]),R.forEach(d),b=x(k),D=_(k,"DIV",{class:!0});var C=w(D);y=_(C,"A",{href:!0,class:!0});var J=w(y);B=V(J,"Site"),J.forEach(d),C.forEach(d),k.forEach(d),u.forEach(d),this.h()},h(){p(a,"class","flex justify-end px-4 pt-4"),p(i,"class","w-24 h-24 mb-3 rounded-full shadow-lg"),F(i.src,m=o[0])||p(i,"src",m),p(i,"alt","Portrait"),p(e,"class","mb-1 text-xl font-medium text-gray-900 dark:text-white"),p(l,"class","text-sm text-gray-500 dark:text-gray-400"),p(y,"href",o[2]),p(y,"class","btn btn-tertiary"),p(D,"class","flex mt-4 space-x-3 md:mt-6"),p(n,"class","flex flex-col items-center pb-10"),p(t,"class","mx-2 w-72 my-4 bg-base-300 dark:bg-base-300 border border-gray-200 rounded-lg shadow dark:border-gray-700")},m(v,u){z(v,t,u),h(t,a),h(t,c),h(t,n),h(n,i),h(n,f),h(n,e),h(e,E),h(n,s),h(n,l),h(l,r),h(n,b),h(n,D),h(D,y),h(y,B)},p(v,[u]){u&1&&!F(i.src,m=v[0])&&p(i,"src",m),u&2&&G(E,v[1]),u&8&&G(r,v[3]),u&4&&p(y,"href",v[2])},i:I,o:I,d(v){v&&d(t)}}}function se(o,t,a){let{image:c}=t,{name:n}=t,{mail:i}=t,{site:m}=t,{description:f}=t;return o.$$set=e=>{"image"in e&&a(0,c=e.image),"name"in e&&a(1,n=e.name),"mail"in e&&a(4,i=e.mail),"site"in e&&a(2,m=e.site),"description"in e&&a(3,f=e.description)},[c,n,m,f,i]}class ie extends O{constructor(t){super(),Y(this,t,se,ae,N,{image:0,name:1,mail:4,site:2,description:3})}}const re=[{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 q(o,t,a){const c=o.slice();return c[1]=t[a].name,c[2]=t[a].description,c[3]=t[a].image,c[4]=t[a].site,c[5]=t[a].mail,c[7]=a,c}function H(o){let t,a,c,n;return a=new ie({props:{name:o[1],description:o[2],image:o[3],site:o[4],mail:o[5]}}),{c(){t=g("div"),U(a.$$.fragment),c=j()},l(i){t=_(i,"DIV",{});var m=w(t);W(a.$$.fragment,m),c=x(m),m.forEach(d)},m(i,m){z(i,t,m),X(a,t,null),h(t,c),n=!0},p:I,i(i){n||(A(a.$$.fragment,i),n=!0)},o(i){M(a.$$.fragment,i),n=!1},d(i){i&&d(t),$(a)}}}function ne(o){let t,a,c="Membres",n,i,m,f=L(o[0]),e=[];for(let s=0;sM(e[s],1,1,()=>{e[s]=null});return{c(){t=j(),a=g("h1"),a.textContent=c,n=j(),i=g("div");for(let s=0;s{"image"in e&&a(0,c=e.image),"name"in e&&a(1,n=e.name),"mail"in e&&a(4,i=e.mail),"site"in e&&a(2,m=e.site),"description"in e&&a(3,f=e.description)},[c,n,m,f,i]}class ie extends O{constructor(t){super(),Y(this,t,se,ae,N,{image:0,name:1,mail:4,site:2,description:3})}}const re=[{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 q(o,t,a){const c=o.slice();return c[1]=t[a].name,c[2]=t[a].description,c[3]=t[a].image,c[4]=t[a].site,c[5]=t[a].mail,c[7]=a,c}function H(o){let t,a,c,n;return a=new ie({props:{name:o[1],description:o[2],image:o[3],site:o[4],mail:o[5]}}),{c(){t=g("div"),U(a.$$.fragment),c=j()},l(i){t=_(i,"DIV",{});var m=w(t);W(a.$$.fragment,m),c=x(m),m.forEach(d)},m(i,m){z(i,t,m),X(a,t,null),h(t,c),n=!0},p:I,i(i){n||(A(a.$$.fragment,i),n=!0)},o(i){M(a.$$.fragment,i),n=!1},d(i){i&&d(t),$(a)}}}function ne(o){let t,a,c="Membres",n,i,m,f=L(o[0]),e=[];for(let s=0;sM(e[s],1,1,()=>{e[s]=null});return{c(){t=j(),a=g("h1"),a.textContent=c,n=j(),i=g("div");for(let s=0;slive 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 u=y(r[0]),t=[];for(let e=0;e_(t[e],1,1,()=>{t[e]=null});return{c(){n=v(),a=I("h1"),a.textContent=o,c=v(),w(l.$$.fragment),g=v();for(let e=0;elive coding, consulter Awesome LiveCoding. Pour élargir un petit peu, consultez également Awesome Music.',h,g,c,w="Éditez le site pour rajouter votre outil ! Toutes les contributions sont acceptées !",f,m=T(a[0]),t=[];for(let e=0;ex(t[e],1,1,()=>{t[e]=null});return{c(){r=v(),i=C("h1"),i.textContent=o,d=v(),u=C("p"),u.innerHTML=y,h=v();for(let e=0;elive coding, consulter Awesome LiveCoding. Pour élargir un petit peu, consultez également Awesome Music.',h,g,c,q="Éditez le site pour rajouter votre outil ! Toutes les contributions sont acceptées !",f,m=A(a[0]),t=[];for(let e=0;eS(t[e],1,1,()=>{t[e]=null});return{c(){i=v(),o=C("h1"),o.textContent=s,d=v(),u=C("p"),u.innerHTML=k,h=v();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||(y(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;re.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||(y(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
+import{s as M,n as P}from"../chunks/scheduler.aZRR5A_O.js";import{S,i as T,s as m,g as d,r as y,A as R,f as s,c as p,h as f,x as g,u as j,a as l,v as F,d as I,t as U,w as k}from"../chunks/index.AIcdAWo0.js";import{I as z}from"../chunks/Info.bs_Ss2Q-.js";function O(H){let c,n,L="Ressources",v,i,h,o,w="Sites internet",_,r,q=`
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
diff --git a/dist/_app/immutable/nodes/14.ELzCsYqP.js.br b/dist/_app/immutable/nodes/14.ELzCsYqP.js.br
new file mode 100644
index 0000000..e296dff
Binary files /dev/null and b/dist/_app/immutable/nodes/14.ELzCsYqP.js.br differ
diff --git a/dist/_app/immutable/nodes/14.ELzCsYqP.js.gz b/dist/_app/immutable/nodes/14.ELzCsYqP.js.gz
new file mode 100644
index 0000000..137b558
Binary files /dev/null and b/dist/_app/immutable/nodes/14.ELzCsYqP.js.gz differ
diff --git a/dist/_app/immutable/nodes/2.YD8HTYt7.js b/dist/_app/immutable/nodes/2.RD5SDQWd.js
similarity index 98%
rename from dist/_app/immutable/nodes/2.YD8HTYt7.js
rename to dist/_app/immutable/nodes/2.RD5SDQWd.js
index 0c8ee88..de05b9e 100644
--- a/dist/_app/immutable/nodes/2.YD8HTYt7.js
+++ b/dist/_app/immutable/nodes/2.RD5SDQWd.js
@@ -1 +1 @@
-import{s as B,n as j}from"../chunks/scheduler.aZRR5A_O.js";import{S as k,i as O,s as n,g as f,r as R,A as E,f as i,c as o,h as v,x as h,u as F,a as s,v as S,d as D,t as G,w as N}from"../chunks/index.ciNBPAxl.js";import{I as Q}from"../chunks/Info.NO-uVT9H.js";function V(z){let q,r,H="Qu’est-ce que le live-coding ?",g,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,$="À propos de ce site",b,m,y='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 ?",w,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.',P;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(){q=n(),r=f("h1"),r.textContent=H,g=n(),R(a.$$.fragment),x=n(),l=f("p"),l.innerHTML=T,_=n(),u=f("h1"),u.textContent=$,b=n(),m=f("p"),m.innerHTML=y,C=n(),p=f("p"),p.textContent=M,L=n(),c=f("h1"),c.textContent=I,w=n(),d=f("p"),d.innerHTML=A,this.h()},l(e){E("svelte-si4wcq",document.head).forEach(i),q=o(e),r=v(e,"H1",{"data-svelte-h":!0}),h(r)!=="svelte-z12tl4"&&(r.textContent=H),g=o(e),F(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=$),b=o(e),m=v(e,"P",{"data-svelte-h":!0}),h(m)!=="svelte-ffh2di"&&(m.innerHTML=y),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),w=o(e),d=v(e,"P",{"data-svelte-h":!0}),h(d)!=="svelte-1ht7736"&&(d.innerHTML=A),this.h()},h(){document.title="LC.FR"},m(e,t){s(e,q,t),s(e,r,t),s(e,g,t),S(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,w,t),s(e,d,t),P=!0},p:j,i(e){P||(D(a.$$.fragment,e),P=!0)},o(e){G(a.$$.fragment,e),P=!1},d(e){e&&(i(q),i(r),i(g),i(x),i(l),i(_),i(u),i(b),i(m),i(C),i(p),i(L),i(c),i(w),i(d)),N(a,e)}}}class U extends k{constructor(q){super(),O(this,q,null,V,B,{})}}export{U as component};
+import{s as B,n as j}from"../chunks/scheduler.aZRR5A_O.js";import{S as k,i as O,s as n,g as f,r as R,A as E,f as i,c as o,h as v,x as h,u as F,a as s,v as S,d as D,t as G,w as N}from"../chunks/index.AIcdAWo0.js";import{I as Q}from"../chunks/Info.bs_Ss2Q-.js";function V(z){let q,r,H="Qu’est-ce que le live-coding ?",g,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,$="À propos de ce site",b,m,y='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 ?",w,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.',P;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(){q=n(),r=f("h1"),r.textContent=H,g=n(),R(a.$$.fragment),x=n(),l=f("p"),l.innerHTML=T,_=n(),u=f("h1"),u.textContent=$,b=n(),m=f("p"),m.innerHTML=y,C=n(),p=f("p"),p.textContent=M,L=n(),c=f("h1"),c.textContent=I,w=n(),d=f("p"),d.innerHTML=A,this.h()},l(e){E("svelte-si4wcq",document.head).forEach(i),q=o(e),r=v(e,"H1",{"data-svelte-h":!0}),h(r)!=="svelte-z12tl4"&&(r.textContent=H),g=o(e),F(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=$),b=o(e),m=v(e,"P",{"data-svelte-h":!0}),h(m)!=="svelte-ffh2di"&&(m.innerHTML=y),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),w=o(e),d=v(e,"P",{"data-svelte-h":!0}),h(d)!=="svelte-1ht7736"&&(d.innerHTML=A),this.h()},h(){document.title="LC.FR"},m(e,t){s(e,q,t),s(e,r,t),s(e,g,t),S(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,w,t),s(e,d,t),P=!0},p:j,i(e){P||(D(a.$$.fragment,e),P=!0)},o(e){G(a.$$.fragment,e),P=!1},d(e){e&&(i(q),i(r),i(g),i(x),i(l),i(_),i(u),i(b),i(m),i(C),i(p),i(L),i(c),i(w),i(d)),N(a,e)}}}class U extends k{constructor(q){super(),O(this,q,null,V,B,{})}}export{U as component};
diff --git a/dist/_app/immutable/nodes/2.RD5SDQWd.js.br b/dist/_app/immutable/nodes/2.RD5SDQWd.js.br
new file mode 100644
index 0000000..8aaaf9d
Binary files /dev/null and b/dist/_app/immutable/nodes/2.RD5SDQWd.js.br differ
diff --git a/dist/_app/immutable/nodes/2.RD5SDQWd.js.gz b/dist/_app/immutable/nodes/2.RD5SDQWd.js.gz
new file mode 100644
index 0000000..7bf4832
Binary files /dev/null and b/dist/_app/immutable/nodes/2.RD5SDQWd.js.gz differ
diff --git a/dist/_app/immutable/nodes/2.YD8HTYt7.js.br b/dist/_app/immutable/nodes/2.YD8HTYt7.js.br
deleted file mode 100644
index 4c8b27f..0000000
Binary files a/dist/_app/immutable/nodes/2.YD8HTYt7.js.br and /dev/null differ
diff --git a/dist/_app/immutable/nodes/2.YD8HTYt7.js.gz b/dist/_app/immutable/nodes/2.YD8HTYt7.js.gz
deleted file mode 100644
index 8722c33..0000000
Binary files a/dist/_app/immutable/nodes/2.YD8HTYt7.js.gz and /dev/null differ
diff --git a/dist/_app/immutable/nodes/3.qqim2H7R.js b/dist/_app/immutable/nodes/3.48xp-1q7.js
similarity index 98%
rename from dist/_app/immutable/nodes/3.qqim2H7R.js
rename to dist/_app/immutable/nodes/3.48xp-1q7.js
index 82788f4..21d43bb 100644
--- a/dist/_app/immutable/nodes/3.qqim2H7R.js
+++ b/dist/_app/immutable/nodes/3.48xp-1q7.js
@@ -1 +1 @@
-import{s as z,n as B}from"../chunks/scheduler.aZRR5A_O.js";import{S as k,i as O,s as n,g as f,r as E,A 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.ciNBPAxl.js";import{I as Q}from"../chunks/Info.NO-uVT9H.js";function V(j){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,A="Comment contribuer ?",P,d,I='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=A,P=n(),d=f("p"),d.innerHTML=I,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=A),P=o(e),d=v(e,"P",{"data-svelte-h":!0}),h(d)!=="svelte-1ht7736"&&(d.innerHTML=I),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:B,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,z,{})}}export{U as component};
+import{s as z,n as B}from"../chunks/scheduler.aZRR5A_O.js";import{S as k,i as O,s as n,g as f,r as E,A 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.AIcdAWo0.js";import{I as Q}from"../chunks/Info.bs_Ss2Q-.js";function V(j){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,A="Comment contribuer ?",P,d,I='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=A,P=n(),d=f("p"),d.innerHTML=I,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=A),P=o(e),d=v(e,"P",{"data-svelte-h":!0}),h(d)!=="svelte-1ht7736"&&(d.innerHTML=I),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:B,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,z,{})}}export{U as component};
diff --git a/dist/_app/immutable/nodes/3.48xp-1q7.js.br b/dist/_app/immutable/nodes/3.48xp-1q7.js.br
new file mode 100644
index 0000000..ded730b
Binary files /dev/null and b/dist/_app/immutable/nodes/3.48xp-1q7.js.br differ
diff --git a/dist/_app/immutable/nodes/3.48xp-1q7.js.gz b/dist/_app/immutable/nodes/3.48xp-1q7.js.gz
new file mode 100644
index 0000000..c4ced45
Binary files /dev/null and b/dist/_app/immutable/nodes/3.48xp-1q7.js.gz differ
diff --git a/dist/_app/immutable/nodes/3.qqim2H7R.js.br b/dist/_app/immutable/nodes/3.qqim2H7R.js.br
deleted file mode 100644
index 065faff..0000000
Binary files a/dist/_app/immutable/nodes/3.qqim2H7R.js.br and /dev/null differ
diff --git a/dist/_app/immutable/nodes/3.qqim2H7R.js.gz b/dist/_app/immutable/nodes/3.qqim2H7R.js.gz
deleted file mode 100644
index dc5bb9a..0000000
Binary files a/dist/_app/immutable/nodes/3.qqim2H7R.js.gz and /dev/null differ
diff --git a/dist/_app/immutable/nodes/4.CPFN9ZRQ.js.br b/dist/_app/immutable/nodes/4.CPFN9ZRQ.js.br
deleted file mode 100644
index 5a5d929..0000000
Binary files a/dist/_app/immutable/nodes/4.CPFN9ZRQ.js.br and /dev/null differ
diff --git a/dist/_app/immutable/nodes/4.CPFN9ZRQ.js.gz b/dist/_app/immutable/nodes/4.CPFN9ZRQ.js.gz
deleted file mode 100644
index 0f81099..0000000
Binary files a/dist/_app/immutable/nodes/4.CPFN9ZRQ.js.gz and /dev/null differ
diff --git a/dist/_app/immutable/nodes/4.uhJTyLRn.js b/dist/_app/immutable/nodes/4.uhJTyLRn.js
new file mode 100644
index 0000000..684e414
--- /dev/null
+++ b/dist/_app/immutable/nodes/4.uhJTyLRn.js
@@ -0,0 +1 @@
+import{s as B}from"../chunks/scheduler.aZRR5A_O.js";import{S as D,i as M,g as $,s as P,r as T,h as k,x as z,c as j,u as U,j as E,f as h,a as g,v as F,d as G,t as J,w as K,B as N,m as y,n as w,k as S,y as v,o as A}from"../chunks/index.AIcdAWo0.js";import{e as L}from"../chunks/each.-oqiv04n.js";import{I as Q}from"../chunks/Info.bs_Ss2Q-.js";const R=async({fetch:o})=>({articles:await(await o("/api/articles")).json()}),te=Object.freeze(Object.defineProperty({__proto__:null,load:R},Symbol.toStringTag,{value:"Module"}));function O(o,t,c){const s=o.slice();return s[1]=t[c],s}function q(o){let t,c,s,r=o[1].meta.title+"",b,u,x,i,m,d=o[1].meta.date+"",p,l,e=o[1].meta.author+"",n,a;return{c(){t=$("li"),c=$("h2"),s=$("a"),b=y(r),x=P(),i=$("p"),m=y("Publié le : "),p=y(d),l=y(" par "),n=y(e),a=P(),this.h()},l(f){t=k(f,"LI",{class:!0});var _=E(t);c=k(_,"H2",{});var H=E(c);s=k(H,"A",{href:!0});var I=E(s);b=w(I,r),I.forEach(h),H.forEach(h),x=j(_),i=k(_,"P",{class:!0});var C=E(i);m=w(C,"Publié le : "),p=w(C,d),l=w(C," par "),n=w(C,e),C.forEach(h),a=j(_),_.forEach(h),this.h()},h(){S(s,"href",u=o[1].path),S(i,"class","pt-2"),S(t,"class","px-4 pb-4 my-4 rounded-lg bg-base-300 dark:bg-base-300 hover:bg-base-200 hover:dark:bg-base-200 border-1 border-color-base-100")},m(f,_){g(f,t,_),v(t,c),v(c,s),v(s,b),v(t,x),v(t,i),v(i,m),v(i,p),v(i,l),v(i,n),v(t,a)},p(f,_){_&1&&r!==(r=f[1].meta.title+"")&&A(b,r),_&1&&u!==(u=f[1].path)&&S(s,"href",u),_&1&&d!==(d=f[1].meta.date+"")&&A(p,d),_&1&&e!==(e=f[1].meta.author+"")&&A(n,e)},d(f){f&&h(t)}}}function V(o){let t,c="Articles",s,r,b,u,x="Articles publiés",i,m,d;r=new Q({props:{info:"Dada.",markdown:"false"}});let p=L(o[0].articles),l=[];for(let e=0;e
{"data"in r&&c(0,s=r.data)},[s]}class ae extends D{constructor(t){super(),M(this,t,W,V,B,{data:0})}}export{ae as component,te as universal};
diff --git a/dist/_app/immutable/nodes/4.uhJTyLRn.js.br b/dist/_app/immutable/nodes/4.uhJTyLRn.js.br
new file mode 100644
index 0000000..232a1f0
Binary files /dev/null and b/dist/_app/immutable/nodes/4.uhJTyLRn.js.br differ
diff --git a/dist/_app/immutable/nodes/4.uhJTyLRn.js.gz b/dist/_app/immutable/nodes/4.uhJTyLRn.js.gz
new file mode 100644
index 0000000..9b239e3
Binary files /dev/null and b/dist/_app/immutable/nodes/4.uhJTyLRn.js.gz differ
diff --git a/dist/_app/immutable/nodes/5.AXV32Mz_.js b/dist/_app/immutable/nodes/5.AXV32Mz_.js
new file mode 100644
index 0000000..f8f9510
--- /dev/null
+++ b/dist/_app/immutable/nodes/5.AXV32Mz_.js
@@ -0,0 +1,7 @@
+import{_ as K}from"../chunks/preload-helper.0HuHagjb.js";import{_ as N}from"../chunks/dynamic-import-helper.0gtGTknh.js";import{s as Q}from"../chunks/scheduler.aZRR5A_O.js";import{S as U,i as W,q as z,g as h,m as y,s as q,r as M,h as v,j as g,n as w,f as d,c as C,u as X,k as D,a as Y,y as r,v as B,o as H,t as F,b as Z,d as G,w as J,p as tt}from"../chunks/index.AIcdAWo0.js";async function et({params:o}){const e=await N(Object.assign({"../ordinateur_crier.md":()=>K(()=>import("../chunks/ordinateur_crier.w4EusLTJ.js"),__vite__mapDeps([0,1,2]),import.meta.url)}),`../${o.slug}.md`),{title:i,date:s,author:l}=e.metadata,$=e.default;return{title:i,date:s,author:l,content:$}}const lt=Object.freeze(Object.defineProperty({__proto__:null,load:et},Symbol.toStringTag,{value:"Module"}));function at(o){let e,i,s=o[0].title+"",l,$,c,u,O,b=o[0].date+"",j,S,_,R,E=o[0].author+"",I,T,f,t,m;var p=o[0].content;function L(a,n){return{}}return p&&(t=z(p,L())),{c(){e=h("article"),i=h("h1"),l=y(s),$=q(),c=h("div"),u=h("p"),O=y("Publié le : "),j=y(b),S=q(),_=h("p"),R=y("Auteur : "),I=y(E),T=q(),f=h("div"),t&&M(t.$$.fragment),this.h()},l(a){e=v(a,"ARTICLE",{});var n=g(e);i=v(n,"H1",{});var P=g(i);l=w(P,s),P.forEach(d),$=C(n),c=v(n,"DIV",{class:!0});var A=g(c);u=v(A,"P",{class:!0});var V=g(u);O=w(V,"Publié le : "),j=w(V,b),V.forEach(d),S=C(A),_=v(A,"P",{class:!0});var k=g(_);R=w(k,"Auteur : "),I=w(k,E),k.forEach(d),A.forEach(d),T=C(n),f=v(n,"DIV",{class:!0});var x=g(f);t&&X(t.$$.fragment,x),x.forEach(d),n.forEach(d),this.h()},h(){D(u,"class","inline font-bold"),D(_,"class","inline font-bold"),D(c,"class","pt-4 flex justify-between mb-12"),D(f,"class","px-12 content-center")},m(a,n){Y(a,e,n),r(e,i),r(i,l),r(e,$),r(e,c),r(c,u),r(u,O),r(u,j),r(c,S),r(c,_),r(_,R),r(_,I),r(e,T),r(e,f),t&&B(t,f,null),m=!0},p(a,[n]){if((!m||n&1)&&s!==(s=a[0].title+"")&&H(l,s),(!m||n&1)&&b!==(b=a[0].date+"")&&H(j,b),(!m||n&1)&&E!==(E=a[0].author+"")&&H(I,E),n&1&&p!==(p=a[0].content)){if(t){tt();const P=t;F(P.$$.fragment,1,0,()=>{J(P,1)}),Z()}p?(t=z(p,L()),M(t.$$.fragment),G(t.$$.fragment,1),B(t,f,null)):t=null}},i(a){m||(t&&G(t.$$.fragment,a),m=!0)},o(a){t&&F(t.$$.fragment,a),m=!1},d(a){a&&d(e),t&&J(t)}}}function nt(o,e,i){let{data:s}=e;return o.$$set=l=>{"data"in l&&i(0,s=l.data)},[s]}class ct extends U{constructor(e){super(),W(this,e,nt,at,Q,{data:0})}}export{ct as component,lt as universal};
+function __vite__mapDeps(indexes) {
+ if (!__vite__mapDeps.viteFileDeps) {
+ __vite__mapDeps.viteFileDeps = ["../chunks/ordinateur_crier.w4EusLTJ.js","../chunks/scheduler.aZRR5A_O.js","../chunks/index.AIcdAWo0.js"]
+ }
+ return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
+}
\ No newline at end of file
diff --git a/dist/_app/immutable/nodes/5.AXV32Mz_.js.br b/dist/_app/immutable/nodes/5.AXV32Mz_.js.br
new file mode 100644
index 0000000..0fdb947
Binary files /dev/null and b/dist/_app/immutable/nodes/5.AXV32Mz_.js.br differ
diff --git a/dist/_app/immutable/nodes/5.AXV32Mz_.js.gz b/dist/_app/immutable/nodes/5.AXV32Mz_.js.gz
new file mode 100644
index 0000000..f9d2d14
Binary files /dev/null and b/dist/_app/immutable/nodes/5.AXV32Mz_.js.gz differ
diff --git a/dist/_app/immutable/nodes/5.LhrW8NTK.js.br b/dist/_app/immutable/nodes/5.LhrW8NTK.js.br
deleted file mode 100644
index 66f20d0..0000000
Binary files a/dist/_app/immutable/nodes/5.LhrW8NTK.js.br and /dev/null differ
diff --git a/dist/_app/immutable/nodes/5.LhrW8NTK.js.gz b/dist/_app/immutable/nodes/5.LhrW8NTK.js.gz
deleted file mode 100644
index b860403..0000000
Binary files a/dist/_app/immutable/nodes/5.LhrW8NTK.js.gz and /dev/null differ
diff --git a/dist/_app/immutable/nodes/4.CPFN9ZRQ.js b/dist/_app/immutable/nodes/6.9JEuxLd_.js
similarity index 96%
rename from dist/_app/immutable/nodes/4.CPFN9ZRQ.js
rename to dist/_app/immutable/nodes/6.9JEuxLd_.js
index 6cf6cce..cfdaeea 100644
--- a/dist/_app/immutable/nodes/4.CPFN9ZRQ.js
+++ b/dist/_app/immutable/nodes/6.9JEuxLd_.js
@@ -1 +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,A as P,f as s,c as p,h as m,x as h,k as T,a}from"../chunks/index.ciNBPAxl.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 k extends L{constructor(n){super(),b(this,n,null,w,x,{})}}export{k as component};
+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,A as P,f as s,c as p,h as m,x as h,k as T,a}from"../chunks/index.AIcdAWo0.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 k extends L{constructor(n){super(),b(this,n,null,w,x,{})}}export{k as component};
diff --git a/dist/_app/immutable/nodes/6.9JEuxLd_.js.br b/dist/_app/immutable/nodes/6.9JEuxLd_.js.br
new file mode 100644
index 0000000..0597861
Binary files /dev/null and b/dist/_app/immutable/nodes/6.9JEuxLd_.js.br differ
diff --git a/dist/_app/immutable/nodes/6.9JEuxLd_.js.gz b/dist/_app/immutable/nodes/6.9JEuxLd_.js.gz
new file mode 100644
index 0000000..6318a0c
Binary files /dev/null and b/dist/_app/immutable/nodes/6.9JEuxLd_.js.gz differ
diff --git a/dist/_app/immutable/nodes/6.uAKuUh7A.js.br b/dist/_app/immutable/nodes/6.uAKuUh7A.js.br
deleted file mode 100644
index ff12d9c..0000000
Binary files a/dist/_app/immutable/nodes/6.uAKuUh7A.js.br and /dev/null differ
diff --git a/dist/_app/immutable/nodes/6.uAKuUh7A.js.gz b/dist/_app/immutable/nodes/6.uAKuUh7A.js.gz
deleted file mode 100644
index 2a088e3..0000000
Binary files a/dist/_app/immutable/nodes/6.uAKuUh7A.js.gz and /dev/null differ
diff --git a/dist/_app/immutable/nodes/7.1t__7h1j.js b/dist/_app/immutable/nodes/7.1t__7h1j.js
deleted file mode 100644
index b36c98e..0000000
--- a/dist/_app/immutable/nodes/7.1t__7h1j.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import{_ as J}from"../chunks/preload-helper.0HuHagjb.js";import{s as K}from"../chunks/scheduler.aZRR5A_O.js";import{S as N,i as Q,q as x,g as v,m as P,s as R,r as z,h,j as g,n as w,f as d,c as V,u as W,k as q,a as X,y as r,v as U,o as C,t as B,b as Y,d as F,w as G,p as Z}from"../chunks/index.ciNBPAxl.js";const tt=(s,t)=>{const n=s[t];return n?typeof n=="function"?n():Promise.resolve(n):new Promise((i,l)=>{(typeof queueMicrotask=="function"?queueMicrotask:setTimeout)(l.bind(null,new Error("Unknown variable dynamic import: "+t)))})};async function et({params:s}){const t=await tt(Object.assign({"../proposer_guide.md":()=>J(()=>import("../chunks/proposer_guide.jq4D-DxX.js"),__vite__mapDeps([0,1,2]),import.meta.url)}),`../${s.slug}.md`),{title:n,date:i,author:l}=t.metadata,$=t.default;return{title:n,date:i,author:l,content:$}}const it=Object.freeze(Object.defineProperty({__proto__:null,load:et},Symbol.toStringTag,{value:"Module"}));function at(s){let t,n,i=s[0].title+"",l,$,c,u,A,b=s[0].date+"",j,D,f,O,y=s[0].author+"",k,S,_,e,m;var p=s[0].content;function H(a,o){return{}}return p&&(e=x(p,H())),{c(){t=v("article"),n=v("h1"),l=P(i),$=R(),c=v("div"),u=v("p"),A=P("Publié le : "),j=P(b),D=R(),f=v("p"),O=P("Auteur : "),k=P(y),S=R(),_=v("div"),e&&z(e.$$.fragment),this.h()},l(a){t=h(a,"ARTICLE",{});var o=g(t);n=h(o,"H1",{});var E=g(n);l=w(E,i),E.forEach(d),$=V(o),c=h(o,"DIV",{class:!0});var I=g(c);u=h(I,"P",{class:!0});var T=g(u);A=w(T,"Publié le : "),j=w(T,b),T.forEach(d),D=V(I),f=h(I,"P",{class:!0});var M=g(f);O=w(M,"Auteur : "),k=w(M,y),M.forEach(d),I.forEach(d),S=V(o),_=h(o,"DIV",{class:!0});var L=g(_);e&&W(e.$$.fragment,L),L.forEach(d),o.forEach(d),this.h()},h(){q(u,"class","inline font-bold"),q(f,"class","inline font-bold"),q(c,"class","pt-4 flex justify-between mb-12"),q(_,"class","px-12 content-center")},m(a,o){X(a,t,o),r(t,n),r(n,l),r(t,$),r(t,c),r(c,u),r(u,A),r(u,j),r(c,D),r(c,f),r(f,O),r(f,k),r(t,S),r(t,_),e&&U(e,_,null),m=!0},p(a,[o]){if((!m||o&1)&&i!==(i=a[0].title+"")&&C(l,i),(!m||o&1)&&b!==(b=a[0].date+"")&&C(j,b),(!m||o&1)&&y!==(y=a[0].author+"")&&C(k,y),o&1&&p!==(p=a[0].content)){if(e){Z();const E=e;B(E.$$.fragment,1,0,()=>{G(E,1)}),Y()}p?(e=x(p,H()),z(e.$$.fragment),F(e.$$.fragment,1),U(e,_,null)):e=null}},i(a){m||(e&&F(e.$$.fragment,a),m=!0)},o(a){e&&B(e.$$.fragment,a),m=!1},d(a){a&&d(t),e&&G(e)}}}function nt(s,t,n){let{data:i}=t;return s.$$set=l=>{"data"in l&&n(0,i=l.data)},[i]}class lt extends N{constructor(t){super(),Q(this,t,nt,at,K,{data:0})}}export{lt as component,it as universal};
-function __vite__mapDeps(indexes) {
- if (!__vite__mapDeps.viteFileDeps) {
- __vite__mapDeps.viteFileDeps = ["../chunks/proposer_guide.jq4D-DxX.js","../chunks/scheduler.aZRR5A_O.js","../chunks/index.ciNBPAxl.js"]
- }
- return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
-}
\ No newline at end of file
diff --git a/dist/_app/immutable/nodes/7.1t__7h1j.js.br b/dist/_app/immutable/nodes/7.1t__7h1j.js.br
deleted file mode 100644
index 731d276..0000000
Binary files a/dist/_app/immutable/nodes/7.1t__7h1j.js.br and /dev/null differ
diff --git a/dist/_app/immutable/nodes/7.1t__7h1j.js.gz b/dist/_app/immutable/nodes/7.1t__7h1j.js.gz
deleted file mode 100644
index 4f5ab7d..0000000
Binary files a/dist/_app/immutable/nodes/7.1t__7h1j.js.gz and /dev/null differ
diff --git a/dist/_app/immutable/nodes/5.LhrW8NTK.js b/dist/_app/immutable/nodes/7.jrp5SQtg.js
similarity index 97%
rename from dist/_app/immutable/nodes/5.LhrW8NTK.js
rename to dist/_app/immutable/nodes/7.jrp5SQtg.js
index b146f4c..b5c102c 100644
--- a/dist/_app/immutable/nodes/5.LhrW8NTK.js
+++ b/dist/_app/immutable/nodes/7.jrp5SQtg.js
@@ -1 +1 @@
-import{s as me,n as O,e as ge}from"../chunks/scheduler.aZRR5A_O.js";import{S as pe,i as _e,g as p,m as Z,s as w,h as _,j as D,n as M,f as c,c as C,k as m,a as v,y as f,o as se,r as Q,e as ae,A as be,x as J,u as U,v as W,d as S,b as re,t as L,w as X,B as ie,p as oe}from"../chunks/index.ciNBPAxl.js";import{e as K}from"../chunks/each.-oqiv04n.js";import{I as ke}from"../chunks/Info.NO-uVT9H.js";function xe(i){let l,n,s,g=i[3][1]+"",b,I,h,d,F=i[3][0]+"",x,G,V,k,T=i[3][2]+"",$,z,u,H,N,P,j,E,o,y,q;return{c(){l=p("div"),n=p("div"),s=p("div"),b=Z(g),I=w(),h=p("div"),d=p("span"),x=Z(F),G=w(),V=p("div"),k=p("span"),$=Z(T),z=w(),u=p("div"),H=p("h3"),N=Z(i[0]),P=w(),j=p("p"),E=Z(i[1]),o=w(),y=p("a"),q=Z("Lien"),this.h()},l(r){l=_(r,"DIV",{class:!0});var A=D(l);n=_(A,"DIV",{class:!0});var e=D(n);s=_(e,"DIV",{class:!0});var a=D(s);b=M(a,g),a.forEach(c),I=C(e),h=_(e,"DIV",{class:!0});var t=D(h);d=_(t,"SPAN",{class:!0});var B=D(d);x=M(B,F),B.forEach(c),t.forEach(c),G=C(e),V=_(e,"DIV",{class:!0});var Y=D(V);k=_(Y,"SPAN",{class:!0});var ee=D(k);$=M(ee,T),ee.forEach(c),Y.forEach(c),e.forEach(c),z=C(A),u=_(A,"DIV",{class:!0});var R=D(u);H=_(R,"H3",{class:!0});var te=D(H);N=M(te,i[0]),te.forEach(c),P=C(R),j=_(R,"P",{class:!0});var le=D(j);E=M(le,i[1]),le.forEach(c),o=C(R),y=_(R,"A",{class:!0,href:!0});var ne=D(y);q=M(ne,"Lien"),ne.forEach(c),R.forEach(c),A.forEach(c),this.h()},h(){m(s,"class","bg-red-800 text-white py-1"),m(d,"class","text-4xl font-bold"),m(h,"class","pt-1 border-l border-r"),m(k,"class","text-xs font-bold"),m(V,"class","pb-2 px-2 border-l border-r border-b rounded-b flex justify-between"),m(n,"class","w-42 block rounded-t overflow-hidden bg-white text-center min-w-max"),m(H,"class","pl-4 flex"),m(j,"class","pl-4"),m(y,"class","mt-4 ml-4 btn btn-primary btn btn-xs text-right"),m(y,"href",i[2]),m(u,"class","flex-col"),m(l,"class","flex flex-row")},m(r,A){v(r,l,A),f(l,n),f(n,s),f(s,b),f(n,I),f(n,h),f(h,d),f(d,x),f(n,G),f(n,V),f(V,k),f(k,$),f(l,z),f(l,u),f(u,H),f(H,N),f(u,P),f(u,j),f(j,E),f(u,o),f(u,y),f(y,q)},p(r,[A]){A&1&&se(N,r[0]),A&2&&se(E,r[1]),A&4&&m(y,"href",r[2])},i:O,o:O,d(r){r&&c(l)}}}function we(i,l,n){let{date:s}=l,{title:g}=l,{description:b}=l,{link:I=""}=l,h=s.split(" ");return i.$$set=d=>{"date"in d&&n(4,s=d.date),"title"in d&&n(0,g=d.title),"description"in d&&n(1,b=d.description),"link"in d&&n(2,I=d.link)},[g,b,I,h,s]}class ve extends pe{constructor(l){super(),_e(this,l,we,xe,me,{date:4,title:0,description:1,link:2})}}const Ce=[{date:"1 jan 2023",description:"Description de l'évènement",title:"Template pour un évènement",link:"https://google.fr"}],Ee=[{date:"4 oct 2023",description:"Grrrnd Zero - Vaulx en Velin",title:"Écoutes périphériques",link:"https://www.grrrndzero.org/index.php/2487-sam-dim-4-et-5-11-ecoutes-peripheriques-petit-multidifest-de-musiques"},{date:"28 oct 2023",description:"L'Aiguillage - Polisot",title:"Algorave (Cookie Collective)",link:"https://www.facebook.com/photo/?fbid=829027699024902&set=a.538927648034910"}],ce={avenir:Ce,passe:Ee};function fe(i,l,n){const s=i.slice();return s[2]=l[n].title,s[3]=l[n].description,s[4]=l[n].date,s[5]=l[n].link,s[7]=n,s}function de(i,l,n){const s=i.slice();return s[2]=l[n].title,s[3]=l[n].description,s[4]=l[n].date,s[5]=l[n].link,s[7]=n,s}function ue(i){let l,n;return l=new ve({props:{date:i[4],description:i[3],title:i[2],link:i[5]}}),{c(){Q(l.$$.fragment)},l(s){U(l.$$.fragment,s)},m(s,g){W(l,s,g),n=!0},p:O,i(s){n||(S(l.$$.fragment,s),n=!0)},o(s){L(l.$$.fragment,s),n=!1},d(s){X(l,s)}}}function he(i){let l,n;return l=new ve({props:{date:i[4],description:i[3],title:i[2],link:i[5]}}),{c(){Q(l.$$.fragment)},l(s){U(l.$$.fragment,s)},m(s,g){W(l,s,g),n=!0},p:O,i(s){n||(S(l.$$.fragment,s),n=!0)},o(s){L(l.$$.fragment,s),n=!1},d(s){X(l,s)}}}function Ae(i){let l,n,s="Évènements",g,b,I,h,d="Agenda (Cookie Collective)",F,x,G,V,k,T="À venir",$,z,u,H="Passés",N,P,j;b=new ke({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 pour archivage !",markdown:"false"}});let E=K(i[1]),o=[];for(let e=0;eL(o[e],1,1,()=>{o[e]=null});let q=K(i[0]),r=[];for(let e=0;eL(r[e],1,1,()=>{r[e]=null});return{c(){l=w(),n=p("h1"),n.textContent=s,g=w(),Q(b.$$.fragment),I=w(),h=p("h2"),h.textContent=d,F=w(),x=p("iframe"),V=w(),k=p("h2"),k.textContent=T,$=w();for(let e=0;e{"date"in d&&n(4,s=d.date),"title"in d&&n(0,g=d.title),"description"in d&&n(1,b=d.description),"link"in d&&n(2,I=d.link)},[g,b,I,h,s]}class ve extends pe{constructor(l){super(),_e(this,l,we,xe,me,{date:4,title:0,description:1,link:2})}}const Ce=[{date:"1 jan 2023",description:"Description de l'évènement",title:"Template pour un évènement",link:"https://google.fr"}],Ee=[{date:"4 oct 2023",description:"Grrrnd Zero - Vaulx en Velin",title:"Écoutes périphériques",link:"https://www.grrrndzero.org/index.php/2487-sam-dim-4-et-5-11-ecoutes-peripheriques-petit-multidifest-de-musiques"},{date:"28 oct 2023",description:"L'Aiguillage - Polisot",title:"Algorave (Cookie Collective)",link:"https://www.facebook.com/photo/?fbid=829027699024902&set=a.538927648034910"}],ce={avenir:Ce,passe:Ee};function fe(i,l,n){const s=i.slice();return s[2]=l[n].title,s[3]=l[n].description,s[4]=l[n].date,s[5]=l[n].link,s[7]=n,s}function de(i,l,n){const s=i.slice();return s[2]=l[n].title,s[3]=l[n].description,s[4]=l[n].date,s[5]=l[n].link,s[7]=n,s}function ue(i){let l,n;return l=new ve({props:{date:i[4],description:i[3],title:i[2],link:i[5]}}),{c(){Q(l.$$.fragment)},l(s){U(l.$$.fragment,s)},m(s,g){W(l,s,g),n=!0},p:O,i(s){n||(S(l.$$.fragment,s),n=!0)},o(s){L(l.$$.fragment,s),n=!1},d(s){X(l,s)}}}function he(i){let l,n;return l=new ve({props:{date:i[4],description:i[3],title:i[2],link:i[5]}}),{c(){Q(l.$$.fragment)},l(s){U(l.$$.fragment,s)},m(s,g){W(l,s,g),n=!0},p:O,i(s){n||(S(l.$$.fragment,s),n=!0)},o(s){L(l.$$.fragment,s),n=!1},d(s){X(l,s)}}}function Ae(i){let l,n,s="Évènements",g,b,I,h,d="Agenda (Cookie Collective)",F,x,G,V,k,T="À venir",$,z,u,H="Passés",N,P,j;b=new ke({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 pour archivage !",markdown:"false"}});let E=K(i[1]),o=[];for(let e=0;eL(o[e],1,1,()=>{o[e]=null});let q=K(i[0]),r=[];for(let e=0;eL(r[e],1,1,()=>{r[e]=null});return{c(){l=w(),n=p("h1"),n.textContent=s,g=w(),Q(b.$$.fragment),I=w(),h=p("h2"),h.textContent=d,F=w(),x=p("iframe"),V=w(),k=p("h2"),k.textContent=T,$=w();for(let e=0;e({guides:await(await n("/api/guides")).json()}),te=Object.freeze(Object.defineProperty({__proto__:null,load:R},Symbol.toStringTag,{value:"Module"}));function O(n,t,u){const l=n.slice();return l[1]=t[u],l}function q(n){let t,u,l,o=n[1].meta.title+"",v,p,k,i,m,_=n[1].meta.date+"",h,s,e=n[1].meta.author+"",r,a;return{c(){t=C("li"),u=C("h2"),l=C("a"),v=P(o),k=E(),i=C("p"),m=P("Publié le : "),h=P(_),s=P(" par "),r=P(e),a=E(),this.h()},l(c){t=$(c,"LI",{class:!0});var f=w(t);u=$(f,"H2",{});var H=w(u);l=$(H,"A",{href:!0});var I=w(l);v=y(I,o),I.forEach(d),H.forEach(d),k=j(f),i=$(f,"P",{class:!0});var x=w(i);m=y(x,"Publié le : "),h=y(x,_),s=y(x," par "),r=y(x,e),x.forEach(d),a=j(f),f.forEach(d),this.h()},h(){S(l,"href",p=n[1].path),S(i,"class","pt-2"),S(t,"class","px-4 pb-4 my-4 rounded-lg bg-base-300 dark:bg-base-300 hover:bg-base-200 hover:dark:bg-base-200 border-1 border-color-base-100")},m(c,f){b(c,t,f),g(t,u),g(u,l),g(l,v),g(t,k),g(t,i),g(i,m),g(i,h),g(i,s),g(i,r),g(t,a)},p(c,f){f&1&&o!==(o=c[1].meta.title+"")&&z(v,o),f&1&&p!==(p=c[1].path)&&S(l,"href",p),f&1&&_!==(_=c[1].meta.date+"")&&z(h,_),f&1&&e!==(e=c[1].meta.author+"")&&z(r,e)},d(c){c&&d(t)}}}function V(n){let t,u="Guides",l,o,v,p,k="Articles publiés",i,m,_;o=new Q({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=A(n[0].guides),s=[];for(let e=0;e{"data"in o&&u(0,l=o.data)},[l]}class ae extends G{constructor(t){super(),M(this,t,W,V,B,{data:0})}}export{ae as component,te as universal};
+import{s as B}from"../chunks/scheduler.aZRR5A_O.js";import{S as G,i as M,g as C,s as E,r as N,h as $,x as L,c as j,u as T,j as w,f as d,a as b,v as U,d as D,t as F,w as J,B as K,m as P,n as y,k as S,y as g,o as z}from"../chunks/index.AIcdAWo0.js";import{e as A}from"../chunks/each.-oqiv04n.js";import{I as Q}from"../chunks/Info.bs_Ss2Q-.js";const R=async({fetch:n})=>({guides:await(await n("/api/guides")).json()}),te=Object.freeze(Object.defineProperty({__proto__:null,load:R},Symbol.toStringTag,{value:"Module"}));function O(n,t,u){const l=n.slice();return l[1]=t[u],l}function q(n){let t,u,l,o=n[1].meta.title+"",v,p,k,i,m,_=n[1].meta.date+"",h,s,e=n[1].meta.author+"",r,a;return{c(){t=C("li"),u=C("h2"),l=C("a"),v=P(o),k=E(),i=C("p"),m=P("Publié le : "),h=P(_),s=P(" par "),r=P(e),a=E(),this.h()},l(c){t=$(c,"LI",{class:!0});var f=w(t);u=$(f,"H2",{});var H=w(u);l=$(H,"A",{href:!0});var I=w(l);v=y(I,o),I.forEach(d),H.forEach(d),k=j(f),i=$(f,"P",{class:!0});var x=w(i);m=y(x,"Publié le : "),h=y(x,_),s=y(x," par "),r=y(x,e),x.forEach(d),a=j(f),f.forEach(d),this.h()},h(){S(l,"href",p=n[1].path),S(i,"class","pt-2"),S(t,"class","px-4 pb-4 my-4 rounded-lg bg-base-300 dark:bg-base-300 hover:bg-base-200 hover:dark:bg-base-200 border-1 border-color-base-100")},m(c,f){b(c,t,f),g(t,u),g(u,l),g(l,v),g(t,k),g(t,i),g(i,m),g(i,h),g(i,s),g(i,r),g(t,a)},p(c,f){f&1&&o!==(o=c[1].meta.title+"")&&z(v,o),f&1&&p!==(p=c[1].path)&&S(l,"href",p),f&1&&_!==(_=c[1].meta.date+"")&&z(h,_),f&1&&e!==(e=c[1].meta.author+"")&&z(r,e)},d(c){c&&d(t)}}}function V(n){let t,u="Guides",l,o,v,p,k="Articles publiés",i,m,_;o=new Q({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=A(n[0].guides),s=[];for(let e=0;e{"data"in o&&u(0,l=o.data)},[l]}class ae extends G{constructor(t){super(),M(this,t,W,V,B,{data:0})}}export{ae as component,te as universal};
diff --git a/dist/_app/immutable/nodes/8.id8kTULq.js.br b/dist/_app/immutable/nodes/8.id8kTULq.js.br
new file mode 100644
index 0000000..5b61bdd
Binary files /dev/null and b/dist/_app/immutable/nodes/8.id8kTULq.js.br differ
diff --git a/dist/_app/immutable/nodes/8.id8kTULq.js.gz b/dist/_app/immutable/nodes/8.id8kTULq.js.gz
new file mode 100644
index 0000000..91e4eb9
Binary files /dev/null and b/dist/_app/immutable/nodes/8.id8kTULq.js.gz differ
diff --git a/dist/_app/immutable/nodes/9.RIT4c5a5.js.br b/dist/_app/immutable/nodes/9.RIT4c5a5.js.br
deleted file mode 100644
index 4c72ebc..0000000
Binary files a/dist/_app/immutable/nodes/9.RIT4c5a5.js.br and /dev/null differ
diff --git a/dist/_app/immutable/nodes/9.RIT4c5a5.js.gz b/dist/_app/immutable/nodes/9.RIT4c5a5.js.gz
deleted file mode 100644
index cbadfc1..0000000
Binary files a/dist/_app/immutable/nodes/9.RIT4c5a5.js.gz and /dev/null differ
diff --git a/dist/_app/immutable/nodes/9.ceqUHxWv.js b/dist/_app/immutable/nodes/9.ceqUHxWv.js
new file mode 100644
index 0000000..c95d4b2
--- /dev/null
+++ b/dist/_app/immutable/nodes/9.ceqUHxWv.js
@@ -0,0 +1,7 @@
+import{_ as j}from"../chunks/preload-helper.0HuHagjb.js";import{_ as N}from"../chunks/dynamic-import-helper.0gtGTknh.js";import{s as Q}from"../chunks/scheduler.aZRR5A_O.js";import{S as U,i as W,q as M,g as v,m as I,s as q,r as B,h,j as g,n as y,f,c as x,u as X,k as w,a as Y,y as o,v as F,o as C,t as G,b as Z,d as J,w as K,p as tt}from"../chunks/index.AIcdAWo0.js";async function et({params:i}){const e=await N(Object.assign({"../ajouter_information.md":()=>j(()=>import("../chunks/ajouter_information._ytOF6l3.js"),__vite__mapDeps([0,1,2,3]),import.meta.url),"../livecoding_supercollider.md":()=>j(()=>import("../chunks/livecoding_supercollider.sLrjm2WB.js"),__vite__mapDeps([4,1,2,3,5,6]),import.meta.url),"../livecoding_supercollider_2.md":()=>j(()=>import("../chunks/livecoding_supercollider_2.8rv2dy6_.js"),__vite__mapDeps([7,1,2,3,5,6]),import.meta.url),"../proposer_guide.md":()=>j(()=>import("../chunks/proposer_guide.X_s8Xpr2.js"),__vite__mapDeps([8,1,2,3]),import.meta.url)}),`../${i.slug}.md`),{title:s,date:n,author:l}=e.metadata,E=e.default;return{title:s,date:n,author:l,content:E}}const lt=Object.freeze(Object.defineProperty({__proto__:null,load:et},Symbol.toStringTag,{value:"Module"}));function at(i){let e,s,n=i[0].title+"",l,E,_,c,R,$=i[0].date+"",A,T,u,V,b=i[0].author+"",D,L,m,t,d;var p=i[0].content;function H(a,r){return{}}return p&&(t=M(p,H())),{c(){e=v("article"),s=v("h1"),l=I(n),E=q(),_=v("div"),c=v("p"),R=I("Publié le : "),A=I($),T=q(),u=v("p"),V=I("Auteur : "),D=I(b),L=q(),m=v("div"),t&&B(t.$$.fragment),this.h()},l(a){e=h(a,"ARTICLE",{});var r=g(e);s=h(r,"H1",{});var P=g(s);l=y(P,n),P.forEach(f),E=x(r),_=h(r,"DIV",{class:!0});var O=g(_);c=h(O,"P",{class:!0});var S=g(c);R=y(S,"Publié le : "),A=y(S,$),S.forEach(f),T=x(O),u=h(O,"P",{class:!0});var k=g(u);V=y(k,"Auteur : "),D=y(k,b),k.forEach(f),O.forEach(f),L=x(r),m=h(r,"DIV",{class:!0});var z=g(m);t&&X(t.$$.fragment,z),z.forEach(f),r.forEach(f),this.h()},h(){w(c,"class","inline font-bold"),w(u,"class","inline font-bold"),w(_,"class","pt-4 flex justify-between mb-12"),w(m,"class","lg:px-24 md:px-12 content-center")},m(a,r){Y(a,e,r),o(e,s),o(s,l),o(e,E),o(e,_),o(_,c),o(c,R),o(c,A),o(_,T),o(_,u),o(u,V),o(u,D),o(e,L),o(e,m),t&&F(t,m,null),d=!0},p(a,[r]){if((!d||r&1)&&n!==(n=a[0].title+"")&&C(l,n),(!d||r&1)&&$!==($=a[0].date+"")&&C(A,$),(!d||r&1)&&b!==(b=a[0].author+"")&&C(D,b),r&1&&p!==(p=a[0].content)){if(t){tt();const P=t;G(P.$$.fragment,1,0,()=>{K(P,1)}),Z()}p?(t=M(p,H()),B(t.$$.fragment),J(t.$$.fragment,1),F(t,m,null)):t=null}},i(a){d||(t&&J(t.$$.fragment,a),d=!0)},o(a){t&&G(t.$$.fragment,a),d=!1},d(a){a&&f(e),t&&K(t)}}}function rt(i,e,s){let{data:n}=e;return i.$$set=l=>{"data"in l&&s(0,n=l.data)},[n]}class _t extends U{constructor(e){super(),W(this,e,rt,at,Q,{data:0})}}export{_t as component,lt as universal};
+function __vite__mapDeps(indexes) {
+ if (!__vite__mapDeps.viteFileDeps) {
+ __vite__mapDeps.viteFileDeps = ["../chunks/ajouter_information._ytOF6l3.js","../chunks/scheduler.aZRR5A_O.js","../chunks/index.AIcdAWo0.js","../chunks/guides.RN6emr9S.js","../chunks/livecoding_supercollider.sLrjm2WB.js","../chunks/Info.bs_Ss2Q-.js","../chunks/marked.esm.hS8hU7E4.js","../chunks/livecoding_supercollider_2.8rv2dy6_.js","../chunks/proposer_guide.X_s8Xpr2.js"]
+ }
+ return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
+}
\ No newline at end of file
diff --git a/dist/_app/immutable/nodes/9.ceqUHxWv.js.br b/dist/_app/immutable/nodes/9.ceqUHxWv.js.br
new file mode 100644
index 0000000..c84d5fb
Binary files /dev/null and b/dist/_app/immutable/nodes/9.ceqUHxWv.js.br differ
diff --git a/dist/_app/immutable/nodes/9.ceqUHxWv.js.gz b/dist/_app/immutable/nodes/9.ceqUHxWv.js.gz
new file mode 100644
index 0000000..b61f065
Binary files /dev/null and b/dist/_app/immutable/nodes/9.ceqUHxWv.js.gz differ
diff --git a/dist/_app/version.json b/dist/_app/version.json
index 663b823..ee93483 100644
--- a/dist/_app/version.json
+++ b/dist/_app/version.json
@@ -1 +1 @@
-{"version":"1703349664352"}
\ No newline at end of file
+{"version":"1704284324812"}
\ No newline at end of file
diff --git a/dist/_app/version.json.br b/dist/_app/version.json.br
index cbeed81..f212acb 100644
Binary files a/dist/_app/version.json.br and b/dist/_app/version.json.br differ
diff --git a/dist/_app/version.json.gz b/dist/_app/version.json.gz
index 3a577bb..fff6b29 100644
Binary files a/dist/_app/version.json.gz and b/dist/_app/version.json.gz differ
diff --git a/dist/accueil.html b/dist/accueil.html
index c2bb907..bd3fcd6 100644
--- a/dist/accueil.html
+++ b/dist/accueil.html
@@ -6,23 +6,23 @@
-
-
+
+
-
+
-
-
-
-
+
+
+
+
Accueil
-
Qu’est-ce que le live-coding ?
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.
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.
À propos de ce site
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).
L’information sur chacune des pages est randomisée pour favoriser la découverte.
Comment contribuer ?
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.
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.
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.
À propos de ce site
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).
L’information sur chacune des pages est randomisée pour favoriser la découverte.
Comment contribuer ?
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.