diff --git a/404.html b/404.html index 37a80df5..ff38d194 100644 --- a/404.html +++ b/404.html @@ -39,7 +39,7 @@
- + \ No newline at end of file diff --git a/README.html b/README.html index 1f0a039e..3a16eb68 100644 --- a/README.html +++ b/README.html @@ -42,7 +42,7 @@

WEB SYNTHS

TO DO

  • SEO proof texts
  • Logos
  • save state
  • favourites
  • ranks + reviews
Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/ableton/index.html b/ableton/index.html index a8a3cdb4..0398b6e9 100644 --- a/ableton/index.html +++ b/ableton/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Learning synths
by Ableton
Explore the fundamentals of synthesis with this interactive web-app by Ableton. Dive into the world of sound design, experiment with different parameters, and learn how to sculpt your own unique sounds with ease.
Made with 🧡 by
Playtronica &Chromatone
- +
Learning synths
by Ableton
Explore the fundamentals of synthesis with this interactive web-app by Ableton. Dive into the world of sound design, experiment with different parameters, and learn how to sculpt your own unique sounds with ease.
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/acid-machine-2/index.html b/acid-machine-2/index.html index b410419a..f6daf93b 100644 --- a/acid-machine-2/index.html +++ b/acid-machine-2/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Made with 🧡 by
Playtronica &Chromatone
- +
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/aqwertyon/index.html b/aqwertyon/index.html index 76ded3c5..b05217fd 100644 --- a/aqwertyon/index.html +++ b/aqwertyon/index.html @@ -45,7 +45,7 @@
aQWERTYon
by Mused lab
polyphonic
samples
aQWERTYon is an interactive web app that turns your computer keyboard into a musical instrument. Designed for music theory practice, it allows users to play notes and chords using a QWERTY keyboard layout. The app provides a visual representation of notes and scales, making it a useful tool for learning and exploring music theory concepts.

The aQWERTYon (QWERTY accordion) is designed to simplify the process for improvising, learning, and making music with your computer keyboard. Play along with your favorite YouTube videos, learn music theory through our Music Theory for Bedroom Producers course in collaboration with Soundfly, or take advantage of Web MIDI and us it to play and record into your favorite digital audio workstation, such as Soundtrap.com, GarageBand, Logic, or Ableton, or as input into music notation programs like Noteflight.

https://youtu.be/hqFr4lF6u_Y

Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/assets/ableton_index.md.fvKJq2dx.js b/assets/ableton_index.md.BZzJjJql.js similarity index 89% rename from assets/ableton_index.md.fvKJq2dx.js rename to assets/ableton_index.md.BZzJjJql.js index 4663fd6f..ea3df4ae 100644 --- a/assets/ableton_index.md.fvKJq2dx.js +++ b/assets/ableton_index.md.BZzJjJql.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as n,d as s,y as o,R as r,S as i,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://learningsynths.ableton.com/","date_created":"2023-10-27T12:45:54.360Z","title":"Learning synths","slug":"ableton","author":"Ableton","author_link":"https://github.com/Ableton","description":"Explore the fundamentals of synthesis with this interactive web-app by Ableton. Dive into the world of sound design, experiment with different parameters, and learn how to sculpt your own unique sounds with ease.","tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"0bf8312d-c449-4f5c-80ad-36594ef98db6","id":26,"sort":14,"clicks":184,"public":false,"is_new":false,"stats":[13]},"relativePath":"ableton/index.md","filePath":"ableton/index.md","lastUpdated":0}'),d={name:"ableton/index.md"},v=Object.assign(d,{setup(p){const{params:e,frontmatter:m}=n();return(u,f)=>{const t=a;return c(),s("div",null,[o(t,r(i(l(e))),null,16)])}}});export{y as __pageData,v as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as n,d as s,y as o,R as r,S as i,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://learningsynths.ableton.com/","date_created":"2023-10-27T12:45:54.360Z","title":"Learning synths","slug":"ableton","author":"Ableton","author_link":"https://github.com/Ableton","description":"Explore the fundamentals of synthesis with this interactive web-app by Ableton. Dive into the world of sound design, experiment with different parameters, and learn how to sculpt your own unique sounds with ease.","tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"0bf8312d-c449-4f5c-80ad-36594ef98db6","id":26,"sort":15,"clicks":185,"public":false,"is_new":false,"stats":[13]},"relativePath":"ableton/index.md","filePath":"ableton/index.md","lastUpdated":0}'),d={name:"ableton/index.md"},v=Object.assign(d,{setup(p){const{params:e,frontmatter:m}=n();return(u,f)=>{const t=a;return c(),s("div",null,[o(t,r(i(l(e))),null,16)])}}});export{y as __pageData,v as default}; diff --git a/assets/ableton_index.md.fvKJq2dx.lean.js b/assets/ableton_index.md.BZzJjJql.lean.js similarity index 89% rename from assets/ableton_index.md.fvKJq2dx.lean.js rename to assets/ableton_index.md.BZzJjJql.lean.js index 4663fd6f..ea3df4ae 100644 --- a/assets/ableton_index.md.fvKJq2dx.lean.js +++ b/assets/ableton_index.md.BZzJjJql.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as n,d as s,y as o,R as r,S as i,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://learningsynths.ableton.com/","date_created":"2023-10-27T12:45:54.360Z","title":"Learning synths","slug":"ableton","author":"Ableton","author_link":"https://github.com/Ableton","description":"Explore the fundamentals of synthesis with this interactive web-app by Ableton. Dive into the world of sound design, experiment with different parameters, and learn how to sculpt your own unique sounds with ease.","tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"0bf8312d-c449-4f5c-80ad-36594ef98db6","id":26,"sort":14,"clicks":184,"public":false,"is_new":false,"stats":[13]},"relativePath":"ableton/index.md","filePath":"ableton/index.md","lastUpdated":0}'),d={name:"ableton/index.md"},v=Object.assign(d,{setup(p){const{params:e,frontmatter:m}=n();return(u,f)=>{const t=a;return c(),s("div",null,[o(t,r(i(l(e))),null,16)])}}});export{y as __pageData,v as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as n,d as s,y as o,R as r,S as i,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://learningsynths.ableton.com/","date_created":"2023-10-27T12:45:54.360Z","title":"Learning synths","slug":"ableton","author":"Ableton","author_link":"https://github.com/Ableton","description":"Explore the fundamentals of synthesis with this interactive web-app by Ableton. Dive into the world of sound design, experiment with different parameters, and learn how to sculpt your own unique sounds with ease.","tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"0bf8312d-c449-4f5c-80ad-36594ef98db6","id":26,"sort":15,"clicks":185,"public":false,"is_new":false,"stats":[13]},"relativePath":"ableton/index.md","filePath":"ableton/index.md","lastUpdated":0}'),d={name:"ableton/index.md"},v=Object.assign(d,{setup(p){const{params:e,frontmatter:m}=n();return(u,f)=>{const t=a;return c(),s("div",null,[o(t,r(i(l(e))),null,16)])}}});export{y as __pageData,v as default}; diff --git a/assets/acid-machine-2_index.md.SBWsjGKS.js b/assets/acid-machine-2_index.md.BYJpDBJ1.js similarity index 93% rename from assets/acid-machine-2_index.md.SBWsjGKS.js rename to assets/acid-machine-2_index.md.BYJpDBJ1.js index 572e2a88..5db0f432 100644 --- a/assets/acid-machine-2_index.md.SBWsjGKS.js +++ b/assets/acid-machine-2_index.md.BYJpDBJ1.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as i,R as c,S as n,f as o,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://errozero.co.uk/acid-machine/","date_created":"2023-10-27T12:45:54.333Z","title":"Acid Machine 2","slug":"acid-machine-2","author":"Errozero","author_link":"https://www.errozero.co.uk/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"031eab3e-2f21-442a-8fdc-9769907824e0","id":25,"sort":32,"clicks":166,"public":false,"is_new":false,"stats":[26]},"relativePath":"acid-machine-2/index.md","filePath":"acid-machine-2/index.md","lastUpdated":0}'),d={name:"acid-machine-2/index.md"},x=Object.assign(d,{setup(m){const{params:e,frontmatter:p}=r();return(u,_)=>{const a=t;return l(),s("div",null,[i(a,c(n(o(e))),null,16)])}}});export{v as __pageData,x as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as i,R as c,S as n,f as o,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://errozero.co.uk/acid-machine/","date_created":"2023-10-27T12:45:54.333Z","title":"Acid Machine 2","slug":"acid-machine-2","author":"Errozero","author_link":"https://www.errozero.co.uk/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"031eab3e-2f21-442a-8fdc-9769907824e0","id":25,"sort":33,"clicks":166,"public":false,"is_new":false,"stats":[26]},"relativePath":"acid-machine-2/index.md","filePath":"acid-machine-2/index.md","lastUpdated":0}'),d={name:"acid-machine-2/index.md"},x=Object.assign(d,{setup(m){const{params:e,frontmatter:p}=r();return(u,_)=>{const a=t;return l(),s("div",null,[i(a,c(n(o(e))),null,16)])}}});export{v as __pageData,x as default}; diff --git a/assets/acid-machine-2_index.md.SBWsjGKS.lean.js b/assets/acid-machine-2_index.md.BYJpDBJ1.lean.js similarity index 93% rename from assets/acid-machine-2_index.md.SBWsjGKS.lean.js rename to assets/acid-machine-2_index.md.BYJpDBJ1.lean.js index 572e2a88..5db0f432 100644 --- a/assets/acid-machine-2_index.md.SBWsjGKS.lean.js +++ b/assets/acid-machine-2_index.md.BYJpDBJ1.lean.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as i,R as c,S as n,f as o,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://errozero.co.uk/acid-machine/","date_created":"2023-10-27T12:45:54.333Z","title":"Acid Machine 2","slug":"acid-machine-2","author":"Errozero","author_link":"https://www.errozero.co.uk/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"031eab3e-2f21-442a-8fdc-9769907824e0","id":25,"sort":32,"clicks":166,"public":false,"is_new":false,"stats":[26]},"relativePath":"acid-machine-2/index.md","filePath":"acid-machine-2/index.md","lastUpdated":0}'),d={name:"acid-machine-2/index.md"},x=Object.assign(d,{setup(m){const{params:e,frontmatter:p}=r();return(u,_)=>{const a=t;return l(),s("div",null,[i(a,c(n(o(e))),null,16)])}}});export{v as __pageData,x as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as i,R as c,S as n,f as o,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://errozero.co.uk/acid-machine/","date_created":"2023-10-27T12:45:54.333Z","title":"Acid Machine 2","slug":"acid-machine-2","author":"Errozero","author_link":"https://www.errozero.co.uk/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"031eab3e-2f21-442a-8fdc-9769907824e0","id":25,"sort":33,"clicks":166,"public":false,"is_new":false,"stats":[26]},"relativePath":"acid-machine-2/index.md","filePath":"acid-machine-2/index.md","lastUpdated":0}'),d={name:"acid-machine-2/index.md"},x=Object.assign(d,{setup(m){const{params:e,frontmatter:p}=r();return(u,_)=>{const a=t;return l(),s("div",null,[i(a,c(n(o(e))),null,16)])}}});export{v as __pageData,x as default}; diff --git a/assets/bassoon_index.md.B5M0BSI4.js b/assets/bassoon_index.md.BAk5VPvw.js similarity index 94% rename from assets/bassoon_index.md.B5M0BSI4.js rename to assets/bassoon_index.md.BAk5VPvw.js index 9591901c..82ce4f82 100644 --- a/assets/bassoon_index.md.B5M0BSI4.js +++ b/assets/bassoon_index.md.BAk5VPvw.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as n,S as c,f as i,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const w=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.stef.be/bassoontracker/","date_created":"2024-03-14T07:04:03.311Z","title":"Bassoon Tracker","slug":"bassoon","author":"Steffest","author_link":" https://www.stef.be","description":"Browser-based old-school Amiga Music Tracker in plain old JavaScript.","tags":["FM","tracker","8-bit","low-fi"],"archive_link":null,"archive":false,"iframe":true,"cover":"70c9db80-8ef8-4aa5-9dcd-6b5c3c0da5b2","id":53,"sort":24,"clicks":10,"public":false,"is_new":true,"stats":[45]},"relativePath":"bassoon/index.md","filePath":"bassoon/index.md","lastUpdated":0}'),d={name:"bassoon/index.md"},g=Object.assign(d,{setup(p){const{params:a,frontmatter:m}=s();return(_,f)=>{const e=t;return l(),r("div",null,[o(e,n(c(i(a))),null,16)])}}});export{w as __pageData,g as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as n,S as c,f as i,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const w=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.stef.be/bassoontracker/","date_created":"2024-03-14T07:04:03.311Z","title":"Bassoon Tracker","slug":"bassoon","author":"Steffest","author_link":" https://www.stef.be","description":"Browser-based old-school Amiga Music Tracker in plain old JavaScript.","tags":["FM","tracker","8-bit","low-fi"],"archive_link":null,"archive":false,"iframe":true,"cover":"70c9db80-8ef8-4aa5-9dcd-6b5c3c0da5b2","id":53,"sort":25,"clicks":10,"public":false,"is_new":true,"stats":[45]},"relativePath":"bassoon/index.md","filePath":"bassoon/index.md","lastUpdated":0}'),d={name:"bassoon/index.md"},g=Object.assign(d,{setup(p){const{params:a,frontmatter:m}=s();return(_,f)=>{const e=t;return l(),r("div",null,[o(e,n(c(i(a))),null,16)])}}});export{w as __pageData,g as default}; diff --git a/assets/bassoon_index.md.B5M0BSI4.lean.js b/assets/bassoon_index.md.BAk5VPvw.lean.js similarity index 94% rename from assets/bassoon_index.md.B5M0BSI4.lean.js rename to assets/bassoon_index.md.BAk5VPvw.lean.js index 9591901c..82ce4f82 100644 --- a/assets/bassoon_index.md.B5M0BSI4.lean.js +++ b/assets/bassoon_index.md.BAk5VPvw.lean.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as n,S as c,f as i,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const w=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.stef.be/bassoontracker/","date_created":"2024-03-14T07:04:03.311Z","title":"Bassoon Tracker","slug":"bassoon","author":"Steffest","author_link":" https://www.stef.be","description":"Browser-based old-school Amiga Music Tracker in plain old JavaScript.","tags":["FM","tracker","8-bit","low-fi"],"archive_link":null,"archive":false,"iframe":true,"cover":"70c9db80-8ef8-4aa5-9dcd-6b5c3c0da5b2","id":53,"sort":24,"clicks":10,"public":false,"is_new":true,"stats":[45]},"relativePath":"bassoon/index.md","filePath":"bassoon/index.md","lastUpdated":0}'),d={name:"bassoon/index.md"},g=Object.assign(d,{setup(p){const{params:a,frontmatter:m}=s();return(_,f)=>{const e=t;return l(),r("div",null,[o(e,n(c(i(a))),null,16)])}}});export{w as __pageData,g as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as n,S as c,f as i,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const w=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.stef.be/bassoontracker/","date_created":"2024-03-14T07:04:03.311Z","title":"Bassoon Tracker","slug":"bassoon","author":"Steffest","author_link":" https://www.stef.be","description":"Browser-based old-school Amiga Music Tracker in plain old JavaScript.","tags":["FM","tracker","8-bit","low-fi"],"archive_link":null,"archive":false,"iframe":true,"cover":"70c9db80-8ef8-4aa5-9dcd-6b5c3c0da5b2","id":53,"sort":25,"clicks":10,"public":false,"is_new":true,"stats":[45]},"relativePath":"bassoon/index.md","filePath":"bassoon/index.md","lastUpdated":0}'),d={name:"bassoon/index.md"},g=Object.assign(d,{setup(p){const{params:a,frontmatter:m}=s();return(_,f)=>{const e=t;return l(),r("div",null,[o(e,n(c(i(a))),null,16)])}}});export{w as __pageData,g as default}; diff --git a/assets/beepbox_index.md.CQGVEfDZ.js b/assets/beepbox_index.md.ym9J5JVO.js similarity index 96% rename from assets/beepbox_index.md.CQGVEfDZ.js rename to assets/beepbox_index.md.ym9J5JVO.js index 4d14ffe8..1050fb98 100644 --- a/assets/beepbox_index.md.CQGVEfDZ.js +++ b/assets/beepbox_index.md.ym9J5JVO.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as i,S as d,f as l,g as e,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=e("p",null,"BeepBox is developed by John Nesky.",-1),h=e("p",null,"BeepBox does not claim ownership over songs created with it, so original songs belong to their authors.",-1),u=e("p",null,"Neither John Nesky nor BeepBox assume responsibility for any copyrighted material played on BeepBox. No songs are ever received, recorded, or distributed by BeepBox's servers. All song data is contained in the URL after the hash (#) mark, and your song data will not leave your device unless you copy and share the URL. BeepBox does not collect, track, or share any user data.",-1),k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.beepbox.co","date_created":"2024-03-21T02:43:35.749Z","title":"BeepBox","slug":"beepbox","author":"John Nesky","author_link":"https://johnnesky.com/","description":"BeepBox is an online tool for sketching and sharing instrumental music.\\n\\nAll song data is contained in the URL at the top of your browser. When you make changes to the song, the URL is updated to reflect your changes. When you are satisfied with your song, just copy and paste the URL to save and share your song!\\n\\nBeepBox is a passion project, and will always be free to use. ","tags":["Poly","Sequencer","FM"],"archive_link":null,"archive":false,"iframe":true,"cover":"dea37f5f-504c-443f-ba9a-3dff4d583506","id":54,"sort":19,"clicks":10,"public":false,"is_new":true,"stats":[46]},"relativePath":"beepbox/index.md","filePath":"beepbox/index.md","lastUpdated":0}'),m={name:"beepbox/index.md"},w=Object.assign(m,{setup(y){const{params:o,frontmatter:_}=s();return(f,g)=>{const t=a;return c(),n("div",null,[r(t,i(d(l(o))),null,16),p,h,u])}}});export{k as __pageData,w as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as i,S as d,f as l,g as e,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=e("p",null,"BeepBox is developed by John Nesky.",-1),h=e("p",null,"BeepBox does not claim ownership over songs created with it, so original songs belong to their authors.",-1),u=e("p",null,"Neither John Nesky nor BeepBox assume responsibility for any copyrighted material played on BeepBox. No songs are ever received, recorded, or distributed by BeepBox's servers. All song data is contained in the URL after the hash (#) mark, and your song data will not leave your device unless you copy and share the URL. BeepBox does not collect, track, or share any user data.",-1),k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.beepbox.co","date_created":"2024-03-21T02:43:35.749Z","title":"BeepBox","slug":"beepbox","author":"John Nesky","author_link":"https://johnnesky.com/","description":"BeepBox is an online tool for sketching and sharing instrumental music.\\n\\nAll song data is contained in the URL at the top of your browser. When you make changes to the song, the URL is updated to reflect your changes. When you are satisfied with your song, just copy and paste the URL to save and share your song!\\n\\nBeepBox is a passion project, and will always be free to use. ","tags":["Poly","Sequencer","FM"],"archive_link":null,"archive":false,"iframe":true,"cover":"dea37f5f-504c-443f-ba9a-3dff4d583506","id":54,"sort":20,"clicks":10,"public":false,"is_new":true,"stats":[46]},"relativePath":"beepbox/index.md","filePath":"beepbox/index.md","lastUpdated":0}'),m={name:"beepbox/index.md"},w=Object.assign(m,{setup(y){const{params:o,frontmatter:_}=s();return(f,g)=>{const t=a;return c(),n("div",null,[r(t,i(d(l(o))),null,16),p,h,u])}}});export{k as __pageData,w as default}; diff --git a/assets/beepbox_index.md.CQGVEfDZ.lean.js b/assets/beepbox_index.md.ym9J5JVO.lean.js similarity index 96% rename from assets/beepbox_index.md.CQGVEfDZ.lean.js rename to assets/beepbox_index.md.ym9J5JVO.lean.js index 4d14ffe8..1050fb98 100644 --- a/assets/beepbox_index.md.CQGVEfDZ.lean.js +++ b/assets/beepbox_index.md.ym9J5JVO.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as i,S as d,f as l,g as e,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=e("p",null,"BeepBox is developed by John Nesky.",-1),h=e("p",null,"BeepBox does not claim ownership over songs created with it, so original songs belong to their authors.",-1),u=e("p",null,"Neither John Nesky nor BeepBox assume responsibility for any copyrighted material played on BeepBox. No songs are ever received, recorded, or distributed by BeepBox's servers. All song data is contained in the URL after the hash (#) mark, and your song data will not leave your device unless you copy and share the URL. BeepBox does not collect, track, or share any user data.",-1),k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.beepbox.co","date_created":"2024-03-21T02:43:35.749Z","title":"BeepBox","slug":"beepbox","author":"John Nesky","author_link":"https://johnnesky.com/","description":"BeepBox is an online tool for sketching and sharing instrumental music.\\n\\nAll song data is contained in the URL at the top of your browser. When you make changes to the song, the URL is updated to reflect your changes. When you are satisfied with your song, just copy and paste the URL to save and share your song!\\n\\nBeepBox is a passion project, and will always be free to use. ","tags":["Poly","Sequencer","FM"],"archive_link":null,"archive":false,"iframe":true,"cover":"dea37f5f-504c-443f-ba9a-3dff4d583506","id":54,"sort":19,"clicks":10,"public":false,"is_new":true,"stats":[46]},"relativePath":"beepbox/index.md","filePath":"beepbox/index.md","lastUpdated":0}'),m={name:"beepbox/index.md"},w=Object.assign(m,{setup(y){const{params:o,frontmatter:_}=s();return(f,g)=>{const t=a;return c(),n("div",null,[r(t,i(d(l(o))),null,16),p,h,u])}}});export{k as __pageData,w as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as i,S as d,f as l,g as e,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=e("p",null,"BeepBox is developed by John Nesky.",-1),h=e("p",null,"BeepBox does not claim ownership over songs created with it, so original songs belong to their authors.",-1),u=e("p",null,"Neither John Nesky nor BeepBox assume responsibility for any copyrighted material played on BeepBox. No songs are ever received, recorded, or distributed by BeepBox's servers. All song data is contained in the URL after the hash (#) mark, and your song data will not leave your device unless you copy and share the URL. BeepBox does not collect, track, or share any user data.",-1),k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.beepbox.co","date_created":"2024-03-21T02:43:35.749Z","title":"BeepBox","slug":"beepbox","author":"John Nesky","author_link":"https://johnnesky.com/","description":"BeepBox is an online tool for sketching and sharing instrumental music.\\n\\nAll song data is contained in the URL at the top of your browser. When you make changes to the song, the URL is updated to reflect your changes. When you are satisfied with your song, just copy and paste the URL to save and share your song!\\n\\nBeepBox is a passion project, and will always be free to use. ","tags":["Poly","Sequencer","FM"],"archive_link":null,"archive":false,"iframe":true,"cover":"dea37f5f-504c-443f-ba9a-3dff4d583506","id":54,"sort":20,"clicks":10,"public":false,"is_new":true,"stats":[46]},"relativePath":"beepbox/index.md","filePath":"beepbox/index.md","lastUpdated":0}'),m={name:"beepbox/index.md"},w=Object.assign(m,{setup(y){const{params:o,frontmatter:_}=s();return(f,g)=>{const t=a;return c(),n("div",null,[r(t,i(d(l(o))),null,16),p,h,u])}}});export{k as __pageData,w as default}; diff --git a/assets/blokdust_index.md.BgnJ0na5.js b/assets/blokdust_index.md.DH3pt9ru.js similarity index 95% rename from assets/blokdust_index.md.BgnJ0na5.js rename to assets/blokdust_index.md.DH3pt9ru.js index d6b7de6a..5a013d11 100644 --- a/assets/blokdust_index.md.BgnJ0na5.js +++ b/assets/blokdust_index.md.DH3pt9ru.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as o,y as i,R as r,S as n,f as l,g as d,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=d("p",null,"Luke Twyman - project concept, design & Ul. whitevinyldesign.com @whitevinylUK Luke Phillips - audio development & musical interaction. femurdesign.com @lukephills Edward Silverton - client & server architecture & core development. edsilv.com @edsilv",-1),b=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.blokdust.com/","date_created":"2023-11-25T06:31:23.261Z","title":"BlokDust","slug":"blokdust","author":"Luke Twyman, Luke Phillips, Edward Silverton","author_link":"https://wvnl.xyz/","description":"BlokDust is a creative visual drag and drop music exploration tool. Developed in Brighton UK and released in 2016, BlokDust uses the Web Audio API and makes use of Tone.js as an audio framework.","tags":["creative","sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"7e5bcda8-f37a-46c0-91d9-0a6ea501a101","id":47,"sort":41,"clicks":19,"public":false,"is_new":false,"stats":[35]},"relativePath":"blokdust/index.md","filePath":"blokdust/index.md","lastUpdated":0}'),p={name:"blokdust/index.md"},y=Object.assign(p,{setup(m){const{params:e,frontmatter:_}=s();return(h,f)=>{const t=a;return c(),o("div",null,[i(t,r(n(l(e))),null,16),u])}}});export{b as __pageData,y as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as o,y as i,R as r,S as n,f as l,g as d,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=d("p",null,"Luke Twyman - project concept, design & Ul. whitevinyldesign.com @whitevinylUK Luke Phillips - audio development & musical interaction. femurdesign.com @lukephills Edward Silverton - client & server architecture & core development. edsilv.com @edsilv",-1),b=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.blokdust.com/","date_created":"2023-11-25T06:31:23.261Z","title":"BlokDust","slug":"blokdust","author":"Luke Twyman, Luke Phillips, Edward Silverton","author_link":"https://wvnl.xyz/","description":"BlokDust is a creative visual drag and drop music exploration tool. Developed in Brighton UK and released in 2016, BlokDust uses the Web Audio API and makes use of Tone.js as an audio framework.","tags":["creative","sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"7e5bcda8-f37a-46c0-91d9-0a6ea501a101","id":47,"sort":42,"clicks":19,"public":false,"is_new":false,"stats":[35]},"relativePath":"blokdust/index.md","filePath":"blokdust/index.md","lastUpdated":0}'),p={name:"blokdust/index.md"},y=Object.assign(p,{setup(m){const{params:e,frontmatter:_}=s();return(h,f)=>{const t=a;return c(),o("div",null,[i(t,r(n(l(e))),null,16),u])}}});export{b as __pageData,y as default}; diff --git a/assets/blokdust_index.md.BgnJ0na5.lean.js b/assets/blokdust_index.md.DH3pt9ru.lean.js similarity index 95% rename from assets/blokdust_index.md.BgnJ0na5.lean.js rename to assets/blokdust_index.md.DH3pt9ru.lean.js index d6b7de6a..5a013d11 100644 --- a/assets/blokdust_index.md.BgnJ0na5.lean.js +++ b/assets/blokdust_index.md.DH3pt9ru.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as o,y as i,R as r,S as n,f as l,g as d,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=d("p",null,"Luke Twyman - project concept, design & Ul. whitevinyldesign.com @whitevinylUK Luke Phillips - audio development & musical interaction. femurdesign.com @lukephills Edward Silverton - client & server architecture & core development. edsilv.com @edsilv",-1),b=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.blokdust.com/","date_created":"2023-11-25T06:31:23.261Z","title":"BlokDust","slug":"blokdust","author":"Luke Twyman, Luke Phillips, Edward Silverton","author_link":"https://wvnl.xyz/","description":"BlokDust is a creative visual drag and drop music exploration tool. Developed in Brighton UK and released in 2016, BlokDust uses the Web Audio API and makes use of Tone.js as an audio framework.","tags":["creative","sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"7e5bcda8-f37a-46c0-91d9-0a6ea501a101","id":47,"sort":41,"clicks":19,"public":false,"is_new":false,"stats":[35]},"relativePath":"blokdust/index.md","filePath":"blokdust/index.md","lastUpdated":0}'),p={name:"blokdust/index.md"},y=Object.assign(p,{setup(m){const{params:e,frontmatter:_}=s();return(h,f)=>{const t=a;return c(),o("div",null,[i(t,r(n(l(e))),null,16),u])}}});export{b as __pageData,y as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as o,y as i,R as r,S as n,f as l,g as d,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=d("p",null,"Luke Twyman - project concept, design & Ul. whitevinyldesign.com @whitevinylUK Luke Phillips - audio development & musical interaction. femurdesign.com @lukephills Edward Silverton - client & server architecture & core development. edsilv.com @edsilv",-1),b=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.blokdust.com/","date_created":"2023-11-25T06:31:23.261Z","title":"BlokDust","slug":"blokdust","author":"Luke Twyman, Luke Phillips, Edward Silverton","author_link":"https://wvnl.xyz/","description":"BlokDust is a creative visual drag and drop music exploration tool. Developed in Brighton UK and released in 2016, BlokDust uses the Web Audio API and makes use of Tone.js as an audio framework.","tags":["creative","sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"7e5bcda8-f37a-46c0-91d9-0a6ea501a101","id":47,"sort":42,"clicks":19,"public":false,"is_new":false,"stats":[35]},"relativePath":"blokdust/index.md","filePath":"blokdust/index.md","lastUpdated":0}'),p={name:"blokdust/index.md"},y=Object.assign(p,{setup(m){const{params:e,frontmatter:_}=s();return(h,f)=>{const t=a;return c(),o("div",null,[i(t,r(n(l(e))),null,16),u])}}});export{b as __pageData,y as default}; diff --git a/assets/cardboard-synth_index.md.zTPni48z.js b/assets/cardboard-synth_index.md.DTxKBWvi.js similarity index 94% rename from assets/cardboard-synth_index.md.zTPni48z.js rename to assets/cardboard-synth_index.md.DTxKBWvi.js index ecdefa6a..a1eedd98 100644 --- a/assets/cardboard-synth_index.md.zTPni48z.js +++ b/assets/cardboard-synth_index.md.DTxKBWvi.js @@ -1 +1 @@ -import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as n,R as o,S as c,f as i,b as d}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.gsn-lib.org/apps/cardboardsynth/index.html","date_created":"2023-10-27T12:45:54.002Z","title":"Cardboard Synth","slug":"cardboard-synth","author":" Thorsten Thormählen","author_link":"https://www.uni-marburg.de/en/fb12/research-groups/grafikmultimedia/thormae","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"29fe1fcc-ca85-41b3-ab1e-7f10770f2c1f","id":9,"sort":39,"clicks":184,"public":false,"is_new":false,"stats":[33]},"relativePath":"cardboard-synth/index.md","filePath":"cardboard-synth/index.md","lastUpdated":0}'),l={name:"cardboard-synth/index.md"},w=Object.assign(l,{setup(p){const{params:a,frontmatter:m}=r();return(h,u)=>{const t=e;return d(),s("div",null,[n(t,o(c(i(a))),null,16)])}}});export{y as __pageData,w as default}; +import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as n,R as o,S as c,f as i,b as d}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.gsn-lib.org/apps/cardboardsynth/index.html","date_created":"2023-10-27T12:45:54.002Z","title":"Cardboard Synth","slug":"cardboard-synth","author":" Thorsten Thormählen","author_link":"https://www.uni-marburg.de/en/fb12/research-groups/grafikmultimedia/thormae","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"29fe1fcc-ca85-41b3-ab1e-7f10770f2c1f","id":9,"sort":40,"clicks":184,"public":false,"is_new":false,"stats":[33]},"relativePath":"cardboard-synth/index.md","filePath":"cardboard-synth/index.md","lastUpdated":0}'),l={name:"cardboard-synth/index.md"},w=Object.assign(l,{setup(p){const{params:a,frontmatter:m}=r();return(h,u)=>{const t=e;return d(),s("div",null,[n(t,o(c(i(a))),null,16)])}}});export{y as __pageData,w as default}; diff --git a/assets/cardboard-synth_index.md.zTPni48z.lean.js b/assets/cardboard-synth_index.md.DTxKBWvi.lean.js similarity index 94% rename from assets/cardboard-synth_index.md.zTPni48z.lean.js rename to assets/cardboard-synth_index.md.DTxKBWvi.lean.js index ecdefa6a..a1eedd98 100644 --- a/assets/cardboard-synth_index.md.zTPni48z.lean.js +++ b/assets/cardboard-synth_index.md.DTxKBWvi.lean.js @@ -1 +1 @@ -import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as n,R as o,S as c,f as i,b as d}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.gsn-lib.org/apps/cardboardsynth/index.html","date_created":"2023-10-27T12:45:54.002Z","title":"Cardboard Synth","slug":"cardboard-synth","author":" Thorsten Thormählen","author_link":"https://www.uni-marburg.de/en/fb12/research-groups/grafikmultimedia/thormae","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"29fe1fcc-ca85-41b3-ab1e-7f10770f2c1f","id":9,"sort":39,"clicks":184,"public":false,"is_new":false,"stats":[33]},"relativePath":"cardboard-synth/index.md","filePath":"cardboard-synth/index.md","lastUpdated":0}'),l={name:"cardboard-synth/index.md"},w=Object.assign(l,{setup(p){const{params:a,frontmatter:m}=r();return(h,u)=>{const t=e;return d(),s("div",null,[n(t,o(c(i(a))),null,16)])}}});export{y as __pageData,w as default}; +import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as n,R as o,S as c,f as i,b as d}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.gsn-lib.org/apps/cardboardsynth/index.html","date_created":"2023-10-27T12:45:54.002Z","title":"Cardboard Synth","slug":"cardboard-synth","author":" Thorsten Thormählen","author_link":"https://www.uni-marburg.de/en/fb12/research-groups/grafikmultimedia/thormae","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"29fe1fcc-ca85-41b3-ab1e-7f10770f2c1f","id":9,"sort":40,"clicks":184,"public":false,"is_new":false,"stats":[33]},"relativePath":"cardboard-synth/index.md","filePath":"cardboard-synth/index.md","lastUpdated":0}'),l={name:"cardboard-synth/index.md"},w=Object.assign(l,{setup(p){const{params:a,frontmatter:m}=r();return(h,u)=>{const t=e;return d(),s("div",null,[n(t,o(c(i(a))),null,16)])}}});export{y as __pageData,w as default}; diff --git a/assets/cardinal_index.md.BasBgc69.js b/assets/cardinal_index.md.DyFHaI5Z.js similarity index 98% rename from assets/cardinal_index.md.BasBgc69.js rename to assets/cardinal_index.md.DyFHaI5Z.js index bda5a183..b1c8a59f 100644 --- a/assets/cardinal_index.md.BasBgc69.js +++ b/assets/cardinal_index.md.DyFHaI5Z.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as o,d as s,y as n,R as i,S as r,f as l,B as d,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=d('

Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web. It is based on the popular VCV Rack but with a focus on being a fully self-contained plugin version.

More specifically, this is a DPF-based plugin wrapper around VCV Rack, using its code directly instead of forking the project, with the target of having a self-contained, fully free and open-source plugin version of Rack. See the why section below for the reasons Cardinal exists, also for frequently asked questions check this FAQ document.

Cardinal contains Rack, some 3rd-party modules and a few internal utilities all in a single binary. All "Core" modules from Rack have been replaced by Cardinal equivalents, simplified to better work for an audio plugin.

Cardinal does not load external modules and does not connect to the official Rack library/store. All VCV branding has been removed (to the best of our knowledge) in order to avoid any trademark issues.

Why

Cardinal was created first and foremost as a way to have Rack as a proper open-source audio plugin. A proper audio plugin should be self-contained as much as possible, as to not interfere with the DAW/Host. Loading external modules clearly goes against this idea. Not to mention being open-source, otherwise we are at the mercy of the wishes of a company for what we can and cannot do, which is not something Cardinal's authors wish to abide by.

A self-contained plugin can't be overstated, as DLL/shared-object symbol conflicts can trigger hard-to-debug crashes. While Rack tries to mitigate this as much as possible, crashes due to conflicting modules have already been seen in v2 builds. On the other side, Cardinal redefines class and function names as needed to avoid as many conflicts as possible.

Support for ARM and non-mainstream platforms (for example BSD) has also always been missing from the official Rack since the start. While we can patch the Rack free version to support these, same can't be done with Rack Pro with it being a closed-source product. The online library/store only supports a very specific set of platforms too, so non-supported platforms would need any 3rd-party modules to be manually compiled to make them usable.

Unhappiness with the audio threading behaviour of Rack also plays a role. Both audio and MIDI should be locked to the host audio thread as to minimize (or even altogether remove) latency and jitter. The use of separate threads for MIDI is bad design, one that has been corrected in DAWs and JACK-MIDI for several years... But Rack's use of RtMidi requires separate threading, so Cardinal does not use it.

',9),v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://cardinal.kx.studio/live","date_created":"2024-05-20T18:57:14.836Z","title":" DISTRHO Cardinal","slug":"cardinal","author":"Filipe Coelho, aka falkTX","author_link":"https://falktx.berlin/","description":"Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.","tags":["Modular","FM","Poly"],"archive_link":null,"archive":false,"iframe":true,"cover":"dc7070e1-66fd-4f74-95d2-92d8388864e2","id":56,"sort":16,"clicks":5,"public":false,"is_new":true,"stats":[48]},"relativePath":"cardinal/index.md","filePath":"cardinal/index.md","lastUpdated":0}'),u={name:"cardinal/index.md"},w=Object.assign(u,{setup(h){const{params:e,frontmatter:f}=o();return(m,b)=>{const a=t;return c(),s("div",null,[n(a,i(r(l(e))),null,16),p])}}});export{v as __pageData,w as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as o,d as s,y as n,R as i,S as r,f as l,B as d,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=d('

Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web. It is based on the popular VCV Rack but with a focus on being a fully self-contained plugin version.

More specifically, this is a DPF-based plugin wrapper around VCV Rack, using its code directly instead of forking the project, with the target of having a self-contained, fully free and open-source plugin version of Rack. See the why section below for the reasons Cardinal exists, also for frequently asked questions check this FAQ document.

Cardinal contains Rack, some 3rd-party modules and a few internal utilities all in a single binary. All "Core" modules from Rack have been replaced by Cardinal equivalents, simplified to better work for an audio plugin.

Cardinal does not load external modules and does not connect to the official Rack library/store. All VCV branding has been removed (to the best of our knowledge) in order to avoid any trademark issues.

Why

Cardinal was created first and foremost as a way to have Rack as a proper open-source audio plugin. A proper audio plugin should be self-contained as much as possible, as to not interfere with the DAW/Host. Loading external modules clearly goes against this idea. Not to mention being open-source, otherwise we are at the mercy of the wishes of a company for what we can and cannot do, which is not something Cardinal's authors wish to abide by.

A self-contained plugin can't be overstated, as DLL/shared-object symbol conflicts can trigger hard-to-debug crashes. While Rack tries to mitigate this as much as possible, crashes due to conflicting modules have already been seen in v2 builds. On the other side, Cardinal redefines class and function names as needed to avoid as many conflicts as possible.

Support for ARM and non-mainstream platforms (for example BSD) has also always been missing from the official Rack since the start. While we can patch the Rack free version to support these, same can't be done with Rack Pro with it being a closed-source product. The online library/store only supports a very specific set of platforms too, so non-supported platforms would need any 3rd-party modules to be manually compiled to make them usable.

Unhappiness with the audio threading behaviour of Rack also plays a role. Both audio and MIDI should be locked to the host audio thread as to minimize (or even altogether remove) latency and jitter. The use of separate threads for MIDI is bad design, one that has been corrected in DAWs and JACK-MIDI for several years... But Rack's use of RtMidi requires separate threading, so Cardinal does not use it.

',9),v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://cardinal.kx.studio/live","date_created":"2024-05-20T18:57:14.836Z","title":" DISTRHO Cardinal","slug":"cardinal","author":"Filipe Coelho, aka falkTX","author_link":"https://falktx.berlin/","description":"Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.","tags":["Modular","FM","Poly"],"archive_link":null,"archive":false,"iframe":true,"cover":"dc7070e1-66fd-4f74-95d2-92d8388864e2","id":56,"sort":17,"clicks":5,"public":false,"is_new":true,"stats":[48]},"relativePath":"cardinal/index.md","filePath":"cardinal/index.md","lastUpdated":0}'),u={name:"cardinal/index.md"},w=Object.assign(u,{setup(h){const{params:e,frontmatter:f}=o();return(m,b)=>{const a=t;return c(),s("div",null,[n(a,i(r(l(e))),null,16),p])}}});export{v as __pageData,w as default}; diff --git a/assets/cardinal_index.md.BasBgc69.lean.js b/assets/cardinal_index.md.DyFHaI5Z.lean.js similarity index 94% rename from assets/cardinal_index.md.BasBgc69.lean.js rename to assets/cardinal_index.md.DyFHaI5Z.lean.js index 4a9194dd..e8aa7284 100644 --- a/assets/cardinal_index.md.BasBgc69.lean.js +++ b/assets/cardinal_index.md.DyFHaI5Z.lean.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as o,d as s,y as n,R as i,S as r,f as l,B as d,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=d("",9),v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://cardinal.kx.studio/live","date_created":"2024-05-20T18:57:14.836Z","title":" DISTRHO Cardinal","slug":"cardinal","author":"Filipe Coelho, aka falkTX","author_link":"https://falktx.berlin/","description":"Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.","tags":["Modular","FM","Poly"],"archive_link":null,"archive":false,"iframe":true,"cover":"dc7070e1-66fd-4f74-95d2-92d8388864e2","id":56,"sort":16,"clicks":5,"public":false,"is_new":true,"stats":[48]},"relativePath":"cardinal/index.md","filePath":"cardinal/index.md","lastUpdated":0}'),u={name:"cardinal/index.md"},w=Object.assign(u,{setup(h){const{params:e,frontmatter:f}=o();return(m,b)=>{const a=t;return c(),s("div",null,[n(a,i(r(l(e))),null,16),p])}}});export{v as __pageData,w as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as o,d as s,y as n,R as i,S as r,f as l,B as d,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=d("",9),v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://cardinal.kx.studio/live","date_created":"2024-05-20T18:57:14.836Z","title":" DISTRHO Cardinal","slug":"cardinal","author":"Filipe Coelho, aka falkTX","author_link":"https://falktx.berlin/","description":"Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.","tags":["Modular","FM","Poly"],"archive_link":null,"archive":false,"iframe":true,"cover":"dc7070e1-66fd-4f74-95d2-92d8388864e2","id":56,"sort":17,"clicks":5,"public":false,"is_new":true,"stats":[48]},"relativePath":"cardinal/index.md","filePath":"cardinal/index.md","lastUpdated":0}'),u={name:"cardinal/index.md"},w=Object.assign(u,{setup(h){const{params:e,frontmatter:f}=o();return(m,b)=>{const a=t;return c(),s("div",null,[n(a,i(r(l(e))),null,16),p])}}});export{v as __pageData,w as default}; diff --git a/assets/disco-computer_index.md.Dt69zvl0.js b/assets/disco-computer_index.md.CJYnLsi-.js similarity index 94% rename from assets/disco-computer_index.md.Dt69zvl0.js rename to assets/disco-computer_index.md.CJYnLsi-.js index 0e05d352..3d8bf8e0 100644 --- a/assets/disco-computer_index.md.Dt69zvl0.js +++ b/assets/disco-computer_index.md.CJYnLsi-.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as c,R as o,S as i,f as n,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.disco-computer.com/synthesizer/synth.html","date_created":"2023-10-27T12:45:54.270Z","title":"Disco-computer","slug":"disco-computer","author":"Patrick Sawyer","author_link":null,"description":null,"tags":["polyphonic","fm","keyboard"],"archive_link":"/archive/synthescheisse/index.html","archive":true,"iframe":true,"cover":"0d0183e6-8964-4246-a18c-a6ca0a0f2794","id":22,"sort":21,"clicks":269,"public":false,"is_new":false,"stats":[17]},"relativePath":"disco-computer/index.md","filePath":"disco-computer/index.md","lastUpdated":0}'),m={name:"disco-computer/index.md"},v=Object.assign(m,{setup(l){const{params:e,frontmatter:d}=s();return(u,_)=>{const t=a;return p(),r("div",null,[c(t,o(i(n(e))),null,16)])}}});export{k as __pageData,v as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as c,R as o,S as i,f as n,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.disco-computer.com/synthesizer/synth.html","date_created":"2023-10-27T12:45:54.270Z","title":"Disco-computer","slug":"disco-computer","author":"Patrick Sawyer","author_link":null,"description":null,"tags":["polyphonic","fm","keyboard"],"archive_link":"/archive/synthescheisse/index.html","archive":true,"iframe":true,"cover":"0d0183e6-8964-4246-a18c-a6ca0a0f2794","id":22,"sort":22,"clicks":269,"public":false,"is_new":false,"stats":[17]},"relativePath":"disco-computer/index.md","filePath":"disco-computer/index.md","lastUpdated":0}'),m={name:"disco-computer/index.md"},v=Object.assign(m,{setup(l){const{params:e,frontmatter:d}=s();return(u,_)=>{const t=a;return p(),r("div",null,[c(t,o(i(n(e))),null,16)])}}});export{k as __pageData,v as default}; diff --git a/assets/disco-computer_index.md.Dt69zvl0.lean.js b/assets/disco-computer_index.md.CJYnLsi-.lean.js similarity index 94% rename from assets/disco-computer_index.md.Dt69zvl0.lean.js rename to assets/disco-computer_index.md.CJYnLsi-.lean.js index 0e05d352..3d8bf8e0 100644 --- a/assets/disco-computer_index.md.Dt69zvl0.lean.js +++ b/assets/disco-computer_index.md.CJYnLsi-.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as c,R as o,S as i,f as n,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.disco-computer.com/synthesizer/synth.html","date_created":"2023-10-27T12:45:54.270Z","title":"Disco-computer","slug":"disco-computer","author":"Patrick Sawyer","author_link":null,"description":null,"tags":["polyphonic","fm","keyboard"],"archive_link":"/archive/synthescheisse/index.html","archive":true,"iframe":true,"cover":"0d0183e6-8964-4246-a18c-a6ca0a0f2794","id":22,"sort":21,"clicks":269,"public":false,"is_new":false,"stats":[17]},"relativePath":"disco-computer/index.md","filePath":"disco-computer/index.md","lastUpdated":0}'),m={name:"disco-computer/index.md"},v=Object.assign(m,{setup(l){const{params:e,frontmatter:d}=s();return(u,_)=>{const t=a;return p(),r("div",null,[c(t,o(i(n(e))),null,16)])}}});export{k as __pageData,v as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as c,R as o,S as i,f as n,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.disco-computer.com/synthesizer/synth.html","date_created":"2023-10-27T12:45:54.270Z","title":"Disco-computer","slug":"disco-computer","author":"Patrick Sawyer","author_link":null,"description":null,"tags":["polyphonic","fm","keyboard"],"archive_link":"/archive/synthescheisse/index.html","archive":true,"iframe":true,"cover":"0d0183e6-8964-4246-a18c-a6ca0a0f2794","id":22,"sort":22,"clicks":269,"public":false,"is_new":false,"stats":[17]},"relativePath":"disco-computer/index.md","filePath":"disco-computer/index.md","lastUpdated":0}'),m={name:"disco-computer/index.md"},v=Object.assign(m,{setup(l){const{params:e,frontmatter:d}=s();return(u,_)=>{const t=a;return p(),r("div",null,[c(t,o(i(n(e))),null,16)])}}});export{k as __pageData,v as default}; diff --git a/assets/dotpiano_index.md.1_M8HuwQ.js b/assets/dotpiano_index.md.BunS2rE5.js similarity index 95% rename from assets/dotpiano_index.md.1_M8HuwQ.js rename to assets/dotpiano_index.md.BunS2rE5.js index 46ae7143..cb4b4338 100644 --- a/assets/dotpiano_index.md.1_M8HuwQ.js +++ b/assets/dotpiano_index.md.BunS2rE5.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as i,d as n,y as o,R as r,S as s,f as c,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://dotpiano.com/","date_created":"2023-10-27T12:45:53.887Z","title":"Dotpiano","slug":"dotpiano","author":"Alex Chen and Yotam Mann","author_link":null,"description":"Dot Piano is an online musical instrument allowing users to play a digital piano using their computer keyboard. The interactive web app provides a simple and intuitive interface for creating and sharing music, making it accessible for both beginners and experienced musicians.","tags":["polyphonic","midi","keyboard","Multiplayer"],"archive_link":null,"archive":false,"iframe":true,"cover":"6dac5187-213f-4eb8-96ed-63c2e689b206","id":1,"sort":1,"clicks":6424,"public":true,"is_new":false,"stats":[1]},"relativePath":"dotpiano/index.md","filePath":"dotpiano/index.md","lastUpdated":0}'),l={name:"dotpiano/index.md"},v=Object.assign(l,{setup(d){const{params:e,frontmatter:m}=i();return(u,_)=>{const a=t;return p(),n("div",null,[o(a,r(s(c(e))),null,16)])}}});export{y as __pageData,v as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as i,d as n,y as o,R as r,S as s,f as c,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://dotpiano.com/","date_created":"2023-10-27T12:45:53.887Z","title":"Dotpiano","slug":"dotpiano","author":"Alex Chen and Yotam Mann","author_link":null,"description":"Dot Piano is an online musical instrument allowing users to play a digital piano using their computer keyboard. The interactive web app provides a simple and intuitive interface for creating and sharing music, making it accessible for both beginners and experienced musicians.","tags":["polyphonic","midi","keyboard","Multiplayer"],"archive_link":null,"archive":false,"iframe":true,"cover":"6dac5187-213f-4eb8-96ed-63c2e689b206","id":1,"sort":1,"clicks":6427,"public":true,"is_new":false,"stats":[1]},"relativePath":"dotpiano/index.md","filePath":"dotpiano/index.md","lastUpdated":0}'),l={name:"dotpiano/index.md"},v=Object.assign(l,{setup(d){const{params:e,frontmatter:m}=i();return(u,_)=>{const a=t;return p(),n("div",null,[o(a,r(s(c(e))),null,16)])}}});export{y as __pageData,v as default}; diff --git a/assets/dotpiano_index.md.1_M8HuwQ.lean.js b/assets/dotpiano_index.md.BunS2rE5.lean.js similarity index 95% rename from assets/dotpiano_index.md.1_M8HuwQ.lean.js rename to assets/dotpiano_index.md.BunS2rE5.lean.js index 46ae7143..cb4b4338 100644 --- a/assets/dotpiano_index.md.1_M8HuwQ.lean.js +++ b/assets/dotpiano_index.md.BunS2rE5.lean.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as i,d as n,y as o,R as r,S as s,f as c,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://dotpiano.com/","date_created":"2023-10-27T12:45:53.887Z","title":"Dotpiano","slug":"dotpiano","author":"Alex Chen and Yotam Mann","author_link":null,"description":"Dot Piano is an online musical instrument allowing users to play a digital piano using their computer keyboard. The interactive web app provides a simple and intuitive interface for creating and sharing music, making it accessible for both beginners and experienced musicians.","tags":["polyphonic","midi","keyboard","Multiplayer"],"archive_link":null,"archive":false,"iframe":true,"cover":"6dac5187-213f-4eb8-96ed-63c2e689b206","id":1,"sort":1,"clicks":6424,"public":true,"is_new":false,"stats":[1]},"relativePath":"dotpiano/index.md","filePath":"dotpiano/index.md","lastUpdated":0}'),l={name:"dotpiano/index.md"},v=Object.assign(l,{setup(d){const{params:e,frontmatter:m}=i();return(u,_)=>{const a=t;return p(),n("div",null,[o(a,r(s(c(e))),null,16)])}}});export{y as __pageData,v as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as i,d as n,y as o,R as r,S as s,f as c,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://dotpiano.com/","date_created":"2023-10-27T12:45:53.887Z","title":"Dotpiano","slug":"dotpiano","author":"Alex Chen and Yotam Mann","author_link":null,"description":"Dot Piano is an online musical instrument allowing users to play a digital piano using their computer keyboard. The interactive web app provides a simple and intuitive interface for creating and sharing music, making it accessible for both beginners and experienced musicians.","tags":["polyphonic","midi","keyboard","Multiplayer"],"archive_link":null,"archive":false,"iframe":true,"cover":"6dac5187-213f-4eb8-96ed-63c2e689b206","id":1,"sort":1,"clicks":6427,"public":true,"is_new":false,"stats":[1]},"relativePath":"dotpiano/index.md","filePath":"dotpiano/index.md","lastUpdated":0}'),l={name:"dotpiano/index.md"},v=Object.assign(l,{setup(d){const{params:e,frontmatter:m}=i();return(u,_)=>{const a=t;return p(),n("div",null,[o(a,r(s(c(e))),null,16)])}}});export{y as __pageData,v as default}; diff --git a/assets/groove-pizza_index.md.DB1vs1YE.js b/assets/groove-pizza_index.md.3ekFWbxz.js similarity index 95% rename from assets/groove-pizza_index.md.DB1vs1YE.js rename to assets/groove-pizza_index.md.3ekFWbxz.js index 91f48f35..b7e5534b 100644 --- a/assets/groove-pizza_index.md.DB1vs1YE.js +++ b/assets/groove-pizza_index.md.3ekFWbxz.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as o,R as i,S as n,f as c,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://apps.musedlab.org/groovepizza/","date_created":"2023-11-21T04:30:41.565Z","title":"Groove Pizza","slug":"groove-pizza","author":"NYU Music Experience Design Lab","author_link":"https://musedlab.org/groovepizza/","description":"Groove Pizza is a circular rhythm app for creative music making and learning! It’s also a playful tool for creating grooves using math concepts like shapes, angles and patterns","tags":["drums","sequencer","Educational"],"archive_link":null,"archive":false,"iframe":true,"cover":"50d7bc15-edd5-4261-bc2a-1b173b5a1547","id":44,"sort":33,"clicks":91,"public":false,"is_new":false,"stats":[27]},"relativePath":"groove-pizza/index.md","filePath":"groove-pizza/index.md","lastUpdated":0}'),l={name:"groove-pizza/index.md"},b=Object.assign(l,{setup(d){const{params:a,frontmatter:m}=r();return(u,g)=>{const e=t;return p(),s("div",null,[o(e,i(n(c(a))),null,16)])}}});export{v as __pageData,b as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as o,R as i,S as n,f as c,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://apps.musedlab.org/groovepizza/","date_created":"2023-11-21T04:30:41.565Z","title":"Groove Pizza","slug":"groove-pizza","author":"NYU Music Experience Design Lab","author_link":"https://musedlab.org/groovepizza/","description":"Groove Pizza is a circular rhythm app for creative music making and learning! It’s also a playful tool for creating grooves using math concepts like shapes, angles and patterns","tags":["drums","sequencer","Educational"],"archive_link":null,"archive":false,"iframe":true,"cover":"50d7bc15-edd5-4261-bc2a-1b173b5a1547","id":44,"sort":34,"clicks":91,"public":false,"is_new":false,"stats":[27]},"relativePath":"groove-pizza/index.md","filePath":"groove-pizza/index.md","lastUpdated":0}'),l={name:"groove-pizza/index.md"},b=Object.assign(l,{setup(d){const{params:a,frontmatter:m}=r();return(u,g)=>{const e=t;return p(),s("div",null,[o(e,i(n(c(a))),null,16)])}}});export{v as __pageData,b as default}; diff --git a/assets/groove-pizza_index.md.DB1vs1YE.lean.js b/assets/groove-pizza_index.md.3ekFWbxz.lean.js similarity index 95% rename from assets/groove-pizza_index.md.DB1vs1YE.lean.js rename to assets/groove-pizza_index.md.3ekFWbxz.lean.js index 91f48f35..b7e5534b 100644 --- a/assets/groove-pizza_index.md.DB1vs1YE.lean.js +++ b/assets/groove-pizza_index.md.3ekFWbxz.lean.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as o,R as i,S as n,f as c,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://apps.musedlab.org/groovepizza/","date_created":"2023-11-21T04:30:41.565Z","title":"Groove Pizza","slug":"groove-pizza","author":"NYU Music Experience Design Lab","author_link":"https://musedlab.org/groovepizza/","description":"Groove Pizza is a circular rhythm app for creative music making and learning! It’s also a playful tool for creating grooves using math concepts like shapes, angles and patterns","tags":["drums","sequencer","Educational"],"archive_link":null,"archive":false,"iframe":true,"cover":"50d7bc15-edd5-4261-bc2a-1b173b5a1547","id":44,"sort":33,"clicks":91,"public":false,"is_new":false,"stats":[27]},"relativePath":"groove-pizza/index.md","filePath":"groove-pizza/index.md","lastUpdated":0}'),l={name:"groove-pizza/index.md"},b=Object.assign(l,{setup(d){const{params:a,frontmatter:m}=r();return(u,g)=>{const e=t;return p(),s("div",null,[o(e,i(n(c(a))),null,16)])}}});export{v as __pageData,b as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as o,R as i,S as n,f as c,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://apps.musedlab.org/groovepizza/","date_created":"2023-11-21T04:30:41.565Z","title":"Groove Pizza","slug":"groove-pizza","author":"NYU Music Experience Design Lab","author_link":"https://musedlab.org/groovepizza/","description":"Groove Pizza is a circular rhythm app for creative music making and learning! It’s also a playful tool for creating grooves using math concepts like shapes, angles and patterns","tags":["drums","sequencer","Educational"],"archive_link":null,"archive":false,"iframe":true,"cover":"50d7bc15-edd5-4261-bc2a-1b173b5a1547","id":44,"sort":34,"clicks":91,"public":false,"is_new":false,"stats":[27]},"relativePath":"groove-pizza/index.md","filePath":"groove-pizza/index.md","lastUpdated":0}'),l={name:"groove-pizza/index.md"},b=Object.assign(l,{setup(d){const{params:a,frontmatter:m}=r();return(u,g)=>{const e=t;return p(),s("div",null,[o(e,i(n(c(a))),null,16)])}}});export{v as __pageData,b as default}; diff --git a/assets/index.md.Ck_FBFlh.js b/assets/index.md.Ck_FBFlh.js new file mode 100644 index 00000000..9100a854 --- /dev/null +++ b/assets/index.md.Ck_FBFlh.js @@ -0,0 +1 @@ +import{D as Oe,b,d as y,g as f,f as M,q as _,r as D,E as pe,F as $e,G as De,t as $,H as Pe,I as j,e as X,j as ee,h as U,_ as ve,s as Re,x as ze,J as te,y as B,z as G,A as se,K as Be,i as Ne,L as we,C as We,M as Fe,N as je,a as Ze,c as J,o as Ve,w as qe,T as Ye,n as Ue,O as Ge,P as Ke,Q as He}from"./chunks/framework.BMc-2bSs.js";import{u as Je,f as Y,_ as Qe,a as Xe}from"./chunks/useClicks.DBr_plfA.js";import{u as ke}from"./chunks/theme.CBbWuF7B.js";import"./chunks/index.DISW28_u.js";const et={class:"text-center line-height-loose text-md"},tt={class:"mx-auto max-w-75ch intro md-text-lg"},st=f("div",{class:"i-mdi-share"},null,-1),nt=f("span",null,"Share to save for later",-1),it=[st,nt],at={__name:"AboutShare",setup(t){const{share:e,isSupported:s}=Oe();function n(){e({title:"Web synths collection",text:"Look at this online synthesizer collection. No need to install anything - just your browser and any MIDI controller will do.",url:location.href})}return(i,a)=>(b(),y("div",et,[f("div",tt,[M(s)?(b(),y("button",{key:0,class:"mx-auto flex items-center gap-2 text-white py-2 px-4 mt-6 shadow-lg rounded-lg cursor-pointer bg-green-600 -hover-translate-y-2px transition",onClick:a[0]||(a[0]=o=>n()),"data-umami-event":"Shared via button"},it)):_("",!0)])]))}},ne=JSON.parse(`[{"url":"https://dotpiano.com/","date_created":"2023-10-27T12:45:53.887Z","title":"Dotpiano","slug":"dotpiano","author":"Alex Chen and Yotam Mann","author_link":null,"description":"Dot Piano is an online musical instrument allowing users to play a digital piano using their computer keyboard. The interactive web app provides a simple and intuitive interface for creating and sharing music, making it accessible for both beginners and experienced musicians.","tags":["polyphonic","midi","keyboard","Multiplayer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"6dac5187-213f-4eb8-96ed-63c2e689b206","id":1,"sort":1,"clicks":6427,"public":true,"is_new":false,"stats":[1]},{"url":"https://waveform.playtronica.com/","date_created":"2023-10-27T12:45:54.644Z","title":"Waveform","slug":"waveform","author":"Qvantor","author_link":"https://github.com/qvantor/","description":"Polyphonic web synthesizer with simple yet capable interface.","tags":["playtronica","polyphonic","midi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"86cb9385-9deb-4f10-95cb-765980156e65","id":39,"sort":2,"clicks":6795,"public":true,"is_new":false,"stats":[2]},{"url":"https://juno-106.js.org/","date_created":"2023-10-27T12:45:54.085Z","title":"Juno-106","slug":"juno-106","author":"Steve Goldberg ","author_link":"https://github.com/stevengoldberg","description":"Online emulator of the classic Roland Juno-106 synthesizer. This interactive web app allows users to experiment with the iconic sounds of the Juno-106 directly from their browser. It features authentic recreations of the synth's controls and sound characteristics, making it a valuable tool for music enthusiasts and producers. ","tags":["fm","midi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"b54cfce7-af2f-4e03-a5b3-81fc853d2cc8","id":14,"sort":3,"clicks":5017,"public":true,"is_new":false,"stats":[3]},{"url":"https://chromatone.center/practice/synth/elementary/","date_created":"2023-10-27T12:45:54.453Z","title":"Elementary synth","slug":"elementary","author":"Chromatone","author_link":"https://chromatone.center","description":"The Chromatone Elementary Synth is an interactive web-based synthesizer designed to provide a hands-on learning experience in sound synthesis. It features MIDI support and is built using the Elementary audio library. This synthesizer allows users to explore different synthesis techniques through a user-friendly interface, making it an excellent tool for both beginners and experienced musicians looking to experiment with sound design.","tags":["chromatone","polyphonic","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"21070a51-6089-48bd-8840-ba37b5f2963d","id":29,"sort":4,"clicks":3186,"public":true,"is_new":false,"stats":[4]},{"url":"https://mmontag.github.io/dx7-synth-js/","date_created":"2023-10-27T12:45:54.477Z","title":"DX7 Synth","slug":"dx7","author":"Matt Montag ","author_link":"https://github.com/mmontag","description":"The DX7 Synth JS is an online emulator of the classic Yamaha DX7 synthesizer. This interactive web app replicates the iconic FM synthesis capabilities of the DX7, allowing users to create and manipulate sounds using various parameters such as algorithms, operators, and envelopes. The app supports MIDI devices and provides a user-friendly interface for sound design experimentation. ","tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"f3b285ee-6b82-453b-9ff6-aeda18ec675b","id":30,"sort":5,"clicks":2718,"public":true,"is_new":false,"stats":[5]},{"url":"https://touchme.chromatone.center/","date_created":"2023-10-27T12:45:53.941Z","title":"TouchME","slug":"touchme","author":"Chromatone","author_link":"https://chromatone.center","description":"TouchMe Experience by Chromatone is an interactive audio-visual web app that transforms touch inputs into music and visual effects. It features MIDI support, multiple synth oscillators, and various quantize and BPM modes. Users can explore six interactive SVG scenes, switch between light and dark modes, and view basic session statistics. Designed for creative experimentation, it offers a unique way to engage with music and visuals.","tags":["chromatone","playtronica"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"68062279-8e08-4953-ae8f-7a77c584948e","id":3,"sort":6,"clicks":3416,"public":true,"is_new":false,"stats":[6]},{"url":"https://muted.io/","date_created":"2023-10-27T12:45:54.742Z","title":"Muted.io","slug":"muted-io","author":"Sébastien Noël","author_link":"https://twitter.com/muted_io","description":"Muted.io offers a collection of interactive music theory tools designed for learning music online. These tools include a virtual piano, chord and scale references, a circle of fifths, tuners, and various visual aids to understand music theory concepts. The site is ideal for musicians looking to improve their knowledge and practice music in an engaging way.","tags":["educational","midi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"5c08ac7d-4414-47c0-b7d1-a9867ba3949f","id":43,"sort":7,"clicks":175,"public":false,"is_new":false,"stats":[10]},{"url":"https://chromatone.center/practice/synth/soundfont/","date_created":"2023-12-18T10:20:56.985Z","title":"Soundfont Sampler Synth","slug":"soundfont","author":"Chromatone","author_link":"https://github.com/chromatone","description":"Free open source soundfont sampler online synthesizer. Very robust and hassle free way to play some straightforward sampled instruments like horns, xylophones and just piano sounds. Instantly playable instrument with about 90 presets out of the box. ","tags":["Poly","Keyboard","Sampler","MIDI"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"26704e9d-5964-4a0f-940c-370c14777e95","id":51,"sort":8,"clicks":0,"public":true,"is_new":true,"stats":[43]},{"url":"https://midi.city/","date_created":"2023-12-28T05:40:45.140Z","title":"MIDI.city","slug":"midi-city","author":"Astral Digital","author_link":"https://astral.digital/","description":"midi.city is a free online synthesizer, built by Jack.\\n\\nmidi.city has over 128 different instruments including: Pianos, Saxophones, Drums, Trumpets, Synth Pads, Guitar, Violins and all other instruments defined in the General Midi specification.","tags":null,"archive_link":null,"archive":false,"content":"midi.city has been created with the help of hundreds of different open-source projects and with contributions from many others.\\n\\n- Tone.js by Yotam Mann: the Web Audio API-based sound engine that implements a majority of nodes used in the audio graph. It powers many of the advanced features used such as Granular Synthesis, Reverb, and timing.\\n- Groove Monkee: graciously provided the MIDI files that are used for the percussion loops.\\n- Keenan Brand: created the midi.city logo and various icons used on the site.\\n- Noun Project: various icons are used via a Pro license.\\n- Google Material Design: various icons.\\n- Compifont by Marcin Dziembor: the soundfont powering the samples and many the audio graph definitions, is originally . Several modifications have been made to adapt to midi.city and the Web Audio API. ","iframe":true,"cover":"8cb479ba-e4e0-42f2-986c-597b68b8e639","id":52,"sort":9,"clicks":10,"public":false,"is_new":false,"stats":[44]},{"url":"https://apps.musedlab.org/aqwertyon/theory/","date_created":"2023-10-27T12:45:54.711Z","title":"aQWERTYon","slug":"aqwertyon","author":"Mused lab","author_link":"https://musedlab.org/","description":"aQWERTYon is an interactive web app that turns your computer keyboard into a musical instrument. Designed for music theory practice, it allows users to play notes and chords using a QWERTY keyboard layout. The app provides a visual representation of notes and scales, making it a useful tool for learning and exploring music theory concepts.","tags":["polyphonic","samples"],"archive_link":null,"archive":false,"content":"The **aQWERTYon** (QWERTY accordion) is designed to simplify the process for improvising, learning, and making music with your computer keyboard. Play along with your favorite YouTube videos, learn music theory through our Music Theory for Bedroom Producers course in collaboration with Soundfly, or take advantage of Web MIDI and us it to play and record into your favorite digital audio workstation, such as Soundtrap.com, GarageBand, Logic, or Ableton, or as input into music notation programs like Noteflight.\\n\\nhttps://youtu.be/hqFr4lF6u_Y","iframe":true,"cover":"e7c87de8-c290-4da9-b0e0-eed73871b27a","id":42,"sort":10,"clicks":348,"public":false,"is_new":false,"stats":[8]},{"url":"https://musiclab.chromeexperiments.com/","date_created":"2023-11-26T08:23:47.351Z","title":"Chrome Music Lab","slug":"chrome-lab","author":"Google","author_link":"https://github.com/googlecreativelab/chrome-music-lab","description":"Chrome Music Lab is a website that makes learning music more accessible through fun, hands-on experiments.","tags":["Educational","Keyboard","MIDI","Poly","Piano","Analysis","Mic","Visuals"],"archive_link":null,"archive":false,"content":"## What can it be used for?\\n\\nMany teachers have been using Chrome Music Lab as a tool in their classrooms to explore music and its connections to science, math, art, and more. They’ve been combining it with dance and live instruments. Here’s a collection of some uses we’ve found on Twitter.\\n\\n## Can I use it to make my own songs?\\n\\nYes. Check out the Song Maker experiment, which lets you make and share your own songs.\\n\\n## Do I need to make an account?\\n\\nNope. Just open any experiment and start playing.\\n\\n## How were these built?\\n\\nAll our experiments are all built with freely accessible web technology such as Web Audio API, WebMIDI, Tone.js, and more. These tools make it easier for coders to build new interactive music experiences. You can get the open-source code to lots of these experiments here on [Github](https://github.com/googlecreativelab/chrome-music-lab).\\n\\n## What devices do these work on?\\n\\nYou can play with these experiments across devices – phones, tablets, laptops – just by opening the site on a web browser such as Chrome.","iframe":true,"cover":"297b059e-a6fa-4faa-91b2-c2e1e68cf98f","id":50,"sort":11,"clicks":304,"public":false,"is_new":false,"stats":[9]},{"url":"https://topos.live/","date_created":"2024-06-21T12:06:09.754Z","title":"Topos","slug":"topos","author":"Raphael","author_link":"https://github.com/Bubobubobubobubo/topos","description":"Topos is an algorithmic sequencer. Topos is also a live coding environment. To sum it up, think: \\"making music in real time through code\\". Code used as an expressive medium for musical improvisation! Topos uses small algorithms to represent musical sequences and processes.","tags":["Live coding","MIDI","Poly","Visuals","FM"],"archive_link":null,"archive":false,"content":"Topos is deeply inspired by the Monome Teletype. The Teletype is/was an open source hardware module for Eurorack synthesizers. While the Teletype was initially born as an hardware module, Topos aims to be a web-browser based cousin of it! It is a sequencer, a scriptable interface, a companion for algorithmic music-making. Topos wishes to fullfill the same goal as the Teletype, keeping the same spirit alive on the web. It is free, open-source, and made to be shared and used by everyone. Learn more about live coding on livecoding.fr.","iframe":true,"cover":"76e0c2b7-e95e-447d-982d-e156cb9d1530","id":57,"sort":12,"clicks":0,"public":false,"is_new":true,"stats":[49]},{"url":"https://websynths.com/","date_created":"2023-10-27T12:45:54.019Z","title":"Websynths Microtonal","slug":"microtonal","author":"WebSynths","author_link":"https://www.websynths.com/microtonal/","description":"The deepest internet synthesizer","tags":null,"archive_link":null,"archive":false,"content":"\\nWebSynths is a free resource for any musician with internet access! But, it is made possible by support from our patrons. Please consider helping if you can: patreon.com/WebSynths\\n\\n- You can use your QWERTY keyboard, mouse, mobile touch or MIDI keyboard to play the sounds.\\n- You can change the tuning of the keys, or select a scale, by clicking the tuning button.\\n- MIDI is a way to use an external physical instrument to play it. If you have a MIDI keyboard that you wish to use, hit the MIDI button to set it up.\\n- If a note gets stuck, hit the panic button, it will stop all voices from playing.\\n- You can use the arrows on your computer keyboard to scroll through the presets.\\n\\nA simple explanation of Subtractive Synthesis:\\n\\n- Subtractive Synthesis works by taking one or more oscillators, setting the pitch of their oscillation (usually to the note of the key being pressed,) setting the shape of their oscillation to the desired timbre (Sine, Saw, Square or more complex shapes,) mixing them together and running them through a filter to change their EQ (usually filtering out the highest or lowest frequencies... this is why it is called \\"subtractive\\"), then running them through an envelope so the note can be heard on when a key is pressed down and is silenced when the key is released. In the case of WebSynths Microtonal, the sound is then sent through effects like delay, chorus and reverb and out to your speakers.\\n- Oscillators are the voices. This synth has 3 of them in the left column. You can change the character of each voice by changing the parameters of them. The 'Shape' menu allows you to choose from different styles of voice for each oscillator. You can turn each voice on or off and mix them together.\\n- The filter section applies equalization to your oscillators via the cutoff and emphasis controls. You can change the equalization filter type to 'low pass / high pass' and many more. You can use the LFOs and/or Envelopes to change how the filtration changes over time. An LFO is just a slow oscillator that is uses to automatically move a parameter over time.\\n- The amplitude envelope changes how your sound is played, volume-wise, when you hit a note. For example, having a long release time will mean that once you let go of the note you are playing it will tail off until fading out. Having a slow attack will mean that your note will fade in instead of playing at full volume straight away.\\n- The effects section allows you to add various effects to your overall sound. You can change the effects, mix them together and toggle them on or off too.\\n\\n","iframe":false,"cover":"ffc54664-7ba4-4855-a56a-6657a5542a04","id":10,"sort":13,"clicks":172,"public":false,"is_new":false,"stats":[11]},{"url":"https://stuartmemo.com/synth/","date_created":"2023-10-27T12:45:54.586Z","title":"Sympathetic Synthesizer System Mk 1","slug":"sympathetic","author":"Stuart Memo ","author_link":"https://github.com/stuartmemo","description":"The Sympathetic Synthesizer System Mk 1 is an interactive web app that emulates a complex synthesizer. It features three oscillators with selectable waveforms, an LFO, filters with ADSR controls, and noise generation. The app allows users to explore sound design through various parameters, offering a detailed and hands-on synthesis experience. MIDI support is also included for enhanced control.","tags":["keyboard","midi","additive"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"123aeb6d-c7b0-43dd-a852-98660bdf03f0","id":37,"sort":14,"clicks":302,"public":false,"is_new":false,"stats":[12]},{"url":"https://learningsynths.ableton.com/","date_created":"2023-10-27T12:45:54.360Z","title":"Learning synths","slug":"ableton","author":"Ableton","author_link":"https://github.com/Ableton","description":"Explore the fundamentals of synthesis with this interactive web-app by Ableton. Dive into the world of sound design, experiment with different parameters, and learn how to sculpt your own unique sounds with ease.","tags":null,"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"0bf8312d-c449-4f5c-80ad-36594ef98db6","id":26,"sort":15,"clicks":185,"public":false,"is_new":false,"stats":[13]},{"url":"https://www.femurdesign.com/theremin/","date_created":"2023-10-27T12:45:54.206Z","title":"Theremin","slug":"theremin","author":"Femur","author_link":"https://femurdesign.com/","description":"Experience the magic of the theremin with this interactive web-app by Femur Design. Harness the power of motion to create ethereal music without physical contact. Experiment with pitch and volume to craft haunting melodies right in your browser.","tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"6b22ef48-6830-4cf2-810d-809408033450","id":19,"sort":16,"clicks":320,"public":false,"is_new":false,"stats":[14]},{"url":"https://cardinal.kx.studio/live","date_created":"2024-05-20T18:57:14.836Z","title":" DISTRHO Cardinal","slug":"cardinal","author":"Filipe Coelho, aka falkTX","author_link":"https://falktx.berlin/","description":"Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.","tags":["Modular","FM","Poly"],"archive_link":null,"archive":false,"content":"Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.\\nIt is based on the popular VCV Rack but with a focus on being a fully self-contained plugin version.\\n\\nMore specifically, this is a DPF-based plugin wrapper around VCV Rack, using its code directly instead of forking the project, with the target of having a self-contained, fully free and open-source plugin version of Rack.\\nSee the why section below for the reasons Cardinal exists, also for frequently asked questions check this FAQ document.\\n\\nCardinal contains Rack, some 3rd-party modules and a few internal utilities all in a single binary.\\nAll \\"Core\\" modules from Rack have been replaced by Cardinal equivalents, simplified to better work for an audio plugin.\\n\\nCardinal does not load external modules and does not connect to the official Rack library/store.\\nAll VCV branding has been removed (to the best of our knowledge) in order to avoid any trademark issues.\\n\\n## Why\\n\\nCardinal was created first and foremost as a way to have Rack as a proper open-source audio plugin.\\nA proper audio plugin should be self-contained as much as possible, as to not interfere with the DAW/Host. Loading external modules clearly goes against this idea.\\nNot to mention being open-source, otherwise we are at the mercy of the wishes of a company for what we can and cannot do, which is not something Cardinal's authors wish to abide by.\\n\\nA self-contained plugin can't be overstated, as DLL/shared-object symbol conflicts can trigger hard-to-debug crashes.\\nWhile Rack tries to mitigate this as much as possible, crashes due to conflicting modules have already been seen in v2 builds.\\nOn the other side, Cardinal redefines class and function names as needed to avoid as many conflicts as possible.\\n\\nSupport for ARM and non-mainstream platforms (for example BSD) has also always been missing from the official Rack since the start.\\nWhile we can patch the Rack free version to support these, same can't be done with Rack Pro with it being a closed-source product.\\nThe online library/store only supports a very specific set of platforms too, so non-supported platforms would need any 3rd-party modules to be manually compiled to make them usable.\\n\\nUnhappiness with the audio threading behaviour of Rack also plays a role.\\nBoth audio and MIDI should be locked to the host audio thread as to minimize (or even altogether remove) latency and jitter.\\nThe use of separate threads for MIDI is bad design, one that has been corrected in DAWs and JACK-MIDI for several years...\\nBut Rack's use of RtMidi requires separate threading, so Cardinal does not use it.","iframe":true,"cover":"dc7070e1-66fd-4f74-95d2-92d8388864e2","id":56,"sort":17,"clicks":5,"public":false,"is_new":true,"stats":[48]},{"url":"https://multiplayer-orchestra.com","date_created":"2024-04-23T08:07:22.796Z","title":"Multiplayer Orchestra","slug":"multiplayer-orchestra","author":"Mutli_Orchestra","author_link":"https://twitter.com/Mutli_Orchestra","description":"Play in real time with people from all around the world with more than 400 instruments.","tags":["Poly","MIDI","Keyboard","Collaborative","Online"],"archive_link":null,"archive":false,"content":"Multiplayer Orchestra ([https://www.multiplayer-orchestra.com/](https://www.multiplayer-orchestra.com/)) is a web application that allows you to virtually collaborate with musicians from around the world in real-time. Here are some key features:\\n\\n* **Large instrument selection:** Choose from over 400 instruments, including pianos, guitars, drums, and orchestral instruments.\\n* **Real-time collaboration:** Play music simultaneously with other users, creating a virtual orchestra.\\n* **Public and private rooms:** Join public rooms to jam with others or create private rooms with a password for specific collaborations.\\n* **Contests:** Participate in contests to win prizes like Amazon gift cards by recording solo performances.\\n\\n**It's important to note that the website seems to be in beta based on the version information listed (Beta 0.30).** ","iframe":true,"cover":"d743d9ea-d73f-4593-a70e-58a3e4deaa1b","id":55,"sort":18,"clicks":5,"public":false,"is_new":true,"stats":[47]},{"url":"https://touchpianist.com/","date_created":"2023-10-27T12:45:54.691Z","title":"Touch Pianist","slug":"touch-pianist","author":"EarSlap","author_link":null,"description":"Unleash your inner virtuoso with Touch Pianist. Experience the thrill of playing the piano with just your fingertips. Choose your favorite classical masterpiece and immerse yourself in the joy of creating beautiful music, all through the power of touch.","tags":["entertainment","piano"],"archive_link":null,"archive":false,"content":"Touch Pianist is a musical toy / instrument that allows the user to perform hard-to-play classical piano music favorites (from composers like Beethoven, Mozart, Bach, Satie, Debussy to name a few) just by tapping the rhythm of the piece's particular sound events on a computer keyboard or a touch screen.\\n\\nIt also provides live visualisation of the pieces that are being performed. There is no score keeping, the user is free to perform the music in any way they wish. The premise is that it is really fun to perform a piece you know well, exactly like you feel it with so little effort.\\n\\nTouch Pianist has CoreMIDI support so you can use your favorite piano / sound plug-in in your computer as a sound source if you wish.","iframe":false,"cover":"415deeeb-a843-4363-b6c9-78918aa688af","id":41,"sort":19,"clicks":177,"public":false,"is_new":false,"stats":[15]},{"url":"https://www.beepbox.co","date_created":"2024-03-21T02:43:35.749Z","title":"BeepBox","slug":"beepbox","author":"John Nesky","author_link":"https://johnnesky.com/","description":"BeepBox is an online tool for sketching and sharing instrumental music.\\n\\nAll song data is contained in the URL at the top of your browser. When you make changes to the song, the URL is updated to reflect your changes. When you are satisfied with your song, just copy and paste the URL to save and share your song!\\n\\nBeepBox is a passion project, and will always be free to use. ","tags":["Poly","Sequencer","FM"],"archive_link":null,"archive":false,"content":" BeepBox is developed by John Nesky.\\n\\nBeepBox does not claim ownership over songs created with it, so original songs belong to their authors.\\n\\nNeither John Nesky nor BeepBox assume responsibility for any copyrighted material played on BeepBox. No songs are ever received, recorded, or distributed by BeepBox's servers. All song data is contained in the URL after the hash (#) mark, and your song data will not leave your device unless you copy and share the URL. BeepBox does not collect, track, or share any user data. ","iframe":true,"cover":"dea37f5f-504c-443f-ba9a-3dff4d583506","id":54,"sort":20,"clicks":10,"public":false,"is_new":true,"stats":[46]},{"url":"https://roland50.studio/","date_created":"2023-11-25T05:42:57.573Z","title":"Roland 50 Studio","slug":"roland50","author":"Yuri Suzuki","author_link":"https://www.yurisuzuki.com/","description":"It's a professional sounding online musical interface, which records your masterpieces and allows you to share your creations through social media, messaging and also as a download.\\nOn top of the TR-808 drum machine and TB-303 bass synthesizer featured at the original 2020 release, now the sound of SH-101 synthesizer is added, and more sounds to come later in the year 2022, commemorating Roland's 50th anniversary.","tags":["drum machine","SP404","TR808","TB303","Step sequencer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"3b5aec13-7e50-475c-9165-bc963872515d","id":45,"sort":21,"clicks":17,"public":false,"is_new":false,"stats":[16]},{"url":"https://www.disco-computer.com/synthesizer/synth.html","date_created":"2023-10-27T12:45:54.270Z","title":"Disco-computer","slug":"disco-computer","author":"Patrick Sawyer","author_link":null,"description":null,"tags":["polyphonic","fm","keyboard"],"archive_link":"/archive/synthescheisse/index.html","archive":true,"content":null,"iframe":true,"cover":"0d0183e6-8964-4246-a18c-a6ca0a0f2794","id":22,"sort":22,"clicks":269,"public":false,"is_new":false,"stats":[17]},{"url":"https://seeing-sound.netlify.app/","date_created":"2023-10-27T12:45:54.492Z","title":"Video Sampler","slug":"video-sampler","author":"Playtronica","author_link":"https://shop.playtronica.com","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"b39cc546-2571-4402-84cd-f8497e27d0c9","id":31,"sort":23,"clicks":256,"public":false,"is_new":false,"stats":[18]},{"url":"https://www.stef.be/bassoontracker/","date_created":"2024-03-14T07:04:03.311Z","title":"Bassoon Tracker","slug":"bassoon","author":"Steffest","author_link":" https://www.stef.be","description":"Browser-based old-school Amiga Music Tracker in plain old JavaScript.","tags":["FM","tracker","8-bit","low-fi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"70c9db80-8ef8-4aa5-9dcd-6b5c3c0da5b2","id":53,"sort":25,"clicks":10,"public":false,"is_new":true,"stats":[45]},{"url":"https://www.igorski.nl/experiment/websid","date_created":"2023-10-27T12:45:54.438Z","title":"WebSID Commodore 64","slug":"web-sid","author":"Igor Zinken","author_link":"https://www.igorski.nl/","description":null,"tags":["polyphonic","keyboard","midi","additive"],"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"932e0ae0-0048-4c6d-92bb-a4a17a8a4dd4","id":28,"sort":26,"clicks":156,"public":false,"is_new":false,"stats":[19]},{"url":"https://nicroto.github.io/viktor/","date_created":"2023-10-27T12:45:54.388Z","title":"Viktor NV-1","slug":"nv-1","author":"Nikolay Tsenkov ","author_link":"https://github.com/nicroto","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"ff3082ad-3c38-4880-ab23-35711c97ea71","id":27,"sort":27,"clicks":496,"public":false,"is_new":false,"stats":[20]},{"url":"https://virtualpiano.eu/","date_created":"2023-10-27T12:45:54.542Z","title":"VirtualPiano.eu","slug":"virtual-piano","author":"WebSyrup","author_link":"https://websyrup.net/","description":null,"tags":["midi","keyboard"],"archive_link":null,"archive":false,"content":"VirtualPiano.eu is the online synthesizer that allows you to play 128 musical instruments for free using your PC keyboard, the mouse or by connecting an external MIDI keyboard.\\n\\nYou can adjust Volume, Reverb, Loop and quality. Use the sustain and adjust the octaves, you can also select and set different channels including the one for the drums.\\n\\nCreate your own melodies, have fun playing or use VirtualPiano to learn how to play the Piano online on your own. ","iframe":true,"cover":"9a59eea5-c77f-483c-9443-1cd0727e6dcc","id":35,"sort":28,"clicks":282,"public":false,"is_new":false,"stats":[21]},{"url":"https://onlinesequencer.net/","date_created":"2023-10-27T12:45:54.565Z","title":"Online sequencer","slug":"online-sequencer","author":"Jacob Morgan and George Burdell","author_link":"https://github.com/buildist","description":null,"tags":["sequencer"],"archive_link":null,"archive":false,"content":"**Online Sequencer** is a web-based music sequencer that allows users to create music saved online, or on their computer. The piano roll is essential to the sequencer, which is on the left of the screen, with 72 notes from C2-B7 (labelled differently from a piano, C2 on the sequencer corresponds to C1 on a piano). In addition to several parameters which can be modified to change the sound of the music, additional functionality can be accessed via the console.\\n\\nUpon opening the site, users can begin composing and \\"drawing\\" notes on the grid, with the default instrument being Electric Piano. By default, a sequence's time signature is set to 4/4, and the grid spacing is set to 1/4 (16 notes per measure). The note lengths can be adjusted by dragging the dark tab on the right of each note, and precision can be afforded by changing the 'Grid' option to other note divisions. \\n\\n## History\\n\\nOnline Sequencer was created on January 2, 2013 by Jacob Morgan during a break at Georgia Tech.\\n\\nBeginning in the fall of 2013, accounts were available but were separate from the music portion of the site. They were only used in the forum and the website chat.\\n\\nIn 2015, accounts were linked to the main website and allowed songs to be saved under someone's username.\\n\\nThe World Update in 2018 added several new instruments and changed the landscape of sound design on the site. The \\"World Update Contest\\" was held for the update.\\n\\nStarting in late 2020, OS began to receive a variety of updates which vastly improved the functionality of the site. These updates introduced features like custom grid sizes, automation with markers, extra reverb options, detune, and distortion. In 2021, the \\"Space Race\\" contest was held, as to see who could work best with the changes.\\n\\nIn late 2022, newer, higher-quality instruments were added. Some of the instruments, such as Electric Piano, Grand Piano, Violin, and Cello got an updated sustained version, while the original versions still exist under the \\"classic\\" designation.\\n\\nCurrently, the 10-Year Anniversary Contest is being held.\\n\\n## Features\\n\\nWithin the editor, numerous user interface features allow for various changes which will impact the individual sequence on that page.\\n\\n### Basic features\\n\\nUI features include:\\n\\n- Tempo (10-999 BPM)\\n- Measure count or Time count (MM: SS.ssss)\\n- Time signature (2/4, 3/4, 4/4, 5/4)\\n- Grid size (This correlates to note divisions; 1/16, 1/12, 1/8, 1/6, 1/4, 1/3, 1/2)\\n- Auto Scroll (Fast, Smooth, Off; how the sequencer displays measures off-screen as a sequence plays)\\n- Add an Audio Track (This won't be saved to the sequence but will play alongside it for ease of transcription)\\n- Title input\\n- Draw, select, and erase\\n- Instrument dropdown, instrument options, and select instrument (selects all notes of the current instrument)\\n- Select all, Cut, Copy, and Paste\\n- Zoom options\\n- Export options\\n- Help\\n- Fullscreen\\n- Tooltips\\n\\n### Advanced features\\n\\nUsers can access more advanced features for use in their sequences by clicking the advanced tab on the instrument they wish to change. This menu contains options to change volume, panning, detune (-1200 to +1200), reverb, distortion, and an equalizer. This array lets users configure specific instruments to create specific sounds, and textures, or to accompany other instruments as a layer or development of the original sound.\\n\\nOS also allows for commands to be entered in the browser console to manipulate different options in specific ways, such as setting custom to detune values (0-infinity), custom grid sizes, note divisions, and sequence ID amongst other things. These options bring OS closer to that of classic Digital Audio Workstations (DAWs) but are still limited in terms of accessibility and availability.\\n\\n### Browser and device support\\n\\nOnline Sequencer supports Chrome and other Chromium-based browsers, such as Microsoft Edge, Opera, and Brave. Firefox is also supported, but often with limited functionality. Safari and Internet Explorer are not supported, due to engine issues.\\n\\nOther mobile browsers support sequence playback, but not editing. However, iOS users have the same problem with WebKit on macOS. However, unlike in macOS, all browsers (even Chromium-based browsers) use WebKit as the engine for iOS due to Apple prohibiting other engines for security reasons; iOS does not support Online Sequencer, other than chat and forums.\\n\\nThe website's user interface is formatted for proper use on desktops, but some pages such as the chat page, playlists, and forums should be formatted well on mobile devices. ","iframe":true,"cover":"ec08ba72-8157-4415-8b34-aea1fe686e09","id":36,"sort":29,"clicks":321,"public":false,"is_new":false,"stats":[22]},{"url":"https://sb.bitsnbites.eu/","date_created":"2023-10-27T12:45:54.625Z","title":"Sound Box","slug":"sound-box","author":"Bits'n'bites","author_link":"https://gitlab.com/mbitsnbites","description":null,"tags":["tracker"],"archive_link":null,"archive":false,"content":"https://github.com/mbitsnbites/soundbox","iframe":true,"cover":"f2f825f3-a084-408b-86d1-2b64cf822c3c","id":38,"sort":30,"clicks":209,"public":false,"is_new":false,"stats":[23]},{"url":"https://femurdesign.com/omni/","date_created":"2023-10-27T12:45:54.224Z","title":"Omni","slug":"omni","author":"Luke Phillips","author_link":"https://femurdesign.com/","description":null,"tags":["polyphonic","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"fbb1364f-53cf-4f71-8f29-d7f572308e78","id":20,"sort":31,"clicks":210,"public":false,"is_new":false,"stats":[24]},{"url":"https://www.g200kg.com/docs/webmodular/","date_created":"2023-10-27T12:45:54.252Z","title":"Web Modular","slug":"web-modular","author":"g200kg","author_link":"https://www.g200kg.com/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"48e0280c-f7ff-4308-bde3-973b7febe89c","id":21,"sort":32,"clicks":202,"public":false,"is_new":false,"stats":[25]},{"url":"https://errozero.co.uk/acid-machine/","date_created":"2023-10-27T12:45:54.333Z","title":"Acid Machine 2","slug":"acid-machine-2","author":"Errozero","author_link":"https://www.errozero.co.uk/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"031eab3e-2f21-442a-8fdc-9769907824e0","id":25,"sort":33,"clicks":166,"public":false,"is_new":false,"stats":[26]},{"url":"https://apps.musedlab.org/groovepizza/","date_created":"2023-11-21T04:30:41.565Z","title":"Groove Pizza","slug":"groove-pizza","author":"NYU Music Experience Design Lab","author_link":"https://musedlab.org/groovepizza/","description":"Groove Pizza is a circular rhythm app for creative music making and learning! It’s also a playful tool for creating grooves using math concepts like shapes, angles and patterns","tags":["drums","sequencer","Educational"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"50d7bc15-edd5-4261-bc2a-1b173b5a1547","id":44,"sort":34,"clicks":91,"public":false,"is_new":false,"stats":[27]},{"url":"https://ojack.github.io/PIXELSYNTH/","date_created":"2023-10-27T12:45:54.286Z","title":"PixelSynth","slug":"pixel-synth","author":"Olivia Jack","author_link":"https://ojack.xyz/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"77369c22-944c-4f6a-83b5-85e16fe43abc","id":24,"sort":35,"clicks":217,"public":false,"is_new":false,"stats":[28]},{"url":"https://www.multiplayerpiano.org/","date_created":"2023-11-26T08:06:18.875Z","title":"Multiplayer Piano","slug":"multiplayer-piano","author":"Brandon Lockaby","author_link":"https://github.com/Multiplayer-Piano","description":"Online piano, that can be played by any site visitor together in a virtual room or alone.","tags":["Piano","MIDI","Poly","Multiplayer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"9c10771b-e38f-469f-b58b-c9e6bb91a072","id":49,"sort":36,"clicks":4,"public":false,"is_new":false,"stats":[29]},{"url":"https://webaudiodemos.appspot.com/midi-synth/index.html","date_created":"2023-10-27T12:45:53.963Z","title":"MIDI–driven Web Audio","slug":"midi-driven-web-audio","author":"Chris Wilson","author_link":"https://github.com/cwilso","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"0005a0c9-c7e7-4922-a1e5-49d4326d2f77","id":6,"sort":37,"clicks":127,"public":false,"is_new":false,"stats":[30]},{"url":"https://samplestitch.com.s3-website-us-east-1.amazonaws.com/","date_created":"2023-10-27T12:45:54.185Z","title":"Samplestich","slug":"sample-stich","author":"Matt Daniels","author_link":"https://mdaniels.com","description":null,"tags":["samples","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"89859f9f-0d45-44dc-93b6-98dfa2e7d799","id":18,"sort":38,"clicks":164,"public":false,"is_new":false,"stats":[31]},{"url":"https://www.audiotool.com/product/device/heisenberg/","date_created":"2023-10-27T12:45:53.983Z","title":"Meet the Heisenberg","slug":"meet-the-heisenberg","author":"AudioTool","author_link":"https://www.audiotool.com","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"a2397ce6-7712-40e5-b4e0-df95c7992662","id":8,"sort":39,"clicks":255,"public":false,"is_new":false,"stats":[32]},{"url":"https://www.gsn-lib.org/apps/cardboardsynth/index.html","date_created":"2023-10-27T12:45:54.002Z","title":"Cardboard Synth","slug":"cardboard-synth","author":" Thorsten Thormählen","author_link":"https://www.uni-marburg.de/en/fb12/research-groups/grafikmultimedia/thormae","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"29fe1fcc-ca85-41b3-ab1e-7f10770f2c1f","id":9,"sort":40,"clicks":184,"public":false,"is_new":false,"stats":[33]},{"url":"https://tanguysynth.com/","date_created":"2023-10-27T12:45:54.036Z","title":"Tanguy synth","slug":"tanguy-synth","author":"Luke Teaford","author_link":"https://github.com/luketeaford","description":null,"tags":["monophonic","additive","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"5471a71e-7c5b-4ea6-aee0-1b394873c381","id":11,"sort":41,"clicks":117,"public":false,"is_new":false,"stats":[34]},{"url":"https://www.blokdust.com/","date_created":"2023-11-25T06:31:23.261Z","title":"BlokDust","slug":"blokdust","author":"Luke Twyman, Luke Phillips, Edward Silverton","author_link":"https://wvnl.xyz/","description":"BlokDust is a creative visual drag and drop music exploration tool. Developed in Brighton UK and released in 2016, BlokDust uses the Web Audio API and makes use of Tone.js as an audio framework.","tags":["creative","sequencer"],"archive_link":null,"archive":false,"content":"Luke Twyman - project concept, design & Ul.\\nwhitevinyldesign.com\\n@whitevinylUK\\nLuke Phillips - audio development & musical interaction.\\nfemurdesign.com\\n@lukephills\\nEdward Silverton - client & server architecture & core development.\\nedsilv.com\\n@edsilv","iframe":true,"cover":"7e5bcda8-f37a-46c0-91d9-0a6ea501a101","id":47,"sort":42,"clicks":19,"public":false,"is_new":false,"stats":[35]},{"url":"https://mod-synth.io/","date_created":"2023-10-27T12:45:54.052Z","title":"MOD synth","slug":"mod-synth","author":"André Venâncio ","author_link":"https://github.com/andrevenancio","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"31564bf3-fca9-41a4-b390-d78ccd848107","id":12,"sort":43,"clicks":146,"public":false,"is_new":false,"stats":[36]},{"url":"https://perso.numericable.fr/olivier.friker/synth/O3-synth%20V1.3.html","date_created":"2023-10-27T12:45:54.069Z","title":"OLIF SY1K","slug":"olif-sy-1-k","author":"Olivier Friker","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"3b9a5e11-3de3-46fe-9cdc-e1668b152f31","id":13,"sort":44,"clicks":145,"public":false,"is_new":false,"stats":[37]},{"url":"http://www.noisesculptor.com/","date_created":"2023-10-27T12:45:54.104Z","title":"Note Sculptor","slug":"note-sculptor","author":"Ruin Technology","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"a01968d1-3f88-4522-9752-1c33d10d90d9","id":15,"sort":45,"clicks":129,"public":false,"is_new":false,"stats":[38]},{"url":"https://aikelab.net/websynthv2/","date_created":"2023-10-27T12:45:54.141Z","title":"WebAudioSynth V2","slug":"web-audio-synth-v2","author":"like","author_link":"https://github.com/aike/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"ac668fba-7226-43dc-a91f-bd21a31446e5","id":16,"sort":46,"clicks":305,"public":false,"is_new":false,"stats":[39]},{"url":"https://isleoftune.com/","date_created":"2023-11-25T06:22:15.184Z","title":"Isle of Tune","slug":"isleoftune","author":"Jim Hall","author_link":"https://twitter.com/isleoftune","description":"Draw an island, where everything plays music.","tags":["game","sequencer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"6830c24f-c7bf-430f-abc1-3d7fbf5f2557","id":46,"sort":47,"clicks":15,"public":false,"is_new":false,"stats":[40]},{"url":"https://www.soundtrap.com/","date_created":"2023-10-27T12:45:54.155Z","title":"Sound Trap","slug":"sound-trap","author":"Soundtrap","author_link":"https://www.soundtrap.com/about","description":null,"tags":["daw"],"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"63ef832a-f7da-4536-851f-4964005a89f1","id":17,"sort":48,"clicks":124,"public":false,"is_new":false,"stats":[41]},{"url":"http://typedrummer.com/","date_created":"2023-11-25T06:34:10.166Z","title":"Type Drummer","slug":"typedrummer","author":"Kyle Stetz","author_link":"http://kylestetz.com/","description":"Type your drum loops","tags":["sequencer","drums","Keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"19454c82-7338-4144-9f1c-010c80a70a6e","id":48,"sort":49,"clicks":21,"public":false,"is_new":false,"stats":[42]}]`),ot={class:"text-center line-height-loose text-md"},rt={class:"mx-auto max-w-75ch intro md-text-lg"},lt={class:"p-2 flex flex-col mt-8"},ct={class:"text-4xl font-bold"},ut=f("div",{class:"text-lg"},"web synths",-1),ht={class:"p-2 flex flex-col mt-8"},dt={class:"text-4xl font-bold"},pt=f("div",{class:"text-lg"},"web musicians",-1),ft={__name:"AboutCount",setup(t){const e=D(),s=D(0),n=D(0),i=pe(s),a=pe(n),o=$e(e);return De(o,async r=>{if(r){s.value=ne.length;const c=await(await fetch("https://dbs.chromatone.center/flows/trigger/0c0e8d82-8e12-44a6-867a-57ddeec9d774",{type:"GET",mode:"cors",headers:{"Content-Type":"application/json"}})).json();n.value=c.count}}),(r,l)=>(b(),y("div",ot,[f("div",rt,[f("div",{class:"flex justify-center",ref_key:"counters",ref:e},[f("div",lt,[f("div",ct,$(M(i).toFixed()),1),ut]),f("div",ht,[f("div",dt,$(M(a).toFixed()||5e3)+"+",1),pt])],512)])]))}},mt={class:"flex flex-col text-center gap-4 bg-light-700 dark-bg-dark-200 dark-bg-opacity-20 p-4 rounded-lg shadow-lg mb-8"},gt=f("div",{class:"text-xl font-bold my-2"},"Suggest a new web-synth to the collection",-1),bt=["disabled"],yt={__name:"FormSynth",emits:["submitted"],setup(t,{emit:e}){const s=e,n=Pe({url:"",text:""}),i=/[(http(s) ?): \/\/(www\.)?a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/;function a(l){return i.test(l)}const o=D();async function r(){var l,c,u;try{const h=await fetch("https://dbs.chromatone.center/flows/trigger/dc8ca96f-76e6-4cac-b26c-10751746eb89",{method:"POST",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:JSON.stringify(n)});o.value=await(h==null?void 0:h.json()),n.url="",n.text="",setTimeout(()=>{s("submitted")},2e3)}catch(h){console.error(h,(c=(l=h==null?void 0:h.errors)==null?void 0:l[0])==null?void 0:c.message,(u=h==null?void 0:h.response)==null?void 0:u.status)}}return(l,c)=>(b(),y("div",mt,[o.value?(b(),y(j,{key:1},[U("Thanks for your suggestion!")],64)):(b(),y(j,{key:0},[gt,X(f("input",{class:"py-2 px-4 rounded bg-light-200 dark-bg-dark-200",type:"text",placeholder:"https://new.synth.url/","onUpdate:modelValue":c[0]||(c[0]=u=>n.url=u)},null,512),[[ee,n.url]]),X(f("textarea",{class:"py-2 px-4 rounded bg-light-200 dark-bg-dark-200",oninput:"this.style.height = ''; this.style.height = this.scrollHeight +'px'",placeholder:"Describe the web-app and how do you use it musically","onUpdate:modelValue":c[1]||(c[1]=u=>n.text=u)},null,512),[[ee,n.text]]),f("button",{class:"text-xl py-2 px-4 rounded bg-dark-100 text-light-200 dark-bg-light-700 dark-text-dark-500 shadow-lg disabled-opacity-20",disabled:!a(n.url),onClick:c[2]||(c[2]=u=>r())},$(a(n.url)?"Submit":"Please provide a valid URL"),9,bt)],64))]))}},_e=t=>(Fe("data-v-f3c34bc1"),t=t(),je(),t),vt={key:0,class:"px-2 py-1 bg-light-800 dark-bg-dark-800 rounded-xl transition text-sm select-none absolute bottom-2 left-2 text-center z-200 flex items-center gap-1 opacity-70 hover-opacity-100",title:"Since 28 Oct 2023"},wt=_e(()=>f("div",{class:"i-la-eye"},null,-1)),kt={class:"p-0 mt-2px"},_t={class:"p-4 flex flex-col items-start justify-between gap-2",style:{flex:"10 0 200px"}},xt={class:"flex items-center gap-2 flex-0 w-full"},St={class:"transition text-xl select-none absolute top-4 left-4 text-center z-200"},Tt={class:"flex-auto"},Mt={class:"flex items-center gap-2"},It={class:"text-2xl font-bold"},At={key:0,class:"font-normal",title:"Archived locally by us"},Ct=_e(()=>f("div",{class:"i-ph-archive-duotone"},null,-1)),Et=[Ct],Lt={class:"flex-1"},Ot={key:1,class:"flex-1 flex items-end flex flex-wrap gap-2"},$t=["href"],Dt={key:3,class:"text-xl p-2 absolute left-2 top-4 bg-yellow-600 rounded-xl shadow font-bold z-1000 transform -rotate-10"},Pt={__name:"SynthCard",props:{pos:{type:Number,default:0},sort:{type:Number,default:0},public:{type:Boolean,default:!1},title:{type:String,default:""},id:{type:Number,default:0},slug:{type:String,default:""},description:{type:String,default:""},cover:{type:String,default:""},url:{type:String,default:""},author:{type:String,default:""},author_link:{type:String,default:""},tags:{type:Array,default:()=>[]},archive:{type:Boolean,default:!1},archive_link:{type:String,default:""},iframe:{type:Boolean,default:null},clicks:{type:Number,default:0},stars:{type:Number,default:0},counter:{type:Number,default:0},is_new:{type:Boolean,default:null}},setup(t){const{isDark:e}=Re(),s=t,{isFormOpen:n,isAccessGranted:i}=ke(),{clicksCount:a,clickSynth:o}=Je(s.id);async function r(){!s.public&&!i.value?n.value=!n.value:(o(s.id),s.iframe?window.open(s.slug+"/","_self"):window.open(s.archive?s.archive_link:s.url,"_blank"))}return(l,c)=>{var d;const u=Qe,h=ze("ClientOnly");return b(),y("button",{class:"max-w-180 w-full flex flex-wrap items-stretch text-left relative bg-light-500 dark-bg-dark-300 -hover-translate-y-6px transition duration-200 hover-shadow-lg rounded-lg overflow-hidden relative border-1 border-dark-100 border-opacity-20 shadow-sm dark-border-light-800 dark-border-opacity-20",style:te({borderColor:M(Y)[t.id]?M(e)?"hsl(50deg,80%,35%)":"hsl(40deg,90%,80%)":null}),onClick:r},[f("div",{class:"cover min-h-50 bg-cover bg-center filter transition",style:te([{backgroundImage:`url(/cover/${t.slug}.webp)`},{flex:"1 1 280px"}])},[M(a)||t.counter?(b(),y("div",vt,[wt,f("div",kt,$(M(a)||t.counter),1)])):_("",!0)],4),f("div",_t,[f("div",xt,[f("div",St,$(t.sort),1),f("div",Tt,[f("span",Mt,[f("div",It,$(t.title),1),t.archive?(b(),y("span",At,Et)):_("",!0)])]),B(h,null,{default:G(()=>[B(u,{class:"text-xl mr-2 absolute z-200",id:t.id,stars:t.stars},null,8,["id","stars"])]),_:1})]),t.author?(b(),se(Be(t.author_link?"a":"div"),{key:0,class:"p-0 text-md",href:t.author_link,target:"_blank"},{default:G(()=>[U("by "+$(t.author),1)]),_:1},8,["href"])):_("",!0),f("div",Lt,[Ne(l.$slots,"default",{},void 0,!0)]),((d=t.tags)==null?void 0:d.length)>0?(b(),y("div",Ot,[(b(!0),y(j,null,we(t.tags,g=>(b(),y("div",{class:"px-2 py-1 text-sm bg-light-800 dark-bg-dark-500 rounded-lg",key:g},$(g),1))),128))])):_("",!0),t.iframe?_("",!0):(b(),y("a",{key:2,class:"absolute bottom-4 right-4 i-la-external-link-square-alt text-lg opacity-40 transition transition hover-opacity-100",onClick:c[0]||(c[0]=We(()=>{},["stop"])),href:`/${t.slug}/`,title:"Opens in a new window"},null,8,$t)),t.is_new?(b(),y("div",Dt,"NEW!")):_("",!0)])],4)}}},Rt=ve(Pt,[["__scopeId","data-v-f3c34bc1"]]);function O(t){return Array.isArray?Array.isArray(t):Te(t)==="[object Array]"}const zt=1/0;function Bt(t){if(typeof t=="string")return t;let e=t+"";return e=="0"&&1/t==-zt?"-0":e}function Nt(t){return t==null?"":Bt(t)}function E(t){return typeof t=="string"}function xe(t){return typeof t=="number"}function Wt(t){return t===!0||t===!1||Ft(t)&&Te(t)=="[object Boolean]"}function Se(t){return typeof t=="object"}function Ft(t){return Se(t)&&t!==null}function x(t){return t!=null}function Q(t){return!t.trim().length}function Te(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const jt="Incorrect 'index' type",Zt=t=>`Invalid value for key ${t}`,Vt=t=>`Pattern length exceeds max of ${t}.`,qt=t=>`Missing ${t} property in key`,Yt=t=>`Property 'weight' in key '${t}' must be a positive integer`,fe=Object.prototype.hasOwnProperty;class Ut{constructor(e){this._keys=[],this._keyMap={};let s=0;e.forEach(n=>{let i=Me(n);this._keys.push(i),this._keyMap[i.id]=i,s+=i.weight}),this._keys.forEach(n=>{n.weight/=s})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Me(t){let e=null,s=null,n=null,i=1,a=null;if(E(t)||O(t))n=t,e=me(t),s=ie(t);else{if(!fe.call(t,"name"))throw new Error(qt("name"));const o=t.name;if(n=o,fe.call(t,"weight")&&(i=t.weight,i<=0))throw new Error(Yt(o));e=me(o),s=ie(o),a=t.getFn}return{path:e,id:s,weight:i,src:n,getFn:a}}function me(t){return O(t)?t:t.split(".")}function ie(t){return O(t)?t.join("."):t}function Gt(t,e){let s=[],n=!1;const i=(a,o,r)=>{if(x(a))if(!o[r])s.push(a);else{let l=o[r];const c=a[l];if(!x(c))return;if(r===o.length-1&&(E(c)||xe(c)||Wt(c)))s.push(Nt(c));else if(O(c)){n=!0;for(let u=0,h=c.length;ut.score===e.score?t.idx{this._keysMap[s.id]=n})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,E(this.docs[0])?this.docs.forEach((e,s)=>{this._addString(e,s)}):this.docs.forEach((e,s)=>{this._addObject(e,s)}),this.norm.clear())}add(e){const s=this.size();E(e)?this._addString(e,s):this._addObject(e,s)}removeAt(e){this.records.splice(e,1);for(let s=e,n=this.size();s{let o=i.getFn?i.getFn(e):this.getFn(e,i.path);if(x(o)){if(O(o)){let r=[];const l=[{nestedArrIndex:-1,value:o}];for(;l.length;){const{nestedArrIndex:c,value:u}=l.pop();if(x(u))if(E(u)&&!Q(u)){let h={v:u,i:c,n:this.norm.get(u)};r.push(h)}else O(u)&&u.forEach((h,d)=>{l.push({nestedArrIndex:d,value:h})})}n.$[a]=r}else if(E(o)&&!Q(o)){let r={v:o,n:this.norm.get(o)};n.$[a]=r}}}),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}}function Ie(t,e,{getFn:s=p.getFn,fieldNormWeight:n=p.fieldNormWeight}={}){const i=new ue({getFn:s,fieldNormWeight:n});return i.setKeys(t.map(Me)),i.setSources(e),i.create(),i}function ts(t,{getFn:e=p.getFn,fieldNormWeight:s=p.fieldNormWeight}={}){const{keys:n,records:i}=t,a=new ue({getFn:e,fieldNormWeight:s});return a.setKeys(n),a.setIndexRecords(i),a}function q(t,{errors:e=0,currentLocation:s=0,expectedLocation:n=0,distance:i=p.distance,ignoreLocation:a=p.ignoreLocation}={}){const o=e/t.length;if(a)return o;const r=Math.abs(n-s);return i?o+r/i:r?1:o}function ss(t=[],e=p.minMatchCharLength){let s=[],n=-1,i=-1,a=0;for(let o=t.length;a=e&&s.push([n,i]),n=-1)}return t[a-1]&&a-n>=e&&s.push([n,a-1]),s}const z=32;function ns(t,e,s,{location:n=p.location,distance:i=p.distance,threshold:a=p.threshold,findAllMatches:o=p.findAllMatches,minMatchCharLength:r=p.minMatchCharLength,includeMatches:l=p.includeMatches,ignoreLocation:c=p.ignoreLocation}={}){if(e.length>z)throw new Error(Vt(z));const u=e.length,h=t.length,d=Math.max(0,Math.min(n,h));let g=a,v=d;const m=r>1||l,S=m?Array(h):[];let T;for(;(T=t.indexOf(e,v))>-1;){let k=q(e,{currentLocation:T,expectedLocation:d,distance:i,ignoreLocation:c});if(g=Math.min(k,g),v=T+u,m){let I=0;for(;I=he;A-=1){let V=A-1,de=s[t.charAt(V)];if(m&&(S[V]=+!!de),W[A]=(W[A+1]<<1|1)&de,k&&(W[A]|=(L[A+1]|L[A])<<1|1|L[A+1]),W[A]&Z&&(C=q(e,{errors:k,currentLocation:V,expectedLocation:d,distance:i,ignoreLocation:c}),C<=g)){if(g=C,v=V,v<=d)break;he=Math.max(1,2*d-v)}}if(q(e,{errors:k+1,currentLocation:d,expectedLocation:d,distance:i,ignoreLocation:c})>g)break;L=W}const N={isMatch:v>=0,score:Math.max(.001,C)};if(m){const k=ss(S,r);k.length?l&&(N.indices=k):N.isMatch=!1}return N}function is(t){let e={};for(let s=0,n=t.length;s{this.chunks.push({pattern:d,alphabet:is(d),startIndex:g})},h=this.pattern.length;if(h>z){let d=0;const g=h%z,v=h-g;for(;d{const{isMatch:T,score:L,indices:C}=ns(e,v,m,{location:i+S,distance:a,threshold:o,findAllMatches:r,minMatchCharLength:l,includeMatches:n,ignoreLocation:c});T&&(d=!0),h+=L,T&&C&&(u=[...u,...C])});let g={isMatch:d,score:d?h/this.chunks.length:1};return d&&n&&(g.indices=u),g}}class P{constructor(e){this.pattern=e}static isMultiMatch(e){return ge(e,this.multiRegex)}static isSingleMatch(e){return ge(e,this.singleRegex)}search(){}}function ge(t,e){const s=t.match(e);return s?s[1]:null}class as extends P{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){const s=e===this.pattern;return{isMatch:s,score:s?0:1,indices:[0,this.pattern.length-1]}}}class os extends P{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){const n=e.indexOf(this.pattern)===-1;return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}}class rs extends P{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){const s=e.startsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[0,this.pattern.length-1]}}}class ls extends P{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){const s=!e.startsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[0,e.length-1]}}}class cs extends P{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){const s=e.endsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}class us extends P{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){const s=!e.endsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[0,e.length-1]}}}class Ce extends P{constructor(e,{location:s=p.location,threshold:n=p.threshold,distance:i=p.distance,includeMatches:a=p.includeMatches,findAllMatches:o=p.findAllMatches,minMatchCharLength:r=p.minMatchCharLength,isCaseSensitive:l=p.isCaseSensitive,ignoreLocation:c=p.ignoreLocation}={}){super(e),this._bitapSearch=new Ae(e,{location:s,threshold:n,distance:i,includeMatches:a,findAllMatches:o,minMatchCharLength:r,isCaseSensitive:l,ignoreLocation:c})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class Ee extends P{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let s=0,n;const i=[],a=this.pattern.length;for(;(n=e.indexOf(this.pattern,s))>-1;)s=n+a,i.push([n,s-1]);const o=!!i.length;return{isMatch:o,score:o?0:1,indices:i}}}const ae=[as,Ee,rs,ls,us,cs,os,Ce],be=ae.length,hs=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,ds="|";function ps(t,e={}){return t.split(ds).map(s=>{let n=s.trim().split(hs).filter(a=>a&&!!a.trim()),i=[];for(let a=0,o=n.length;a!!(t[K.AND]||t[K.OR]),bs=t=>!!t[le.PATH],ys=t=>!O(t)&&Se(t)&&!ce(t),ye=t=>({[K.AND]:Object.keys(t).map(e=>({[e]:t[e]}))});function Le(t,e,{auto:s=!0}={}){const n=i=>{let a=Object.keys(i);const o=bs(i);if(!o&&a.length>1&&!ce(i))return n(ye(i));if(ys(i)){const l=o?i[le.PATH]:a[0],c=o?i[le.PATTERN]:i[l];if(!E(c))throw new Error(Zt(l));const u={keyId:ie(l),pattern:c};return s&&(u.searcher=re(c,e)),u}let r={children:[],operator:a[0]};return a.forEach(l=>{const c=i[l];O(c)&&c.forEach(u=>{r.children.push(n(u))})}),r};return ce(t)||(t=ye(t)),n(t)}function vs(t,{ignoreFieldNorm:e=p.ignoreFieldNorm}){t.forEach(s=>{let n=1;s.matches.forEach(({key:i,norm:a,score:o})=>{const r=i?i.weight:null;n*=Math.pow(o===0&&r?Number.EPSILON:o,(r||1)*(e?1:a))}),s.score=n})}function ws(t,e){const s=t.matches;e.matches=[],x(s)&&s.forEach(n=>{if(!x(n.indices)||!n.indices.length)return;const{indices:i,value:a}=n;let o={indices:i,value:a};n.key&&(o.key=n.key.src),n.idx>-1&&(o.refIndex=n.idx),e.matches.push(o)})}function ks(t,e){e.score=t.score}function _s(t,e,{includeMatches:s=p.includeMatches,includeScore:n=p.includeScore}={}){const i=[];return s&&i.push(ws),n&&i.push(ks),t.map(a=>{const{idx:o}=a,r={item:e[o],refIndex:o};return i.length&&i.forEach(l=>{l(a,r)}),r})}class F{constructor(e,s={},n){this.options={...p,...s},this.options.useExtendedSearch,this._keyStore=new Ut(this.options.keys),this.setCollection(e,n)}setCollection(e,s){if(this._docs=e,s&&!(s instanceof ue))throw new Error(jt);this._myIndex=s||Ie(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){x(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){const s=[];for(let n=0,i=this._docs.length;n-1&&(l=l.slice(0,s)),_s(l,this._docs,{includeMatches:n,includeScore:i})}_searchStringList(e){const s=re(e,this.options),{records:n}=this._myIndex,i=[];return n.forEach(({v:a,i:o,n:r})=>{if(!x(a))return;const{isMatch:l,score:c,indices:u}=s.searchIn(a);l&&i.push({item:a,idx:o,matches:[{score:c,value:a,norm:r,indices:u}]})}),i}_searchLogical(e){const s=Le(e,this.options),n=(r,l,c)=>{if(!r.children){const{keyId:h,searcher:d}=r,g=this._findMatches({key:this._keyStore.get(h),value:this._myIndex.getValueForItemAtKeyId(l,h),searcher:d});return g&&g.length?[{idx:c,item:l,matches:g}]:[]}const u=[];for(let h=0,d=r.children.length;h{if(x(r)){let c=n(s,r,l);c.length&&(a[l]||(a[l]={idx:l,item:r,matches:[]},o.push(a[l])),c.forEach(({matches:u})=>{a[l].matches.push(...u)}))}}),o}_searchObjectList(e){const s=re(e,this.options),{keys:n,records:i}=this._myIndex,a=[];return i.forEach(({$:o,i:r})=>{if(!x(o))return;let l=[];n.forEach((c,u)=>{l.push(...this._findMatches({key:c,value:o[u],searcher:s}))}),l.length&&a.push({idx:r,item:o,matches:l})}),a}_findMatches({key:e,value:s,searcher:n}){if(!x(s))return[];let i=[];if(O(s))s.forEach(({v:a,i:o,n:r})=>{if(!x(a))return;const{isMatch:l,score:c,indices:u}=n.searchIn(a);l&&i.push({score:c,key:e,value:a,idx:o,norm:r,indices:u})});else{const{v:a,n:o}=s,{isMatch:r,score:l,indices:c}=n.searchIn(a);r&&i.push({score:l,key:e,value:a,norm:o,indices:c})}return i}}F.version="7.0.0";F.createIndex=Ie;F.parseIndex=ts;F.config=p;F.parseQuery=Le;gs(ms);const xs={class:"flex flex-col items-center mb-2 px-8"},Ss={class:"w-full max-w-110 flex items-center relative my-4 gap-2"},Ts=f("div",{class:"i-la-search absolute left-2 text-xl opacity-40"},null,-1),Ms=["title"],Is={key:0,class:"i-la-star-solid"},As={key:1,class:"i-la-star"},Cs={class:"flex flex-col items-center gap-8 p-2 max-w-160 mx-auto mb-12"},Es=["index"],Ls={class:"p-2",key:"nnn"},Os={key:0,class:"animate-pulse text-center"},$s={__name:"SynthList",setup(t){const{isAccessGranted:e}=ke(),s=D(ne),n=new F(ne,{includeScore:!0,ignoreLocation:!0,shouldSort:!0,keys:["title","slug","author"]}),i=Ze("fav-filter",!1),a=D(""),o=D(!1),r=J(()=>n.search(a.value)),l=J(()=>r.value.filter(h=>h.score<.2).sort((h,d)=>h.score>d.score?1:0).map(h=>h.item.slug)),c=J(()=>s.value.filter(h=>a.value?l.value.includes(h.slug):i.value?Y.value[h.id]:!0)),u=D([]);return Ve(async()=>{u.value=await Xe("synths",{fields:["id",{stats:["views","stars"]}]})}),qe(Y,h=>{Object.values(h).filter(Boolean).length==0&&(i.value=!1)},{deep:!0,immediate:!0}),(h,d)=>{const g=Rt,v=yt;return b(),y(j,null,[f("div",xs,[f("div",Ss,[X(f("input",{class:"w-full focus text-xl py-2 pl-9 bg-light-50 bg-opacity-100 shadow-inner border-1 border-dark-100 border-opacity-10 rounded-lg dark-bg-dark-200 outline-none focus-border-opacity-90",placeholder:"Type to search...","onUpdate:modelValue":d[0]||(d[0]=m=>a.value=m)},null,512),[[ee,a.value]]),Ts,a.value?(b(),y("div",{key:0,class:"i-la-times absolute right-2 text-xl opacity-40 hover-opacity-80 transition cursor-pointer",onClick:d[1]||(d[1]=m=>a.value="")})):_("",!0),Object.values(M(Y)).filter(Boolean).length>0&&!a.value?(b(),y("button",{key:1,class:"transition p-2 shadow dark-bg-dark-200 dark-hover-bg-dark-100 bg-light-300 hover-bg-light-100 rounded-lg flex items-center gap-2 text-xl text-yellow",title:M(i)?"Only favourites are shown":"Show only favourites",onClick:d[2]||(d[2]=m=>i.value=!M(i))},[B(Ye,{name:"fade"},{default:G(()=>[M(i)?(b(),y("div",Is)):(b(),y("div",As))]),_:1})],8,Ms)):_("",!0),a.value?_("",!0):(b(),y("button",{key:2,class:"transition p-2 shadow dark-bg-dark-200 dark-hover-bg-dark-100 bg-light-300 hover-bg-light-100 rounded-lg flex items-center gap-2 text-xl",title:"Suggest a new link to the collection",onClick:d[3]||(d[3]=m=>o.value=!o.value)},[f("div",{class:Ue(["i-la-plus transform transition",{"rotate-45":o.value}])},null,2)]))])]),f("div",Cs,[o.value?_("",!0):(b(),se(Ke,{key:0,name:"fade"},{default:G(()=>[(b(!0),y(j,null,we(c.value,(m,S)=>{var T,L,C,R,Z,N,k,I;return b(),y("div",{class:"flex w-full sticky",style:te([{top:`${80+S*4}px`,zIndex:S+10},{flex:"1 1 240px"}]),key:m.id,index:S},[(b(),se(g,Ge({pos:S,style:{filter:!m.public&&!M(e)?"contrast(70%) blur(2px) opacity(80%)":""},key:m.id,ref_for:!0},m,{counter:(R=(C=(L=(T=u.value)==null?void 0:T.find(w=>(w==null?void 0:w.id)==(m==null?void 0:m.id)))==null?void 0:L.stats)==null?void 0:C[0])==null?void 0:R.views,stars:(I=(k=(N=(Z=u.value)==null?void 0:Z.find(w=>(w==null?void 0:w.id)==(m==null?void 0:m.id)))==null?void 0:N.stats)==null?void 0:k[0])==null?void 0:I.stars}),null,16,["pos","style","counter","stars"]))],12,Es)}),128))]),_:1})),c.value.length==0||o.value?(b(),y("div",Ls,[o.value?_("",!0):(b(),y("div",Os,"We don't know such a web-app yet. ")),B(v,{class:"max-w-140 mx-auto mt-6",onSubmitted:d[4]||(d[4]=m=>o.value=!1)})])):_("",!0)])],64)}}},Gs=JSON.parse('{"title":"Web synths","description":"Web synthesizers to play with MIDI controllers","frontmatter":{"title":"Web synths","description":"Web synthesizers to play with MIDI controllers","date":"2023-06-22T00:00:00.000Z","layout":"home"},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1716281170000}'),Ds={name:"index.md"},Ps=f("h1",{class:"text-center text-2xl sm-text-3xl font-bold mt-8",style:{padding:"0.1rem 1rem"}},"Online synthesizers and web piano apps",-1),Rs=f("h2",{class:"text-xl sm-text-2xl text-center my-2",style:{padding:"0 1rem"}},"Curated collection of free music creation resources",-1),zs={class:"px-4 text-lg text-center mb-8 max-w-150 mx-auto"},Bs=f("a",{class:"font-bold",href:"https://chromatone.center",target:"_blank",rel:"noopener"}," Chromatone",-1),Ns=f("a",{class:"font-bold",href:"https://playtronica.com",target:"_blank",rel:"noopener"}," Playtronica",-1),Ws=f("h3",{class:"font-bold text-xl"},"Welcome to the community of web-based musicians!",-1),Fs=f("p",null,[f("a",{target:"_blank",href:"https://chromatone.center/"},[f("img",{src:He,class:"max-w-16 mx-auto"})])],-1);function js(t,e,s,n,i,a){const o=$s,r=ft,l=at;return b(),y("div",null,[Ps,Rs,B(o),f("div",zs,[Bs,U(" is an open source visual music language for education, research and performance. We develop a new universal way to communicate music. "),Ns,U(" is a digital playground that explores the possibilities of the material world through technology, creating gadgets that make the world musical. Together we share our passion for online music instruments. "),B(r),Ws,Fs,B(l)])])}const Ks=ve(Ds,[["render",js]]);export{Gs as __pageData,Ks as default}; diff --git a/assets/index.md.Ck_FBFlh.lean.js b/assets/index.md.Ck_FBFlh.lean.js new file mode 100644 index 00000000..9100a854 --- /dev/null +++ b/assets/index.md.Ck_FBFlh.lean.js @@ -0,0 +1 @@ +import{D as Oe,b,d as y,g as f,f as M,q as _,r as D,E as pe,F as $e,G as De,t as $,H as Pe,I as j,e as X,j as ee,h as U,_ as ve,s as Re,x as ze,J as te,y as B,z as G,A as se,K as Be,i as Ne,L as we,C as We,M as Fe,N as je,a as Ze,c as J,o as Ve,w as qe,T as Ye,n as Ue,O as Ge,P as Ke,Q as He}from"./chunks/framework.BMc-2bSs.js";import{u as Je,f as Y,_ as Qe,a as Xe}from"./chunks/useClicks.DBr_plfA.js";import{u as ke}from"./chunks/theme.CBbWuF7B.js";import"./chunks/index.DISW28_u.js";const et={class:"text-center line-height-loose text-md"},tt={class:"mx-auto max-w-75ch intro md-text-lg"},st=f("div",{class:"i-mdi-share"},null,-1),nt=f("span",null,"Share to save for later",-1),it=[st,nt],at={__name:"AboutShare",setup(t){const{share:e,isSupported:s}=Oe();function n(){e({title:"Web synths collection",text:"Look at this online synthesizer collection. No need to install anything - just your browser and any MIDI controller will do.",url:location.href})}return(i,a)=>(b(),y("div",et,[f("div",tt,[M(s)?(b(),y("button",{key:0,class:"mx-auto flex items-center gap-2 text-white py-2 px-4 mt-6 shadow-lg rounded-lg cursor-pointer bg-green-600 -hover-translate-y-2px transition",onClick:a[0]||(a[0]=o=>n()),"data-umami-event":"Shared via button"},it)):_("",!0)])]))}},ne=JSON.parse(`[{"url":"https://dotpiano.com/","date_created":"2023-10-27T12:45:53.887Z","title":"Dotpiano","slug":"dotpiano","author":"Alex Chen and Yotam Mann","author_link":null,"description":"Dot Piano is an online musical instrument allowing users to play a digital piano using their computer keyboard. The interactive web app provides a simple and intuitive interface for creating and sharing music, making it accessible for both beginners and experienced musicians.","tags":["polyphonic","midi","keyboard","Multiplayer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"6dac5187-213f-4eb8-96ed-63c2e689b206","id":1,"sort":1,"clicks":6427,"public":true,"is_new":false,"stats":[1]},{"url":"https://waveform.playtronica.com/","date_created":"2023-10-27T12:45:54.644Z","title":"Waveform","slug":"waveform","author":"Qvantor","author_link":"https://github.com/qvantor/","description":"Polyphonic web synthesizer with simple yet capable interface.","tags":["playtronica","polyphonic","midi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"86cb9385-9deb-4f10-95cb-765980156e65","id":39,"sort":2,"clicks":6795,"public":true,"is_new":false,"stats":[2]},{"url":"https://juno-106.js.org/","date_created":"2023-10-27T12:45:54.085Z","title":"Juno-106","slug":"juno-106","author":"Steve Goldberg ","author_link":"https://github.com/stevengoldberg","description":"Online emulator of the classic Roland Juno-106 synthesizer. This interactive web app allows users to experiment with the iconic sounds of the Juno-106 directly from their browser. It features authentic recreations of the synth's controls and sound characteristics, making it a valuable tool for music enthusiasts and producers. ","tags":["fm","midi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"b54cfce7-af2f-4e03-a5b3-81fc853d2cc8","id":14,"sort":3,"clicks":5017,"public":true,"is_new":false,"stats":[3]},{"url":"https://chromatone.center/practice/synth/elementary/","date_created":"2023-10-27T12:45:54.453Z","title":"Elementary synth","slug":"elementary","author":"Chromatone","author_link":"https://chromatone.center","description":"The Chromatone Elementary Synth is an interactive web-based synthesizer designed to provide a hands-on learning experience in sound synthesis. It features MIDI support and is built using the Elementary audio library. This synthesizer allows users to explore different synthesis techniques through a user-friendly interface, making it an excellent tool for both beginners and experienced musicians looking to experiment with sound design.","tags":["chromatone","polyphonic","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"21070a51-6089-48bd-8840-ba37b5f2963d","id":29,"sort":4,"clicks":3186,"public":true,"is_new":false,"stats":[4]},{"url":"https://mmontag.github.io/dx7-synth-js/","date_created":"2023-10-27T12:45:54.477Z","title":"DX7 Synth","slug":"dx7","author":"Matt Montag ","author_link":"https://github.com/mmontag","description":"The DX7 Synth JS is an online emulator of the classic Yamaha DX7 synthesizer. This interactive web app replicates the iconic FM synthesis capabilities of the DX7, allowing users to create and manipulate sounds using various parameters such as algorithms, operators, and envelopes. The app supports MIDI devices and provides a user-friendly interface for sound design experimentation. ","tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"f3b285ee-6b82-453b-9ff6-aeda18ec675b","id":30,"sort":5,"clicks":2718,"public":true,"is_new":false,"stats":[5]},{"url":"https://touchme.chromatone.center/","date_created":"2023-10-27T12:45:53.941Z","title":"TouchME","slug":"touchme","author":"Chromatone","author_link":"https://chromatone.center","description":"TouchMe Experience by Chromatone is an interactive audio-visual web app that transforms touch inputs into music and visual effects. It features MIDI support, multiple synth oscillators, and various quantize and BPM modes. Users can explore six interactive SVG scenes, switch between light and dark modes, and view basic session statistics. Designed for creative experimentation, it offers a unique way to engage with music and visuals.","tags":["chromatone","playtronica"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"68062279-8e08-4953-ae8f-7a77c584948e","id":3,"sort":6,"clicks":3416,"public":true,"is_new":false,"stats":[6]},{"url":"https://muted.io/","date_created":"2023-10-27T12:45:54.742Z","title":"Muted.io","slug":"muted-io","author":"Sébastien Noël","author_link":"https://twitter.com/muted_io","description":"Muted.io offers a collection of interactive music theory tools designed for learning music online. These tools include a virtual piano, chord and scale references, a circle of fifths, tuners, and various visual aids to understand music theory concepts. The site is ideal for musicians looking to improve their knowledge and practice music in an engaging way.","tags":["educational","midi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"5c08ac7d-4414-47c0-b7d1-a9867ba3949f","id":43,"sort":7,"clicks":175,"public":false,"is_new":false,"stats":[10]},{"url":"https://chromatone.center/practice/synth/soundfont/","date_created":"2023-12-18T10:20:56.985Z","title":"Soundfont Sampler Synth","slug":"soundfont","author":"Chromatone","author_link":"https://github.com/chromatone","description":"Free open source soundfont sampler online synthesizer. Very robust and hassle free way to play some straightforward sampled instruments like horns, xylophones and just piano sounds. Instantly playable instrument with about 90 presets out of the box. ","tags":["Poly","Keyboard","Sampler","MIDI"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"26704e9d-5964-4a0f-940c-370c14777e95","id":51,"sort":8,"clicks":0,"public":true,"is_new":true,"stats":[43]},{"url":"https://midi.city/","date_created":"2023-12-28T05:40:45.140Z","title":"MIDI.city","slug":"midi-city","author":"Astral Digital","author_link":"https://astral.digital/","description":"midi.city is a free online synthesizer, built by Jack.\\n\\nmidi.city has over 128 different instruments including: Pianos, Saxophones, Drums, Trumpets, Synth Pads, Guitar, Violins and all other instruments defined in the General Midi specification.","tags":null,"archive_link":null,"archive":false,"content":"midi.city has been created with the help of hundreds of different open-source projects and with contributions from many others.\\n\\n- Tone.js by Yotam Mann: the Web Audio API-based sound engine that implements a majority of nodes used in the audio graph. It powers many of the advanced features used such as Granular Synthesis, Reverb, and timing.\\n- Groove Monkee: graciously provided the MIDI files that are used for the percussion loops.\\n- Keenan Brand: created the midi.city logo and various icons used on the site.\\n- Noun Project: various icons are used via a Pro license.\\n- Google Material Design: various icons.\\n- Compifont by Marcin Dziembor: the soundfont powering the samples and many the audio graph definitions, is originally . Several modifications have been made to adapt to midi.city and the Web Audio API. ","iframe":true,"cover":"8cb479ba-e4e0-42f2-986c-597b68b8e639","id":52,"sort":9,"clicks":10,"public":false,"is_new":false,"stats":[44]},{"url":"https://apps.musedlab.org/aqwertyon/theory/","date_created":"2023-10-27T12:45:54.711Z","title":"aQWERTYon","slug":"aqwertyon","author":"Mused lab","author_link":"https://musedlab.org/","description":"aQWERTYon is an interactive web app that turns your computer keyboard into a musical instrument. Designed for music theory practice, it allows users to play notes and chords using a QWERTY keyboard layout. The app provides a visual representation of notes and scales, making it a useful tool for learning and exploring music theory concepts.","tags":["polyphonic","samples"],"archive_link":null,"archive":false,"content":"The **aQWERTYon** (QWERTY accordion) is designed to simplify the process for improvising, learning, and making music with your computer keyboard. Play along with your favorite YouTube videos, learn music theory through our Music Theory for Bedroom Producers course in collaboration with Soundfly, or take advantage of Web MIDI and us it to play and record into your favorite digital audio workstation, such as Soundtrap.com, GarageBand, Logic, or Ableton, or as input into music notation programs like Noteflight.\\n\\nhttps://youtu.be/hqFr4lF6u_Y","iframe":true,"cover":"e7c87de8-c290-4da9-b0e0-eed73871b27a","id":42,"sort":10,"clicks":348,"public":false,"is_new":false,"stats":[8]},{"url":"https://musiclab.chromeexperiments.com/","date_created":"2023-11-26T08:23:47.351Z","title":"Chrome Music Lab","slug":"chrome-lab","author":"Google","author_link":"https://github.com/googlecreativelab/chrome-music-lab","description":"Chrome Music Lab is a website that makes learning music more accessible through fun, hands-on experiments.","tags":["Educational","Keyboard","MIDI","Poly","Piano","Analysis","Mic","Visuals"],"archive_link":null,"archive":false,"content":"## What can it be used for?\\n\\nMany teachers have been using Chrome Music Lab as a tool in their classrooms to explore music and its connections to science, math, art, and more. They’ve been combining it with dance and live instruments. Here’s a collection of some uses we’ve found on Twitter.\\n\\n## Can I use it to make my own songs?\\n\\nYes. Check out the Song Maker experiment, which lets you make and share your own songs.\\n\\n## Do I need to make an account?\\n\\nNope. Just open any experiment and start playing.\\n\\n## How were these built?\\n\\nAll our experiments are all built with freely accessible web technology such as Web Audio API, WebMIDI, Tone.js, and more. These tools make it easier for coders to build new interactive music experiences. You can get the open-source code to lots of these experiments here on [Github](https://github.com/googlecreativelab/chrome-music-lab).\\n\\n## What devices do these work on?\\n\\nYou can play with these experiments across devices – phones, tablets, laptops – just by opening the site on a web browser such as Chrome.","iframe":true,"cover":"297b059e-a6fa-4faa-91b2-c2e1e68cf98f","id":50,"sort":11,"clicks":304,"public":false,"is_new":false,"stats":[9]},{"url":"https://topos.live/","date_created":"2024-06-21T12:06:09.754Z","title":"Topos","slug":"topos","author":"Raphael","author_link":"https://github.com/Bubobubobubobubo/topos","description":"Topos is an algorithmic sequencer. Topos is also a live coding environment. To sum it up, think: \\"making music in real time through code\\". Code used as an expressive medium for musical improvisation! Topos uses small algorithms to represent musical sequences and processes.","tags":["Live coding","MIDI","Poly","Visuals","FM"],"archive_link":null,"archive":false,"content":"Topos is deeply inspired by the Monome Teletype. The Teletype is/was an open source hardware module for Eurorack synthesizers. While the Teletype was initially born as an hardware module, Topos aims to be a web-browser based cousin of it! It is a sequencer, a scriptable interface, a companion for algorithmic music-making. Topos wishes to fullfill the same goal as the Teletype, keeping the same spirit alive on the web. It is free, open-source, and made to be shared and used by everyone. Learn more about live coding on livecoding.fr.","iframe":true,"cover":"76e0c2b7-e95e-447d-982d-e156cb9d1530","id":57,"sort":12,"clicks":0,"public":false,"is_new":true,"stats":[49]},{"url":"https://websynths.com/","date_created":"2023-10-27T12:45:54.019Z","title":"Websynths Microtonal","slug":"microtonal","author":"WebSynths","author_link":"https://www.websynths.com/microtonal/","description":"The deepest internet synthesizer","tags":null,"archive_link":null,"archive":false,"content":"\\nWebSynths is a free resource for any musician with internet access! But, it is made possible by support from our patrons. Please consider helping if you can: patreon.com/WebSynths\\n\\n- You can use your QWERTY keyboard, mouse, mobile touch or MIDI keyboard to play the sounds.\\n- You can change the tuning of the keys, or select a scale, by clicking the tuning button.\\n- MIDI is a way to use an external physical instrument to play it. If you have a MIDI keyboard that you wish to use, hit the MIDI button to set it up.\\n- If a note gets stuck, hit the panic button, it will stop all voices from playing.\\n- You can use the arrows on your computer keyboard to scroll through the presets.\\n\\nA simple explanation of Subtractive Synthesis:\\n\\n- Subtractive Synthesis works by taking one or more oscillators, setting the pitch of their oscillation (usually to the note of the key being pressed,) setting the shape of their oscillation to the desired timbre (Sine, Saw, Square or more complex shapes,) mixing them together and running them through a filter to change their EQ (usually filtering out the highest or lowest frequencies... this is why it is called \\"subtractive\\"), then running them through an envelope so the note can be heard on when a key is pressed down and is silenced when the key is released. In the case of WebSynths Microtonal, the sound is then sent through effects like delay, chorus and reverb and out to your speakers.\\n- Oscillators are the voices. This synth has 3 of them in the left column. You can change the character of each voice by changing the parameters of them. The 'Shape' menu allows you to choose from different styles of voice for each oscillator. You can turn each voice on or off and mix them together.\\n- The filter section applies equalization to your oscillators via the cutoff and emphasis controls. You can change the equalization filter type to 'low pass / high pass' and many more. You can use the LFOs and/or Envelopes to change how the filtration changes over time. An LFO is just a slow oscillator that is uses to automatically move a parameter over time.\\n- The amplitude envelope changes how your sound is played, volume-wise, when you hit a note. For example, having a long release time will mean that once you let go of the note you are playing it will tail off until fading out. Having a slow attack will mean that your note will fade in instead of playing at full volume straight away.\\n- The effects section allows you to add various effects to your overall sound. You can change the effects, mix them together and toggle them on or off too.\\n\\n","iframe":false,"cover":"ffc54664-7ba4-4855-a56a-6657a5542a04","id":10,"sort":13,"clicks":172,"public":false,"is_new":false,"stats":[11]},{"url":"https://stuartmemo.com/synth/","date_created":"2023-10-27T12:45:54.586Z","title":"Sympathetic Synthesizer System Mk 1","slug":"sympathetic","author":"Stuart Memo ","author_link":"https://github.com/stuartmemo","description":"The Sympathetic Synthesizer System Mk 1 is an interactive web app that emulates a complex synthesizer. It features three oscillators with selectable waveforms, an LFO, filters with ADSR controls, and noise generation. The app allows users to explore sound design through various parameters, offering a detailed and hands-on synthesis experience. MIDI support is also included for enhanced control.","tags":["keyboard","midi","additive"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"123aeb6d-c7b0-43dd-a852-98660bdf03f0","id":37,"sort":14,"clicks":302,"public":false,"is_new":false,"stats":[12]},{"url":"https://learningsynths.ableton.com/","date_created":"2023-10-27T12:45:54.360Z","title":"Learning synths","slug":"ableton","author":"Ableton","author_link":"https://github.com/Ableton","description":"Explore the fundamentals of synthesis with this interactive web-app by Ableton. Dive into the world of sound design, experiment with different parameters, and learn how to sculpt your own unique sounds with ease.","tags":null,"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"0bf8312d-c449-4f5c-80ad-36594ef98db6","id":26,"sort":15,"clicks":185,"public":false,"is_new":false,"stats":[13]},{"url":"https://www.femurdesign.com/theremin/","date_created":"2023-10-27T12:45:54.206Z","title":"Theremin","slug":"theremin","author":"Femur","author_link":"https://femurdesign.com/","description":"Experience the magic of the theremin with this interactive web-app by Femur Design. Harness the power of motion to create ethereal music without physical contact. Experiment with pitch and volume to craft haunting melodies right in your browser.","tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"6b22ef48-6830-4cf2-810d-809408033450","id":19,"sort":16,"clicks":320,"public":false,"is_new":false,"stats":[14]},{"url":"https://cardinal.kx.studio/live","date_created":"2024-05-20T18:57:14.836Z","title":" DISTRHO Cardinal","slug":"cardinal","author":"Filipe Coelho, aka falkTX","author_link":"https://falktx.berlin/","description":"Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.","tags":["Modular","FM","Poly"],"archive_link":null,"archive":false,"content":"Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.\\nIt is based on the popular VCV Rack but with a focus on being a fully self-contained plugin version.\\n\\nMore specifically, this is a DPF-based plugin wrapper around VCV Rack, using its code directly instead of forking the project, with the target of having a self-contained, fully free and open-source plugin version of Rack.\\nSee the why section below for the reasons Cardinal exists, also for frequently asked questions check this FAQ document.\\n\\nCardinal contains Rack, some 3rd-party modules and a few internal utilities all in a single binary.\\nAll \\"Core\\" modules from Rack have been replaced by Cardinal equivalents, simplified to better work for an audio plugin.\\n\\nCardinal does not load external modules and does not connect to the official Rack library/store.\\nAll VCV branding has been removed (to the best of our knowledge) in order to avoid any trademark issues.\\n\\n## Why\\n\\nCardinal was created first and foremost as a way to have Rack as a proper open-source audio plugin.\\nA proper audio plugin should be self-contained as much as possible, as to not interfere with the DAW/Host. Loading external modules clearly goes against this idea.\\nNot to mention being open-source, otherwise we are at the mercy of the wishes of a company for what we can and cannot do, which is not something Cardinal's authors wish to abide by.\\n\\nA self-contained plugin can't be overstated, as DLL/shared-object symbol conflicts can trigger hard-to-debug crashes.\\nWhile Rack tries to mitigate this as much as possible, crashes due to conflicting modules have already been seen in v2 builds.\\nOn the other side, Cardinal redefines class and function names as needed to avoid as many conflicts as possible.\\n\\nSupport for ARM and non-mainstream platforms (for example BSD) has also always been missing from the official Rack since the start.\\nWhile we can patch the Rack free version to support these, same can't be done with Rack Pro with it being a closed-source product.\\nThe online library/store only supports a very specific set of platforms too, so non-supported platforms would need any 3rd-party modules to be manually compiled to make them usable.\\n\\nUnhappiness with the audio threading behaviour of Rack also plays a role.\\nBoth audio and MIDI should be locked to the host audio thread as to minimize (or even altogether remove) latency and jitter.\\nThe use of separate threads for MIDI is bad design, one that has been corrected in DAWs and JACK-MIDI for several years...\\nBut Rack's use of RtMidi requires separate threading, so Cardinal does not use it.","iframe":true,"cover":"dc7070e1-66fd-4f74-95d2-92d8388864e2","id":56,"sort":17,"clicks":5,"public":false,"is_new":true,"stats":[48]},{"url":"https://multiplayer-orchestra.com","date_created":"2024-04-23T08:07:22.796Z","title":"Multiplayer Orchestra","slug":"multiplayer-orchestra","author":"Mutli_Orchestra","author_link":"https://twitter.com/Mutli_Orchestra","description":"Play in real time with people from all around the world with more than 400 instruments.","tags":["Poly","MIDI","Keyboard","Collaborative","Online"],"archive_link":null,"archive":false,"content":"Multiplayer Orchestra ([https://www.multiplayer-orchestra.com/](https://www.multiplayer-orchestra.com/)) is a web application that allows you to virtually collaborate with musicians from around the world in real-time. Here are some key features:\\n\\n* **Large instrument selection:** Choose from over 400 instruments, including pianos, guitars, drums, and orchestral instruments.\\n* **Real-time collaboration:** Play music simultaneously with other users, creating a virtual orchestra.\\n* **Public and private rooms:** Join public rooms to jam with others or create private rooms with a password for specific collaborations.\\n* **Contests:** Participate in contests to win prizes like Amazon gift cards by recording solo performances.\\n\\n**It's important to note that the website seems to be in beta based on the version information listed (Beta 0.30).** ","iframe":true,"cover":"d743d9ea-d73f-4593-a70e-58a3e4deaa1b","id":55,"sort":18,"clicks":5,"public":false,"is_new":true,"stats":[47]},{"url":"https://touchpianist.com/","date_created":"2023-10-27T12:45:54.691Z","title":"Touch Pianist","slug":"touch-pianist","author":"EarSlap","author_link":null,"description":"Unleash your inner virtuoso with Touch Pianist. Experience the thrill of playing the piano with just your fingertips. Choose your favorite classical masterpiece and immerse yourself in the joy of creating beautiful music, all through the power of touch.","tags":["entertainment","piano"],"archive_link":null,"archive":false,"content":"Touch Pianist is a musical toy / instrument that allows the user to perform hard-to-play classical piano music favorites (from composers like Beethoven, Mozart, Bach, Satie, Debussy to name a few) just by tapping the rhythm of the piece's particular sound events on a computer keyboard or a touch screen.\\n\\nIt also provides live visualisation of the pieces that are being performed. There is no score keeping, the user is free to perform the music in any way they wish. The premise is that it is really fun to perform a piece you know well, exactly like you feel it with so little effort.\\n\\nTouch Pianist has CoreMIDI support so you can use your favorite piano / sound plug-in in your computer as a sound source if you wish.","iframe":false,"cover":"415deeeb-a843-4363-b6c9-78918aa688af","id":41,"sort":19,"clicks":177,"public":false,"is_new":false,"stats":[15]},{"url":"https://www.beepbox.co","date_created":"2024-03-21T02:43:35.749Z","title":"BeepBox","slug":"beepbox","author":"John Nesky","author_link":"https://johnnesky.com/","description":"BeepBox is an online tool for sketching and sharing instrumental music.\\n\\nAll song data is contained in the URL at the top of your browser. When you make changes to the song, the URL is updated to reflect your changes. When you are satisfied with your song, just copy and paste the URL to save and share your song!\\n\\nBeepBox is a passion project, and will always be free to use. ","tags":["Poly","Sequencer","FM"],"archive_link":null,"archive":false,"content":" BeepBox is developed by John Nesky.\\n\\nBeepBox does not claim ownership over songs created with it, so original songs belong to their authors.\\n\\nNeither John Nesky nor BeepBox assume responsibility for any copyrighted material played on BeepBox. No songs are ever received, recorded, or distributed by BeepBox's servers. All song data is contained in the URL after the hash (#) mark, and your song data will not leave your device unless you copy and share the URL. BeepBox does not collect, track, or share any user data. ","iframe":true,"cover":"dea37f5f-504c-443f-ba9a-3dff4d583506","id":54,"sort":20,"clicks":10,"public":false,"is_new":true,"stats":[46]},{"url":"https://roland50.studio/","date_created":"2023-11-25T05:42:57.573Z","title":"Roland 50 Studio","slug":"roland50","author":"Yuri Suzuki","author_link":"https://www.yurisuzuki.com/","description":"It's a professional sounding online musical interface, which records your masterpieces and allows you to share your creations through social media, messaging and also as a download.\\nOn top of the TR-808 drum machine and TB-303 bass synthesizer featured at the original 2020 release, now the sound of SH-101 synthesizer is added, and more sounds to come later in the year 2022, commemorating Roland's 50th anniversary.","tags":["drum machine","SP404","TR808","TB303","Step sequencer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"3b5aec13-7e50-475c-9165-bc963872515d","id":45,"sort":21,"clicks":17,"public":false,"is_new":false,"stats":[16]},{"url":"https://www.disco-computer.com/synthesizer/synth.html","date_created":"2023-10-27T12:45:54.270Z","title":"Disco-computer","slug":"disco-computer","author":"Patrick Sawyer","author_link":null,"description":null,"tags":["polyphonic","fm","keyboard"],"archive_link":"/archive/synthescheisse/index.html","archive":true,"content":null,"iframe":true,"cover":"0d0183e6-8964-4246-a18c-a6ca0a0f2794","id":22,"sort":22,"clicks":269,"public":false,"is_new":false,"stats":[17]},{"url":"https://seeing-sound.netlify.app/","date_created":"2023-10-27T12:45:54.492Z","title":"Video Sampler","slug":"video-sampler","author":"Playtronica","author_link":"https://shop.playtronica.com","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"b39cc546-2571-4402-84cd-f8497e27d0c9","id":31,"sort":23,"clicks":256,"public":false,"is_new":false,"stats":[18]},{"url":"https://www.stef.be/bassoontracker/","date_created":"2024-03-14T07:04:03.311Z","title":"Bassoon Tracker","slug":"bassoon","author":"Steffest","author_link":" https://www.stef.be","description":"Browser-based old-school Amiga Music Tracker in plain old JavaScript.","tags":["FM","tracker","8-bit","low-fi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"70c9db80-8ef8-4aa5-9dcd-6b5c3c0da5b2","id":53,"sort":25,"clicks":10,"public":false,"is_new":true,"stats":[45]},{"url":"https://www.igorski.nl/experiment/websid","date_created":"2023-10-27T12:45:54.438Z","title":"WebSID Commodore 64","slug":"web-sid","author":"Igor Zinken","author_link":"https://www.igorski.nl/","description":null,"tags":["polyphonic","keyboard","midi","additive"],"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"932e0ae0-0048-4c6d-92bb-a4a17a8a4dd4","id":28,"sort":26,"clicks":156,"public":false,"is_new":false,"stats":[19]},{"url":"https://nicroto.github.io/viktor/","date_created":"2023-10-27T12:45:54.388Z","title":"Viktor NV-1","slug":"nv-1","author":"Nikolay Tsenkov ","author_link":"https://github.com/nicroto","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"ff3082ad-3c38-4880-ab23-35711c97ea71","id":27,"sort":27,"clicks":496,"public":false,"is_new":false,"stats":[20]},{"url":"https://virtualpiano.eu/","date_created":"2023-10-27T12:45:54.542Z","title":"VirtualPiano.eu","slug":"virtual-piano","author":"WebSyrup","author_link":"https://websyrup.net/","description":null,"tags":["midi","keyboard"],"archive_link":null,"archive":false,"content":"VirtualPiano.eu is the online synthesizer that allows you to play 128 musical instruments for free using your PC keyboard, the mouse or by connecting an external MIDI keyboard.\\n\\nYou can adjust Volume, Reverb, Loop and quality. Use the sustain and adjust the octaves, you can also select and set different channels including the one for the drums.\\n\\nCreate your own melodies, have fun playing or use VirtualPiano to learn how to play the Piano online on your own. ","iframe":true,"cover":"9a59eea5-c77f-483c-9443-1cd0727e6dcc","id":35,"sort":28,"clicks":282,"public":false,"is_new":false,"stats":[21]},{"url":"https://onlinesequencer.net/","date_created":"2023-10-27T12:45:54.565Z","title":"Online sequencer","slug":"online-sequencer","author":"Jacob Morgan and George Burdell","author_link":"https://github.com/buildist","description":null,"tags":["sequencer"],"archive_link":null,"archive":false,"content":"**Online Sequencer** is a web-based music sequencer that allows users to create music saved online, or on their computer. The piano roll is essential to the sequencer, which is on the left of the screen, with 72 notes from C2-B7 (labelled differently from a piano, C2 on the sequencer corresponds to C1 on a piano). In addition to several parameters which can be modified to change the sound of the music, additional functionality can be accessed via the console.\\n\\nUpon opening the site, users can begin composing and \\"drawing\\" notes on the grid, with the default instrument being Electric Piano. By default, a sequence's time signature is set to 4/4, and the grid spacing is set to 1/4 (16 notes per measure). The note lengths can be adjusted by dragging the dark tab on the right of each note, and precision can be afforded by changing the 'Grid' option to other note divisions. \\n\\n## History\\n\\nOnline Sequencer was created on January 2, 2013 by Jacob Morgan during a break at Georgia Tech.\\n\\nBeginning in the fall of 2013, accounts were available but were separate from the music portion of the site. They were only used in the forum and the website chat.\\n\\nIn 2015, accounts were linked to the main website and allowed songs to be saved under someone's username.\\n\\nThe World Update in 2018 added several new instruments and changed the landscape of sound design on the site. The \\"World Update Contest\\" was held for the update.\\n\\nStarting in late 2020, OS began to receive a variety of updates which vastly improved the functionality of the site. These updates introduced features like custom grid sizes, automation with markers, extra reverb options, detune, and distortion. In 2021, the \\"Space Race\\" contest was held, as to see who could work best with the changes.\\n\\nIn late 2022, newer, higher-quality instruments were added. Some of the instruments, such as Electric Piano, Grand Piano, Violin, and Cello got an updated sustained version, while the original versions still exist under the \\"classic\\" designation.\\n\\nCurrently, the 10-Year Anniversary Contest is being held.\\n\\n## Features\\n\\nWithin the editor, numerous user interface features allow for various changes which will impact the individual sequence on that page.\\n\\n### Basic features\\n\\nUI features include:\\n\\n- Tempo (10-999 BPM)\\n- Measure count or Time count (MM: SS.ssss)\\n- Time signature (2/4, 3/4, 4/4, 5/4)\\n- Grid size (This correlates to note divisions; 1/16, 1/12, 1/8, 1/6, 1/4, 1/3, 1/2)\\n- Auto Scroll (Fast, Smooth, Off; how the sequencer displays measures off-screen as a sequence plays)\\n- Add an Audio Track (This won't be saved to the sequence but will play alongside it for ease of transcription)\\n- Title input\\n- Draw, select, and erase\\n- Instrument dropdown, instrument options, and select instrument (selects all notes of the current instrument)\\n- Select all, Cut, Copy, and Paste\\n- Zoom options\\n- Export options\\n- Help\\n- Fullscreen\\n- Tooltips\\n\\n### Advanced features\\n\\nUsers can access more advanced features for use in their sequences by clicking the advanced tab on the instrument they wish to change. This menu contains options to change volume, panning, detune (-1200 to +1200), reverb, distortion, and an equalizer. This array lets users configure specific instruments to create specific sounds, and textures, or to accompany other instruments as a layer or development of the original sound.\\n\\nOS also allows for commands to be entered in the browser console to manipulate different options in specific ways, such as setting custom to detune values (0-infinity), custom grid sizes, note divisions, and sequence ID amongst other things. These options bring OS closer to that of classic Digital Audio Workstations (DAWs) but are still limited in terms of accessibility and availability.\\n\\n### Browser and device support\\n\\nOnline Sequencer supports Chrome and other Chromium-based browsers, such as Microsoft Edge, Opera, and Brave. Firefox is also supported, but often with limited functionality. Safari and Internet Explorer are not supported, due to engine issues.\\n\\nOther mobile browsers support sequence playback, but not editing. However, iOS users have the same problem with WebKit on macOS. However, unlike in macOS, all browsers (even Chromium-based browsers) use WebKit as the engine for iOS due to Apple prohibiting other engines for security reasons; iOS does not support Online Sequencer, other than chat and forums.\\n\\nThe website's user interface is formatted for proper use on desktops, but some pages such as the chat page, playlists, and forums should be formatted well on mobile devices. ","iframe":true,"cover":"ec08ba72-8157-4415-8b34-aea1fe686e09","id":36,"sort":29,"clicks":321,"public":false,"is_new":false,"stats":[22]},{"url":"https://sb.bitsnbites.eu/","date_created":"2023-10-27T12:45:54.625Z","title":"Sound Box","slug":"sound-box","author":"Bits'n'bites","author_link":"https://gitlab.com/mbitsnbites","description":null,"tags":["tracker"],"archive_link":null,"archive":false,"content":"https://github.com/mbitsnbites/soundbox","iframe":true,"cover":"f2f825f3-a084-408b-86d1-2b64cf822c3c","id":38,"sort":30,"clicks":209,"public":false,"is_new":false,"stats":[23]},{"url":"https://femurdesign.com/omni/","date_created":"2023-10-27T12:45:54.224Z","title":"Omni","slug":"omni","author":"Luke Phillips","author_link":"https://femurdesign.com/","description":null,"tags":["polyphonic","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"fbb1364f-53cf-4f71-8f29-d7f572308e78","id":20,"sort":31,"clicks":210,"public":false,"is_new":false,"stats":[24]},{"url":"https://www.g200kg.com/docs/webmodular/","date_created":"2023-10-27T12:45:54.252Z","title":"Web Modular","slug":"web-modular","author":"g200kg","author_link":"https://www.g200kg.com/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"48e0280c-f7ff-4308-bde3-973b7febe89c","id":21,"sort":32,"clicks":202,"public":false,"is_new":false,"stats":[25]},{"url":"https://errozero.co.uk/acid-machine/","date_created":"2023-10-27T12:45:54.333Z","title":"Acid Machine 2","slug":"acid-machine-2","author":"Errozero","author_link":"https://www.errozero.co.uk/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"031eab3e-2f21-442a-8fdc-9769907824e0","id":25,"sort":33,"clicks":166,"public":false,"is_new":false,"stats":[26]},{"url":"https://apps.musedlab.org/groovepizza/","date_created":"2023-11-21T04:30:41.565Z","title":"Groove Pizza","slug":"groove-pizza","author":"NYU Music Experience Design Lab","author_link":"https://musedlab.org/groovepizza/","description":"Groove Pizza is a circular rhythm app for creative music making and learning! It’s also a playful tool for creating grooves using math concepts like shapes, angles and patterns","tags":["drums","sequencer","Educational"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"50d7bc15-edd5-4261-bc2a-1b173b5a1547","id":44,"sort":34,"clicks":91,"public":false,"is_new":false,"stats":[27]},{"url":"https://ojack.github.io/PIXELSYNTH/","date_created":"2023-10-27T12:45:54.286Z","title":"PixelSynth","slug":"pixel-synth","author":"Olivia Jack","author_link":"https://ojack.xyz/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"77369c22-944c-4f6a-83b5-85e16fe43abc","id":24,"sort":35,"clicks":217,"public":false,"is_new":false,"stats":[28]},{"url":"https://www.multiplayerpiano.org/","date_created":"2023-11-26T08:06:18.875Z","title":"Multiplayer Piano","slug":"multiplayer-piano","author":"Brandon Lockaby","author_link":"https://github.com/Multiplayer-Piano","description":"Online piano, that can be played by any site visitor together in a virtual room or alone.","tags":["Piano","MIDI","Poly","Multiplayer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"9c10771b-e38f-469f-b58b-c9e6bb91a072","id":49,"sort":36,"clicks":4,"public":false,"is_new":false,"stats":[29]},{"url":"https://webaudiodemos.appspot.com/midi-synth/index.html","date_created":"2023-10-27T12:45:53.963Z","title":"MIDI–driven Web Audio","slug":"midi-driven-web-audio","author":"Chris Wilson","author_link":"https://github.com/cwilso","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"0005a0c9-c7e7-4922-a1e5-49d4326d2f77","id":6,"sort":37,"clicks":127,"public":false,"is_new":false,"stats":[30]},{"url":"https://samplestitch.com.s3-website-us-east-1.amazonaws.com/","date_created":"2023-10-27T12:45:54.185Z","title":"Samplestich","slug":"sample-stich","author":"Matt Daniels","author_link":"https://mdaniels.com","description":null,"tags":["samples","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"89859f9f-0d45-44dc-93b6-98dfa2e7d799","id":18,"sort":38,"clicks":164,"public":false,"is_new":false,"stats":[31]},{"url":"https://www.audiotool.com/product/device/heisenberg/","date_created":"2023-10-27T12:45:53.983Z","title":"Meet the Heisenberg","slug":"meet-the-heisenberg","author":"AudioTool","author_link":"https://www.audiotool.com","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"a2397ce6-7712-40e5-b4e0-df95c7992662","id":8,"sort":39,"clicks":255,"public":false,"is_new":false,"stats":[32]},{"url":"https://www.gsn-lib.org/apps/cardboardsynth/index.html","date_created":"2023-10-27T12:45:54.002Z","title":"Cardboard Synth","slug":"cardboard-synth","author":" Thorsten Thormählen","author_link":"https://www.uni-marburg.de/en/fb12/research-groups/grafikmultimedia/thormae","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"29fe1fcc-ca85-41b3-ab1e-7f10770f2c1f","id":9,"sort":40,"clicks":184,"public":false,"is_new":false,"stats":[33]},{"url":"https://tanguysynth.com/","date_created":"2023-10-27T12:45:54.036Z","title":"Tanguy synth","slug":"tanguy-synth","author":"Luke Teaford","author_link":"https://github.com/luketeaford","description":null,"tags":["monophonic","additive","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"5471a71e-7c5b-4ea6-aee0-1b394873c381","id":11,"sort":41,"clicks":117,"public":false,"is_new":false,"stats":[34]},{"url":"https://www.blokdust.com/","date_created":"2023-11-25T06:31:23.261Z","title":"BlokDust","slug":"blokdust","author":"Luke Twyman, Luke Phillips, Edward Silverton","author_link":"https://wvnl.xyz/","description":"BlokDust is a creative visual drag and drop music exploration tool. Developed in Brighton UK and released in 2016, BlokDust uses the Web Audio API and makes use of Tone.js as an audio framework.","tags":["creative","sequencer"],"archive_link":null,"archive":false,"content":"Luke Twyman - project concept, design & Ul.\\nwhitevinyldesign.com\\n@whitevinylUK\\nLuke Phillips - audio development & musical interaction.\\nfemurdesign.com\\n@lukephills\\nEdward Silverton - client & server architecture & core development.\\nedsilv.com\\n@edsilv","iframe":true,"cover":"7e5bcda8-f37a-46c0-91d9-0a6ea501a101","id":47,"sort":42,"clicks":19,"public":false,"is_new":false,"stats":[35]},{"url":"https://mod-synth.io/","date_created":"2023-10-27T12:45:54.052Z","title":"MOD synth","slug":"mod-synth","author":"André Venâncio ","author_link":"https://github.com/andrevenancio","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"31564bf3-fca9-41a4-b390-d78ccd848107","id":12,"sort":43,"clicks":146,"public":false,"is_new":false,"stats":[36]},{"url":"https://perso.numericable.fr/olivier.friker/synth/O3-synth%20V1.3.html","date_created":"2023-10-27T12:45:54.069Z","title":"OLIF SY1K","slug":"olif-sy-1-k","author":"Olivier Friker","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"3b9a5e11-3de3-46fe-9cdc-e1668b152f31","id":13,"sort":44,"clicks":145,"public":false,"is_new":false,"stats":[37]},{"url":"http://www.noisesculptor.com/","date_created":"2023-10-27T12:45:54.104Z","title":"Note Sculptor","slug":"note-sculptor","author":"Ruin Technology","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"a01968d1-3f88-4522-9752-1c33d10d90d9","id":15,"sort":45,"clicks":129,"public":false,"is_new":false,"stats":[38]},{"url":"https://aikelab.net/websynthv2/","date_created":"2023-10-27T12:45:54.141Z","title":"WebAudioSynth V2","slug":"web-audio-synth-v2","author":"like","author_link":"https://github.com/aike/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"ac668fba-7226-43dc-a91f-bd21a31446e5","id":16,"sort":46,"clicks":305,"public":false,"is_new":false,"stats":[39]},{"url":"https://isleoftune.com/","date_created":"2023-11-25T06:22:15.184Z","title":"Isle of Tune","slug":"isleoftune","author":"Jim Hall","author_link":"https://twitter.com/isleoftune","description":"Draw an island, where everything plays music.","tags":["game","sequencer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"6830c24f-c7bf-430f-abc1-3d7fbf5f2557","id":46,"sort":47,"clicks":15,"public":false,"is_new":false,"stats":[40]},{"url":"https://www.soundtrap.com/","date_created":"2023-10-27T12:45:54.155Z","title":"Sound Trap","slug":"sound-trap","author":"Soundtrap","author_link":"https://www.soundtrap.com/about","description":null,"tags":["daw"],"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"63ef832a-f7da-4536-851f-4964005a89f1","id":17,"sort":48,"clicks":124,"public":false,"is_new":false,"stats":[41]},{"url":"http://typedrummer.com/","date_created":"2023-11-25T06:34:10.166Z","title":"Type Drummer","slug":"typedrummer","author":"Kyle Stetz","author_link":"http://kylestetz.com/","description":"Type your drum loops","tags":["sequencer","drums","Keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"19454c82-7338-4144-9f1c-010c80a70a6e","id":48,"sort":49,"clicks":21,"public":false,"is_new":false,"stats":[42]}]`),ot={class:"text-center line-height-loose text-md"},rt={class:"mx-auto max-w-75ch intro md-text-lg"},lt={class:"p-2 flex flex-col mt-8"},ct={class:"text-4xl font-bold"},ut=f("div",{class:"text-lg"},"web synths",-1),ht={class:"p-2 flex flex-col mt-8"},dt={class:"text-4xl font-bold"},pt=f("div",{class:"text-lg"},"web musicians",-1),ft={__name:"AboutCount",setup(t){const e=D(),s=D(0),n=D(0),i=pe(s),a=pe(n),o=$e(e);return De(o,async r=>{if(r){s.value=ne.length;const c=await(await fetch("https://dbs.chromatone.center/flows/trigger/0c0e8d82-8e12-44a6-867a-57ddeec9d774",{type:"GET",mode:"cors",headers:{"Content-Type":"application/json"}})).json();n.value=c.count}}),(r,l)=>(b(),y("div",ot,[f("div",rt,[f("div",{class:"flex justify-center",ref_key:"counters",ref:e},[f("div",lt,[f("div",ct,$(M(i).toFixed()),1),ut]),f("div",ht,[f("div",dt,$(M(a).toFixed()||5e3)+"+",1),pt])],512)])]))}},mt={class:"flex flex-col text-center gap-4 bg-light-700 dark-bg-dark-200 dark-bg-opacity-20 p-4 rounded-lg shadow-lg mb-8"},gt=f("div",{class:"text-xl font-bold my-2"},"Suggest a new web-synth to the collection",-1),bt=["disabled"],yt={__name:"FormSynth",emits:["submitted"],setup(t,{emit:e}){const s=e,n=Pe({url:"",text:""}),i=/[(http(s) ?): \/\/(www\.)?a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/;function a(l){return i.test(l)}const o=D();async function r(){var l,c,u;try{const h=await fetch("https://dbs.chromatone.center/flows/trigger/dc8ca96f-76e6-4cac-b26c-10751746eb89",{method:"POST",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:JSON.stringify(n)});o.value=await(h==null?void 0:h.json()),n.url="",n.text="",setTimeout(()=>{s("submitted")},2e3)}catch(h){console.error(h,(c=(l=h==null?void 0:h.errors)==null?void 0:l[0])==null?void 0:c.message,(u=h==null?void 0:h.response)==null?void 0:u.status)}}return(l,c)=>(b(),y("div",mt,[o.value?(b(),y(j,{key:1},[U("Thanks for your suggestion!")],64)):(b(),y(j,{key:0},[gt,X(f("input",{class:"py-2 px-4 rounded bg-light-200 dark-bg-dark-200",type:"text",placeholder:"https://new.synth.url/","onUpdate:modelValue":c[0]||(c[0]=u=>n.url=u)},null,512),[[ee,n.url]]),X(f("textarea",{class:"py-2 px-4 rounded bg-light-200 dark-bg-dark-200",oninput:"this.style.height = ''; this.style.height = this.scrollHeight +'px'",placeholder:"Describe the web-app and how do you use it musically","onUpdate:modelValue":c[1]||(c[1]=u=>n.text=u)},null,512),[[ee,n.text]]),f("button",{class:"text-xl py-2 px-4 rounded bg-dark-100 text-light-200 dark-bg-light-700 dark-text-dark-500 shadow-lg disabled-opacity-20",disabled:!a(n.url),onClick:c[2]||(c[2]=u=>r())},$(a(n.url)?"Submit":"Please provide a valid URL"),9,bt)],64))]))}},_e=t=>(Fe("data-v-f3c34bc1"),t=t(),je(),t),vt={key:0,class:"px-2 py-1 bg-light-800 dark-bg-dark-800 rounded-xl transition text-sm select-none absolute bottom-2 left-2 text-center z-200 flex items-center gap-1 opacity-70 hover-opacity-100",title:"Since 28 Oct 2023"},wt=_e(()=>f("div",{class:"i-la-eye"},null,-1)),kt={class:"p-0 mt-2px"},_t={class:"p-4 flex flex-col items-start justify-between gap-2",style:{flex:"10 0 200px"}},xt={class:"flex items-center gap-2 flex-0 w-full"},St={class:"transition text-xl select-none absolute top-4 left-4 text-center z-200"},Tt={class:"flex-auto"},Mt={class:"flex items-center gap-2"},It={class:"text-2xl font-bold"},At={key:0,class:"font-normal",title:"Archived locally by us"},Ct=_e(()=>f("div",{class:"i-ph-archive-duotone"},null,-1)),Et=[Ct],Lt={class:"flex-1"},Ot={key:1,class:"flex-1 flex items-end flex flex-wrap gap-2"},$t=["href"],Dt={key:3,class:"text-xl p-2 absolute left-2 top-4 bg-yellow-600 rounded-xl shadow font-bold z-1000 transform -rotate-10"},Pt={__name:"SynthCard",props:{pos:{type:Number,default:0},sort:{type:Number,default:0},public:{type:Boolean,default:!1},title:{type:String,default:""},id:{type:Number,default:0},slug:{type:String,default:""},description:{type:String,default:""},cover:{type:String,default:""},url:{type:String,default:""},author:{type:String,default:""},author_link:{type:String,default:""},tags:{type:Array,default:()=>[]},archive:{type:Boolean,default:!1},archive_link:{type:String,default:""},iframe:{type:Boolean,default:null},clicks:{type:Number,default:0},stars:{type:Number,default:0},counter:{type:Number,default:0},is_new:{type:Boolean,default:null}},setup(t){const{isDark:e}=Re(),s=t,{isFormOpen:n,isAccessGranted:i}=ke(),{clicksCount:a,clickSynth:o}=Je(s.id);async function r(){!s.public&&!i.value?n.value=!n.value:(o(s.id),s.iframe?window.open(s.slug+"/","_self"):window.open(s.archive?s.archive_link:s.url,"_blank"))}return(l,c)=>{var d;const u=Qe,h=ze("ClientOnly");return b(),y("button",{class:"max-w-180 w-full flex flex-wrap items-stretch text-left relative bg-light-500 dark-bg-dark-300 -hover-translate-y-6px transition duration-200 hover-shadow-lg rounded-lg overflow-hidden relative border-1 border-dark-100 border-opacity-20 shadow-sm dark-border-light-800 dark-border-opacity-20",style:te({borderColor:M(Y)[t.id]?M(e)?"hsl(50deg,80%,35%)":"hsl(40deg,90%,80%)":null}),onClick:r},[f("div",{class:"cover min-h-50 bg-cover bg-center filter transition",style:te([{backgroundImage:`url(/cover/${t.slug}.webp)`},{flex:"1 1 280px"}])},[M(a)||t.counter?(b(),y("div",vt,[wt,f("div",kt,$(M(a)||t.counter),1)])):_("",!0)],4),f("div",_t,[f("div",xt,[f("div",St,$(t.sort),1),f("div",Tt,[f("span",Mt,[f("div",It,$(t.title),1),t.archive?(b(),y("span",At,Et)):_("",!0)])]),B(h,null,{default:G(()=>[B(u,{class:"text-xl mr-2 absolute z-200",id:t.id,stars:t.stars},null,8,["id","stars"])]),_:1})]),t.author?(b(),se(Be(t.author_link?"a":"div"),{key:0,class:"p-0 text-md",href:t.author_link,target:"_blank"},{default:G(()=>[U("by "+$(t.author),1)]),_:1},8,["href"])):_("",!0),f("div",Lt,[Ne(l.$slots,"default",{},void 0,!0)]),((d=t.tags)==null?void 0:d.length)>0?(b(),y("div",Ot,[(b(!0),y(j,null,we(t.tags,g=>(b(),y("div",{class:"px-2 py-1 text-sm bg-light-800 dark-bg-dark-500 rounded-lg",key:g},$(g),1))),128))])):_("",!0),t.iframe?_("",!0):(b(),y("a",{key:2,class:"absolute bottom-4 right-4 i-la-external-link-square-alt text-lg opacity-40 transition transition hover-opacity-100",onClick:c[0]||(c[0]=We(()=>{},["stop"])),href:`/${t.slug}/`,title:"Opens in a new window"},null,8,$t)),t.is_new?(b(),y("div",Dt,"NEW!")):_("",!0)])],4)}}},Rt=ve(Pt,[["__scopeId","data-v-f3c34bc1"]]);function O(t){return Array.isArray?Array.isArray(t):Te(t)==="[object Array]"}const zt=1/0;function Bt(t){if(typeof t=="string")return t;let e=t+"";return e=="0"&&1/t==-zt?"-0":e}function Nt(t){return t==null?"":Bt(t)}function E(t){return typeof t=="string"}function xe(t){return typeof t=="number"}function Wt(t){return t===!0||t===!1||Ft(t)&&Te(t)=="[object Boolean]"}function Se(t){return typeof t=="object"}function Ft(t){return Se(t)&&t!==null}function x(t){return t!=null}function Q(t){return!t.trim().length}function Te(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const jt="Incorrect 'index' type",Zt=t=>`Invalid value for key ${t}`,Vt=t=>`Pattern length exceeds max of ${t}.`,qt=t=>`Missing ${t} property in key`,Yt=t=>`Property 'weight' in key '${t}' must be a positive integer`,fe=Object.prototype.hasOwnProperty;class Ut{constructor(e){this._keys=[],this._keyMap={};let s=0;e.forEach(n=>{let i=Me(n);this._keys.push(i),this._keyMap[i.id]=i,s+=i.weight}),this._keys.forEach(n=>{n.weight/=s})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Me(t){let e=null,s=null,n=null,i=1,a=null;if(E(t)||O(t))n=t,e=me(t),s=ie(t);else{if(!fe.call(t,"name"))throw new Error(qt("name"));const o=t.name;if(n=o,fe.call(t,"weight")&&(i=t.weight,i<=0))throw new Error(Yt(o));e=me(o),s=ie(o),a=t.getFn}return{path:e,id:s,weight:i,src:n,getFn:a}}function me(t){return O(t)?t:t.split(".")}function ie(t){return O(t)?t.join("."):t}function Gt(t,e){let s=[],n=!1;const i=(a,o,r)=>{if(x(a))if(!o[r])s.push(a);else{let l=o[r];const c=a[l];if(!x(c))return;if(r===o.length-1&&(E(c)||xe(c)||Wt(c)))s.push(Nt(c));else if(O(c)){n=!0;for(let u=0,h=c.length;ut.score===e.score?t.idx{this._keysMap[s.id]=n})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,E(this.docs[0])?this.docs.forEach((e,s)=>{this._addString(e,s)}):this.docs.forEach((e,s)=>{this._addObject(e,s)}),this.norm.clear())}add(e){const s=this.size();E(e)?this._addString(e,s):this._addObject(e,s)}removeAt(e){this.records.splice(e,1);for(let s=e,n=this.size();s{let o=i.getFn?i.getFn(e):this.getFn(e,i.path);if(x(o)){if(O(o)){let r=[];const l=[{nestedArrIndex:-1,value:o}];for(;l.length;){const{nestedArrIndex:c,value:u}=l.pop();if(x(u))if(E(u)&&!Q(u)){let h={v:u,i:c,n:this.norm.get(u)};r.push(h)}else O(u)&&u.forEach((h,d)=>{l.push({nestedArrIndex:d,value:h})})}n.$[a]=r}else if(E(o)&&!Q(o)){let r={v:o,n:this.norm.get(o)};n.$[a]=r}}}),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}}function Ie(t,e,{getFn:s=p.getFn,fieldNormWeight:n=p.fieldNormWeight}={}){const i=new ue({getFn:s,fieldNormWeight:n});return i.setKeys(t.map(Me)),i.setSources(e),i.create(),i}function ts(t,{getFn:e=p.getFn,fieldNormWeight:s=p.fieldNormWeight}={}){const{keys:n,records:i}=t,a=new ue({getFn:e,fieldNormWeight:s});return a.setKeys(n),a.setIndexRecords(i),a}function q(t,{errors:e=0,currentLocation:s=0,expectedLocation:n=0,distance:i=p.distance,ignoreLocation:a=p.ignoreLocation}={}){const o=e/t.length;if(a)return o;const r=Math.abs(n-s);return i?o+r/i:r?1:o}function ss(t=[],e=p.minMatchCharLength){let s=[],n=-1,i=-1,a=0;for(let o=t.length;a=e&&s.push([n,i]),n=-1)}return t[a-1]&&a-n>=e&&s.push([n,a-1]),s}const z=32;function ns(t,e,s,{location:n=p.location,distance:i=p.distance,threshold:a=p.threshold,findAllMatches:o=p.findAllMatches,minMatchCharLength:r=p.minMatchCharLength,includeMatches:l=p.includeMatches,ignoreLocation:c=p.ignoreLocation}={}){if(e.length>z)throw new Error(Vt(z));const u=e.length,h=t.length,d=Math.max(0,Math.min(n,h));let g=a,v=d;const m=r>1||l,S=m?Array(h):[];let T;for(;(T=t.indexOf(e,v))>-1;){let k=q(e,{currentLocation:T,expectedLocation:d,distance:i,ignoreLocation:c});if(g=Math.min(k,g),v=T+u,m){let I=0;for(;I=he;A-=1){let V=A-1,de=s[t.charAt(V)];if(m&&(S[V]=+!!de),W[A]=(W[A+1]<<1|1)&de,k&&(W[A]|=(L[A+1]|L[A])<<1|1|L[A+1]),W[A]&Z&&(C=q(e,{errors:k,currentLocation:V,expectedLocation:d,distance:i,ignoreLocation:c}),C<=g)){if(g=C,v=V,v<=d)break;he=Math.max(1,2*d-v)}}if(q(e,{errors:k+1,currentLocation:d,expectedLocation:d,distance:i,ignoreLocation:c})>g)break;L=W}const N={isMatch:v>=0,score:Math.max(.001,C)};if(m){const k=ss(S,r);k.length?l&&(N.indices=k):N.isMatch=!1}return N}function is(t){let e={};for(let s=0,n=t.length;s{this.chunks.push({pattern:d,alphabet:is(d),startIndex:g})},h=this.pattern.length;if(h>z){let d=0;const g=h%z,v=h-g;for(;d{const{isMatch:T,score:L,indices:C}=ns(e,v,m,{location:i+S,distance:a,threshold:o,findAllMatches:r,minMatchCharLength:l,includeMatches:n,ignoreLocation:c});T&&(d=!0),h+=L,T&&C&&(u=[...u,...C])});let g={isMatch:d,score:d?h/this.chunks.length:1};return d&&n&&(g.indices=u),g}}class P{constructor(e){this.pattern=e}static isMultiMatch(e){return ge(e,this.multiRegex)}static isSingleMatch(e){return ge(e,this.singleRegex)}search(){}}function ge(t,e){const s=t.match(e);return s?s[1]:null}class as extends P{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){const s=e===this.pattern;return{isMatch:s,score:s?0:1,indices:[0,this.pattern.length-1]}}}class os extends P{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){const n=e.indexOf(this.pattern)===-1;return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}}class rs extends P{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){const s=e.startsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[0,this.pattern.length-1]}}}class ls extends P{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){const s=!e.startsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[0,e.length-1]}}}class cs extends P{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){const s=e.endsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}class us extends P{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){const s=!e.endsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[0,e.length-1]}}}class Ce extends P{constructor(e,{location:s=p.location,threshold:n=p.threshold,distance:i=p.distance,includeMatches:a=p.includeMatches,findAllMatches:o=p.findAllMatches,minMatchCharLength:r=p.minMatchCharLength,isCaseSensitive:l=p.isCaseSensitive,ignoreLocation:c=p.ignoreLocation}={}){super(e),this._bitapSearch=new Ae(e,{location:s,threshold:n,distance:i,includeMatches:a,findAllMatches:o,minMatchCharLength:r,isCaseSensitive:l,ignoreLocation:c})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class Ee extends P{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let s=0,n;const i=[],a=this.pattern.length;for(;(n=e.indexOf(this.pattern,s))>-1;)s=n+a,i.push([n,s-1]);const o=!!i.length;return{isMatch:o,score:o?0:1,indices:i}}}const ae=[as,Ee,rs,ls,us,cs,os,Ce],be=ae.length,hs=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,ds="|";function ps(t,e={}){return t.split(ds).map(s=>{let n=s.trim().split(hs).filter(a=>a&&!!a.trim()),i=[];for(let a=0,o=n.length;a!!(t[K.AND]||t[K.OR]),bs=t=>!!t[le.PATH],ys=t=>!O(t)&&Se(t)&&!ce(t),ye=t=>({[K.AND]:Object.keys(t).map(e=>({[e]:t[e]}))});function Le(t,e,{auto:s=!0}={}){const n=i=>{let a=Object.keys(i);const o=bs(i);if(!o&&a.length>1&&!ce(i))return n(ye(i));if(ys(i)){const l=o?i[le.PATH]:a[0],c=o?i[le.PATTERN]:i[l];if(!E(c))throw new Error(Zt(l));const u={keyId:ie(l),pattern:c};return s&&(u.searcher=re(c,e)),u}let r={children:[],operator:a[0]};return a.forEach(l=>{const c=i[l];O(c)&&c.forEach(u=>{r.children.push(n(u))})}),r};return ce(t)||(t=ye(t)),n(t)}function vs(t,{ignoreFieldNorm:e=p.ignoreFieldNorm}){t.forEach(s=>{let n=1;s.matches.forEach(({key:i,norm:a,score:o})=>{const r=i?i.weight:null;n*=Math.pow(o===0&&r?Number.EPSILON:o,(r||1)*(e?1:a))}),s.score=n})}function ws(t,e){const s=t.matches;e.matches=[],x(s)&&s.forEach(n=>{if(!x(n.indices)||!n.indices.length)return;const{indices:i,value:a}=n;let o={indices:i,value:a};n.key&&(o.key=n.key.src),n.idx>-1&&(o.refIndex=n.idx),e.matches.push(o)})}function ks(t,e){e.score=t.score}function _s(t,e,{includeMatches:s=p.includeMatches,includeScore:n=p.includeScore}={}){const i=[];return s&&i.push(ws),n&&i.push(ks),t.map(a=>{const{idx:o}=a,r={item:e[o],refIndex:o};return i.length&&i.forEach(l=>{l(a,r)}),r})}class F{constructor(e,s={},n){this.options={...p,...s},this.options.useExtendedSearch,this._keyStore=new Ut(this.options.keys),this.setCollection(e,n)}setCollection(e,s){if(this._docs=e,s&&!(s instanceof ue))throw new Error(jt);this._myIndex=s||Ie(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){x(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){const s=[];for(let n=0,i=this._docs.length;n-1&&(l=l.slice(0,s)),_s(l,this._docs,{includeMatches:n,includeScore:i})}_searchStringList(e){const s=re(e,this.options),{records:n}=this._myIndex,i=[];return n.forEach(({v:a,i:o,n:r})=>{if(!x(a))return;const{isMatch:l,score:c,indices:u}=s.searchIn(a);l&&i.push({item:a,idx:o,matches:[{score:c,value:a,norm:r,indices:u}]})}),i}_searchLogical(e){const s=Le(e,this.options),n=(r,l,c)=>{if(!r.children){const{keyId:h,searcher:d}=r,g=this._findMatches({key:this._keyStore.get(h),value:this._myIndex.getValueForItemAtKeyId(l,h),searcher:d});return g&&g.length?[{idx:c,item:l,matches:g}]:[]}const u=[];for(let h=0,d=r.children.length;h{if(x(r)){let c=n(s,r,l);c.length&&(a[l]||(a[l]={idx:l,item:r,matches:[]},o.push(a[l])),c.forEach(({matches:u})=>{a[l].matches.push(...u)}))}}),o}_searchObjectList(e){const s=re(e,this.options),{keys:n,records:i}=this._myIndex,a=[];return i.forEach(({$:o,i:r})=>{if(!x(o))return;let l=[];n.forEach((c,u)=>{l.push(...this._findMatches({key:c,value:o[u],searcher:s}))}),l.length&&a.push({idx:r,item:o,matches:l})}),a}_findMatches({key:e,value:s,searcher:n}){if(!x(s))return[];let i=[];if(O(s))s.forEach(({v:a,i:o,n:r})=>{if(!x(a))return;const{isMatch:l,score:c,indices:u}=n.searchIn(a);l&&i.push({score:c,key:e,value:a,idx:o,norm:r,indices:u})});else{const{v:a,n:o}=s,{isMatch:r,score:l,indices:c}=n.searchIn(a);r&&i.push({score:l,key:e,value:a,norm:o,indices:c})}return i}}F.version="7.0.0";F.createIndex=Ie;F.parseIndex=ts;F.config=p;F.parseQuery=Le;gs(ms);const xs={class:"flex flex-col items-center mb-2 px-8"},Ss={class:"w-full max-w-110 flex items-center relative my-4 gap-2"},Ts=f("div",{class:"i-la-search absolute left-2 text-xl opacity-40"},null,-1),Ms=["title"],Is={key:0,class:"i-la-star-solid"},As={key:1,class:"i-la-star"},Cs={class:"flex flex-col items-center gap-8 p-2 max-w-160 mx-auto mb-12"},Es=["index"],Ls={class:"p-2",key:"nnn"},Os={key:0,class:"animate-pulse text-center"},$s={__name:"SynthList",setup(t){const{isAccessGranted:e}=ke(),s=D(ne),n=new F(ne,{includeScore:!0,ignoreLocation:!0,shouldSort:!0,keys:["title","slug","author"]}),i=Ze("fav-filter",!1),a=D(""),o=D(!1),r=J(()=>n.search(a.value)),l=J(()=>r.value.filter(h=>h.score<.2).sort((h,d)=>h.score>d.score?1:0).map(h=>h.item.slug)),c=J(()=>s.value.filter(h=>a.value?l.value.includes(h.slug):i.value?Y.value[h.id]:!0)),u=D([]);return Ve(async()=>{u.value=await Xe("synths",{fields:["id",{stats:["views","stars"]}]})}),qe(Y,h=>{Object.values(h).filter(Boolean).length==0&&(i.value=!1)},{deep:!0,immediate:!0}),(h,d)=>{const g=Rt,v=yt;return b(),y(j,null,[f("div",xs,[f("div",Ss,[X(f("input",{class:"w-full focus text-xl py-2 pl-9 bg-light-50 bg-opacity-100 shadow-inner border-1 border-dark-100 border-opacity-10 rounded-lg dark-bg-dark-200 outline-none focus-border-opacity-90",placeholder:"Type to search...","onUpdate:modelValue":d[0]||(d[0]=m=>a.value=m)},null,512),[[ee,a.value]]),Ts,a.value?(b(),y("div",{key:0,class:"i-la-times absolute right-2 text-xl opacity-40 hover-opacity-80 transition cursor-pointer",onClick:d[1]||(d[1]=m=>a.value="")})):_("",!0),Object.values(M(Y)).filter(Boolean).length>0&&!a.value?(b(),y("button",{key:1,class:"transition p-2 shadow dark-bg-dark-200 dark-hover-bg-dark-100 bg-light-300 hover-bg-light-100 rounded-lg flex items-center gap-2 text-xl text-yellow",title:M(i)?"Only favourites are shown":"Show only favourites",onClick:d[2]||(d[2]=m=>i.value=!M(i))},[B(Ye,{name:"fade"},{default:G(()=>[M(i)?(b(),y("div",Is)):(b(),y("div",As))]),_:1})],8,Ms)):_("",!0),a.value?_("",!0):(b(),y("button",{key:2,class:"transition p-2 shadow dark-bg-dark-200 dark-hover-bg-dark-100 bg-light-300 hover-bg-light-100 rounded-lg flex items-center gap-2 text-xl",title:"Suggest a new link to the collection",onClick:d[3]||(d[3]=m=>o.value=!o.value)},[f("div",{class:Ue(["i-la-plus transform transition",{"rotate-45":o.value}])},null,2)]))])]),f("div",Cs,[o.value?_("",!0):(b(),se(Ke,{key:0,name:"fade"},{default:G(()=>[(b(!0),y(j,null,we(c.value,(m,S)=>{var T,L,C,R,Z,N,k,I;return b(),y("div",{class:"flex w-full sticky",style:te([{top:`${80+S*4}px`,zIndex:S+10},{flex:"1 1 240px"}]),key:m.id,index:S},[(b(),se(g,Ge({pos:S,style:{filter:!m.public&&!M(e)?"contrast(70%) blur(2px) opacity(80%)":""},key:m.id,ref_for:!0},m,{counter:(R=(C=(L=(T=u.value)==null?void 0:T.find(w=>(w==null?void 0:w.id)==(m==null?void 0:m.id)))==null?void 0:L.stats)==null?void 0:C[0])==null?void 0:R.views,stars:(I=(k=(N=(Z=u.value)==null?void 0:Z.find(w=>(w==null?void 0:w.id)==(m==null?void 0:m.id)))==null?void 0:N.stats)==null?void 0:k[0])==null?void 0:I.stars}),null,16,["pos","style","counter","stars"]))],12,Es)}),128))]),_:1})),c.value.length==0||o.value?(b(),y("div",Ls,[o.value?_("",!0):(b(),y("div",Os,"We don't know such a web-app yet. ")),B(v,{class:"max-w-140 mx-auto mt-6",onSubmitted:d[4]||(d[4]=m=>o.value=!1)})])):_("",!0)])],64)}}},Gs=JSON.parse('{"title":"Web synths","description":"Web synthesizers to play with MIDI controllers","frontmatter":{"title":"Web synths","description":"Web synthesizers to play with MIDI controllers","date":"2023-06-22T00:00:00.000Z","layout":"home"},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1716281170000}'),Ds={name:"index.md"},Ps=f("h1",{class:"text-center text-2xl sm-text-3xl font-bold mt-8",style:{padding:"0.1rem 1rem"}},"Online synthesizers and web piano apps",-1),Rs=f("h2",{class:"text-xl sm-text-2xl text-center my-2",style:{padding:"0 1rem"}},"Curated collection of free music creation resources",-1),zs={class:"px-4 text-lg text-center mb-8 max-w-150 mx-auto"},Bs=f("a",{class:"font-bold",href:"https://chromatone.center",target:"_blank",rel:"noopener"}," Chromatone",-1),Ns=f("a",{class:"font-bold",href:"https://playtronica.com",target:"_blank",rel:"noopener"}," Playtronica",-1),Ws=f("h3",{class:"font-bold text-xl"},"Welcome to the community of web-based musicians!",-1),Fs=f("p",null,[f("a",{target:"_blank",href:"https://chromatone.center/"},[f("img",{src:He,class:"max-w-16 mx-auto"})])],-1);function js(t,e,s,n,i,a){const o=$s,r=ft,l=at;return b(),y("div",null,[Ps,Rs,B(o),f("div",zs,[Bs,U(" is an open source visual music language for education, research and performance. We develop a new universal way to communicate music. "),Ns,U(" is a digital playground that explores the possibilities of the material world through technology, creating gadgets that make the world musical. Together we share our passion for online music instruments. "),B(r),Ws,Fs,B(l)])])}const Ks=ve(Ds,[["render",js]]);export{Gs as __pageData,Ks as default}; diff --git a/assets/index.md.D1t8y0zZ.js b/assets/index.md.D1t8y0zZ.js deleted file mode 100644 index 68a2a979..00000000 --- a/assets/index.md.D1t8y0zZ.js +++ /dev/null @@ -1 +0,0 @@ -import{D as Oe,b,d as y,g as p,f as T,q as _,r as D,E as fe,F as $e,G as De,t as $,H as Pe,I as j,e as X,j as ee,h as U,_ as ve,s as Re,x as ze,J as te,y as B,z as G,A as se,K as Be,i as Ne,L as we,C as We,M as Fe,N as je,a as Ze,c as J,o as Ve,w as qe,T as Ye,n as Ue,O as Ge,P as Ke,Q as He}from"./chunks/framework.BMc-2bSs.js";import{u as Je,f as Y,_ as Qe,a as Xe}from"./chunks/useClicks.DBr_plfA.js";import{u as ke}from"./chunks/theme.CBbWuF7B.js";import"./chunks/index.DISW28_u.js";const et={class:"text-center line-height-loose text-md"},tt={class:"mx-auto max-w-75ch intro md-text-lg"},st=p("div",{class:"i-mdi-share"},null,-1),nt=p("span",null,"Share to save for later",-1),it=[st,nt],at={__name:"AboutShare",setup(t){const{share:e,isSupported:s}=Oe();function n(){e({title:"Web synths collection",text:"Look at this online synthesizer collection. No need to install anything - just your browser and any MIDI controller will do.",url:location.href})}return(i,a)=>(b(),y("div",et,[p("div",tt,[T(s)?(b(),y("button",{key:0,class:"mx-auto flex items-center gap-2 text-white py-2 px-4 mt-6 shadow-lg rounded-lg cursor-pointer bg-green-600 -hover-translate-y-2px transition",onClick:a[0]||(a[0]=o=>n()),"data-umami-event":"Shared via button"},it)):_("",!0)])]))}},ne=JSON.parse(`[{"url":"https://dotpiano.com/","date_created":"2023-10-27T12:45:53.887Z","title":"Dotpiano","slug":"dotpiano","author":"Alex Chen and Yotam Mann","author_link":null,"description":"Dot Piano is an online musical instrument allowing users to play a digital piano using their computer keyboard. The interactive web app provides a simple and intuitive interface for creating and sharing music, making it accessible for both beginners and experienced musicians.","tags":["polyphonic","midi","keyboard","Multiplayer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"6dac5187-213f-4eb8-96ed-63c2e689b206","id":1,"sort":1,"clicks":6424,"public":true,"is_new":false,"stats":[1]},{"url":"https://waveform.playtronica.com/","date_created":"2023-10-27T12:45:54.644Z","title":"Waveform","slug":"waveform","author":"Qvantor","author_link":"https://github.com/qvantor/","description":"Polyphonic web synthesizer with simple yet capable interface.","tags":["playtronica","polyphonic","midi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"86cb9385-9deb-4f10-95cb-765980156e65","id":39,"sort":2,"clicks":6795,"public":true,"is_new":false,"stats":[2]},{"url":"https://juno-106.js.org/","date_created":"2023-10-27T12:45:54.085Z","title":"Juno-106","slug":"juno-106","author":"Steve Goldberg ","author_link":"https://github.com/stevengoldberg","description":"Online emulator of the classic Roland Juno-106 synthesizer. This interactive web app allows users to experiment with the iconic sounds of the Juno-106 directly from their browser. It features authentic recreations of the synth's controls and sound characteristics, making it a valuable tool for music enthusiasts and producers. ","tags":["fm","midi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"b54cfce7-af2f-4e03-a5b3-81fc853d2cc8","id":14,"sort":3,"clicks":5014,"public":true,"is_new":false,"stats":[3]},{"url":"https://chromatone.center/practice/synth/elementary/","date_created":"2023-10-27T12:45:54.453Z","title":"Elementary synth","slug":"elementary","author":"Chromatone","author_link":"https://chromatone.center","description":"The Chromatone Elementary Synth is an interactive web-based synthesizer designed to provide a hands-on learning experience in sound synthesis. It features MIDI support and is built using the Elementary audio library. This synthesizer allows users to explore different synthesis techniques through a user-friendly interface, making it an excellent tool for both beginners and experienced musicians looking to experiment with sound design.","tags":["chromatone","polyphonic","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"21070a51-6089-48bd-8840-ba37b5f2963d","id":29,"sort":4,"clicks":3186,"public":true,"is_new":false,"stats":[4]},{"url":"https://mmontag.github.io/dx7-synth-js/","date_created":"2023-10-27T12:45:54.477Z","title":"DX7 Synth","slug":"dx7","author":"Matt Montag ","author_link":"https://github.com/mmontag","description":"The DX7 Synth JS is an online emulator of the classic Yamaha DX7 synthesizer. This interactive web app replicates the iconic FM synthesis capabilities of the DX7, allowing users to create and manipulate sounds using various parameters such as algorithms, operators, and envelopes. The app supports MIDI devices and provides a user-friendly interface for sound design experimentation. ","tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"f3b285ee-6b82-453b-9ff6-aeda18ec675b","id":30,"sort":5,"clicks":2718,"public":true,"is_new":false,"stats":[5]},{"url":"https://touchme.chromatone.center/","date_created":"2023-10-27T12:45:53.941Z","title":"TouchME","slug":"touchme","author":"Chromatone","author_link":"https://chromatone.center","description":"TouchMe Experience by Chromatone is an interactive audio-visual web app that transforms touch inputs into music and visual effects. It features MIDI support, multiple synth oscillators, and various quantize and BPM modes. Users can explore six interactive SVG scenes, switch between light and dark modes, and view basic session statistics. Designed for creative experimentation, it offers a unique way to engage with music and visuals.","tags":["chromatone","playtronica"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"68062279-8e08-4953-ae8f-7a77c584948e","id":3,"sort":6,"clicks":3416,"public":true,"is_new":false,"stats":[6]},{"url":"https://muted.io/","date_created":"2023-10-27T12:45:54.742Z","title":"Muted.io","slug":"muted-io","author":"Sébastien Noël","author_link":"https://twitter.com/muted_io","description":"Muted.io offers a collection of interactive music theory tools designed for learning music online. These tools include a virtual piano, chord and scale references, a circle of fifths, tuners, and various visual aids to understand music theory concepts. The site is ideal for musicians looking to improve their knowledge and practice music in an engaging way.","tags":["educational","midi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"5c08ac7d-4414-47c0-b7d1-a9867ba3949f","id":43,"sort":7,"clicks":175,"public":false,"is_new":false,"stats":[10]},{"url":"https://chromatone.center/practice/synth/soundfont/","date_created":"2023-12-18T10:20:56.985Z","title":"Soundfont Sampler Synth","slug":"soundfont","author":"Chromatone","author_link":"https://github.com/chromatone","description":"Free open source soundfont sampler online synthesizer. Very robust and hassle free way to play some straightforward sampled instruments like horns, xylophones and just piano sounds. Instantly playable instrument with about 90 presets out of the box. ","tags":["Poly","Keyboard","Sampler","MIDI"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"26704e9d-5964-4a0f-940c-370c14777e95","id":51,"sort":8,"clicks":0,"public":true,"is_new":true,"stats":[43]},{"url":"https://midi.city/","date_created":"2023-12-28T05:40:45.140Z","title":"MIDI.city","slug":"midi-city","author":"Astral Digital","author_link":"https://astral.digital/","description":"midi.city is a free online synthesizer, built by Jack.\\n\\nmidi.city has over 128 different instruments including: Pianos, Saxophones, Drums, Trumpets, Synth Pads, Guitar, Violins and all other instruments defined in the General Midi specification.","tags":null,"archive_link":null,"archive":false,"content":"midi.city has been created with the help of hundreds of different open-source projects and with contributions from many others.\\n\\n- Tone.js by Yotam Mann: the Web Audio API-based sound engine that implements a majority of nodes used in the audio graph. It powers many of the advanced features used such as Granular Synthesis, Reverb, and timing.\\n- Groove Monkee: graciously provided the MIDI files that are used for the percussion loops.\\n- Keenan Brand: created the midi.city logo and various icons used on the site.\\n- Noun Project: various icons are used via a Pro license.\\n- Google Material Design: various icons.\\n- Compifont by Marcin Dziembor: the soundfont powering the samples and many the audio graph definitions, is originally . Several modifications have been made to adapt to midi.city and the Web Audio API. ","iframe":true,"cover":"8cb479ba-e4e0-42f2-986c-597b68b8e639","id":52,"sort":9,"clicks":10,"public":false,"is_new":false,"stats":[44]},{"url":"https://apps.musedlab.org/aqwertyon/theory/","date_created":"2023-10-27T12:45:54.711Z","title":"aQWERTYon","slug":"aqwertyon","author":"Mused lab","author_link":"https://musedlab.org/","description":"aQWERTYon is an interactive web app that turns your computer keyboard into a musical instrument. Designed for music theory practice, it allows users to play notes and chords using a QWERTY keyboard layout. The app provides a visual representation of notes and scales, making it a useful tool for learning and exploring music theory concepts.","tags":["polyphonic","samples"],"archive_link":null,"archive":false,"content":"The **aQWERTYon** (QWERTY accordion) is designed to simplify the process for improvising, learning, and making music with your computer keyboard. Play along with your favorite YouTube videos, learn music theory through our Music Theory for Bedroom Producers course in collaboration with Soundfly, or take advantage of Web MIDI and us it to play and record into your favorite digital audio workstation, such as Soundtrap.com, GarageBand, Logic, or Ableton, or as input into music notation programs like Noteflight.\\n\\nhttps://youtu.be/hqFr4lF6u_Y","iframe":true,"cover":"e7c87de8-c290-4da9-b0e0-eed73871b27a","id":42,"sort":10,"clicks":348,"public":false,"is_new":false,"stats":[8]},{"url":"https://musiclab.chromeexperiments.com/","date_created":"2023-11-26T08:23:47.351Z","title":"Chrome Music Lab","slug":"chrome-lab","author":"Google","author_link":"https://github.com/googlecreativelab/chrome-music-lab","description":"Chrome Music Lab is a website that makes learning music more accessible through fun, hands-on experiments.","tags":["Educational","Keyboard","MIDI","Poly","Piano","Analysis","Mic","Visuals"],"archive_link":null,"archive":false,"content":"## What can it be used for?\\n\\nMany teachers have been using Chrome Music Lab as a tool in their classrooms to explore music and its connections to science, math, art, and more. They’ve been combining it with dance and live instruments. Here’s a collection of some uses we’ve found on Twitter.\\n\\n## Can I use it to make my own songs?\\n\\nYes. Check out the Song Maker experiment, which lets you make and share your own songs.\\n\\n## Do I need to make an account?\\n\\nNope. Just open any experiment and start playing.\\n\\n## How were these built?\\n\\nAll our experiments are all built with freely accessible web technology such as Web Audio API, WebMIDI, Tone.js, and more. These tools make it easier for coders to build new interactive music experiences. You can get the open-source code to lots of these experiments here on [Github](https://github.com/googlecreativelab/chrome-music-lab).\\n\\n## What devices do these work on?\\n\\nYou can play with these experiments across devices – phones, tablets, laptops – just by opening the site on a web browser such as Chrome.","iframe":true,"cover":"297b059e-a6fa-4faa-91b2-c2e1e68cf98f","id":50,"sort":11,"clicks":304,"public":false,"is_new":false,"stats":[9]},{"url":"https://websynths.com/","date_created":"2023-10-27T12:45:54.019Z","title":"Websynths Microtonal","slug":"microtonal","author":"WebSynths","author_link":"https://www.websynths.com/microtonal/","description":"The deepest internet synthesizer","tags":null,"archive_link":null,"archive":false,"content":"\\nWebSynths is a free resource for any musician with internet access! But, it is made possible by support from our patrons. Please consider helping if you can: patreon.com/WebSynths\\n\\n- You can use your QWERTY keyboard, mouse, mobile touch or MIDI keyboard to play the sounds.\\n- You can change the tuning of the keys, or select a scale, by clicking the tuning button.\\n- MIDI is a way to use an external physical instrument to play it. If you have a MIDI keyboard that you wish to use, hit the MIDI button to set it up.\\n- If a note gets stuck, hit the panic button, it will stop all voices from playing.\\n- You can use the arrows on your computer keyboard to scroll through the presets.\\n\\nA simple explanation of Subtractive Synthesis:\\n\\n- Subtractive Synthesis works by taking one or more oscillators, setting the pitch of their oscillation (usually to the note of the key being pressed,) setting the shape of their oscillation to the desired timbre (Sine, Saw, Square or more complex shapes,) mixing them together and running them through a filter to change their EQ (usually filtering out the highest or lowest frequencies... this is why it is called \\"subtractive\\"), then running them through an envelope so the note can be heard on when a key is pressed down and is silenced when the key is released. In the case of WebSynths Microtonal, the sound is then sent through effects like delay, chorus and reverb and out to your speakers.\\n- Oscillators are the voices. This synth has 3 of them in the left column. You can change the character of each voice by changing the parameters of them. The 'Shape' menu allows you to choose from different styles of voice for each oscillator. You can turn each voice on or off and mix them together.\\n- The filter section applies equalization to your oscillators via the cutoff and emphasis controls. You can change the equalization filter type to 'low pass / high pass' and many more. You can use the LFOs and/or Envelopes to change how the filtration changes over time. An LFO is just a slow oscillator that is uses to automatically move a parameter over time.\\n- The amplitude envelope changes how your sound is played, volume-wise, when you hit a note. For example, having a long release time will mean that once you let go of the note you are playing it will tail off until fading out. Having a slow attack will mean that your note will fade in instead of playing at full volume straight away.\\n- The effects section allows you to add various effects to your overall sound. You can change the effects, mix them together and toggle them on or off too.\\n\\n","iframe":false,"cover":"ffc54664-7ba4-4855-a56a-6657a5542a04","id":10,"sort":12,"clicks":172,"public":false,"is_new":false,"stats":[11]},{"url":"https://stuartmemo.com/synth/","date_created":"2023-10-27T12:45:54.586Z","title":"Sympathetic Synthesizer System Mk 1","slug":"sympathetic","author":"Stuart Memo ","author_link":"https://github.com/stuartmemo","description":"The Sympathetic Synthesizer System Mk 1 is an interactive web app that emulates a complex synthesizer. It features three oscillators with selectable waveforms, an LFO, filters with ADSR controls, and noise generation. The app allows users to explore sound design through various parameters, offering a detailed and hands-on synthesis experience. MIDI support is also included for enhanced control.","tags":["keyboard","midi","additive"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"123aeb6d-c7b0-43dd-a852-98660bdf03f0","id":37,"sort":13,"clicks":302,"public":false,"is_new":false,"stats":[12]},{"url":"https://learningsynths.ableton.com/","date_created":"2023-10-27T12:45:54.360Z","title":"Learning synths","slug":"ableton","author":"Ableton","author_link":"https://github.com/Ableton","description":"Explore the fundamentals of synthesis with this interactive web-app by Ableton. Dive into the world of sound design, experiment with different parameters, and learn how to sculpt your own unique sounds with ease.","tags":null,"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"0bf8312d-c449-4f5c-80ad-36594ef98db6","id":26,"sort":14,"clicks":184,"public":false,"is_new":false,"stats":[13]},{"url":"https://www.femurdesign.com/theremin/","date_created":"2023-10-27T12:45:54.206Z","title":"Theremin","slug":"theremin","author":"Femur","author_link":"https://femurdesign.com/","description":"Experience the magic of the theremin with this interactive web-app by Femur Design. Harness the power of motion to create ethereal music without physical contact. Experiment with pitch and volume to craft haunting melodies right in your browser.","tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"6b22ef48-6830-4cf2-810d-809408033450","id":19,"sort":15,"clicks":320,"public":false,"is_new":false,"stats":[14]},{"url":"https://cardinal.kx.studio/live","date_created":"2024-05-20T18:57:14.836Z","title":" DISTRHO Cardinal","slug":"cardinal","author":"Filipe Coelho, aka falkTX","author_link":"https://falktx.berlin/","description":"Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.","tags":["Modular","FM","Poly"],"archive_link":null,"archive":false,"content":"Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.\\nIt is based on the popular VCV Rack but with a focus on being a fully self-contained plugin version.\\n\\nMore specifically, this is a DPF-based plugin wrapper around VCV Rack, using its code directly instead of forking the project, with the target of having a self-contained, fully free and open-source plugin version of Rack.\\nSee the why section below for the reasons Cardinal exists, also for frequently asked questions check this FAQ document.\\n\\nCardinal contains Rack, some 3rd-party modules and a few internal utilities all in a single binary.\\nAll \\"Core\\" modules from Rack have been replaced by Cardinal equivalents, simplified to better work for an audio plugin.\\n\\nCardinal does not load external modules and does not connect to the official Rack library/store.\\nAll VCV branding has been removed (to the best of our knowledge) in order to avoid any trademark issues.\\n\\n## Why\\n\\nCardinal was created first and foremost as a way to have Rack as a proper open-source audio plugin.\\nA proper audio plugin should be self-contained as much as possible, as to not interfere with the DAW/Host. Loading external modules clearly goes against this idea.\\nNot to mention being open-source, otherwise we are at the mercy of the wishes of a company for what we can and cannot do, which is not something Cardinal's authors wish to abide by.\\n\\nA self-contained plugin can't be overstated, as DLL/shared-object symbol conflicts can trigger hard-to-debug crashes.\\nWhile Rack tries to mitigate this as much as possible, crashes due to conflicting modules have already been seen in v2 builds.\\nOn the other side, Cardinal redefines class and function names as needed to avoid as many conflicts as possible.\\n\\nSupport for ARM and non-mainstream platforms (for example BSD) has also always been missing from the official Rack since the start.\\nWhile we can patch the Rack free version to support these, same can't be done with Rack Pro with it being a closed-source product.\\nThe online library/store only supports a very specific set of platforms too, so non-supported platforms would need any 3rd-party modules to be manually compiled to make them usable.\\n\\nUnhappiness with the audio threading behaviour of Rack also plays a role.\\nBoth audio and MIDI should be locked to the host audio thread as to minimize (or even altogether remove) latency and jitter.\\nThe use of separate threads for MIDI is bad design, one that has been corrected in DAWs and JACK-MIDI for several years...\\nBut Rack's use of RtMidi requires separate threading, so Cardinal does not use it.","iframe":true,"cover":"dc7070e1-66fd-4f74-95d2-92d8388864e2","id":56,"sort":16,"clicks":5,"public":false,"is_new":true,"stats":[48]},{"url":"https://multiplayer-orchestra.com","date_created":"2024-04-23T08:07:22.796Z","title":"Multiplayer Orchestra","slug":"multiplayer-orchestra","author":"Mutli_Orchestra","author_link":"https://twitter.com/Mutli_Orchestra","description":"Play in real time with people from all around the world with more than 400 instruments.","tags":["Poly","MIDI","Keyboard","Collaborative","Online"],"archive_link":null,"archive":false,"content":"Multiplayer Orchestra ([https://www.multiplayer-orchestra.com/](https://www.multiplayer-orchestra.com/)) is a web application that allows you to virtually collaborate with musicians from around the world in real-time. Here are some key features:\\n\\n* **Large instrument selection:** Choose from over 400 instruments, including pianos, guitars, drums, and orchestral instruments.\\n* **Real-time collaboration:** Play music simultaneously with other users, creating a virtual orchestra.\\n* **Public and private rooms:** Join public rooms to jam with others or create private rooms with a password for specific collaborations.\\n* **Contests:** Participate in contests to win prizes like Amazon gift cards by recording solo performances.\\n\\n**It's important to note that the website seems to be in beta based on the version information listed (Beta 0.30).** ","iframe":true,"cover":"d743d9ea-d73f-4593-a70e-58a3e4deaa1b","id":55,"sort":17,"clicks":5,"public":false,"is_new":true,"stats":[47]},{"url":"https://touchpianist.com/","date_created":"2023-10-27T12:45:54.691Z","title":"Touch Pianist","slug":"touch-pianist","author":"EarSlap","author_link":null,"description":"Unleash your inner virtuoso with Touch Pianist. Experience the thrill of playing the piano with just your fingertips. Choose your favorite classical masterpiece and immerse yourself in the joy of creating beautiful music, all through the power of touch.","tags":["entertainment","piano"],"archive_link":null,"archive":false,"content":"Touch Pianist is a musical toy / instrument that allows the user to perform hard-to-play classical piano music favorites (from composers like Beethoven, Mozart, Bach, Satie, Debussy to name a few) just by tapping the rhythm of the piece's particular sound events on a computer keyboard or a touch screen.\\n\\nIt also provides live visualisation of the pieces that are being performed. There is no score keeping, the user is free to perform the music in any way they wish. The premise is that it is really fun to perform a piece you know well, exactly like you feel it with so little effort.\\n\\nTouch Pianist has CoreMIDI support so you can use your favorite piano / sound plug-in in your computer as a sound source if you wish.","iframe":false,"cover":"415deeeb-a843-4363-b6c9-78918aa688af","id":41,"sort":18,"clicks":177,"public":false,"is_new":false,"stats":[15]},{"url":"https://www.beepbox.co","date_created":"2024-03-21T02:43:35.749Z","title":"BeepBox","slug":"beepbox","author":"John Nesky","author_link":"https://johnnesky.com/","description":"BeepBox is an online tool for sketching and sharing instrumental music.\\n\\nAll song data is contained in the URL at the top of your browser. When you make changes to the song, the URL is updated to reflect your changes. When you are satisfied with your song, just copy and paste the URL to save and share your song!\\n\\nBeepBox is a passion project, and will always be free to use. ","tags":["Poly","Sequencer","FM"],"archive_link":null,"archive":false,"content":" BeepBox is developed by John Nesky.\\n\\nBeepBox does not claim ownership over songs created with it, so original songs belong to their authors.\\n\\nNeither John Nesky nor BeepBox assume responsibility for any copyrighted material played on BeepBox. No songs are ever received, recorded, or distributed by BeepBox's servers. All song data is contained in the URL after the hash (#) mark, and your song data will not leave your device unless you copy and share the URL. BeepBox does not collect, track, or share any user data. ","iframe":true,"cover":"dea37f5f-504c-443f-ba9a-3dff4d583506","id":54,"sort":19,"clicks":10,"public":false,"is_new":true,"stats":[46]},{"url":"https://roland50.studio/","date_created":"2023-11-25T05:42:57.573Z","title":"Roland 50 Studio","slug":"roland50","author":"Yuri Suzuki","author_link":"https://www.yurisuzuki.com/","description":"It's a professional sounding online musical interface, which records your masterpieces and allows you to share your creations through social media, messaging and also as a download.\\nOn top of the TR-808 drum machine and TB-303 bass synthesizer featured at the original 2020 release, now the sound of SH-101 synthesizer is added, and more sounds to come later in the year 2022, commemorating Roland's 50th anniversary.","tags":["drum machine","SP404","TR808","TB303","Step sequencer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"3b5aec13-7e50-475c-9165-bc963872515d","id":45,"sort":20,"clicks":17,"public":false,"is_new":false,"stats":[16]},{"url":"https://www.disco-computer.com/synthesizer/synth.html","date_created":"2023-10-27T12:45:54.270Z","title":"Disco-computer","slug":"disco-computer","author":"Patrick Sawyer","author_link":null,"description":null,"tags":["polyphonic","fm","keyboard"],"archive_link":"/archive/synthescheisse/index.html","archive":true,"content":null,"iframe":true,"cover":"0d0183e6-8964-4246-a18c-a6ca0a0f2794","id":22,"sort":21,"clicks":269,"public":false,"is_new":false,"stats":[17]},{"url":"https://seeing-sound.netlify.app/","date_created":"2023-10-27T12:45:54.492Z","title":"Video Sampler","slug":"video-sampler","author":"Playtronica","author_link":"https://shop.playtronica.com","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"b39cc546-2571-4402-84cd-f8497e27d0c9","id":31,"sort":22,"clicks":256,"public":false,"is_new":false,"stats":[18]},{"url":"https://www.stef.be/bassoontracker/","date_created":"2024-03-14T07:04:03.311Z","title":"Bassoon Tracker","slug":"bassoon","author":"Steffest","author_link":" https://www.stef.be","description":"Browser-based old-school Amiga Music Tracker in plain old JavaScript.","tags":["FM","tracker","8-bit","low-fi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"70c9db80-8ef8-4aa5-9dcd-6b5c3c0da5b2","id":53,"sort":24,"clicks":10,"public":false,"is_new":true,"stats":[45]},{"url":"https://www.igorski.nl/experiment/websid","date_created":"2023-10-27T12:45:54.438Z","title":"WebSID Commodore 64","slug":"web-sid","author":"Igor Zinken","author_link":"https://www.igorski.nl/","description":null,"tags":["polyphonic","keyboard","midi","additive"],"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"932e0ae0-0048-4c6d-92bb-a4a17a8a4dd4","id":28,"sort":25,"clicks":156,"public":false,"is_new":false,"stats":[19]},{"url":"https://nicroto.github.io/viktor/","date_created":"2023-10-27T12:45:54.388Z","title":"Viktor NV-1","slug":"nv-1","author":"Nikolay Tsenkov ","author_link":"https://github.com/nicroto","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"ff3082ad-3c38-4880-ab23-35711c97ea71","id":27,"sort":26,"clicks":496,"public":false,"is_new":false,"stats":[20]},{"url":"https://virtualpiano.eu/","date_created":"2023-10-27T12:45:54.542Z","title":"VirtualPiano.eu","slug":"virtual-piano","author":"WebSyrup","author_link":"https://websyrup.net/","description":null,"tags":["midi","keyboard"],"archive_link":null,"archive":false,"content":"VirtualPiano.eu is the online synthesizer that allows you to play 128 musical instruments for free using your PC keyboard, the mouse or by connecting an external MIDI keyboard.\\n\\nYou can adjust Volume, Reverb, Loop and quality. Use the sustain and adjust the octaves, you can also select and set different channels including the one for the drums.\\n\\nCreate your own melodies, have fun playing or use VirtualPiano to learn how to play the Piano online on your own. ","iframe":true,"cover":"9a59eea5-c77f-483c-9443-1cd0727e6dcc","id":35,"sort":27,"clicks":282,"public":false,"is_new":false,"stats":[21]},{"url":"https://onlinesequencer.net/","date_created":"2023-10-27T12:45:54.565Z","title":"Online sequencer","slug":"online-sequencer","author":"Jacob Morgan and George Burdell","author_link":"https://github.com/buildist","description":null,"tags":["sequencer"],"archive_link":null,"archive":false,"content":"**Online Sequencer** is a web-based music sequencer that allows users to create music saved online, or on their computer. The piano roll is essential to the sequencer, which is on the left of the screen, with 72 notes from C2-B7 (labelled differently from a piano, C2 on the sequencer corresponds to C1 on a piano). In addition to several parameters which can be modified to change the sound of the music, additional functionality can be accessed via the console.\\n\\nUpon opening the site, users can begin composing and \\"drawing\\" notes on the grid, with the default instrument being Electric Piano. By default, a sequence's time signature is set to 4/4, and the grid spacing is set to 1/4 (16 notes per measure). The note lengths can be adjusted by dragging the dark tab on the right of each note, and precision can be afforded by changing the 'Grid' option to other note divisions. \\n\\n## History\\n\\nOnline Sequencer was created on January 2, 2013 by Jacob Morgan during a break at Georgia Tech.\\n\\nBeginning in the fall of 2013, accounts were available but were separate from the music portion of the site. They were only used in the forum and the website chat.\\n\\nIn 2015, accounts were linked to the main website and allowed songs to be saved under someone's username.\\n\\nThe World Update in 2018 added several new instruments and changed the landscape of sound design on the site. The \\"World Update Contest\\" was held for the update.\\n\\nStarting in late 2020, OS began to receive a variety of updates which vastly improved the functionality of the site. These updates introduced features like custom grid sizes, automation with markers, extra reverb options, detune, and distortion. In 2021, the \\"Space Race\\" contest was held, as to see who could work best with the changes.\\n\\nIn late 2022, newer, higher-quality instruments were added. Some of the instruments, such as Electric Piano, Grand Piano, Violin, and Cello got an updated sustained version, while the original versions still exist under the \\"classic\\" designation.\\n\\nCurrently, the 10-Year Anniversary Contest is being held.\\n\\n## Features\\n\\nWithin the editor, numerous user interface features allow for various changes which will impact the individual sequence on that page.\\n\\n### Basic features\\n\\nUI features include:\\n\\n- Tempo (10-999 BPM)\\n- Measure count or Time count (MM: SS.ssss)\\n- Time signature (2/4, 3/4, 4/4, 5/4)\\n- Grid size (This correlates to note divisions; 1/16, 1/12, 1/8, 1/6, 1/4, 1/3, 1/2)\\n- Auto Scroll (Fast, Smooth, Off; how the sequencer displays measures off-screen as a sequence plays)\\n- Add an Audio Track (This won't be saved to the sequence but will play alongside it for ease of transcription)\\n- Title input\\n- Draw, select, and erase\\n- Instrument dropdown, instrument options, and select instrument (selects all notes of the current instrument)\\n- Select all, Cut, Copy, and Paste\\n- Zoom options\\n- Export options\\n- Help\\n- Fullscreen\\n- Tooltips\\n\\n### Advanced features\\n\\nUsers can access more advanced features for use in their sequences by clicking the advanced tab on the instrument they wish to change. This menu contains options to change volume, panning, detune (-1200 to +1200), reverb, distortion, and an equalizer. This array lets users configure specific instruments to create specific sounds, and textures, or to accompany other instruments as a layer or development of the original sound.\\n\\nOS also allows for commands to be entered in the browser console to manipulate different options in specific ways, such as setting custom to detune values (0-infinity), custom grid sizes, note divisions, and sequence ID amongst other things. These options bring OS closer to that of classic Digital Audio Workstations (DAWs) but are still limited in terms of accessibility and availability.\\n\\n### Browser and device support\\n\\nOnline Sequencer supports Chrome and other Chromium-based browsers, such as Microsoft Edge, Opera, and Brave. Firefox is also supported, but often with limited functionality. Safari and Internet Explorer are not supported, due to engine issues.\\n\\nOther mobile browsers support sequence playback, but not editing. However, iOS users have the same problem with WebKit on macOS. However, unlike in macOS, all browsers (even Chromium-based browsers) use WebKit as the engine for iOS due to Apple prohibiting other engines for security reasons; iOS does not support Online Sequencer, other than chat and forums.\\n\\nThe website's user interface is formatted for proper use on desktops, but some pages such as the chat page, playlists, and forums should be formatted well on mobile devices. ","iframe":true,"cover":"ec08ba72-8157-4415-8b34-aea1fe686e09","id":36,"sort":28,"clicks":321,"public":false,"is_new":false,"stats":[22]},{"url":"https://sb.bitsnbites.eu/","date_created":"2023-10-27T12:45:54.625Z","title":"Sound Box","slug":"sound-box","author":"Bits'n'bites","author_link":"https://gitlab.com/mbitsnbites","description":null,"tags":["tracker"],"archive_link":null,"archive":false,"content":"https://github.com/mbitsnbites/soundbox","iframe":true,"cover":"f2f825f3-a084-408b-86d1-2b64cf822c3c","id":38,"sort":29,"clicks":209,"public":false,"is_new":false,"stats":[23]},{"url":"https://femurdesign.com/omni/","date_created":"2023-10-27T12:45:54.224Z","title":"Omni","slug":"omni","author":"Luke Phillips","author_link":"https://femurdesign.com/","description":null,"tags":["polyphonic","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"fbb1364f-53cf-4f71-8f29-d7f572308e78","id":20,"sort":30,"clicks":210,"public":false,"is_new":false,"stats":[24]},{"url":"https://www.g200kg.com/docs/webmodular/","date_created":"2023-10-27T12:45:54.252Z","title":"Web Modular","slug":"web-modular","author":"g200kg","author_link":"https://www.g200kg.com/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"48e0280c-f7ff-4308-bde3-973b7febe89c","id":21,"sort":31,"clicks":202,"public":false,"is_new":false,"stats":[25]},{"url":"https://errozero.co.uk/acid-machine/","date_created":"2023-10-27T12:45:54.333Z","title":"Acid Machine 2","slug":"acid-machine-2","author":"Errozero","author_link":"https://www.errozero.co.uk/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"031eab3e-2f21-442a-8fdc-9769907824e0","id":25,"sort":32,"clicks":166,"public":false,"is_new":false,"stats":[26]},{"url":"https://apps.musedlab.org/groovepizza/","date_created":"2023-11-21T04:30:41.565Z","title":"Groove Pizza","slug":"groove-pizza","author":"NYU Music Experience Design Lab","author_link":"https://musedlab.org/groovepizza/","description":"Groove Pizza is a circular rhythm app for creative music making and learning! It’s also a playful tool for creating grooves using math concepts like shapes, angles and patterns","tags":["drums","sequencer","Educational"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"50d7bc15-edd5-4261-bc2a-1b173b5a1547","id":44,"sort":33,"clicks":91,"public":false,"is_new":false,"stats":[27]},{"url":"https://ojack.github.io/PIXELSYNTH/","date_created":"2023-10-27T12:45:54.286Z","title":"PixelSynth","slug":"pixel-synth","author":"Olivia Jack","author_link":"https://ojack.xyz/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"77369c22-944c-4f6a-83b5-85e16fe43abc","id":24,"sort":34,"clicks":217,"public":false,"is_new":false,"stats":[28]},{"url":"https://www.multiplayerpiano.org/","date_created":"2023-11-26T08:06:18.875Z","title":"Multiplayer Piano","slug":"multiplayer-piano","author":"Brandon Lockaby","author_link":"https://github.com/Multiplayer-Piano","description":"Online piano, that can be played by any site visitor together in a virtual room or alone.","tags":["Piano","MIDI","Poly","Multiplayer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"9c10771b-e38f-469f-b58b-c9e6bb91a072","id":49,"sort":35,"clicks":4,"public":false,"is_new":false,"stats":[29]},{"url":"https://webaudiodemos.appspot.com/midi-synth/index.html","date_created":"2023-10-27T12:45:53.963Z","title":"MIDI–driven Web Audio","slug":"midi-driven-web-audio","author":"Chris Wilson","author_link":"https://github.com/cwilso","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"0005a0c9-c7e7-4922-a1e5-49d4326d2f77","id":6,"sort":36,"clicks":127,"public":false,"is_new":false,"stats":[30]},{"url":"https://samplestitch.com.s3-website-us-east-1.amazonaws.com/","date_created":"2023-10-27T12:45:54.185Z","title":"Samplestich","slug":"sample-stich","author":"Matt Daniels","author_link":"https://mdaniels.com","description":null,"tags":["samples","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"89859f9f-0d45-44dc-93b6-98dfa2e7d799","id":18,"sort":37,"clicks":164,"public":false,"is_new":false,"stats":[31]},{"url":"https://www.audiotool.com/product/device/heisenberg/","date_created":"2023-10-27T12:45:53.983Z","title":"Meet the Heisenberg","slug":"meet-the-heisenberg","author":"AudioTool","author_link":"https://www.audiotool.com","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"a2397ce6-7712-40e5-b4e0-df95c7992662","id":8,"sort":38,"clicks":255,"public":false,"is_new":false,"stats":[32]},{"url":"https://www.gsn-lib.org/apps/cardboardsynth/index.html","date_created":"2023-10-27T12:45:54.002Z","title":"Cardboard Synth","slug":"cardboard-synth","author":" Thorsten Thormählen","author_link":"https://www.uni-marburg.de/en/fb12/research-groups/grafikmultimedia/thormae","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"29fe1fcc-ca85-41b3-ab1e-7f10770f2c1f","id":9,"sort":39,"clicks":184,"public":false,"is_new":false,"stats":[33]},{"url":"https://tanguysynth.com/","date_created":"2023-10-27T12:45:54.036Z","title":"Tanguy synth","slug":"tanguy-synth","author":"Luke Teaford","author_link":"https://github.com/luketeaford","description":null,"tags":["monophonic","additive","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"5471a71e-7c5b-4ea6-aee0-1b394873c381","id":11,"sort":40,"clicks":117,"public":false,"is_new":false,"stats":[34]},{"url":"https://www.blokdust.com/","date_created":"2023-11-25T06:31:23.261Z","title":"BlokDust","slug":"blokdust","author":"Luke Twyman, Luke Phillips, Edward Silverton","author_link":"https://wvnl.xyz/","description":"BlokDust is a creative visual drag and drop music exploration tool. Developed in Brighton UK and released in 2016, BlokDust uses the Web Audio API and makes use of Tone.js as an audio framework.","tags":["creative","sequencer"],"archive_link":null,"archive":false,"content":"Luke Twyman - project concept, design & Ul.\\nwhitevinyldesign.com\\n@whitevinylUK\\nLuke Phillips - audio development & musical interaction.\\nfemurdesign.com\\n@lukephills\\nEdward Silverton - client & server architecture & core development.\\nedsilv.com\\n@edsilv","iframe":true,"cover":"7e5bcda8-f37a-46c0-91d9-0a6ea501a101","id":47,"sort":41,"clicks":19,"public":false,"is_new":false,"stats":[35]},{"url":"https://mod-synth.io/","date_created":"2023-10-27T12:45:54.052Z","title":"MOD synth","slug":"mod-synth","author":"André Venâncio ","author_link":"https://github.com/andrevenancio","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"31564bf3-fca9-41a4-b390-d78ccd848107","id":12,"sort":42,"clicks":146,"public":false,"is_new":false,"stats":[36]},{"url":"https://perso.numericable.fr/olivier.friker/synth/O3-synth%20V1.3.html","date_created":"2023-10-27T12:45:54.069Z","title":"OLIF SY1K","slug":"olif-sy-1-k","author":"Olivier Friker","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"3b9a5e11-3de3-46fe-9cdc-e1668b152f31","id":13,"sort":43,"clicks":145,"public":false,"is_new":false,"stats":[37]},{"url":"http://www.noisesculptor.com/","date_created":"2023-10-27T12:45:54.104Z","title":"Note Sculptor","slug":"note-sculptor","author":"Ruin Technology","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"a01968d1-3f88-4522-9752-1c33d10d90d9","id":15,"sort":44,"clicks":129,"public":false,"is_new":false,"stats":[38]},{"url":"https://aikelab.net/websynthv2/","date_created":"2023-10-27T12:45:54.141Z","title":"WebAudioSynth V2","slug":"web-audio-synth-v2","author":"like","author_link":"https://github.com/aike/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"ac668fba-7226-43dc-a91f-bd21a31446e5","id":16,"sort":45,"clicks":305,"public":false,"is_new":false,"stats":[39]},{"url":"https://isleoftune.com/","date_created":"2023-11-25T06:22:15.184Z","title":"Isle of Tune","slug":"isleoftune","author":"Jim Hall","author_link":"https://twitter.com/isleoftune","description":"Draw an island, where everything plays music.","tags":["game","sequencer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"6830c24f-c7bf-430f-abc1-3d7fbf5f2557","id":46,"sort":46,"clicks":15,"public":false,"is_new":false,"stats":[40]},{"url":"https://www.soundtrap.com/","date_created":"2023-10-27T12:45:54.155Z","title":"Sound Trap","slug":"sound-trap","author":"Soundtrap","author_link":"https://www.soundtrap.com/about","description":null,"tags":["daw"],"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"63ef832a-f7da-4536-851f-4964005a89f1","id":17,"sort":47,"clicks":124,"public":false,"is_new":false,"stats":[41]},{"url":"http://typedrummer.com/","date_created":"2023-11-25T06:34:10.166Z","title":"Type Drummer","slug":"typedrummer","author":"Kyle Stetz","author_link":"http://kylestetz.com/","description":"Type your drum loops","tags":["sequencer","drums","Keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"19454c82-7338-4144-9f1c-010c80a70a6e","id":48,"sort":48,"clicks":21,"public":false,"is_new":false,"stats":[42]}]`),ot={class:"text-center line-height-loose text-md"},rt={class:"mx-auto max-w-75ch intro md-text-lg"},lt={class:"p-2 flex flex-col mt-8"},ct={class:"text-4xl font-bold"},ut=p("div",{class:"text-lg"},"web synths",-1),ht={class:"p-2 flex flex-col mt-8"},dt={class:"text-4xl font-bold"},ft=p("div",{class:"text-lg"},"web musicians",-1),pt={__name:"AboutCount",setup(t){const e=D(),s=D(0),n=D(0),i=fe(s),a=fe(n),o=$e(e);return De(o,async r=>{if(r){s.value=ne.length;const c=await(await fetch("https://dbs.chromatone.center/flows/trigger/0c0e8d82-8e12-44a6-867a-57ddeec9d774",{type:"GET",mode:"cors",headers:{"Content-Type":"application/json"}})).json();n.value=c.count}}),(r,l)=>(b(),y("div",ot,[p("div",rt,[p("div",{class:"flex justify-center",ref_key:"counters",ref:e},[p("div",lt,[p("div",ct,$(T(i).toFixed()),1),ut]),p("div",ht,[p("div",dt,$(T(a).toFixed()||5e3)+"+",1),ft])],512)])]))}},mt={class:"flex flex-col text-center gap-4 bg-light-700 dark-bg-dark-200 dark-bg-opacity-20 p-4 rounded-lg shadow-lg mb-8"},gt=p("div",{class:"text-xl font-bold my-2"},"Suggest a new web-synth to the collection",-1),bt=["disabled"],yt={__name:"FormSynth",emits:["submitted"],setup(t,{emit:e}){const s=e,n=Pe({url:"",text:""}),i=/[(http(s) ?): \/\/(www\.)?a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/;function a(l){return i.test(l)}const o=D();async function r(){var l,c,u;try{const h=await fetch("https://dbs.chromatone.center/flows/trigger/dc8ca96f-76e6-4cac-b26c-10751746eb89",{method:"POST",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:JSON.stringify(n)});o.value=await(h==null?void 0:h.json()),n.url="",n.text="",setTimeout(()=>{s("submitted")},2e3)}catch(h){console.error(h,(c=(l=h==null?void 0:h.errors)==null?void 0:l[0])==null?void 0:c.message,(u=h==null?void 0:h.response)==null?void 0:u.status)}}return(l,c)=>(b(),y("div",mt,[o.value?(b(),y(j,{key:1},[U("Thanks for your suggestion!")],64)):(b(),y(j,{key:0},[gt,X(p("input",{class:"py-2 px-4 rounded bg-light-200 dark-bg-dark-200",type:"text",placeholder:"https://new.synth.url/","onUpdate:modelValue":c[0]||(c[0]=u=>n.url=u)},null,512),[[ee,n.url]]),X(p("textarea",{class:"py-2 px-4 rounded bg-light-200 dark-bg-dark-200",oninput:"this.style.height = ''; this.style.height = this.scrollHeight +'px'",placeholder:"Describe the web-app and how do you use it musically","onUpdate:modelValue":c[1]||(c[1]=u=>n.text=u)},null,512),[[ee,n.text]]),p("button",{class:"text-xl py-2 px-4 rounded bg-dark-100 text-light-200 dark-bg-light-700 dark-text-dark-500 shadow-lg disabled-opacity-20",disabled:!a(n.url),onClick:c[2]||(c[2]=u=>r())},$(a(n.url)?"Submit":"Please provide a valid URL"),9,bt)],64))]))}},_e=t=>(Fe("data-v-f3c34bc1"),t=t(),je(),t),vt={key:0,class:"px-2 py-1 bg-light-800 dark-bg-dark-800 rounded-xl transition text-sm select-none absolute bottom-2 left-2 text-center z-200 flex items-center gap-1 opacity-70 hover-opacity-100",title:"Since 28 Oct 2023"},wt=_e(()=>p("div",{class:"i-la-eye"},null,-1)),kt={class:"p-0 mt-2px"},_t={class:"p-4 flex flex-col items-start justify-between gap-2",style:{flex:"10 0 200px"}},xt={class:"flex items-center gap-2 flex-0 w-full"},St={class:"transition text-xl select-none absolute top-4 left-4 text-center z-200"},Mt={class:"flex-auto"},Tt={class:"flex items-center gap-2"},It={class:"text-2xl font-bold"},At={key:0,class:"font-normal",title:"Archived locally by us"},Ct=_e(()=>p("div",{class:"i-ph-archive-duotone"},null,-1)),Et=[Ct],Lt={class:"flex-1"},Ot={key:1,class:"flex-1 flex items-end flex flex-wrap gap-2"},$t=["href"],Dt={key:3,class:"text-xl p-2 absolute left-2 top-4 bg-yellow-600 rounded-xl shadow font-bold z-1000 transform -rotate-10"},Pt={__name:"SynthCard",props:{pos:{type:Number,default:0},sort:{type:Number,default:0},public:{type:Boolean,default:!1},title:{type:String,default:""},id:{type:Number,default:0},slug:{type:String,default:""},description:{type:String,default:""},cover:{type:String,default:""},url:{type:String,default:""},author:{type:String,default:""},author_link:{type:String,default:""},tags:{type:Array,default:()=>[]},archive:{type:Boolean,default:!1},archive_link:{type:String,default:""},iframe:{type:Boolean,default:null},clicks:{type:Number,default:0},stars:{type:Number,default:0},counter:{type:Number,default:0},is_new:{type:Boolean,default:null}},setup(t){const{isDark:e}=Re(),s=t,{isFormOpen:n,isAccessGranted:i}=ke(),{clicksCount:a,clickSynth:o}=Je(s.id);async function r(){!s.public&&!i.value?n.value=!n.value:(o(s.id),s.iframe?window.open(s.slug+"/","_self"):window.open(s.archive?s.archive_link:s.url,"_blank"))}return(l,c)=>{var d;const u=Qe,h=ze("ClientOnly");return b(),y("button",{class:"max-w-180 w-full flex flex-wrap items-stretch text-left relative bg-light-500 dark-bg-dark-300 -hover-translate-y-6px transition duration-200 hover-shadow-lg rounded-lg overflow-hidden relative border-1 border-dark-100 border-opacity-20 shadow-sm dark-border-light-800 dark-border-opacity-20",style:te({borderColor:T(Y)[t.id]?T(e)?"hsl(50deg,80%,35%)":"hsl(40deg,90%,80%)":null}),onClick:r},[p("div",{class:"cover min-h-50 bg-cover bg-center filter transition",style:te([{backgroundImage:`url(/cover/${t.slug}.webp)`},{flex:"1 1 280px"}])},[T(a)||t.counter?(b(),y("div",vt,[wt,p("div",kt,$(T(a)||t.counter),1)])):_("",!0)],4),p("div",_t,[p("div",xt,[p("div",St,$(t.sort),1),p("div",Mt,[p("span",Tt,[p("div",It,$(t.title),1),t.archive?(b(),y("span",At,Et)):_("",!0)])]),B(h,null,{default:G(()=>[B(u,{class:"text-xl mr-2 absolute z-200",id:t.id,stars:t.stars},null,8,["id","stars"])]),_:1})]),t.author?(b(),se(Be(t.author_link?"a":"div"),{key:0,class:"p-0 text-md",href:t.author_link,target:"_blank"},{default:G(()=>[U("by "+$(t.author),1)]),_:1},8,["href"])):_("",!0),p("div",Lt,[Ne(l.$slots,"default",{},void 0,!0)]),((d=t.tags)==null?void 0:d.length)>0?(b(),y("div",Ot,[(b(!0),y(j,null,we(t.tags,g=>(b(),y("div",{class:"px-2 py-1 text-sm bg-light-800 dark-bg-dark-500 rounded-lg",key:g},$(g),1))),128))])):_("",!0),t.iframe?_("",!0):(b(),y("a",{key:2,class:"absolute bottom-4 right-4 i-la-external-link-square-alt text-lg opacity-40 transition transition hover-opacity-100",onClick:c[0]||(c[0]=We(()=>{},["stop"])),href:`/${t.slug}/`,title:"Opens in a new window"},null,8,$t)),t.is_new?(b(),y("div",Dt,"NEW!")):_("",!0)])],4)}}},Rt=ve(Pt,[["__scopeId","data-v-f3c34bc1"]]);function O(t){return Array.isArray?Array.isArray(t):Me(t)==="[object Array]"}const zt=1/0;function Bt(t){if(typeof t=="string")return t;let e=t+"";return e=="0"&&1/t==-zt?"-0":e}function Nt(t){return t==null?"":Bt(t)}function E(t){return typeof t=="string"}function xe(t){return typeof t=="number"}function Wt(t){return t===!0||t===!1||Ft(t)&&Me(t)=="[object Boolean]"}function Se(t){return typeof t=="object"}function Ft(t){return Se(t)&&t!==null}function x(t){return t!=null}function Q(t){return!t.trim().length}function Me(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const jt="Incorrect 'index' type",Zt=t=>`Invalid value for key ${t}`,Vt=t=>`Pattern length exceeds max of ${t}.`,qt=t=>`Missing ${t} property in key`,Yt=t=>`Property 'weight' in key '${t}' must be a positive integer`,pe=Object.prototype.hasOwnProperty;class Ut{constructor(e){this._keys=[],this._keyMap={};let s=0;e.forEach(n=>{let i=Te(n);this._keys.push(i),this._keyMap[i.id]=i,s+=i.weight}),this._keys.forEach(n=>{n.weight/=s})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Te(t){let e=null,s=null,n=null,i=1,a=null;if(E(t)||O(t))n=t,e=me(t),s=ie(t);else{if(!pe.call(t,"name"))throw new Error(qt("name"));const o=t.name;if(n=o,pe.call(t,"weight")&&(i=t.weight,i<=0))throw new Error(Yt(o));e=me(o),s=ie(o),a=t.getFn}return{path:e,id:s,weight:i,src:n,getFn:a}}function me(t){return O(t)?t:t.split(".")}function ie(t){return O(t)?t.join("."):t}function Gt(t,e){let s=[],n=!1;const i=(a,o,r)=>{if(x(a))if(!o[r])s.push(a);else{let l=o[r];const c=a[l];if(!x(c))return;if(r===o.length-1&&(E(c)||xe(c)||Wt(c)))s.push(Nt(c));else if(O(c)){n=!0;for(let u=0,h=c.length;ut.score===e.score?t.idx{this._keysMap[s.id]=n})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,E(this.docs[0])?this.docs.forEach((e,s)=>{this._addString(e,s)}):this.docs.forEach((e,s)=>{this._addObject(e,s)}),this.norm.clear())}add(e){const s=this.size();E(e)?this._addString(e,s):this._addObject(e,s)}removeAt(e){this.records.splice(e,1);for(let s=e,n=this.size();s{let o=i.getFn?i.getFn(e):this.getFn(e,i.path);if(x(o)){if(O(o)){let r=[];const l=[{nestedArrIndex:-1,value:o}];for(;l.length;){const{nestedArrIndex:c,value:u}=l.pop();if(x(u))if(E(u)&&!Q(u)){let h={v:u,i:c,n:this.norm.get(u)};r.push(h)}else O(u)&&u.forEach((h,d)=>{l.push({nestedArrIndex:d,value:h})})}n.$[a]=r}else if(E(o)&&!Q(o)){let r={v:o,n:this.norm.get(o)};n.$[a]=r}}}),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}}function Ie(t,e,{getFn:s=f.getFn,fieldNormWeight:n=f.fieldNormWeight}={}){const i=new ue({getFn:s,fieldNormWeight:n});return i.setKeys(t.map(Te)),i.setSources(e),i.create(),i}function ts(t,{getFn:e=f.getFn,fieldNormWeight:s=f.fieldNormWeight}={}){const{keys:n,records:i}=t,a=new ue({getFn:e,fieldNormWeight:s});return a.setKeys(n),a.setIndexRecords(i),a}function q(t,{errors:e=0,currentLocation:s=0,expectedLocation:n=0,distance:i=f.distance,ignoreLocation:a=f.ignoreLocation}={}){const o=e/t.length;if(a)return o;const r=Math.abs(n-s);return i?o+r/i:r?1:o}function ss(t=[],e=f.minMatchCharLength){let s=[],n=-1,i=-1,a=0;for(let o=t.length;a=e&&s.push([n,i]),n=-1)}return t[a-1]&&a-n>=e&&s.push([n,a-1]),s}const z=32;function ns(t,e,s,{location:n=f.location,distance:i=f.distance,threshold:a=f.threshold,findAllMatches:o=f.findAllMatches,minMatchCharLength:r=f.minMatchCharLength,includeMatches:l=f.includeMatches,ignoreLocation:c=f.ignoreLocation}={}){if(e.length>z)throw new Error(Vt(z));const u=e.length,h=t.length,d=Math.max(0,Math.min(n,h));let g=a,v=d;const m=r>1||l,S=m?Array(h):[];let M;for(;(M=t.indexOf(e,v))>-1;){let k=q(e,{currentLocation:M,expectedLocation:d,distance:i,ignoreLocation:c});if(g=Math.min(k,g),v=M+u,m){let I=0;for(;I=he;A-=1){let V=A-1,de=s[t.charAt(V)];if(m&&(S[V]=+!!de),W[A]=(W[A+1]<<1|1)&de,k&&(W[A]|=(L[A+1]|L[A])<<1|1|L[A+1]),W[A]&Z&&(C=q(e,{errors:k,currentLocation:V,expectedLocation:d,distance:i,ignoreLocation:c}),C<=g)){if(g=C,v=V,v<=d)break;he=Math.max(1,2*d-v)}}if(q(e,{errors:k+1,currentLocation:d,expectedLocation:d,distance:i,ignoreLocation:c})>g)break;L=W}const N={isMatch:v>=0,score:Math.max(.001,C)};if(m){const k=ss(S,r);k.length?l&&(N.indices=k):N.isMatch=!1}return N}function is(t){let e={};for(let s=0,n=t.length;s{this.chunks.push({pattern:d,alphabet:is(d),startIndex:g})},h=this.pattern.length;if(h>z){let d=0;const g=h%z,v=h-g;for(;d{const{isMatch:M,score:L,indices:C}=ns(e,v,m,{location:i+S,distance:a,threshold:o,findAllMatches:r,minMatchCharLength:l,includeMatches:n,ignoreLocation:c});M&&(d=!0),h+=L,M&&C&&(u=[...u,...C])});let g={isMatch:d,score:d?h/this.chunks.length:1};return d&&n&&(g.indices=u),g}}class P{constructor(e){this.pattern=e}static isMultiMatch(e){return ge(e,this.multiRegex)}static isSingleMatch(e){return ge(e,this.singleRegex)}search(){}}function ge(t,e){const s=t.match(e);return s?s[1]:null}class as extends P{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){const s=e===this.pattern;return{isMatch:s,score:s?0:1,indices:[0,this.pattern.length-1]}}}class os extends P{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){const n=e.indexOf(this.pattern)===-1;return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}}class rs extends P{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){const s=e.startsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[0,this.pattern.length-1]}}}class ls extends P{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){const s=!e.startsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[0,e.length-1]}}}class cs extends P{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){const s=e.endsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}class us extends P{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){const s=!e.endsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[0,e.length-1]}}}class Ce extends P{constructor(e,{location:s=f.location,threshold:n=f.threshold,distance:i=f.distance,includeMatches:a=f.includeMatches,findAllMatches:o=f.findAllMatches,minMatchCharLength:r=f.minMatchCharLength,isCaseSensitive:l=f.isCaseSensitive,ignoreLocation:c=f.ignoreLocation}={}){super(e),this._bitapSearch=new Ae(e,{location:s,threshold:n,distance:i,includeMatches:a,findAllMatches:o,minMatchCharLength:r,isCaseSensitive:l,ignoreLocation:c})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class Ee extends P{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let s=0,n;const i=[],a=this.pattern.length;for(;(n=e.indexOf(this.pattern,s))>-1;)s=n+a,i.push([n,s-1]);const o=!!i.length;return{isMatch:o,score:o?0:1,indices:i}}}const ae=[as,Ee,rs,ls,us,cs,os,Ce],be=ae.length,hs=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,ds="|";function fs(t,e={}){return t.split(ds).map(s=>{let n=s.trim().split(hs).filter(a=>a&&!!a.trim()),i=[];for(let a=0,o=n.length;a!!(t[K.AND]||t[K.OR]),bs=t=>!!t[le.PATH],ys=t=>!O(t)&&Se(t)&&!ce(t),ye=t=>({[K.AND]:Object.keys(t).map(e=>({[e]:t[e]}))});function Le(t,e,{auto:s=!0}={}){const n=i=>{let a=Object.keys(i);const o=bs(i);if(!o&&a.length>1&&!ce(i))return n(ye(i));if(ys(i)){const l=o?i[le.PATH]:a[0],c=o?i[le.PATTERN]:i[l];if(!E(c))throw new Error(Zt(l));const u={keyId:ie(l),pattern:c};return s&&(u.searcher=re(c,e)),u}let r={children:[],operator:a[0]};return a.forEach(l=>{const c=i[l];O(c)&&c.forEach(u=>{r.children.push(n(u))})}),r};return ce(t)||(t=ye(t)),n(t)}function vs(t,{ignoreFieldNorm:e=f.ignoreFieldNorm}){t.forEach(s=>{let n=1;s.matches.forEach(({key:i,norm:a,score:o})=>{const r=i?i.weight:null;n*=Math.pow(o===0&&r?Number.EPSILON:o,(r||1)*(e?1:a))}),s.score=n})}function ws(t,e){const s=t.matches;e.matches=[],x(s)&&s.forEach(n=>{if(!x(n.indices)||!n.indices.length)return;const{indices:i,value:a}=n;let o={indices:i,value:a};n.key&&(o.key=n.key.src),n.idx>-1&&(o.refIndex=n.idx),e.matches.push(o)})}function ks(t,e){e.score=t.score}function _s(t,e,{includeMatches:s=f.includeMatches,includeScore:n=f.includeScore}={}){const i=[];return s&&i.push(ws),n&&i.push(ks),t.map(a=>{const{idx:o}=a,r={item:e[o],refIndex:o};return i.length&&i.forEach(l=>{l(a,r)}),r})}class F{constructor(e,s={},n){this.options={...f,...s},this.options.useExtendedSearch,this._keyStore=new Ut(this.options.keys),this.setCollection(e,n)}setCollection(e,s){if(this._docs=e,s&&!(s instanceof ue))throw new Error(jt);this._myIndex=s||Ie(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){x(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){const s=[];for(let n=0,i=this._docs.length;n-1&&(l=l.slice(0,s)),_s(l,this._docs,{includeMatches:n,includeScore:i})}_searchStringList(e){const s=re(e,this.options),{records:n}=this._myIndex,i=[];return n.forEach(({v:a,i:o,n:r})=>{if(!x(a))return;const{isMatch:l,score:c,indices:u}=s.searchIn(a);l&&i.push({item:a,idx:o,matches:[{score:c,value:a,norm:r,indices:u}]})}),i}_searchLogical(e){const s=Le(e,this.options),n=(r,l,c)=>{if(!r.children){const{keyId:h,searcher:d}=r,g=this._findMatches({key:this._keyStore.get(h),value:this._myIndex.getValueForItemAtKeyId(l,h),searcher:d});return g&&g.length?[{idx:c,item:l,matches:g}]:[]}const u=[];for(let h=0,d=r.children.length;h{if(x(r)){let c=n(s,r,l);c.length&&(a[l]||(a[l]={idx:l,item:r,matches:[]},o.push(a[l])),c.forEach(({matches:u})=>{a[l].matches.push(...u)}))}}),o}_searchObjectList(e){const s=re(e,this.options),{keys:n,records:i}=this._myIndex,a=[];return i.forEach(({$:o,i:r})=>{if(!x(o))return;let l=[];n.forEach((c,u)=>{l.push(...this._findMatches({key:c,value:o[u],searcher:s}))}),l.length&&a.push({idx:r,item:o,matches:l})}),a}_findMatches({key:e,value:s,searcher:n}){if(!x(s))return[];let i=[];if(O(s))s.forEach(({v:a,i:o,n:r})=>{if(!x(a))return;const{isMatch:l,score:c,indices:u}=n.searchIn(a);l&&i.push({score:c,key:e,value:a,idx:o,norm:r,indices:u})});else{const{v:a,n:o}=s,{isMatch:r,score:l,indices:c}=n.searchIn(a);r&&i.push({score:l,key:e,value:a,norm:o,indices:c})}return i}}F.version="7.0.0";F.createIndex=Ie;F.parseIndex=ts;F.config=f;F.parseQuery=Le;gs(ms);const xs={class:"flex flex-col items-center mb-2 px-8"},Ss={class:"w-full max-w-110 flex items-center relative my-4 gap-2"},Ms=p("div",{class:"i-la-search absolute left-2 text-xl opacity-40"},null,-1),Ts=["title"],Is={key:0,class:"i-la-star-solid"},As={key:1,class:"i-la-star"},Cs={class:"flex flex-col items-center gap-8 p-2 max-w-160 mx-auto mb-12"},Es=["index"],Ls={class:"p-2",key:"nnn"},Os={key:0,class:"animate-pulse text-center"},$s={__name:"SynthList",setup(t){const{isAccessGranted:e}=ke(),s=D(ne),n=new F(ne,{includeScore:!0,ignoreLocation:!0,shouldSort:!0,keys:["title","slug","author"]}),i=Ze("fav-filter",!1),a=D(""),o=D(!1),r=J(()=>n.search(a.value)),l=J(()=>r.value.filter(h=>h.score<.2).sort((h,d)=>h.score>d.score?1:0).map(h=>h.item.slug)),c=J(()=>s.value.filter(h=>a.value?l.value.includes(h.slug):i.value?Y.value[h.id]:!0)),u=D([]);return Ve(async()=>{u.value=await Xe("synths",{fields:["id",{stats:["views","stars"]}]})}),qe(Y,h=>{Object.values(h).filter(Boolean).length==0&&(i.value=!1)},{deep:!0,immediate:!0}),(h,d)=>{const g=Rt,v=yt;return b(),y(j,null,[p("div",xs,[p("div",Ss,[X(p("input",{class:"w-full focus text-xl py-2 pl-9 bg-light-50 bg-opacity-100 shadow-inner border-1 border-dark-100 border-opacity-10 rounded-lg dark-bg-dark-200 outline-none focus-border-opacity-90",placeholder:"Type to search...","onUpdate:modelValue":d[0]||(d[0]=m=>a.value=m)},null,512),[[ee,a.value]]),Ms,a.value?(b(),y("div",{key:0,class:"i-la-times absolute right-2 text-xl opacity-40 hover-opacity-80 transition cursor-pointer",onClick:d[1]||(d[1]=m=>a.value="")})):_("",!0),Object.values(T(Y)).filter(Boolean).length>0&&!a.value?(b(),y("button",{key:1,class:"transition p-2 shadow dark-bg-dark-200 dark-hover-bg-dark-100 bg-light-300 hover-bg-light-100 rounded-lg flex items-center gap-2 text-xl text-yellow",title:T(i)?"Only favourites are shown":"Show only favourites",onClick:d[2]||(d[2]=m=>i.value=!T(i))},[B(Ye,{name:"fade"},{default:G(()=>[T(i)?(b(),y("div",Is)):(b(),y("div",As))]),_:1})],8,Ts)):_("",!0),a.value?_("",!0):(b(),y("button",{key:2,class:"transition p-2 shadow dark-bg-dark-200 dark-hover-bg-dark-100 bg-light-300 hover-bg-light-100 rounded-lg flex items-center gap-2 text-xl",title:"Suggest a new link to the collection",onClick:d[3]||(d[3]=m=>o.value=!o.value)},[p("div",{class:Ue(["i-la-plus transform transition",{"rotate-45":o.value}])},null,2)]))])]),p("div",Cs,[o.value?_("",!0):(b(),se(Ke,{key:0,name:"fade"},{default:G(()=>[(b(!0),y(j,null,we(c.value,(m,S)=>{var M,L,C,R,Z,N,k,I;return b(),y("div",{class:"flex w-full sticky",style:te([{top:`${80+S*4}px`,zIndex:S+10},{flex:"1 1 240px"}]),key:m.id,index:S},[(b(),se(g,Ge({pos:S,style:{filter:!m.public&&!T(e)?"contrast(70%) blur(2px) opacity(80%)":""},key:m.id,ref_for:!0},m,{counter:(R=(C=(L=(M=u.value)==null?void 0:M.find(w=>(w==null?void 0:w.id)==(m==null?void 0:m.id)))==null?void 0:L.stats)==null?void 0:C[0])==null?void 0:R.views,stars:(I=(k=(N=(Z=u.value)==null?void 0:Z.find(w=>(w==null?void 0:w.id)==(m==null?void 0:m.id)))==null?void 0:N.stats)==null?void 0:k[0])==null?void 0:I.stars}),null,16,["pos","style","counter","stars"]))],12,Es)}),128))]),_:1})),c.value.length==0||o.value?(b(),y("div",Ls,[o.value?_("",!0):(b(),y("div",Os,"We don't know such a web-app yet. ")),B(v,{class:"max-w-140 mx-auto mt-6",onSubmitted:d[4]||(d[4]=m=>o.value=!1)})])):_("",!0)])],64)}}},Gs=JSON.parse('{"title":"Web synths","description":"Web synthesizers to play with MIDI controllers","frontmatter":{"title":"Web synths","description":"Web synthesizers to play with MIDI controllers","date":"2023-06-22T00:00:00.000Z","layout":"home"},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1716281170000}'),Ds={name:"index.md"},Ps=p("h1",{class:"text-center text-2xl sm-text-3xl font-bold mt-8",style:{padding:"0.1rem 1rem"}},"Online synthesizers and web piano apps",-1),Rs=p("h2",{class:"text-xl sm-text-2xl text-center my-2",style:{padding:"0 1rem"}},"Curated collection of free music creation resources",-1),zs={class:"px-4 text-lg text-center mb-8 max-w-150 mx-auto"},Bs=p("a",{class:"font-bold",href:"https://chromatone.center",target:"_blank",rel:"noopener"}," Chromatone",-1),Ns=p("a",{class:"font-bold",href:"https://playtronica.com",target:"_blank",rel:"noopener"}," Playtronica",-1),Ws=p("h3",{class:"font-bold text-xl"},"Welcome to the community of web-based musicians!",-1),Fs=p("p",null,[p("a",{target:"_blank",href:"https://chromatone.center/"},[p("img",{src:He,class:"max-w-16 mx-auto"})])],-1);function js(t,e,s,n,i,a){const o=$s,r=pt,l=at;return b(),y("div",null,[Ps,Rs,B(o),p("div",zs,[Bs,U(" is an open source visual music language for education, research and performance. We develop a new universal way to communicate music. "),Ns,U(" is a digital playground that explores the possibilities of the material world through technology, creating gadgets that make the world musical. Together we share our passion for online music instruments. "),B(r),Ws,Fs,B(l)])])}const Ks=ve(Ds,[["render",js]]);export{Gs as __pageData,Ks as default}; diff --git a/assets/index.md.D1t8y0zZ.lean.js b/assets/index.md.D1t8y0zZ.lean.js deleted file mode 100644 index 68a2a979..00000000 --- a/assets/index.md.D1t8y0zZ.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{D as Oe,b,d as y,g as p,f as T,q as _,r as D,E as fe,F as $e,G as De,t as $,H as Pe,I as j,e as X,j as ee,h as U,_ as ve,s as Re,x as ze,J as te,y as B,z as G,A as se,K as Be,i as Ne,L as we,C as We,M as Fe,N as je,a as Ze,c as J,o as Ve,w as qe,T as Ye,n as Ue,O as Ge,P as Ke,Q as He}from"./chunks/framework.BMc-2bSs.js";import{u as Je,f as Y,_ as Qe,a as Xe}from"./chunks/useClicks.DBr_plfA.js";import{u as ke}from"./chunks/theme.CBbWuF7B.js";import"./chunks/index.DISW28_u.js";const et={class:"text-center line-height-loose text-md"},tt={class:"mx-auto max-w-75ch intro md-text-lg"},st=p("div",{class:"i-mdi-share"},null,-1),nt=p("span",null,"Share to save for later",-1),it=[st,nt],at={__name:"AboutShare",setup(t){const{share:e,isSupported:s}=Oe();function n(){e({title:"Web synths collection",text:"Look at this online synthesizer collection. No need to install anything - just your browser and any MIDI controller will do.",url:location.href})}return(i,a)=>(b(),y("div",et,[p("div",tt,[T(s)?(b(),y("button",{key:0,class:"mx-auto flex items-center gap-2 text-white py-2 px-4 mt-6 shadow-lg rounded-lg cursor-pointer bg-green-600 -hover-translate-y-2px transition",onClick:a[0]||(a[0]=o=>n()),"data-umami-event":"Shared via button"},it)):_("",!0)])]))}},ne=JSON.parse(`[{"url":"https://dotpiano.com/","date_created":"2023-10-27T12:45:53.887Z","title":"Dotpiano","slug":"dotpiano","author":"Alex Chen and Yotam Mann","author_link":null,"description":"Dot Piano is an online musical instrument allowing users to play a digital piano using their computer keyboard. The interactive web app provides a simple and intuitive interface for creating and sharing music, making it accessible for both beginners and experienced musicians.","tags":["polyphonic","midi","keyboard","Multiplayer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"6dac5187-213f-4eb8-96ed-63c2e689b206","id":1,"sort":1,"clicks":6424,"public":true,"is_new":false,"stats":[1]},{"url":"https://waveform.playtronica.com/","date_created":"2023-10-27T12:45:54.644Z","title":"Waveform","slug":"waveform","author":"Qvantor","author_link":"https://github.com/qvantor/","description":"Polyphonic web synthesizer with simple yet capable interface.","tags":["playtronica","polyphonic","midi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"86cb9385-9deb-4f10-95cb-765980156e65","id":39,"sort":2,"clicks":6795,"public":true,"is_new":false,"stats":[2]},{"url":"https://juno-106.js.org/","date_created":"2023-10-27T12:45:54.085Z","title":"Juno-106","slug":"juno-106","author":"Steve Goldberg ","author_link":"https://github.com/stevengoldberg","description":"Online emulator of the classic Roland Juno-106 synthesizer. This interactive web app allows users to experiment with the iconic sounds of the Juno-106 directly from their browser. It features authentic recreations of the synth's controls and sound characteristics, making it a valuable tool for music enthusiasts and producers. ","tags":["fm","midi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"b54cfce7-af2f-4e03-a5b3-81fc853d2cc8","id":14,"sort":3,"clicks":5014,"public":true,"is_new":false,"stats":[3]},{"url":"https://chromatone.center/practice/synth/elementary/","date_created":"2023-10-27T12:45:54.453Z","title":"Elementary synth","slug":"elementary","author":"Chromatone","author_link":"https://chromatone.center","description":"The Chromatone Elementary Synth is an interactive web-based synthesizer designed to provide a hands-on learning experience in sound synthesis. It features MIDI support and is built using the Elementary audio library. This synthesizer allows users to explore different synthesis techniques through a user-friendly interface, making it an excellent tool for both beginners and experienced musicians looking to experiment with sound design.","tags":["chromatone","polyphonic","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"21070a51-6089-48bd-8840-ba37b5f2963d","id":29,"sort":4,"clicks":3186,"public":true,"is_new":false,"stats":[4]},{"url":"https://mmontag.github.io/dx7-synth-js/","date_created":"2023-10-27T12:45:54.477Z","title":"DX7 Synth","slug":"dx7","author":"Matt Montag ","author_link":"https://github.com/mmontag","description":"The DX7 Synth JS is an online emulator of the classic Yamaha DX7 synthesizer. This interactive web app replicates the iconic FM synthesis capabilities of the DX7, allowing users to create and manipulate sounds using various parameters such as algorithms, operators, and envelopes. The app supports MIDI devices and provides a user-friendly interface for sound design experimentation. ","tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"f3b285ee-6b82-453b-9ff6-aeda18ec675b","id":30,"sort":5,"clicks":2718,"public":true,"is_new":false,"stats":[5]},{"url":"https://touchme.chromatone.center/","date_created":"2023-10-27T12:45:53.941Z","title":"TouchME","slug":"touchme","author":"Chromatone","author_link":"https://chromatone.center","description":"TouchMe Experience by Chromatone is an interactive audio-visual web app that transforms touch inputs into music and visual effects. It features MIDI support, multiple synth oscillators, and various quantize and BPM modes. Users can explore six interactive SVG scenes, switch between light and dark modes, and view basic session statistics. Designed for creative experimentation, it offers a unique way to engage with music and visuals.","tags":["chromatone","playtronica"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"68062279-8e08-4953-ae8f-7a77c584948e","id":3,"sort":6,"clicks":3416,"public":true,"is_new":false,"stats":[6]},{"url":"https://muted.io/","date_created":"2023-10-27T12:45:54.742Z","title":"Muted.io","slug":"muted-io","author":"Sébastien Noël","author_link":"https://twitter.com/muted_io","description":"Muted.io offers a collection of interactive music theory tools designed for learning music online. These tools include a virtual piano, chord and scale references, a circle of fifths, tuners, and various visual aids to understand music theory concepts. The site is ideal for musicians looking to improve their knowledge and practice music in an engaging way.","tags":["educational","midi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"5c08ac7d-4414-47c0-b7d1-a9867ba3949f","id":43,"sort":7,"clicks":175,"public":false,"is_new":false,"stats":[10]},{"url":"https://chromatone.center/practice/synth/soundfont/","date_created":"2023-12-18T10:20:56.985Z","title":"Soundfont Sampler Synth","slug":"soundfont","author":"Chromatone","author_link":"https://github.com/chromatone","description":"Free open source soundfont sampler online synthesizer. Very robust and hassle free way to play some straightforward sampled instruments like horns, xylophones and just piano sounds. Instantly playable instrument with about 90 presets out of the box. ","tags":["Poly","Keyboard","Sampler","MIDI"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"26704e9d-5964-4a0f-940c-370c14777e95","id":51,"sort":8,"clicks":0,"public":true,"is_new":true,"stats":[43]},{"url":"https://midi.city/","date_created":"2023-12-28T05:40:45.140Z","title":"MIDI.city","slug":"midi-city","author":"Astral Digital","author_link":"https://astral.digital/","description":"midi.city is a free online synthesizer, built by Jack.\\n\\nmidi.city has over 128 different instruments including: Pianos, Saxophones, Drums, Trumpets, Synth Pads, Guitar, Violins and all other instruments defined in the General Midi specification.","tags":null,"archive_link":null,"archive":false,"content":"midi.city has been created with the help of hundreds of different open-source projects and with contributions from many others.\\n\\n- Tone.js by Yotam Mann: the Web Audio API-based sound engine that implements a majority of nodes used in the audio graph. It powers many of the advanced features used such as Granular Synthesis, Reverb, and timing.\\n- Groove Monkee: graciously provided the MIDI files that are used for the percussion loops.\\n- Keenan Brand: created the midi.city logo and various icons used on the site.\\n- Noun Project: various icons are used via a Pro license.\\n- Google Material Design: various icons.\\n- Compifont by Marcin Dziembor: the soundfont powering the samples and many the audio graph definitions, is originally . Several modifications have been made to adapt to midi.city and the Web Audio API. ","iframe":true,"cover":"8cb479ba-e4e0-42f2-986c-597b68b8e639","id":52,"sort":9,"clicks":10,"public":false,"is_new":false,"stats":[44]},{"url":"https://apps.musedlab.org/aqwertyon/theory/","date_created":"2023-10-27T12:45:54.711Z","title":"aQWERTYon","slug":"aqwertyon","author":"Mused lab","author_link":"https://musedlab.org/","description":"aQWERTYon is an interactive web app that turns your computer keyboard into a musical instrument. Designed for music theory practice, it allows users to play notes and chords using a QWERTY keyboard layout. The app provides a visual representation of notes and scales, making it a useful tool for learning and exploring music theory concepts.","tags":["polyphonic","samples"],"archive_link":null,"archive":false,"content":"The **aQWERTYon** (QWERTY accordion) is designed to simplify the process for improvising, learning, and making music with your computer keyboard. Play along with your favorite YouTube videos, learn music theory through our Music Theory for Bedroom Producers course in collaboration with Soundfly, or take advantage of Web MIDI and us it to play and record into your favorite digital audio workstation, such as Soundtrap.com, GarageBand, Logic, or Ableton, or as input into music notation programs like Noteflight.\\n\\nhttps://youtu.be/hqFr4lF6u_Y","iframe":true,"cover":"e7c87de8-c290-4da9-b0e0-eed73871b27a","id":42,"sort":10,"clicks":348,"public":false,"is_new":false,"stats":[8]},{"url":"https://musiclab.chromeexperiments.com/","date_created":"2023-11-26T08:23:47.351Z","title":"Chrome Music Lab","slug":"chrome-lab","author":"Google","author_link":"https://github.com/googlecreativelab/chrome-music-lab","description":"Chrome Music Lab is a website that makes learning music more accessible through fun, hands-on experiments.","tags":["Educational","Keyboard","MIDI","Poly","Piano","Analysis","Mic","Visuals"],"archive_link":null,"archive":false,"content":"## What can it be used for?\\n\\nMany teachers have been using Chrome Music Lab as a tool in their classrooms to explore music and its connections to science, math, art, and more. They’ve been combining it with dance and live instruments. Here’s a collection of some uses we’ve found on Twitter.\\n\\n## Can I use it to make my own songs?\\n\\nYes. Check out the Song Maker experiment, which lets you make and share your own songs.\\n\\n## Do I need to make an account?\\n\\nNope. Just open any experiment and start playing.\\n\\n## How were these built?\\n\\nAll our experiments are all built with freely accessible web technology such as Web Audio API, WebMIDI, Tone.js, and more. These tools make it easier for coders to build new interactive music experiences. You can get the open-source code to lots of these experiments here on [Github](https://github.com/googlecreativelab/chrome-music-lab).\\n\\n## What devices do these work on?\\n\\nYou can play with these experiments across devices – phones, tablets, laptops – just by opening the site on a web browser such as Chrome.","iframe":true,"cover":"297b059e-a6fa-4faa-91b2-c2e1e68cf98f","id":50,"sort":11,"clicks":304,"public":false,"is_new":false,"stats":[9]},{"url":"https://websynths.com/","date_created":"2023-10-27T12:45:54.019Z","title":"Websynths Microtonal","slug":"microtonal","author":"WebSynths","author_link":"https://www.websynths.com/microtonal/","description":"The deepest internet synthesizer","tags":null,"archive_link":null,"archive":false,"content":"\\nWebSynths is a free resource for any musician with internet access! But, it is made possible by support from our patrons. Please consider helping if you can: patreon.com/WebSynths\\n\\n- You can use your QWERTY keyboard, mouse, mobile touch or MIDI keyboard to play the sounds.\\n- You can change the tuning of the keys, or select a scale, by clicking the tuning button.\\n- MIDI is a way to use an external physical instrument to play it. If you have a MIDI keyboard that you wish to use, hit the MIDI button to set it up.\\n- If a note gets stuck, hit the panic button, it will stop all voices from playing.\\n- You can use the arrows on your computer keyboard to scroll through the presets.\\n\\nA simple explanation of Subtractive Synthesis:\\n\\n- Subtractive Synthesis works by taking one or more oscillators, setting the pitch of their oscillation (usually to the note of the key being pressed,) setting the shape of their oscillation to the desired timbre (Sine, Saw, Square or more complex shapes,) mixing them together and running them through a filter to change their EQ (usually filtering out the highest or lowest frequencies... this is why it is called \\"subtractive\\"), then running them through an envelope so the note can be heard on when a key is pressed down and is silenced when the key is released. In the case of WebSynths Microtonal, the sound is then sent through effects like delay, chorus and reverb and out to your speakers.\\n- Oscillators are the voices. This synth has 3 of them in the left column. You can change the character of each voice by changing the parameters of them. The 'Shape' menu allows you to choose from different styles of voice for each oscillator. You can turn each voice on or off and mix them together.\\n- The filter section applies equalization to your oscillators via the cutoff and emphasis controls. You can change the equalization filter type to 'low pass / high pass' and many more. You can use the LFOs and/or Envelopes to change how the filtration changes over time. An LFO is just a slow oscillator that is uses to automatically move a parameter over time.\\n- The amplitude envelope changes how your sound is played, volume-wise, when you hit a note. For example, having a long release time will mean that once you let go of the note you are playing it will tail off until fading out. Having a slow attack will mean that your note will fade in instead of playing at full volume straight away.\\n- The effects section allows you to add various effects to your overall sound. You can change the effects, mix them together and toggle them on or off too.\\n\\n","iframe":false,"cover":"ffc54664-7ba4-4855-a56a-6657a5542a04","id":10,"sort":12,"clicks":172,"public":false,"is_new":false,"stats":[11]},{"url":"https://stuartmemo.com/synth/","date_created":"2023-10-27T12:45:54.586Z","title":"Sympathetic Synthesizer System Mk 1","slug":"sympathetic","author":"Stuart Memo ","author_link":"https://github.com/stuartmemo","description":"The Sympathetic Synthesizer System Mk 1 is an interactive web app that emulates a complex synthesizer. It features three oscillators with selectable waveforms, an LFO, filters with ADSR controls, and noise generation. The app allows users to explore sound design through various parameters, offering a detailed and hands-on synthesis experience. MIDI support is also included for enhanced control.","tags":["keyboard","midi","additive"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"123aeb6d-c7b0-43dd-a852-98660bdf03f0","id":37,"sort":13,"clicks":302,"public":false,"is_new":false,"stats":[12]},{"url":"https://learningsynths.ableton.com/","date_created":"2023-10-27T12:45:54.360Z","title":"Learning synths","slug":"ableton","author":"Ableton","author_link":"https://github.com/Ableton","description":"Explore the fundamentals of synthesis with this interactive web-app by Ableton. Dive into the world of sound design, experiment with different parameters, and learn how to sculpt your own unique sounds with ease.","tags":null,"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"0bf8312d-c449-4f5c-80ad-36594ef98db6","id":26,"sort":14,"clicks":184,"public":false,"is_new":false,"stats":[13]},{"url":"https://www.femurdesign.com/theremin/","date_created":"2023-10-27T12:45:54.206Z","title":"Theremin","slug":"theremin","author":"Femur","author_link":"https://femurdesign.com/","description":"Experience the magic of the theremin with this interactive web-app by Femur Design. Harness the power of motion to create ethereal music without physical contact. Experiment with pitch and volume to craft haunting melodies right in your browser.","tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"6b22ef48-6830-4cf2-810d-809408033450","id":19,"sort":15,"clicks":320,"public":false,"is_new":false,"stats":[14]},{"url":"https://cardinal.kx.studio/live","date_created":"2024-05-20T18:57:14.836Z","title":" DISTRHO Cardinal","slug":"cardinal","author":"Filipe Coelho, aka falkTX","author_link":"https://falktx.berlin/","description":"Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.","tags":["Modular","FM","Poly"],"archive_link":null,"archive":false,"content":"Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.\\nIt is based on the popular VCV Rack but with a focus on being a fully self-contained plugin version.\\n\\nMore specifically, this is a DPF-based plugin wrapper around VCV Rack, using its code directly instead of forking the project, with the target of having a self-contained, fully free and open-source plugin version of Rack.\\nSee the why section below for the reasons Cardinal exists, also for frequently asked questions check this FAQ document.\\n\\nCardinal contains Rack, some 3rd-party modules and a few internal utilities all in a single binary.\\nAll \\"Core\\" modules from Rack have been replaced by Cardinal equivalents, simplified to better work for an audio plugin.\\n\\nCardinal does not load external modules and does not connect to the official Rack library/store.\\nAll VCV branding has been removed (to the best of our knowledge) in order to avoid any trademark issues.\\n\\n## Why\\n\\nCardinal was created first and foremost as a way to have Rack as a proper open-source audio plugin.\\nA proper audio plugin should be self-contained as much as possible, as to not interfere with the DAW/Host. Loading external modules clearly goes against this idea.\\nNot to mention being open-source, otherwise we are at the mercy of the wishes of a company for what we can and cannot do, which is not something Cardinal's authors wish to abide by.\\n\\nA self-contained plugin can't be overstated, as DLL/shared-object symbol conflicts can trigger hard-to-debug crashes.\\nWhile Rack tries to mitigate this as much as possible, crashes due to conflicting modules have already been seen in v2 builds.\\nOn the other side, Cardinal redefines class and function names as needed to avoid as many conflicts as possible.\\n\\nSupport for ARM and non-mainstream platforms (for example BSD) has also always been missing from the official Rack since the start.\\nWhile we can patch the Rack free version to support these, same can't be done with Rack Pro with it being a closed-source product.\\nThe online library/store only supports a very specific set of platforms too, so non-supported platforms would need any 3rd-party modules to be manually compiled to make them usable.\\n\\nUnhappiness with the audio threading behaviour of Rack also plays a role.\\nBoth audio and MIDI should be locked to the host audio thread as to minimize (or even altogether remove) latency and jitter.\\nThe use of separate threads for MIDI is bad design, one that has been corrected in DAWs and JACK-MIDI for several years...\\nBut Rack's use of RtMidi requires separate threading, so Cardinal does not use it.","iframe":true,"cover":"dc7070e1-66fd-4f74-95d2-92d8388864e2","id":56,"sort":16,"clicks":5,"public":false,"is_new":true,"stats":[48]},{"url":"https://multiplayer-orchestra.com","date_created":"2024-04-23T08:07:22.796Z","title":"Multiplayer Orchestra","slug":"multiplayer-orchestra","author":"Mutli_Orchestra","author_link":"https://twitter.com/Mutli_Orchestra","description":"Play in real time with people from all around the world with more than 400 instruments.","tags":["Poly","MIDI","Keyboard","Collaborative","Online"],"archive_link":null,"archive":false,"content":"Multiplayer Orchestra ([https://www.multiplayer-orchestra.com/](https://www.multiplayer-orchestra.com/)) is a web application that allows you to virtually collaborate with musicians from around the world in real-time. Here are some key features:\\n\\n* **Large instrument selection:** Choose from over 400 instruments, including pianos, guitars, drums, and orchestral instruments.\\n* **Real-time collaboration:** Play music simultaneously with other users, creating a virtual orchestra.\\n* **Public and private rooms:** Join public rooms to jam with others or create private rooms with a password for specific collaborations.\\n* **Contests:** Participate in contests to win prizes like Amazon gift cards by recording solo performances.\\n\\n**It's important to note that the website seems to be in beta based on the version information listed (Beta 0.30).** ","iframe":true,"cover":"d743d9ea-d73f-4593-a70e-58a3e4deaa1b","id":55,"sort":17,"clicks":5,"public":false,"is_new":true,"stats":[47]},{"url":"https://touchpianist.com/","date_created":"2023-10-27T12:45:54.691Z","title":"Touch Pianist","slug":"touch-pianist","author":"EarSlap","author_link":null,"description":"Unleash your inner virtuoso with Touch Pianist. Experience the thrill of playing the piano with just your fingertips. Choose your favorite classical masterpiece and immerse yourself in the joy of creating beautiful music, all through the power of touch.","tags":["entertainment","piano"],"archive_link":null,"archive":false,"content":"Touch Pianist is a musical toy / instrument that allows the user to perform hard-to-play classical piano music favorites (from composers like Beethoven, Mozart, Bach, Satie, Debussy to name a few) just by tapping the rhythm of the piece's particular sound events on a computer keyboard or a touch screen.\\n\\nIt also provides live visualisation of the pieces that are being performed. There is no score keeping, the user is free to perform the music in any way they wish. The premise is that it is really fun to perform a piece you know well, exactly like you feel it with so little effort.\\n\\nTouch Pianist has CoreMIDI support so you can use your favorite piano / sound plug-in in your computer as a sound source if you wish.","iframe":false,"cover":"415deeeb-a843-4363-b6c9-78918aa688af","id":41,"sort":18,"clicks":177,"public":false,"is_new":false,"stats":[15]},{"url":"https://www.beepbox.co","date_created":"2024-03-21T02:43:35.749Z","title":"BeepBox","slug":"beepbox","author":"John Nesky","author_link":"https://johnnesky.com/","description":"BeepBox is an online tool for sketching and sharing instrumental music.\\n\\nAll song data is contained in the URL at the top of your browser. When you make changes to the song, the URL is updated to reflect your changes. When you are satisfied with your song, just copy and paste the URL to save and share your song!\\n\\nBeepBox is a passion project, and will always be free to use. ","tags":["Poly","Sequencer","FM"],"archive_link":null,"archive":false,"content":" BeepBox is developed by John Nesky.\\n\\nBeepBox does not claim ownership over songs created with it, so original songs belong to their authors.\\n\\nNeither John Nesky nor BeepBox assume responsibility for any copyrighted material played on BeepBox. No songs are ever received, recorded, or distributed by BeepBox's servers. All song data is contained in the URL after the hash (#) mark, and your song data will not leave your device unless you copy and share the URL. BeepBox does not collect, track, or share any user data. ","iframe":true,"cover":"dea37f5f-504c-443f-ba9a-3dff4d583506","id":54,"sort":19,"clicks":10,"public":false,"is_new":true,"stats":[46]},{"url":"https://roland50.studio/","date_created":"2023-11-25T05:42:57.573Z","title":"Roland 50 Studio","slug":"roland50","author":"Yuri Suzuki","author_link":"https://www.yurisuzuki.com/","description":"It's a professional sounding online musical interface, which records your masterpieces and allows you to share your creations through social media, messaging and also as a download.\\nOn top of the TR-808 drum machine and TB-303 bass synthesizer featured at the original 2020 release, now the sound of SH-101 synthesizer is added, and more sounds to come later in the year 2022, commemorating Roland's 50th anniversary.","tags":["drum machine","SP404","TR808","TB303","Step sequencer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"3b5aec13-7e50-475c-9165-bc963872515d","id":45,"sort":20,"clicks":17,"public":false,"is_new":false,"stats":[16]},{"url":"https://www.disco-computer.com/synthesizer/synth.html","date_created":"2023-10-27T12:45:54.270Z","title":"Disco-computer","slug":"disco-computer","author":"Patrick Sawyer","author_link":null,"description":null,"tags":["polyphonic","fm","keyboard"],"archive_link":"/archive/synthescheisse/index.html","archive":true,"content":null,"iframe":true,"cover":"0d0183e6-8964-4246-a18c-a6ca0a0f2794","id":22,"sort":21,"clicks":269,"public":false,"is_new":false,"stats":[17]},{"url":"https://seeing-sound.netlify.app/","date_created":"2023-10-27T12:45:54.492Z","title":"Video Sampler","slug":"video-sampler","author":"Playtronica","author_link":"https://shop.playtronica.com","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"b39cc546-2571-4402-84cd-f8497e27d0c9","id":31,"sort":22,"clicks":256,"public":false,"is_new":false,"stats":[18]},{"url":"https://www.stef.be/bassoontracker/","date_created":"2024-03-14T07:04:03.311Z","title":"Bassoon Tracker","slug":"bassoon","author":"Steffest","author_link":" https://www.stef.be","description":"Browser-based old-school Amiga Music Tracker in plain old JavaScript.","tags":["FM","tracker","8-bit","low-fi"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"70c9db80-8ef8-4aa5-9dcd-6b5c3c0da5b2","id":53,"sort":24,"clicks":10,"public":false,"is_new":true,"stats":[45]},{"url":"https://www.igorski.nl/experiment/websid","date_created":"2023-10-27T12:45:54.438Z","title":"WebSID Commodore 64","slug":"web-sid","author":"Igor Zinken","author_link":"https://www.igorski.nl/","description":null,"tags":["polyphonic","keyboard","midi","additive"],"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"932e0ae0-0048-4c6d-92bb-a4a17a8a4dd4","id":28,"sort":25,"clicks":156,"public":false,"is_new":false,"stats":[19]},{"url":"https://nicroto.github.io/viktor/","date_created":"2023-10-27T12:45:54.388Z","title":"Viktor NV-1","slug":"nv-1","author":"Nikolay Tsenkov ","author_link":"https://github.com/nicroto","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"ff3082ad-3c38-4880-ab23-35711c97ea71","id":27,"sort":26,"clicks":496,"public":false,"is_new":false,"stats":[20]},{"url":"https://virtualpiano.eu/","date_created":"2023-10-27T12:45:54.542Z","title":"VirtualPiano.eu","slug":"virtual-piano","author":"WebSyrup","author_link":"https://websyrup.net/","description":null,"tags":["midi","keyboard"],"archive_link":null,"archive":false,"content":"VirtualPiano.eu is the online synthesizer that allows you to play 128 musical instruments for free using your PC keyboard, the mouse or by connecting an external MIDI keyboard.\\n\\nYou can adjust Volume, Reverb, Loop and quality. Use the sustain and adjust the octaves, you can also select and set different channels including the one for the drums.\\n\\nCreate your own melodies, have fun playing or use VirtualPiano to learn how to play the Piano online on your own. ","iframe":true,"cover":"9a59eea5-c77f-483c-9443-1cd0727e6dcc","id":35,"sort":27,"clicks":282,"public":false,"is_new":false,"stats":[21]},{"url":"https://onlinesequencer.net/","date_created":"2023-10-27T12:45:54.565Z","title":"Online sequencer","slug":"online-sequencer","author":"Jacob Morgan and George Burdell","author_link":"https://github.com/buildist","description":null,"tags":["sequencer"],"archive_link":null,"archive":false,"content":"**Online Sequencer** is a web-based music sequencer that allows users to create music saved online, or on their computer. The piano roll is essential to the sequencer, which is on the left of the screen, with 72 notes from C2-B7 (labelled differently from a piano, C2 on the sequencer corresponds to C1 on a piano). In addition to several parameters which can be modified to change the sound of the music, additional functionality can be accessed via the console.\\n\\nUpon opening the site, users can begin composing and \\"drawing\\" notes on the grid, with the default instrument being Electric Piano. By default, a sequence's time signature is set to 4/4, and the grid spacing is set to 1/4 (16 notes per measure). The note lengths can be adjusted by dragging the dark tab on the right of each note, and precision can be afforded by changing the 'Grid' option to other note divisions. \\n\\n## History\\n\\nOnline Sequencer was created on January 2, 2013 by Jacob Morgan during a break at Georgia Tech.\\n\\nBeginning in the fall of 2013, accounts were available but were separate from the music portion of the site. They were only used in the forum and the website chat.\\n\\nIn 2015, accounts were linked to the main website and allowed songs to be saved under someone's username.\\n\\nThe World Update in 2018 added several new instruments and changed the landscape of sound design on the site. The \\"World Update Contest\\" was held for the update.\\n\\nStarting in late 2020, OS began to receive a variety of updates which vastly improved the functionality of the site. These updates introduced features like custom grid sizes, automation with markers, extra reverb options, detune, and distortion. In 2021, the \\"Space Race\\" contest was held, as to see who could work best with the changes.\\n\\nIn late 2022, newer, higher-quality instruments were added. Some of the instruments, such as Electric Piano, Grand Piano, Violin, and Cello got an updated sustained version, while the original versions still exist under the \\"classic\\" designation.\\n\\nCurrently, the 10-Year Anniversary Contest is being held.\\n\\n## Features\\n\\nWithin the editor, numerous user interface features allow for various changes which will impact the individual sequence on that page.\\n\\n### Basic features\\n\\nUI features include:\\n\\n- Tempo (10-999 BPM)\\n- Measure count or Time count (MM: SS.ssss)\\n- Time signature (2/4, 3/4, 4/4, 5/4)\\n- Grid size (This correlates to note divisions; 1/16, 1/12, 1/8, 1/6, 1/4, 1/3, 1/2)\\n- Auto Scroll (Fast, Smooth, Off; how the sequencer displays measures off-screen as a sequence plays)\\n- Add an Audio Track (This won't be saved to the sequence but will play alongside it for ease of transcription)\\n- Title input\\n- Draw, select, and erase\\n- Instrument dropdown, instrument options, and select instrument (selects all notes of the current instrument)\\n- Select all, Cut, Copy, and Paste\\n- Zoom options\\n- Export options\\n- Help\\n- Fullscreen\\n- Tooltips\\n\\n### Advanced features\\n\\nUsers can access more advanced features for use in their sequences by clicking the advanced tab on the instrument they wish to change. This menu contains options to change volume, panning, detune (-1200 to +1200), reverb, distortion, and an equalizer. This array lets users configure specific instruments to create specific sounds, and textures, or to accompany other instruments as a layer or development of the original sound.\\n\\nOS also allows for commands to be entered in the browser console to manipulate different options in specific ways, such as setting custom to detune values (0-infinity), custom grid sizes, note divisions, and sequence ID amongst other things. These options bring OS closer to that of classic Digital Audio Workstations (DAWs) but are still limited in terms of accessibility and availability.\\n\\n### Browser and device support\\n\\nOnline Sequencer supports Chrome and other Chromium-based browsers, such as Microsoft Edge, Opera, and Brave. Firefox is also supported, but often with limited functionality. Safari and Internet Explorer are not supported, due to engine issues.\\n\\nOther mobile browsers support sequence playback, but not editing. However, iOS users have the same problem with WebKit on macOS. However, unlike in macOS, all browsers (even Chromium-based browsers) use WebKit as the engine for iOS due to Apple prohibiting other engines for security reasons; iOS does not support Online Sequencer, other than chat and forums.\\n\\nThe website's user interface is formatted for proper use on desktops, but some pages such as the chat page, playlists, and forums should be formatted well on mobile devices. ","iframe":true,"cover":"ec08ba72-8157-4415-8b34-aea1fe686e09","id":36,"sort":28,"clicks":321,"public":false,"is_new":false,"stats":[22]},{"url":"https://sb.bitsnbites.eu/","date_created":"2023-10-27T12:45:54.625Z","title":"Sound Box","slug":"sound-box","author":"Bits'n'bites","author_link":"https://gitlab.com/mbitsnbites","description":null,"tags":["tracker"],"archive_link":null,"archive":false,"content":"https://github.com/mbitsnbites/soundbox","iframe":true,"cover":"f2f825f3-a084-408b-86d1-2b64cf822c3c","id":38,"sort":29,"clicks":209,"public":false,"is_new":false,"stats":[23]},{"url":"https://femurdesign.com/omni/","date_created":"2023-10-27T12:45:54.224Z","title":"Omni","slug":"omni","author":"Luke Phillips","author_link":"https://femurdesign.com/","description":null,"tags":["polyphonic","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"fbb1364f-53cf-4f71-8f29-d7f572308e78","id":20,"sort":30,"clicks":210,"public":false,"is_new":false,"stats":[24]},{"url":"https://www.g200kg.com/docs/webmodular/","date_created":"2023-10-27T12:45:54.252Z","title":"Web Modular","slug":"web-modular","author":"g200kg","author_link":"https://www.g200kg.com/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"48e0280c-f7ff-4308-bde3-973b7febe89c","id":21,"sort":31,"clicks":202,"public":false,"is_new":false,"stats":[25]},{"url":"https://errozero.co.uk/acid-machine/","date_created":"2023-10-27T12:45:54.333Z","title":"Acid Machine 2","slug":"acid-machine-2","author":"Errozero","author_link":"https://www.errozero.co.uk/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"031eab3e-2f21-442a-8fdc-9769907824e0","id":25,"sort":32,"clicks":166,"public":false,"is_new":false,"stats":[26]},{"url":"https://apps.musedlab.org/groovepizza/","date_created":"2023-11-21T04:30:41.565Z","title":"Groove Pizza","slug":"groove-pizza","author":"NYU Music Experience Design Lab","author_link":"https://musedlab.org/groovepizza/","description":"Groove Pizza is a circular rhythm app for creative music making and learning! It’s also a playful tool for creating grooves using math concepts like shapes, angles and patterns","tags":["drums","sequencer","Educational"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"50d7bc15-edd5-4261-bc2a-1b173b5a1547","id":44,"sort":33,"clicks":91,"public":false,"is_new":false,"stats":[27]},{"url":"https://ojack.github.io/PIXELSYNTH/","date_created":"2023-10-27T12:45:54.286Z","title":"PixelSynth","slug":"pixel-synth","author":"Olivia Jack","author_link":"https://ojack.xyz/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"77369c22-944c-4f6a-83b5-85e16fe43abc","id":24,"sort":34,"clicks":217,"public":false,"is_new":false,"stats":[28]},{"url":"https://www.multiplayerpiano.org/","date_created":"2023-11-26T08:06:18.875Z","title":"Multiplayer Piano","slug":"multiplayer-piano","author":"Brandon Lockaby","author_link":"https://github.com/Multiplayer-Piano","description":"Online piano, that can be played by any site visitor together in a virtual room or alone.","tags":["Piano","MIDI","Poly","Multiplayer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"9c10771b-e38f-469f-b58b-c9e6bb91a072","id":49,"sort":35,"clicks":4,"public":false,"is_new":false,"stats":[29]},{"url":"https://webaudiodemos.appspot.com/midi-synth/index.html","date_created":"2023-10-27T12:45:53.963Z","title":"MIDI–driven Web Audio","slug":"midi-driven-web-audio","author":"Chris Wilson","author_link":"https://github.com/cwilso","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"0005a0c9-c7e7-4922-a1e5-49d4326d2f77","id":6,"sort":36,"clicks":127,"public":false,"is_new":false,"stats":[30]},{"url":"https://samplestitch.com.s3-website-us-east-1.amazonaws.com/","date_created":"2023-10-27T12:45:54.185Z","title":"Samplestich","slug":"sample-stich","author":"Matt Daniels","author_link":"https://mdaniels.com","description":null,"tags":["samples","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"89859f9f-0d45-44dc-93b6-98dfa2e7d799","id":18,"sort":37,"clicks":164,"public":false,"is_new":false,"stats":[31]},{"url":"https://www.audiotool.com/product/device/heisenberg/","date_created":"2023-10-27T12:45:53.983Z","title":"Meet the Heisenberg","slug":"meet-the-heisenberg","author":"AudioTool","author_link":"https://www.audiotool.com","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"a2397ce6-7712-40e5-b4e0-df95c7992662","id":8,"sort":38,"clicks":255,"public":false,"is_new":false,"stats":[32]},{"url":"https://www.gsn-lib.org/apps/cardboardsynth/index.html","date_created":"2023-10-27T12:45:54.002Z","title":"Cardboard Synth","slug":"cardboard-synth","author":" Thorsten Thormählen","author_link":"https://www.uni-marburg.de/en/fb12/research-groups/grafikmultimedia/thormae","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"29fe1fcc-ca85-41b3-ab1e-7f10770f2c1f","id":9,"sort":39,"clicks":184,"public":false,"is_new":false,"stats":[33]},{"url":"https://tanguysynth.com/","date_created":"2023-10-27T12:45:54.036Z","title":"Tanguy synth","slug":"tanguy-synth","author":"Luke Teaford","author_link":"https://github.com/luketeaford","description":null,"tags":["monophonic","additive","keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"5471a71e-7c5b-4ea6-aee0-1b394873c381","id":11,"sort":40,"clicks":117,"public":false,"is_new":false,"stats":[34]},{"url":"https://www.blokdust.com/","date_created":"2023-11-25T06:31:23.261Z","title":"BlokDust","slug":"blokdust","author":"Luke Twyman, Luke Phillips, Edward Silverton","author_link":"https://wvnl.xyz/","description":"BlokDust is a creative visual drag and drop music exploration tool. Developed in Brighton UK and released in 2016, BlokDust uses the Web Audio API and makes use of Tone.js as an audio framework.","tags":["creative","sequencer"],"archive_link":null,"archive":false,"content":"Luke Twyman - project concept, design & Ul.\\nwhitevinyldesign.com\\n@whitevinylUK\\nLuke Phillips - audio development & musical interaction.\\nfemurdesign.com\\n@lukephills\\nEdward Silverton - client & server architecture & core development.\\nedsilv.com\\n@edsilv","iframe":true,"cover":"7e5bcda8-f37a-46c0-91d9-0a6ea501a101","id":47,"sort":41,"clicks":19,"public":false,"is_new":false,"stats":[35]},{"url":"https://mod-synth.io/","date_created":"2023-10-27T12:45:54.052Z","title":"MOD synth","slug":"mod-synth","author":"André Venâncio ","author_link":"https://github.com/andrevenancio","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"31564bf3-fca9-41a4-b390-d78ccd848107","id":12,"sort":42,"clicks":146,"public":false,"is_new":false,"stats":[36]},{"url":"https://perso.numericable.fr/olivier.friker/synth/O3-synth%20V1.3.html","date_created":"2023-10-27T12:45:54.069Z","title":"OLIF SY1K","slug":"olif-sy-1-k","author":"Olivier Friker","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"3b9a5e11-3de3-46fe-9cdc-e1668b152f31","id":13,"sort":43,"clicks":145,"public":false,"is_new":false,"stats":[37]},{"url":"http://www.noisesculptor.com/","date_created":"2023-10-27T12:45:54.104Z","title":"Note Sculptor","slug":"note-sculptor","author":"Ruin Technology","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"a01968d1-3f88-4522-9752-1c33d10d90d9","id":15,"sort":44,"clicks":129,"public":false,"is_new":false,"stats":[38]},{"url":"https://aikelab.net/websynthv2/","date_created":"2023-10-27T12:45:54.141Z","title":"WebAudioSynth V2","slug":"web-audio-synth-v2","author":"like","author_link":"https://github.com/aike/","description":null,"tags":null,"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"ac668fba-7226-43dc-a91f-bd21a31446e5","id":16,"sort":45,"clicks":305,"public":false,"is_new":false,"stats":[39]},{"url":"https://isleoftune.com/","date_created":"2023-11-25T06:22:15.184Z","title":"Isle of Tune","slug":"isleoftune","author":"Jim Hall","author_link":"https://twitter.com/isleoftune","description":"Draw an island, where everything plays music.","tags":["game","sequencer"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"6830c24f-c7bf-430f-abc1-3d7fbf5f2557","id":46,"sort":46,"clicks":15,"public":false,"is_new":false,"stats":[40]},{"url":"https://www.soundtrap.com/","date_created":"2023-10-27T12:45:54.155Z","title":"Sound Trap","slug":"sound-trap","author":"Soundtrap","author_link":"https://www.soundtrap.com/about","description":null,"tags":["daw"],"archive_link":null,"archive":false,"content":null,"iframe":false,"cover":"63ef832a-f7da-4536-851f-4964005a89f1","id":17,"sort":47,"clicks":124,"public":false,"is_new":false,"stats":[41]},{"url":"http://typedrummer.com/","date_created":"2023-11-25T06:34:10.166Z","title":"Type Drummer","slug":"typedrummer","author":"Kyle Stetz","author_link":"http://kylestetz.com/","description":"Type your drum loops","tags":["sequencer","drums","Keyboard"],"archive_link":null,"archive":false,"content":null,"iframe":true,"cover":"19454c82-7338-4144-9f1c-010c80a70a6e","id":48,"sort":48,"clicks":21,"public":false,"is_new":false,"stats":[42]}]`),ot={class:"text-center line-height-loose text-md"},rt={class:"mx-auto max-w-75ch intro md-text-lg"},lt={class:"p-2 flex flex-col mt-8"},ct={class:"text-4xl font-bold"},ut=p("div",{class:"text-lg"},"web synths",-1),ht={class:"p-2 flex flex-col mt-8"},dt={class:"text-4xl font-bold"},ft=p("div",{class:"text-lg"},"web musicians",-1),pt={__name:"AboutCount",setup(t){const e=D(),s=D(0),n=D(0),i=fe(s),a=fe(n),o=$e(e);return De(o,async r=>{if(r){s.value=ne.length;const c=await(await fetch("https://dbs.chromatone.center/flows/trigger/0c0e8d82-8e12-44a6-867a-57ddeec9d774",{type:"GET",mode:"cors",headers:{"Content-Type":"application/json"}})).json();n.value=c.count}}),(r,l)=>(b(),y("div",ot,[p("div",rt,[p("div",{class:"flex justify-center",ref_key:"counters",ref:e},[p("div",lt,[p("div",ct,$(T(i).toFixed()),1),ut]),p("div",ht,[p("div",dt,$(T(a).toFixed()||5e3)+"+",1),ft])],512)])]))}},mt={class:"flex flex-col text-center gap-4 bg-light-700 dark-bg-dark-200 dark-bg-opacity-20 p-4 rounded-lg shadow-lg mb-8"},gt=p("div",{class:"text-xl font-bold my-2"},"Suggest a new web-synth to the collection",-1),bt=["disabled"],yt={__name:"FormSynth",emits:["submitted"],setup(t,{emit:e}){const s=e,n=Pe({url:"",text:""}),i=/[(http(s) ?): \/\/(www\.)?a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/;function a(l){return i.test(l)}const o=D();async function r(){var l,c,u;try{const h=await fetch("https://dbs.chromatone.center/flows/trigger/dc8ca96f-76e6-4cac-b26c-10751746eb89",{method:"POST",mode:"cors",cache:"no-cache",credentials:"same-origin",headers:{"Content-Type":"application/json"},redirect:"follow",referrerPolicy:"no-referrer",body:JSON.stringify(n)});o.value=await(h==null?void 0:h.json()),n.url="",n.text="",setTimeout(()=>{s("submitted")},2e3)}catch(h){console.error(h,(c=(l=h==null?void 0:h.errors)==null?void 0:l[0])==null?void 0:c.message,(u=h==null?void 0:h.response)==null?void 0:u.status)}}return(l,c)=>(b(),y("div",mt,[o.value?(b(),y(j,{key:1},[U("Thanks for your suggestion!")],64)):(b(),y(j,{key:0},[gt,X(p("input",{class:"py-2 px-4 rounded bg-light-200 dark-bg-dark-200",type:"text",placeholder:"https://new.synth.url/","onUpdate:modelValue":c[0]||(c[0]=u=>n.url=u)},null,512),[[ee,n.url]]),X(p("textarea",{class:"py-2 px-4 rounded bg-light-200 dark-bg-dark-200",oninput:"this.style.height = ''; this.style.height = this.scrollHeight +'px'",placeholder:"Describe the web-app and how do you use it musically","onUpdate:modelValue":c[1]||(c[1]=u=>n.text=u)},null,512),[[ee,n.text]]),p("button",{class:"text-xl py-2 px-4 rounded bg-dark-100 text-light-200 dark-bg-light-700 dark-text-dark-500 shadow-lg disabled-opacity-20",disabled:!a(n.url),onClick:c[2]||(c[2]=u=>r())},$(a(n.url)?"Submit":"Please provide a valid URL"),9,bt)],64))]))}},_e=t=>(Fe("data-v-f3c34bc1"),t=t(),je(),t),vt={key:0,class:"px-2 py-1 bg-light-800 dark-bg-dark-800 rounded-xl transition text-sm select-none absolute bottom-2 left-2 text-center z-200 flex items-center gap-1 opacity-70 hover-opacity-100",title:"Since 28 Oct 2023"},wt=_e(()=>p("div",{class:"i-la-eye"},null,-1)),kt={class:"p-0 mt-2px"},_t={class:"p-4 flex flex-col items-start justify-between gap-2",style:{flex:"10 0 200px"}},xt={class:"flex items-center gap-2 flex-0 w-full"},St={class:"transition text-xl select-none absolute top-4 left-4 text-center z-200"},Mt={class:"flex-auto"},Tt={class:"flex items-center gap-2"},It={class:"text-2xl font-bold"},At={key:0,class:"font-normal",title:"Archived locally by us"},Ct=_e(()=>p("div",{class:"i-ph-archive-duotone"},null,-1)),Et=[Ct],Lt={class:"flex-1"},Ot={key:1,class:"flex-1 flex items-end flex flex-wrap gap-2"},$t=["href"],Dt={key:3,class:"text-xl p-2 absolute left-2 top-4 bg-yellow-600 rounded-xl shadow font-bold z-1000 transform -rotate-10"},Pt={__name:"SynthCard",props:{pos:{type:Number,default:0},sort:{type:Number,default:0},public:{type:Boolean,default:!1},title:{type:String,default:""},id:{type:Number,default:0},slug:{type:String,default:""},description:{type:String,default:""},cover:{type:String,default:""},url:{type:String,default:""},author:{type:String,default:""},author_link:{type:String,default:""},tags:{type:Array,default:()=>[]},archive:{type:Boolean,default:!1},archive_link:{type:String,default:""},iframe:{type:Boolean,default:null},clicks:{type:Number,default:0},stars:{type:Number,default:0},counter:{type:Number,default:0},is_new:{type:Boolean,default:null}},setup(t){const{isDark:e}=Re(),s=t,{isFormOpen:n,isAccessGranted:i}=ke(),{clicksCount:a,clickSynth:o}=Je(s.id);async function r(){!s.public&&!i.value?n.value=!n.value:(o(s.id),s.iframe?window.open(s.slug+"/","_self"):window.open(s.archive?s.archive_link:s.url,"_blank"))}return(l,c)=>{var d;const u=Qe,h=ze("ClientOnly");return b(),y("button",{class:"max-w-180 w-full flex flex-wrap items-stretch text-left relative bg-light-500 dark-bg-dark-300 -hover-translate-y-6px transition duration-200 hover-shadow-lg rounded-lg overflow-hidden relative border-1 border-dark-100 border-opacity-20 shadow-sm dark-border-light-800 dark-border-opacity-20",style:te({borderColor:T(Y)[t.id]?T(e)?"hsl(50deg,80%,35%)":"hsl(40deg,90%,80%)":null}),onClick:r},[p("div",{class:"cover min-h-50 bg-cover bg-center filter transition",style:te([{backgroundImage:`url(/cover/${t.slug}.webp)`},{flex:"1 1 280px"}])},[T(a)||t.counter?(b(),y("div",vt,[wt,p("div",kt,$(T(a)||t.counter),1)])):_("",!0)],4),p("div",_t,[p("div",xt,[p("div",St,$(t.sort),1),p("div",Mt,[p("span",Tt,[p("div",It,$(t.title),1),t.archive?(b(),y("span",At,Et)):_("",!0)])]),B(h,null,{default:G(()=>[B(u,{class:"text-xl mr-2 absolute z-200",id:t.id,stars:t.stars},null,8,["id","stars"])]),_:1})]),t.author?(b(),se(Be(t.author_link?"a":"div"),{key:0,class:"p-0 text-md",href:t.author_link,target:"_blank"},{default:G(()=>[U("by "+$(t.author),1)]),_:1},8,["href"])):_("",!0),p("div",Lt,[Ne(l.$slots,"default",{},void 0,!0)]),((d=t.tags)==null?void 0:d.length)>0?(b(),y("div",Ot,[(b(!0),y(j,null,we(t.tags,g=>(b(),y("div",{class:"px-2 py-1 text-sm bg-light-800 dark-bg-dark-500 rounded-lg",key:g},$(g),1))),128))])):_("",!0),t.iframe?_("",!0):(b(),y("a",{key:2,class:"absolute bottom-4 right-4 i-la-external-link-square-alt text-lg opacity-40 transition transition hover-opacity-100",onClick:c[0]||(c[0]=We(()=>{},["stop"])),href:`/${t.slug}/`,title:"Opens in a new window"},null,8,$t)),t.is_new?(b(),y("div",Dt,"NEW!")):_("",!0)])],4)}}},Rt=ve(Pt,[["__scopeId","data-v-f3c34bc1"]]);function O(t){return Array.isArray?Array.isArray(t):Me(t)==="[object Array]"}const zt=1/0;function Bt(t){if(typeof t=="string")return t;let e=t+"";return e=="0"&&1/t==-zt?"-0":e}function Nt(t){return t==null?"":Bt(t)}function E(t){return typeof t=="string"}function xe(t){return typeof t=="number"}function Wt(t){return t===!0||t===!1||Ft(t)&&Me(t)=="[object Boolean]"}function Se(t){return typeof t=="object"}function Ft(t){return Se(t)&&t!==null}function x(t){return t!=null}function Q(t){return!t.trim().length}function Me(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const jt="Incorrect 'index' type",Zt=t=>`Invalid value for key ${t}`,Vt=t=>`Pattern length exceeds max of ${t}.`,qt=t=>`Missing ${t} property in key`,Yt=t=>`Property 'weight' in key '${t}' must be a positive integer`,pe=Object.prototype.hasOwnProperty;class Ut{constructor(e){this._keys=[],this._keyMap={};let s=0;e.forEach(n=>{let i=Te(n);this._keys.push(i),this._keyMap[i.id]=i,s+=i.weight}),this._keys.forEach(n=>{n.weight/=s})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Te(t){let e=null,s=null,n=null,i=1,a=null;if(E(t)||O(t))n=t,e=me(t),s=ie(t);else{if(!pe.call(t,"name"))throw new Error(qt("name"));const o=t.name;if(n=o,pe.call(t,"weight")&&(i=t.weight,i<=0))throw new Error(Yt(o));e=me(o),s=ie(o),a=t.getFn}return{path:e,id:s,weight:i,src:n,getFn:a}}function me(t){return O(t)?t:t.split(".")}function ie(t){return O(t)?t.join("."):t}function Gt(t,e){let s=[],n=!1;const i=(a,o,r)=>{if(x(a))if(!o[r])s.push(a);else{let l=o[r];const c=a[l];if(!x(c))return;if(r===o.length-1&&(E(c)||xe(c)||Wt(c)))s.push(Nt(c));else if(O(c)){n=!0;for(let u=0,h=c.length;ut.score===e.score?t.idx{this._keysMap[s.id]=n})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,E(this.docs[0])?this.docs.forEach((e,s)=>{this._addString(e,s)}):this.docs.forEach((e,s)=>{this._addObject(e,s)}),this.norm.clear())}add(e){const s=this.size();E(e)?this._addString(e,s):this._addObject(e,s)}removeAt(e){this.records.splice(e,1);for(let s=e,n=this.size();s{let o=i.getFn?i.getFn(e):this.getFn(e,i.path);if(x(o)){if(O(o)){let r=[];const l=[{nestedArrIndex:-1,value:o}];for(;l.length;){const{nestedArrIndex:c,value:u}=l.pop();if(x(u))if(E(u)&&!Q(u)){let h={v:u,i:c,n:this.norm.get(u)};r.push(h)}else O(u)&&u.forEach((h,d)=>{l.push({nestedArrIndex:d,value:h})})}n.$[a]=r}else if(E(o)&&!Q(o)){let r={v:o,n:this.norm.get(o)};n.$[a]=r}}}),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}}function Ie(t,e,{getFn:s=f.getFn,fieldNormWeight:n=f.fieldNormWeight}={}){const i=new ue({getFn:s,fieldNormWeight:n});return i.setKeys(t.map(Te)),i.setSources(e),i.create(),i}function ts(t,{getFn:e=f.getFn,fieldNormWeight:s=f.fieldNormWeight}={}){const{keys:n,records:i}=t,a=new ue({getFn:e,fieldNormWeight:s});return a.setKeys(n),a.setIndexRecords(i),a}function q(t,{errors:e=0,currentLocation:s=0,expectedLocation:n=0,distance:i=f.distance,ignoreLocation:a=f.ignoreLocation}={}){const o=e/t.length;if(a)return o;const r=Math.abs(n-s);return i?o+r/i:r?1:o}function ss(t=[],e=f.minMatchCharLength){let s=[],n=-1,i=-1,a=0;for(let o=t.length;a=e&&s.push([n,i]),n=-1)}return t[a-1]&&a-n>=e&&s.push([n,a-1]),s}const z=32;function ns(t,e,s,{location:n=f.location,distance:i=f.distance,threshold:a=f.threshold,findAllMatches:o=f.findAllMatches,minMatchCharLength:r=f.minMatchCharLength,includeMatches:l=f.includeMatches,ignoreLocation:c=f.ignoreLocation}={}){if(e.length>z)throw new Error(Vt(z));const u=e.length,h=t.length,d=Math.max(0,Math.min(n,h));let g=a,v=d;const m=r>1||l,S=m?Array(h):[];let M;for(;(M=t.indexOf(e,v))>-1;){let k=q(e,{currentLocation:M,expectedLocation:d,distance:i,ignoreLocation:c});if(g=Math.min(k,g),v=M+u,m){let I=0;for(;I=he;A-=1){let V=A-1,de=s[t.charAt(V)];if(m&&(S[V]=+!!de),W[A]=(W[A+1]<<1|1)&de,k&&(W[A]|=(L[A+1]|L[A])<<1|1|L[A+1]),W[A]&Z&&(C=q(e,{errors:k,currentLocation:V,expectedLocation:d,distance:i,ignoreLocation:c}),C<=g)){if(g=C,v=V,v<=d)break;he=Math.max(1,2*d-v)}}if(q(e,{errors:k+1,currentLocation:d,expectedLocation:d,distance:i,ignoreLocation:c})>g)break;L=W}const N={isMatch:v>=0,score:Math.max(.001,C)};if(m){const k=ss(S,r);k.length?l&&(N.indices=k):N.isMatch=!1}return N}function is(t){let e={};for(let s=0,n=t.length;s{this.chunks.push({pattern:d,alphabet:is(d),startIndex:g})},h=this.pattern.length;if(h>z){let d=0;const g=h%z,v=h-g;for(;d{const{isMatch:M,score:L,indices:C}=ns(e,v,m,{location:i+S,distance:a,threshold:o,findAllMatches:r,minMatchCharLength:l,includeMatches:n,ignoreLocation:c});M&&(d=!0),h+=L,M&&C&&(u=[...u,...C])});let g={isMatch:d,score:d?h/this.chunks.length:1};return d&&n&&(g.indices=u),g}}class P{constructor(e){this.pattern=e}static isMultiMatch(e){return ge(e,this.multiRegex)}static isSingleMatch(e){return ge(e,this.singleRegex)}search(){}}function ge(t,e){const s=t.match(e);return s?s[1]:null}class as extends P{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){const s=e===this.pattern;return{isMatch:s,score:s?0:1,indices:[0,this.pattern.length-1]}}}class os extends P{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){const n=e.indexOf(this.pattern)===-1;return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}}class rs extends P{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){const s=e.startsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[0,this.pattern.length-1]}}}class ls extends P{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){const s=!e.startsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[0,e.length-1]}}}class cs extends P{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){const s=e.endsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}class us extends P{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){const s=!e.endsWith(this.pattern);return{isMatch:s,score:s?0:1,indices:[0,e.length-1]}}}class Ce extends P{constructor(e,{location:s=f.location,threshold:n=f.threshold,distance:i=f.distance,includeMatches:a=f.includeMatches,findAllMatches:o=f.findAllMatches,minMatchCharLength:r=f.minMatchCharLength,isCaseSensitive:l=f.isCaseSensitive,ignoreLocation:c=f.ignoreLocation}={}){super(e),this._bitapSearch=new Ae(e,{location:s,threshold:n,distance:i,includeMatches:a,findAllMatches:o,minMatchCharLength:r,isCaseSensitive:l,ignoreLocation:c})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class Ee extends P{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let s=0,n;const i=[],a=this.pattern.length;for(;(n=e.indexOf(this.pattern,s))>-1;)s=n+a,i.push([n,s-1]);const o=!!i.length;return{isMatch:o,score:o?0:1,indices:i}}}const ae=[as,Ee,rs,ls,us,cs,os,Ce],be=ae.length,hs=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,ds="|";function fs(t,e={}){return t.split(ds).map(s=>{let n=s.trim().split(hs).filter(a=>a&&!!a.trim()),i=[];for(let a=0,o=n.length;a!!(t[K.AND]||t[K.OR]),bs=t=>!!t[le.PATH],ys=t=>!O(t)&&Se(t)&&!ce(t),ye=t=>({[K.AND]:Object.keys(t).map(e=>({[e]:t[e]}))});function Le(t,e,{auto:s=!0}={}){const n=i=>{let a=Object.keys(i);const o=bs(i);if(!o&&a.length>1&&!ce(i))return n(ye(i));if(ys(i)){const l=o?i[le.PATH]:a[0],c=o?i[le.PATTERN]:i[l];if(!E(c))throw new Error(Zt(l));const u={keyId:ie(l),pattern:c};return s&&(u.searcher=re(c,e)),u}let r={children:[],operator:a[0]};return a.forEach(l=>{const c=i[l];O(c)&&c.forEach(u=>{r.children.push(n(u))})}),r};return ce(t)||(t=ye(t)),n(t)}function vs(t,{ignoreFieldNorm:e=f.ignoreFieldNorm}){t.forEach(s=>{let n=1;s.matches.forEach(({key:i,norm:a,score:o})=>{const r=i?i.weight:null;n*=Math.pow(o===0&&r?Number.EPSILON:o,(r||1)*(e?1:a))}),s.score=n})}function ws(t,e){const s=t.matches;e.matches=[],x(s)&&s.forEach(n=>{if(!x(n.indices)||!n.indices.length)return;const{indices:i,value:a}=n;let o={indices:i,value:a};n.key&&(o.key=n.key.src),n.idx>-1&&(o.refIndex=n.idx),e.matches.push(o)})}function ks(t,e){e.score=t.score}function _s(t,e,{includeMatches:s=f.includeMatches,includeScore:n=f.includeScore}={}){const i=[];return s&&i.push(ws),n&&i.push(ks),t.map(a=>{const{idx:o}=a,r={item:e[o],refIndex:o};return i.length&&i.forEach(l=>{l(a,r)}),r})}class F{constructor(e,s={},n){this.options={...f,...s},this.options.useExtendedSearch,this._keyStore=new Ut(this.options.keys),this.setCollection(e,n)}setCollection(e,s){if(this._docs=e,s&&!(s instanceof ue))throw new Error(jt);this._myIndex=s||Ie(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){x(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){const s=[];for(let n=0,i=this._docs.length;n-1&&(l=l.slice(0,s)),_s(l,this._docs,{includeMatches:n,includeScore:i})}_searchStringList(e){const s=re(e,this.options),{records:n}=this._myIndex,i=[];return n.forEach(({v:a,i:o,n:r})=>{if(!x(a))return;const{isMatch:l,score:c,indices:u}=s.searchIn(a);l&&i.push({item:a,idx:o,matches:[{score:c,value:a,norm:r,indices:u}]})}),i}_searchLogical(e){const s=Le(e,this.options),n=(r,l,c)=>{if(!r.children){const{keyId:h,searcher:d}=r,g=this._findMatches({key:this._keyStore.get(h),value:this._myIndex.getValueForItemAtKeyId(l,h),searcher:d});return g&&g.length?[{idx:c,item:l,matches:g}]:[]}const u=[];for(let h=0,d=r.children.length;h{if(x(r)){let c=n(s,r,l);c.length&&(a[l]||(a[l]={idx:l,item:r,matches:[]},o.push(a[l])),c.forEach(({matches:u})=>{a[l].matches.push(...u)}))}}),o}_searchObjectList(e){const s=re(e,this.options),{keys:n,records:i}=this._myIndex,a=[];return i.forEach(({$:o,i:r})=>{if(!x(o))return;let l=[];n.forEach((c,u)=>{l.push(...this._findMatches({key:c,value:o[u],searcher:s}))}),l.length&&a.push({idx:r,item:o,matches:l})}),a}_findMatches({key:e,value:s,searcher:n}){if(!x(s))return[];let i=[];if(O(s))s.forEach(({v:a,i:o,n:r})=>{if(!x(a))return;const{isMatch:l,score:c,indices:u}=n.searchIn(a);l&&i.push({score:c,key:e,value:a,idx:o,norm:r,indices:u})});else{const{v:a,n:o}=s,{isMatch:r,score:l,indices:c}=n.searchIn(a);r&&i.push({score:l,key:e,value:a,norm:o,indices:c})}return i}}F.version="7.0.0";F.createIndex=Ie;F.parseIndex=ts;F.config=f;F.parseQuery=Le;gs(ms);const xs={class:"flex flex-col items-center mb-2 px-8"},Ss={class:"w-full max-w-110 flex items-center relative my-4 gap-2"},Ms=p("div",{class:"i-la-search absolute left-2 text-xl opacity-40"},null,-1),Ts=["title"],Is={key:0,class:"i-la-star-solid"},As={key:1,class:"i-la-star"},Cs={class:"flex flex-col items-center gap-8 p-2 max-w-160 mx-auto mb-12"},Es=["index"],Ls={class:"p-2",key:"nnn"},Os={key:0,class:"animate-pulse text-center"},$s={__name:"SynthList",setup(t){const{isAccessGranted:e}=ke(),s=D(ne),n=new F(ne,{includeScore:!0,ignoreLocation:!0,shouldSort:!0,keys:["title","slug","author"]}),i=Ze("fav-filter",!1),a=D(""),o=D(!1),r=J(()=>n.search(a.value)),l=J(()=>r.value.filter(h=>h.score<.2).sort((h,d)=>h.score>d.score?1:0).map(h=>h.item.slug)),c=J(()=>s.value.filter(h=>a.value?l.value.includes(h.slug):i.value?Y.value[h.id]:!0)),u=D([]);return Ve(async()=>{u.value=await Xe("synths",{fields:["id",{stats:["views","stars"]}]})}),qe(Y,h=>{Object.values(h).filter(Boolean).length==0&&(i.value=!1)},{deep:!0,immediate:!0}),(h,d)=>{const g=Rt,v=yt;return b(),y(j,null,[p("div",xs,[p("div",Ss,[X(p("input",{class:"w-full focus text-xl py-2 pl-9 bg-light-50 bg-opacity-100 shadow-inner border-1 border-dark-100 border-opacity-10 rounded-lg dark-bg-dark-200 outline-none focus-border-opacity-90",placeholder:"Type to search...","onUpdate:modelValue":d[0]||(d[0]=m=>a.value=m)},null,512),[[ee,a.value]]),Ms,a.value?(b(),y("div",{key:0,class:"i-la-times absolute right-2 text-xl opacity-40 hover-opacity-80 transition cursor-pointer",onClick:d[1]||(d[1]=m=>a.value="")})):_("",!0),Object.values(T(Y)).filter(Boolean).length>0&&!a.value?(b(),y("button",{key:1,class:"transition p-2 shadow dark-bg-dark-200 dark-hover-bg-dark-100 bg-light-300 hover-bg-light-100 rounded-lg flex items-center gap-2 text-xl text-yellow",title:T(i)?"Only favourites are shown":"Show only favourites",onClick:d[2]||(d[2]=m=>i.value=!T(i))},[B(Ye,{name:"fade"},{default:G(()=>[T(i)?(b(),y("div",Is)):(b(),y("div",As))]),_:1})],8,Ts)):_("",!0),a.value?_("",!0):(b(),y("button",{key:2,class:"transition p-2 shadow dark-bg-dark-200 dark-hover-bg-dark-100 bg-light-300 hover-bg-light-100 rounded-lg flex items-center gap-2 text-xl",title:"Suggest a new link to the collection",onClick:d[3]||(d[3]=m=>o.value=!o.value)},[p("div",{class:Ue(["i-la-plus transform transition",{"rotate-45":o.value}])},null,2)]))])]),p("div",Cs,[o.value?_("",!0):(b(),se(Ke,{key:0,name:"fade"},{default:G(()=>[(b(!0),y(j,null,we(c.value,(m,S)=>{var M,L,C,R,Z,N,k,I;return b(),y("div",{class:"flex w-full sticky",style:te([{top:`${80+S*4}px`,zIndex:S+10},{flex:"1 1 240px"}]),key:m.id,index:S},[(b(),se(g,Ge({pos:S,style:{filter:!m.public&&!T(e)?"contrast(70%) blur(2px) opacity(80%)":""},key:m.id,ref_for:!0},m,{counter:(R=(C=(L=(M=u.value)==null?void 0:M.find(w=>(w==null?void 0:w.id)==(m==null?void 0:m.id)))==null?void 0:L.stats)==null?void 0:C[0])==null?void 0:R.views,stars:(I=(k=(N=(Z=u.value)==null?void 0:Z.find(w=>(w==null?void 0:w.id)==(m==null?void 0:m.id)))==null?void 0:N.stats)==null?void 0:k[0])==null?void 0:I.stars}),null,16,["pos","style","counter","stars"]))],12,Es)}),128))]),_:1})),c.value.length==0||o.value?(b(),y("div",Ls,[o.value?_("",!0):(b(),y("div",Os,"We don't know such a web-app yet. ")),B(v,{class:"max-w-140 mx-auto mt-6",onSubmitted:d[4]||(d[4]=m=>o.value=!1)})])):_("",!0)])],64)}}},Gs=JSON.parse('{"title":"Web synths","description":"Web synthesizers to play with MIDI controllers","frontmatter":{"title":"Web synths","description":"Web synthesizers to play with MIDI controllers","date":"2023-06-22T00:00:00.000Z","layout":"home"},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1716281170000}'),Ds={name:"index.md"},Ps=p("h1",{class:"text-center text-2xl sm-text-3xl font-bold mt-8",style:{padding:"0.1rem 1rem"}},"Online synthesizers and web piano apps",-1),Rs=p("h2",{class:"text-xl sm-text-2xl text-center my-2",style:{padding:"0 1rem"}},"Curated collection of free music creation resources",-1),zs={class:"px-4 text-lg text-center mb-8 max-w-150 mx-auto"},Bs=p("a",{class:"font-bold",href:"https://chromatone.center",target:"_blank",rel:"noopener"}," Chromatone",-1),Ns=p("a",{class:"font-bold",href:"https://playtronica.com",target:"_blank",rel:"noopener"}," Playtronica",-1),Ws=p("h3",{class:"font-bold text-xl"},"Welcome to the community of web-based musicians!",-1),Fs=p("p",null,[p("a",{target:"_blank",href:"https://chromatone.center/"},[p("img",{src:He,class:"max-w-16 mx-auto"})])],-1);function js(t,e,s,n,i,a){const o=$s,r=pt,l=at;return b(),y("div",null,[Ps,Rs,B(o),p("div",zs,[Bs,U(" is an open source visual music language for education, research and performance. We develop a new universal way to communicate music. "),Ns,U(" is a digital playground that explores the possibilities of the material world through technology, creating gadgets that make the world musical. Together we share our passion for online music instruments. "),B(r),Ws,Fs,B(l)])])}const Ks=ve(Ds,[["render",js]]);export{Gs as __pageData,Ks as default}; diff --git a/assets/isleoftune_index.md.CsnCd2FO.js b/assets/isleoftune_index.md.CZD_HPt-.js similarity index 94% rename from assets/isleoftune_index.md.CsnCd2FO.js rename to assets/isleoftune_index.md.CZD_HPt-.js index 16178c3c..d12c3bee 100644 --- a/assets/isleoftune_index.md.CsnCd2FO.js +++ b/assets/isleoftune_index.md.CZD_HPt-.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as i,S as o,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://isleoftune.com/","date_created":"2023-11-25T06:22:15.184Z","title":"Isle of Tune","slug":"isleoftune","author":"Jim Hall","author_link":"https://twitter.com/isleoftune","description":"Draw an island, where everything plays music.","tags":["game","sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"6830c24f-c7bf-430f-abc1-3d7fbf5f2557","id":46,"sort":46,"clicks":15,"public":false,"is_new":false,"stats":[40]},"relativePath":"isleoftune/index.md","filePath":"isleoftune/index.md","lastUpdated":0}'),f={name:"isleoftune/index.md"},b=Object.assign(f,{setup(u){const{params:e,frontmatter:m}=s();return(p,d)=>{const t=a;return c(),r("div",null,[n(t,i(o(l(e))),null,16)])}}});export{y as __pageData,b as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as i,S as o,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://isleoftune.com/","date_created":"2023-11-25T06:22:15.184Z","title":"Isle of Tune","slug":"isleoftune","author":"Jim Hall","author_link":"https://twitter.com/isleoftune","description":"Draw an island, where everything plays music.","tags":["game","sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"6830c24f-c7bf-430f-abc1-3d7fbf5f2557","id":46,"sort":47,"clicks":15,"public":false,"is_new":false,"stats":[40]},"relativePath":"isleoftune/index.md","filePath":"isleoftune/index.md","lastUpdated":0}'),f={name:"isleoftune/index.md"},b=Object.assign(f,{setup(u){const{params:e,frontmatter:m}=s();return(p,d)=>{const t=a;return c(),r("div",null,[n(t,i(o(l(e))),null,16)])}}});export{y as __pageData,b as default}; diff --git a/assets/isleoftune_index.md.CsnCd2FO.lean.js b/assets/isleoftune_index.md.CZD_HPt-.lean.js similarity index 94% rename from assets/isleoftune_index.md.CsnCd2FO.lean.js rename to assets/isleoftune_index.md.CZD_HPt-.lean.js index 16178c3c..d12c3bee 100644 --- a/assets/isleoftune_index.md.CsnCd2FO.lean.js +++ b/assets/isleoftune_index.md.CZD_HPt-.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as i,S as o,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://isleoftune.com/","date_created":"2023-11-25T06:22:15.184Z","title":"Isle of Tune","slug":"isleoftune","author":"Jim Hall","author_link":"https://twitter.com/isleoftune","description":"Draw an island, where everything plays music.","tags":["game","sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"6830c24f-c7bf-430f-abc1-3d7fbf5f2557","id":46,"sort":46,"clicks":15,"public":false,"is_new":false,"stats":[40]},"relativePath":"isleoftune/index.md","filePath":"isleoftune/index.md","lastUpdated":0}'),f={name:"isleoftune/index.md"},b=Object.assign(f,{setup(u){const{params:e,frontmatter:m}=s();return(p,d)=>{const t=a;return c(),r("div",null,[n(t,i(o(l(e))),null,16)])}}});export{y as __pageData,b as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as i,S as o,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://isleoftune.com/","date_created":"2023-11-25T06:22:15.184Z","title":"Isle of Tune","slug":"isleoftune","author":"Jim Hall","author_link":"https://twitter.com/isleoftune","description":"Draw an island, where everything plays music.","tags":["game","sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"6830c24f-c7bf-430f-abc1-3d7fbf5f2557","id":46,"sort":47,"clicks":15,"public":false,"is_new":false,"stats":[40]},"relativePath":"isleoftune/index.md","filePath":"isleoftune/index.md","lastUpdated":0}'),f={name:"isleoftune/index.md"},b=Object.assign(f,{setup(u){const{params:e,frontmatter:m}=s();return(p,d)=>{const t=a;return c(),r("div",null,[n(t,i(o(l(e))),null,16)])}}});export{y as __pageData,b as default}; diff --git a/assets/juno-106_index.md.DtzWjeu0.js b/assets/juno-106_index.md.Byv-eTgg.js similarity index 95% rename from assets/juno-106_index.md.DtzWjeu0.js rename to assets/juno-106_index.md.Byv-eTgg.js index e7fd2088..5a384adf 100644 --- a/assets/juno-106_index.md.DtzWjeu0.js +++ b/assets/juno-106_index.md.Byv-eTgg.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as n,S as i,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse(`{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://juno-106.js.org/","date_created":"2023-10-27T12:45:54.085Z","title":"Juno-106","slug":"juno-106","author":"Steve Goldberg ","author_link":"https://github.com/stevengoldberg","description":"Online emulator of the classic Roland Juno-106 synthesizer. This interactive web app allows users to experiment with the iconic sounds of the Juno-106 directly from their browser. It features authentic recreations of the synth's controls and sound characteristics, making it a valuable tool for music enthusiasts and producers. ","tags":["fm","midi"],"archive_link":null,"archive":false,"iframe":true,"cover":"b54cfce7-af2f-4e03-a5b3-81fc853d2cc8","id":14,"sort":3,"clicks":5014,"public":true,"is_new":false,"stats":[3]},"relativePath":"juno-106/index.md","filePath":"juno-106/index.md","lastUpdated":0}`),u={name:"juno-106/index.md"},y=Object.assign(u,{setup(d){const{params:e,frontmatter:m}=s();return(p,f)=>{const t=a;return l(),r("div",null,[o(t,n(i(c(e))),null,16)])}}});export{v as __pageData,y as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as n,S as i,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse(`{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://juno-106.js.org/","date_created":"2023-10-27T12:45:54.085Z","title":"Juno-106","slug":"juno-106","author":"Steve Goldberg ","author_link":"https://github.com/stevengoldberg","description":"Online emulator of the classic Roland Juno-106 synthesizer. This interactive web app allows users to experiment with the iconic sounds of the Juno-106 directly from their browser. It features authentic recreations of the synth's controls and sound characteristics, making it a valuable tool for music enthusiasts and producers. ","tags":["fm","midi"],"archive_link":null,"archive":false,"iframe":true,"cover":"b54cfce7-af2f-4e03-a5b3-81fc853d2cc8","id":14,"sort":3,"clicks":5017,"public":true,"is_new":false,"stats":[3]},"relativePath":"juno-106/index.md","filePath":"juno-106/index.md","lastUpdated":0}`),u={name:"juno-106/index.md"},y=Object.assign(u,{setup(d){const{params:e,frontmatter:m}=s();return(p,f)=>{const t=a;return l(),r("div",null,[o(t,n(i(c(e))),null,16)])}}});export{v as __pageData,y as default}; diff --git a/assets/juno-106_index.md.DtzWjeu0.lean.js b/assets/juno-106_index.md.Byv-eTgg.lean.js similarity index 95% rename from assets/juno-106_index.md.DtzWjeu0.lean.js rename to assets/juno-106_index.md.Byv-eTgg.lean.js index e7fd2088..5a384adf 100644 --- a/assets/juno-106_index.md.DtzWjeu0.lean.js +++ b/assets/juno-106_index.md.Byv-eTgg.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as n,S as i,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse(`{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://juno-106.js.org/","date_created":"2023-10-27T12:45:54.085Z","title":"Juno-106","slug":"juno-106","author":"Steve Goldberg ","author_link":"https://github.com/stevengoldberg","description":"Online emulator of the classic Roland Juno-106 synthesizer. This interactive web app allows users to experiment with the iconic sounds of the Juno-106 directly from their browser. It features authentic recreations of the synth's controls and sound characteristics, making it a valuable tool for music enthusiasts and producers. ","tags":["fm","midi"],"archive_link":null,"archive":false,"iframe":true,"cover":"b54cfce7-af2f-4e03-a5b3-81fc853d2cc8","id":14,"sort":3,"clicks":5014,"public":true,"is_new":false,"stats":[3]},"relativePath":"juno-106/index.md","filePath":"juno-106/index.md","lastUpdated":0}`),u={name:"juno-106/index.md"},y=Object.assign(u,{setup(d){const{params:e,frontmatter:m}=s();return(p,f)=>{const t=a;return l(),r("div",null,[o(t,n(i(c(e))),null,16)])}}});export{v as __pageData,y as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as n,S as i,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse(`{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://juno-106.js.org/","date_created":"2023-10-27T12:45:54.085Z","title":"Juno-106","slug":"juno-106","author":"Steve Goldberg ","author_link":"https://github.com/stevengoldberg","description":"Online emulator of the classic Roland Juno-106 synthesizer. This interactive web app allows users to experiment with the iconic sounds of the Juno-106 directly from their browser. It features authentic recreations of the synth's controls and sound characteristics, making it a valuable tool for music enthusiasts and producers. ","tags":["fm","midi"],"archive_link":null,"archive":false,"iframe":true,"cover":"b54cfce7-af2f-4e03-a5b3-81fc853d2cc8","id":14,"sort":3,"clicks":5017,"public":true,"is_new":false,"stats":[3]},"relativePath":"juno-106/index.md","filePath":"juno-106/index.md","lastUpdated":0}`),u={name:"juno-106/index.md"},y=Object.assign(u,{setup(d){const{params:e,frontmatter:m}=s();return(p,f)=>{const t=a;return l(),r("div",null,[o(t,n(i(c(e))),null,16)])}}});export{v as __pageData,y as default}; diff --git a/assets/meet-the-heisenberg_index.md.H-FWkarT.js b/assets/meet-the-heisenberg_index.md.DhL0PLAB.js similarity index 94% rename from assets/meet-the-heisenberg_index.md.H-FWkarT.js rename to assets/meet-the-heisenberg_index.md.DhL0PLAB.js index 15140f98..a40bbe60 100644 --- a/assets/meet-the-heisenberg_index.md.H-FWkarT.js +++ b/assets/meet-the-heisenberg_index.md.DhL0PLAB.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as i,S as n,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.audiotool.com/product/device/heisenberg/","date_created":"2023-10-27T12:45:53.983Z","title":"Meet the Heisenberg","slug":"meet-the-heisenberg","author":"AudioTool","author_link":"https://www.audiotool.com","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"a2397ce6-7712-40e5-b4e0-df95c7992662","id":8,"sort":38,"clicks":255,"public":false,"is_new":false,"stats":[32]},"relativePath":"meet-the-heisenberg/index.md","filePath":"meet-the-heisenberg/index.md","lastUpdated":0}'),d={name:"meet-the-heisenberg/index.md"},w=Object.assign(d,{setup(m){const{params:e,frontmatter:p}=s();return(u,h)=>{const t=a;return l(),r("div",null,[o(t,i(n(c(e))),null,16)])}}});export{v as __pageData,w as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as i,S as n,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.audiotool.com/product/device/heisenberg/","date_created":"2023-10-27T12:45:53.983Z","title":"Meet the Heisenberg","slug":"meet-the-heisenberg","author":"AudioTool","author_link":"https://www.audiotool.com","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"a2397ce6-7712-40e5-b4e0-df95c7992662","id":8,"sort":39,"clicks":255,"public":false,"is_new":false,"stats":[32]},"relativePath":"meet-the-heisenberg/index.md","filePath":"meet-the-heisenberg/index.md","lastUpdated":0}'),d={name:"meet-the-heisenberg/index.md"},w=Object.assign(d,{setup(m){const{params:e,frontmatter:p}=s();return(u,h)=>{const t=a;return l(),r("div",null,[o(t,i(n(c(e))),null,16)])}}});export{v as __pageData,w as default}; diff --git a/assets/meet-the-heisenberg_index.md.H-FWkarT.lean.js b/assets/meet-the-heisenberg_index.md.DhL0PLAB.lean.js similarity index 94% rename from assets/meet-the-heisenberg_index.md.H-FWkarT.lean.js rename to assets/meet-the-heisenberg_index.md.DhL0PLAB.lean.js index 15140f98..a40bbe60 100644 --- a/assets/meet-the-heisenberg_index.md.H-FWkarT.lean.js +++ b/assets/meet-the-heisenberg_index.md.DhL0PLAB.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as i,S as n,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.audiotool.com/product/device/heisenberg/","date_created":"2023-10-27T12:45:53.983Z","title":"Meet the Heisenberg","slug":"meet-the-heisenberg","author":"AudioTool","author_link":"https://www.audiotool.com","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"a2397ce6-7712-40e5-b4e0-df95c7992662","id":8,"sort":38,"clicks":255,"public":false,"is_new":false,"stats":[32]},"relativePath":"meet-the-heisenberg/index.md","filePath":"meet-the-heisenberg/index.md","lastUpdated":0}'),d={name:"meet-the-heisenberg/index.md"},w=Object.assign(d,{setup(m){const{params:e,frontmatter:p}=s();return(u,h)=>{const t=a;return l(),r("div",null,[o(t,i(n(c(e))),null,16)])}}});export{v as __pageData,w as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as i,S as n,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.audiotool.com/product/device/heisenberg/","date_created":"2023-10-27T12:45:53.983Z","title":"Meet the Heisenberg","slug":"meet-the-heisenberg","author":"AudioTool","author_link":"https://www.audiotool.com","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"a2397ce6-7712-40e5-b4e0-df95c7992662","id":8,"sort":39,"clicks":255,"public":false,"is_new":false,"stats":[32]},"relativePath":"meet-the-heisenberg/index.md","filePath":"meet-the-heisenberg/index.md","lastUpdated":0}'),d={name:"meet-the-heisenberg/index.md"},w=Object.assign(d,{setup(m){const{params:e,frontmatter:p}=s();return(u,h)=>{const t=a;return l(),r("div",null,[o(t,i(n(c(e))),null,16)])}}});export{v as __pageData,w as default}; diff --git a/assets/microtonal_index.md.Cxxy5Dbg.js b/assets/microtonal_index.md.B7lUpN1F.js similarity index 98% rename from assets/microtonal_index.md.Cxxy5Dbg.js rename to assets/microtonal_index.md.B7lUpN1F.js index 15cd270e..639569f2 100644 --- a/assets/microtonal_index.md.Cxxy5Dbg.js +++ b/assets/microtonal_index.md.B7lUpN1F.js @@ -1 +1 @@ -import{_ as o}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as s,y as i,R as n,S as l,f as r,B as h,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=h("

WebSynths is a free resource for any musician with internet access! But, it is made possible by support from our patrons. Please consider helping if you can: patreon.com/WebSynths

  • You can use your QWERTY keyboard, mouse, mobile touch or MIDI keyboard to play the sounds.
  • You can change the tuning of the keys, or select a scale, by clicking the tuning button.
  • MIDI is a way to use an external physical instrument to play it. If you have a MIDI keyboard that you wish to use, hit the MIDI button to set it up.
  • If a note gets stuck, hit the panic button, it will stop all voices from playing.
  • You can use the arrows on your computer keyboard to scroll through the presets.

A simple explanation of Subtractive Synthesis:

  • Subtractive Synthesis works by taking one or more oscillators, setting the pitch of their oscillation (usually to the note of the key being pressed,) setting the shape of their oscillation to the desired timbre (Sine, Saw, Square or more complex shapes,) mixing them together and running them through a filter to change their EQ (usually filtering out the highest or lowest frequencies... this is why it is called "subtractive"), then running them through an envelope so the note can be heard on when a key is pressed down and is silenced when the key is released. In the case of WebSynths Microtonal, the sound is then sent through effects like delay, chorus and reverb and out to your speakers.
  • Oscillators are the voices. This synth has 3 of them in the left column. You can change the character of each voice by changing the parameters of them. The 'Shape' menu allows you to choose from different styles of voice for each oscillator. You can turn each voice on or off and mix them together.
  • The filter section applies equalization to your oscillators via the cutoff and emphasis controls. You can change the equalization filter type to 'low pass / high pass' and many more. You can use the LFOs and/or Envelopes to change how the filtration changes over time. An LFO is just a slow oscillator that is uses to automatically move a parameter over time.
  • The amplitude envelope changes how your sound is played, volume-wise, when you hit a note. For example, having a long release time will mean that once you let go of the note you are playing it will tail off until fading out. Having a slow attack will mean that your note will fade in instead of playing at full volume straight away.
  • The effects section allows you to add various effects to your overall sound. You can change the effects, mix them together and toggle them on or off too.
",4),v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://websynths.com/","date_created":"2023-10-27T12:45:54.019Z","title":"Websynths Microtonal","slug":"microtonal","author":"WebSynths","author_link":"https://www.websynths.com/microtonal/","description":"The deepest internet synthesizer","tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"ffc54664-7ba4-4855-a56a-6657a5542a04","id":10,"sort":12,"clicks":172,"public":false,"is_new":false,"stats":[11]},"relativePath":"microtonal/index.md","filePath":"microtonal/index.md","lastUpdated":0}'),m={name:"microtonal/index.md"},k=Object.assign(m,{setup(p){const{params:e,frontmatter:f}=a();return(d,y)=>{const t=o;return c(),s("div",null,[i(t,n(l(r(e))),null,16),u])}}});export{v as __pageData,k as default}; +import{_ as o}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as s,y as i,R as n,S as l,f as r,B as h,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=h("

WebSynths is a free resource for any musician with internet access! But, it is made possible by support from our patrons. Please consider helping if you can: patreon.com/WebSynths

  • You can use your QWERTY keyboard, mouse, mobile touch or MIDI keyboard to play the sounds.
  • You can change the tuning of the keys, or select a scale, by clicking the tuning button.
  • MIDI is a way to use an external physical instrument to play it. If you have a MIDI keyboard that you wish to use, hit the MIDI button to set it up.
  • If a note gets stuck, hit the panic button, it will stop all voices from playing.
  • You can use the arrows on your computer keyboard to scroll through the presets.

A simple explanation of Subtractive Synthesis:

  • Subtractive Synthesis works by taking one or more oscillators, setting the pitch of their oscillation (usually to the note of the key being pressed,) setting the shape of their oscillation to the desired timbre (Sine, Saw, Square or more complex shapes,) mixing them together and running them through a filter to change their EQ (usually filtering out the highest or lowest frequencies... this is why it is called "subtractive"), then running them through an envelope so the note can be heard on when a key is pressed down and is silenced when the key is released. In the case of WebSynths Microtonal, the sound is then sent through effects like delay, chorus and reverb and out to your speakers.
  • Oscillators are the voices. This synth has 3 of them in the left column. You can change the character of each voice by changing the parameters of them. The 'Shape' menu allows you to choose from different styles of voice for each oscillator. You can turn each voice on or off and mix them together.
  • The filter section applies equalization to your oscillators via the cutoff and emphasis controls. You can change the equalization filter type to 'low pass / high pass' and many more. You can use the LFOs and/or Envelopes to change how the filtration changes over time. An LFO is just a slow oscillator that is uses to automatically move a parameter over time.
  • The amplitude envelope changes how your sound is played, volume-wise, when you hit a note. For example, having a long release time will mean that once you let go of the note you are playing it will tail off until fading out. Having a slow attack will mean that your note will fade in instead of playing at full volume straight away.
  • The effects section allows you to add various effects to your overall sound. You can change the effects, mix them together and toggle them on or off too.
",4),v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://websynths.com/","date_created":"2023-10-27T12:45:54.019Z","title":"Websynths Microtonal","slug":"microtonal","author":"WebSynths","author_link":"https://www.websynths.com/microtonal/","description":"The deepest internet synthesizer","tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"ffc54664-7ba4-4855-a56a-6657a5542a04","id":10,"sort":13,"clicks":172,"public":false,"is_new":false,"stats":[11]},"relativePath":"microtonal/index.md","filePath":"microtonal/index.md","lastUpdated":0}'),m={name:"microtonal/index.md"},k=Object.assign(m,{setup(p){const{params:e,frontmatter:f}=a();return(d,y)=>{const t=o;return c(),s("div",null,[i(t,n(l(r(e))),null,16),u])}}});export{v as __pageData,k as default}; diff --git a/assets/microtonal_index.md.Cxxy5Dbg.lean.js b/assets/microtonal_index.md.B7lUpN1F.lean.js similarity index 94% rename from assets/microtonal_index.md.Cxxy5Dbg.lean.js rename to assets/microtonal_index.md.B7lUpN1F.lean.js index d49631ae..795c0f86 100644 --- a/assets/microtonal_index.md.Cxxy5Dbg.lean.js +++ b/assets/microtonal_index.md.B7lUpN1F.lean.js @@ -1 +1 @@ -import{_ as o}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as s,y as i,R as n,S as l,f as r,B as h,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=h("",4),v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://websynths.com/","date_created":"2023-10-27T12:45:54.019Z","title":"Websynths Microtonal","slug":"microtonal","author":"WebSynths","author_link":"https://www.websynths.com/microtonal/","description":"The deepest internet synthesizer","tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"ffc54664-7ba4-4855-a56a-6657a5542a04","id":10,"sort":12,"clicks":172,"public":false,"is_new":false,"stats":[11]},"relativePath":"microtonal/index.md","filePath":"microtonal/index.md","lastUpdated":0}'),m={name:"microtonal/index.md"},k=Object.assign(m,{setup(p){const{params:e,frontmatter:f}=a();return(d,y)=>{const t=o;return c(),s("div",null,[i(t,n(l(r(e))),null,16),u])}}});export{v as __pageData,k as default}; +import{_ as o}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as s,y as i,R as n,S as l,f as r,B as h,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=h("",4),v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://websynths.com/","date_created":"2023-10-27T12:45:54.019Z","title":"Websynths Microtonal","slug":"microtonal","author":"WebSynths","author_link":"https://www.websynths.com/microtonal/","description":"The deepest internet synthesizer","tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"ffc54664-7ba4-4855-a56a-6657a5542a04","id":10,"sort":13,"clicks":172,"public":false,"is_new":false,"stats":[11]},"relativePath":"microtonal/index.md","filePath":"microtonal/index.md","lastUpdated":0}'),m={name:"microtonal/index.md"},k=Object.assign(m,{setup(p){const{params:e,frontmatter:f}=a();return(d,y)=>{const t=o;return c(),s("div",null,[i(t,n(l(r(e))),null,16),u])}}});export{v as __pageData,k as default}; diff --git a/assets/midi-driven-web-audio_index.md.CDBblW63.js b/assets/midi-driven-web-audio_index.md.DC8t1Cy0.js similarity index 94% rename from assets/midi-driven-web-audio_index.md.CDBblW63.js rename to assets/midi-driven-web-audio_index.md.DC8t1Cy0.js index c2c4af26..aed0e743 100644 --- a/assets/midi-driven-web-audio_index.md.CDBblW63.js +++ b/assets/midi-driven-web-audio_index.md.DC8t1Cy0.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as i,d as s,y as r,R as n,S as o,f as d,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://webaudiodemos.appspot.com/midi-synth/index.html","date_created":"2023-10-27T12:45:53.963Z","title":"MIDI–driven Web Audio","slug":"midi-driven-web-audio","author":"Chris Wilson","author_link":"https://github.com/cwilso","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"0005a0c9-c7e7-4922-a1e5-49d4326d2f77","id":6,"sort":36,"clicks":127,"public":false,"is_new":false,"stats":[30]},"relativePath":"midi-driven-web-audio/index.md","filePath":"midi-driven-web-audio/index.md","lastUpdated":0}'),c={name:"midi-driven-web-audio/index.md"},w=Object.assign(c,{setup(m){const{params:e,frontmatter:p}=i();return(u,_)=>{const a=t;return l(),s("div",null,[r(a,n(o(d(e))),null,16)])}}});export{g as __pageData,w as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as i,d as s,y as r,R as n,S as o,f as d,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://webaudiodemos.appspot.com/midi-synth/index.html","date_created":"2023-10-27T12:45:53.963Z","title":"MIDI–driven Web Audio","slug":"midi-driven-web-audio","author":"Chris Wilson","author_link":"https://github.com/cwilso","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"0005a0c9-c7e7-4922-a1e5-49d4326d2f77","id":6,"sort":37,"clicks":127,"public":false,"is_new":false,"stats":[30]},"relativePath":"midi-driven-web-audio/index.md","filePath":"midi-driven-web-audio/index.md","lastUpdated":0}'),c={name:"midi-driven-web-audio/index.md"},w=Object.assign(c,{setup(m){const{params:e,frontmatter:p}=i();return(u,_)=>{const a=t;return l(),s("div",null,[r(a,n(o(d(e))),null,16)])}}});export{g as __pageData,w as default}; diff --git a/assets/midi-driven-web-audio_index.md.CDBblW63.lean.js b/assets/midi-driven-web-audio_index.md.DC8t1Cy0.lean.js similarity index 94% rename from assets/midi-driven-web-audio_index.md.CDBblW63.lean.js rename to assets/midi-driven-web-audio_index.md.DC8t1Cy0.lean.js index c2c4af26..aed0e743 100644 --- a/assets/midi-driven-web-audio_index.md.CDBblW63.lean.js +++ b/assets/midi-driven-web-audio_index.md.DC8t1Cy0.lean.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as i,d as s,y as r,R as n,S as o,f as d,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://webaudiodemos.appspot.com/midi-synth/index.html","date_created":"2023-10-27T12:45:53.963Z","title":"MIDI–driven Web Audio","slug":"midi-driven-web-audio","author":"Chris Wilson","author_link":"https://github.com/cwilso","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"0005a0c9-c7e7-4922-a1e5-49d4326d2f77","id":6,"sort":36,"clicks":127,"public":false,"is_new":false,"stats":[30]},"relativePath":"midi-driven-web-audio/index.md","filePath":"midi-driven-web-audio/index.md","lastUpdated":0}'),c={name:"midi-driven-web-audio/index.md"},w=Object.assign(c,{setup(m){const{params:e,frontmatter:p}=i();return(u,_)=>{const a=t;return l(),s("div",null,[r(a,n(o(d(e))),null,16)])}}});export{g as __pageData,w as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as i,d as s,y as r,R as n,S as o,f as d,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://webaudiodemos.appspot.com/midi-synth/index.html","date_created":"2023-10-27T12:45:53.963Z","title":"MIDI–driven Web Audio","slug":"midi-driven-web-audio","author":"Chris Wilson","author_link":"https://github.com/cwilso","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"0005a0c9-c7e7-4922-a1e5-49d4326d2f77","id":6,"sort":37,"clicks":127,"public":false,"is_new":false,"stats":[30]},"relativePath":"midi-driven-web-audio/index.md","filePath":"midi-driven-web-audio/index.md","lastUpdated":0}'),c={name:"midi-driven-web-audio/index.md"},w=Object.assign(c,{setup(m){const{params:e,frontmatter:p}=i();return(u,_)=>{const a=t;return l(),s("div",null,[r(a,n(o(d(e))),null,16)])}}});export{g as __pageData,w as default}; diff --git a/assets/mod-synth_index.md.BZ1KX-4J.js b/assets/mod-synth_index.md.BnA2UXRd.js similarity index 93% rename from assets/mod-synth_index.md.BZ1KX-4J.js rename to assets/mod-synth_index.md.BnA2UXRd.js index f1a2b75f..8234ffb2 100644 --- a/assets/mod-synth_index.md.BZ1KX-4J.js +++ b/assets/mod-synth_index.md.BnA2UXRd.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as o,S as i,f as c,b as d}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://mod-synth.io/","date_created":"2023-10-27T12:45:54.052Z","title":"MOD synth","slug":"mod-synth","author":"André Venâncio ","author_link":"https://github.com/andrevenancio","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"31564bf3-fca9-41a4-b390-d78ccd848107","id":12,"sort":42,"clicks":146,"public":false,"is_new":false,"stats":[36]},"relativePath":"mod-synth/index.md","filePath":"mod-synth/index.md","lastUpdated":0}'),l={name:"mod-synth/index.md"},b=Object.assign(l,{setup(m){const{params:t,frontmatter:p}=s();return(_,u)=>{const e=a;return d(),n("div",null,[r(e,o(i(c(t))),null,16)])}}});export{v as __pageData,b as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as o,S as i,f as c,b as d}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://mod-synth.io/","date_created":"2023-10-27T12:45:54.052Z","title":"MOD synth","slug":"mod-synth","author":"André Venâncio ","author_link":"https://github.com/andrevenancio","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"31564bf3-fca9-41a4-b390-d78ccd848107","id":12,"sort":43,"clicks":146,"public":false,"is_new":false,"stats":[36]},"relativePath":"mod-synth/index.md","filePath":"mod-synth/index.md","lastUpdated":0}'),l={name:"mod-synth/index.md"},b=Object.assign(l,{setup(m){const{params:t,frontmatter:p}=s();return(_,u)=>{const e=a;return d(),n("div",null,[r(e,o(i(c(t))),null,16)])}}});export{v as __pageData,b as default}; diff --git a/assets/mod-synth_index.md.BZ1KX-4J.lean.js b/assets/mod-synth_index.md.BnA2UXRd.lean.js similarity index 93% rename from assets/mod-synth_index.md.BZ1KX-4J.lean.js rename to assets/mod-synth_index.md.BnA2UXRd.lean.js index f1a2b75f..8234ffb2 100644 --- a/assets/mod-synth_index.md.BZ1KX-4J.lean.js +++ b/assets/mod-synth_index.md.BnA2UXRd.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as o,S as i,f as c,b as d}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://mod-synth.io/","date_created":"2023-10-27T12:45:54.052Z","title":"MOD synth","slug":"mod-synth","author":"André Venâncio ","author_link":"https://github.com/andrevenancio","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"31564bf3-fca9-41a4-b390-d78ccd848107","id":12,"sort":42,"clicks":146,"public":false,"is_new":false,"stats":[36]},"relativePath":"mod-synth/index.md","filePath":"mod-synth/index.md","lastUpdated":0}'),l={name:"mod-synth/index.md"},b=Object.assign(l,{setup(m){const{params:t,frontmatter:p}=s();return(_,u)=>{const e=a;return d(),n("div",null,[r(e,o(i(c(t))),null,16)])}}});export{v as __pageData,b as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as o,S as i,f as c,b as d}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://mod-synth.io/","date_created":"2023-10-27T12:45:54.052Z","title":"MOD synth","slug":"mod-synth","author":"André Venâncio ","author_link":"https://github.com/andrevenancio","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"31564bf3-fca9-41a4-b390-d78ccd848107","id":12,"sort":43,"clicks":146,"public":false,"is_new":false,"stats":[36]},"relativePath":"mod-synth/index.md","filePath":"mod-synth/index.md","lastUpdated":0}'),l={name:"mod-synth/index.md"},b=Object.assign(l,{setup(m){const{params:t,frontmatter:p}=s();return(_,u)=>{const e=a;return d(),n("div",null,[r(e,o(i(c(t))),null,16)])}}});export{v as __pageData,b as default}; diff --git a/assets/multiplayer-orchestra_index.md.mwGnzPfU.js b/assets/multiplayer-orchestra_index.md.B7SuOL5G.js similarity index 97% rename from assets/multiplayer-orchestra_index.md.mwGnzPfU.js rename to assets/multiplayer-orchestra_index.md.B7SuOL5G.js index d16b576d..d5b13860 100644 --- a/assets/multiplayer-orchestra_index.md.mwGnzPfU.js +++ b/assets/multiplayer-orchestra_index.md.B7SuOL5G.js @@ -1 +1 @@ -import{_ as r}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as o,y as s,R as i,S as l,f as n,B as c,b as m}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=c('

Multiplayer Orchestra (https://www.multiplayer-orchestra.com/) is a web application that allows you to virtually collaborate with musicians from around the world in real-time. Here are some key features:

  • Large instrument selection: Choose from over 400 instruments, including pianos, guitars, drums, and orchestral instruments.
  • Real-time collaboration: Play music simultaneously with other users, creating a virtual orchestra.
  • Public and private rooms: Join public rooms to jam with others or create private rooms with a password for specific collaborations.
  • Contests: Participate in contests to win prizes like Amazon gift cards by recording solo performances.

It's important to note that the website seems to be in beta based on the version information listed (Beta 0.30).

',3),v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://multiplayer-orchestra.com","date_created":"2024-04-23T08:07:22.796Z","title":"Multiplayer Orchestra","slug":"multiplayer-orchestra","author":"Mutli_Orchestra","author_link":"https://twitter.com/Mutli_Orchestra","description":"Play in real time with people from all around the world with more than 400 instruments.","tags":["Poly","MIDI","Keyboard","Collaborative","Online"],"archive_link":null,"archive":false,"iframe":true,"cover":"d743d9ea-d73f-4593-a70e-58a3e4deaa1b","id":55,"sort":17,"clicks":5,"public":false,"is_new":true,"stats":[47]},"relativePath":"multiplayer-orchestra/index.md","filePath":"multiplayer-orchestra/index.md","lastUpdated":0}'),u={name:"multiplayer-orchestra/index.md"},P=Object.assign(u,{setup(h){const{params:t,frontmatter:d}=a();return(_,f)=>{const e=r;return m(),o("div",null,[s(e,i(l(n(t))),null,16),p])}}});export{v as __pageData,P as default}; +import{_ as r}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as o,y as s,R as i,S as l,f as n,B as c,b as m}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=c('

Multiplayer Orchestra (https://www.multiplayer-orchestra.com/) is a web application that allows you to virtually collaborate with musicians from around the world in real-time. Here are some key features:

  • Large instrument selection: Choose from over 400 instruments, including pianos, guitars, drums, and orchestral instruments.
  • Real-time collaboration: Play music simultaneously with other users, creating a virtual orchestra.
  • Public and private rooms: Join public rooms to jam with others or create private rooms with a password for specific collaborations.
  • Contests: Participate in contests to win prizes like Amazon gift cards by recording solo performances.

It's important to note that the website seems to be in beta based on the version information listed (Beta 0.30).

',3),v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://multiplayer-orchestra.com","date_created":"2024-04-23T08:07:22.796Z","title":"Multiplayer Orchestra","slug":"multiplayer-orchestra","author":"Mutli_Orchestra","author_link":"https://twitter.com/Mutli_Orchestra","description":"Play in real time with people from all around the world with more than 400 instruments.","tags":["Poly","MIDI","Keyboard","Collaborative","Online"],"archive_link":null,"archive":false,"iframe":true,"cover":"d743d9ea-d73f-4593-a70e-58a3e4deaa1b","id":55,"sort":18,"clicks":5,"public":false,"is_new":true,"stats":[47]},"relativePath":"multiplayer-orchestra/index.md","filePath":"multiplayer-orchestra/index.md","lastUpdated":0}'),u={name:"multiplayer-orchestra/index.md"},P=Object.assign(u,{setup(h){const{params:t,frontmatter:d}=a();return(_,f)=>{const e=r;return m(),o("div",null,[s(e,i(l(n(t))),null,16),p])}}});export{v as __pageData,P as default}; diff --git a/assets/multiplayer-orchestra_index.md.mwGnzPfU.lean.js b/assets/multiplayer-orchestra_index.md.B7SuOL5G.lean.js similarity index 94% rename from assets/multiplayer-orchestra_index.md.mwGnzPfU.lean.js rename to assets/multiplayer-orchestra_index.md.B7SuOL5G.lean.js index bdec9eaa..d380cb22 100644 --- a/assets/multiplayer-orchestra_index.md.mwGnzPfU.lean.js +++ b/assets/multiplayer-orchestra_index.md.B7SuOL5G.lean.js @@ -1 +1 @@ -import{_ as r}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as o,y as s,R as i,S as l,f as n,B as c,b as m}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=c("",3),v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://multiplayer-orchestra.com","date_created":"2024-04-23T08:07:22.796Z","title":"Multiplayer Orchestra","slug":"multiplayer-orchestra","author":"Mutli_Orchestra","author_link":"https://twitter.com/Mutli_Orchestra","description":"Play in real time with people from all around the world with more than 400 instruments.","tags":["Poly","MIDI","Keyboard","Collaborative","Online"],"archive_link":null,"archive":false,"iframe":true,"cover":"d743d9ea-d73f-4593-a70e-58a3e4deaa1b","id":55,"sort":17,"clicks":5,"public":false,"is_new":true,"stats":[47]},"relativePath":"multiplayer-orchestra/index.md","filePath":"multiplayer-orchestra/index.md","lastUpdated":0}'),u={name:"multiplayer-orchestra/index.md"},P=Object.assign(u,{setup(h){const{params:t,frontmatter:d}=a();return(_,f)=>{const e=r;return m(),o("div",null,[s(e,i(l(n(t))),null,16),p])}}});export{v as __pageData,P as default}; +import{_ as r}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as o,y as s,R as i,S as l,f as n,B as c,b as m}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=c("",3),v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://multiplayer-orchestra.com","date_created":"2024-04-23T08:07:22.796Z","title":"Multiplayer Orchestra","slug":"multiplayer-orchestra","author":"Mutli_Orchestra","author_link":"https://twitter.com/Mutli_Orchestra","description":"Play in real time with people from all around the world with more than 400 instruments.","tags":["Poly","MIDI","Keyboard","Collaborative","Online"],"archive_link":null,"archive":false,"iframe":true,"cover":"d743d9ea-d73f-4593-a70e-58a3e4deaa1b","id":55,"sort":18,"clicks":5,"public":false,"is_new":true,"stats":[47]},"relativePath":"multiplayer-orchestra/index.md","filePath":"multiplayer-orchestra/index.md","lastUpdated":0}'),u={name:"multiplayer-orchestra/index.md"},P=Object.assign(u,{setup(h){const{params:t,frontmatter:d}=a();return(_,f)=>{const e=r;return m(),o("div",null,[s(e,i(l(n(t))),null,16),p])}}});export{v as __pageData,P as default}; diff --git a/assets/multiplayer-piano_index.md.CRuG6YOY.js b/assets/multiplayer-piano_index.md.BRrIXCOO.js similarity index 94% rename from assets/multiplayer-piano_index.md.CRuG6YOY.js rename to assets/multiplayer-piano_index.md.BRrIXCOO.js index ecf6f552..95ed41fc 100644 --- a/assets/multiplayer-piano_index.md.CRuG6YOY.js +++ b/assets/multiplayer-piano_index.md.BRrIXCOO.js @@ -1 +1 @@ -import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as i,y as n,R as o,S as l,f as s,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.multiplayerpiano.org/","date_created":"2023-11-26T08:06:18.875Z","title":"Multiplayer Piano","slug":"multiplayer-piano","author":"Brandon Lockaby","author_link":"https://github.com/Multiplayer-Piano","description":"Online piano, that can be played by any site visitor together in a virtual room or alone.","tags":["Piano","MIDI","Poly","Multiplayer"],"archive_link":null,"archive":false,"iframe":true,"cover":"9c10771b-e38f-469f-b58b-c9e6bb91a072","id":49,"sort":35,"clicks":4,"public":false,"is_new":false,"stats":[29]},"relativePath":"multiplayer-piano/index.md","filePath":"multiplayer-piano/index.md","lastUpdated":0}'),c={name:"multiplayer-piano/index.md"},P=Object.assign(c,{setup(m){const{params:a,frontmatter:u}=r();return(d,_)=>{const t=e;return p(),i("div",null,[n(t,o(l(s(a))),null,16)])}}});export{g as __pageData,P as default}; +import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as i,y as n,R as o,S as l,f as s,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.multiplayerpiano.org/","date_created":"2023-11-26T08:06:18.875Z","title":"Multiplayer Piano","slug":"multiplayer-piano","author":"Brandon Lockaby","author_link":"https://github.com/Multiplayer-Piano","description":"Online piano, that can be played by any site visitor together in a virtual room or alone.","tags":["Piano","MIDI","Poly","Multiplayer"],"archive_link":null,"archive":false,"iframe":true,"cover":"9c10771b-e38f-469f-b58b-c9e6bb91a072","id":49,"sort":36,"clicks":4,"public":false,"is_new":false,"stats":[29]},"relativePath":"multiplayer-piano/index.md","filePath":"multiplayer-piano/index.md","lastUpdated":0}'),c={name:"multiplayer-piano/index.md"},P=Object.assign(c,{setup(m){const{params:a,frontmatter:u}=r();return(d,_)=>{const t=e;return p(),i("div",null,[n(t,o(l(s(a))),null,16)])}}});export{g as __pageData,P as default}; diff --git a/assets/multiplayer-piano_index.md.CRuG6YOY.lean.js b/assets/multiplayer-piano_index.md.BRrIXCOO.lean.js similarity index 94% rename from assets/multiplayer-piano_index.md.CRuG6YOY.lean.js rename to assets/multiplayer-piano_index.md.BRrIXCOO.lean.js index ecf6f552..95ed41fc 100644 --- a/assets/multiplayer-piano_index.md.CRuG6YOY.lean.js +++ b/assets/multiplayer-piano_index.md.BRrIXCOO.lean.js @@ -1 +1 @@ -import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as i,y as n,R as o,S as l,f as s,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.multiplayerpiano.org/","date_created":"2023-11-26T08:06:18.875Z","title":"Multiplayer Piano","slug":"multiplayer-piano","author":"Brandon Lockaby","author_link":"https://github.com/Multiplayer-Piano","description":"Online piano, that can be played by any site visitor together in a virtual room or alone.","tags":["Piano","MIDI","Poly","Multiplayer"],"archive_link":null,"archive":false,"iframe":true,"cover":"9c10771b-e38f-469f-b58b-c9e6bb91a072","id":49,"sort":35,"clicks":4,"public":false,"is_new":false,"stats":[29]},"relativePath":"multiplayer-piano/index.md","filePath":"multiplayer-piano/index.md","lastUpdated":0}'),c={name:"multiplayer-piano/index.md"},P=Object.assign(c,{setup(m){const{params:a,frontmatter:u}=r();return(d,_)=>{const t=e;return p(),i("div",null,[n(t,o(l(s(a))),null,16)])}}});export{g as __pageData,P as default}; +import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as i,y as n,R as o,S as l,f as s,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.multiplayerpiano.org/","date_created":"2023-11-26T08:06:18.875Z","title":"Multiplayer Piano","slug":"multiplayer-piano","author":"Brandon Lockaby","author_link":"https://github.com/Multiplayer-Piano","description":"Online piano, that can be played by any site visitor together in a virtual room or alone.","tags":["Piano","MIDI","Poly","Multiplayer"],"archive_link":null,"archive":false,"iframe":true,"cover":"9c10771b-e38f-469f-b58b-c9e6bb91a072","id":49,"sort":36,"clicks":4,"public":false,"is_new":false,"stats":[29]},"relativePath":"multiplayer-piano/index.md","filePath":"multiplayer-piano/index.md","lastUpdated":0}'),c={name:"multiplayer-piano/index.md"},P=Object.assign(c,{setup(m){const{params:a,frontmatter:u}=r();return(d,_)=>{const t=e;return p(),i("div",null,[n(t,o(l(s(a))),null,16)])}}});export{g as __pageData,P as default}; diff --git a/assets/note-sculptor_index.md.N1s4hdB4.js b/assets/note-sculptor_index.md.DL-7oPQO.js similarity index 93% rename from assets/note-sculptor_index.md.N1s4hdB4.js rename to assets/note-sculptor_index.md.DL-7oPQO.js index 8172e218..eb8001ad 100644 --- a/assets/note-sculptor_index.md.N1s4hdB4.js +++ b/assets/note-sculptor_index.md.DL-7oPQO.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as n,S as l,f as c,b as i}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"http://www.noisesculptor.com/","date_created":"2023-10-27T12:45:54.104Z","title":"Note Sculptor","slug":"note-sculptor","author":"Ruin Technology","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"a01968d1-3f88-4522-9752-1c33d10d90d9","id":15,"sort":44,"clicks":129,"public":false,"is_new":false,"stats":[38]},"relativePath":"note-sculptor/index.md","filePath":"note-sculptor/index.md","lastUpdated":0}'),p={name:"note-sculptor/index.md"},k=Object.assign(p,{setup(u){const{params:t,frontmatter:d}=s();return(m,_)=>{const e=a;return i(),r("div",null,[o(e,n(l(c(t))),null,16)])}}});export{y as __pageData,k as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as n,S as l,f as c,b as i}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"http://www.noisesculptor.com/","date_created":"2023-10-27T12:45:54.104Z","title":"Note Sculptor","slug":"note-sculptor","author":"Ruin Technology","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"a01968d1-3f88-4522-9752-1c33d10d90d9","id":15,"sort":45,"clicks":129,"public":false,"is_new":false,"stats":[38]},"relativePath":"note-sculptor/index.md","filePath":"note-sculptor/index.md","lastUpdated":0}'),p={name:"note-sculptor/index.md"},k=Object.assign(p,{setup(u){const{params:t,frontmatter:d}=s();return(m,_)=>{const e=a;return i(),r("div",null,[o(e,n(l(c(t))),null,16)])}}});export{y as __pageData,k as default}; diff --git a/assets/note-sculptor_index.md.N1s4hdB4.lean.js b/assets/note-sculptor_index.md.DL-7oPQO.lean.js similarity index 93% rename from assets/note-sculptor_index.md.N1s4hdB4.lean.js rename to assets/note-sculptor_index.md.DL-7oPQO.lean.js index 8172e218..eb8001ad 100644 --- a/assets/note-sculptor_index.md.N1s4hdB4.lean.js +++ b/assets/note-sculptor_index.md.DL-7oPQO.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as n,S as l,f as c,b as i}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"http://www.noisesculptor.com/","date_created":"2023-10-27T12:45:54.104Z","title":"Note Sculptor","slug":"note-sculptor","author":"Ruin Technology","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"a01968d1-3f88-4522-9752-1c33d10d90d9","id":15,"sort":44,"clicks":129,"public":false,"is_new":false,"stats":[38]},"relativePath":"note-sculptor/index.md","filePath":"note-sculptor/index.md","lastUpdated":0}'),p={name:"note-sculptor/index.md"},k=Object.assign(p,{setup(u){const{params:t,frontmatter:d}=s();return(m,_)=>{const e=a;return i(),r("div",null,[o(e,n(l(c(t))),null,16)])}}});export{y as __pageData,k as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as o,R as n,S as l,f as c,b as i}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"http://www.noisesculptor.com/","date_created":"2023-10-27T12:45:54.104Z","title":"Note Sculptor","slug":"note-sculptor","author":"Ruin Technology","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"iframe":false,"cover":"a01968d1-3f88-4522-9752-1c33d10d90d9","id":15,"sort":45,"clicks":129,"public":false,"is_new":false,"stats":[38]},"relativePath":"note-sculptor/index.md","filePath":"note-sculptor/index.md","lastUpdated":0}'),p={name:"note-sculptor/index.md"},k=Object.assign(p,{setup(u){const{params:t,frontmatter:d}=s();return(m,_)=>{const e=a;return i(),r("div",null,[o(e,n(l(c(t))),null,16)])}}});export{y as __pageData,k as default}; diff --git a/assets/nv-1_index.md.CEKUlaxD.js b/assets/nv-1_index.md.Bkxbwvav.js similarity index 93% rename from assets/nv-1_index.md.CEKUlaxD.js rename to assets/nv-1_index.md.Bkxbwvav.js index 97ed6776..1dbfda27 100644 --- a/assets/nv-1_index.md.CEKUlaxD.js +++ b/assets/nv-1_index.md.Bkxbwvav.js @@ -1 +1 @@ -import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as n,R as o,S as i,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://nicroto.github.io/viktor/","date_created":"2023-10-27T12:45:54.388Z","title":"Viktor NV-1","slug":"nv-1","author":"Nikolay Tsenkov ","author_link":"https://github.com/nicroto","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"ff3082ad-3c38-4880-ab23-35711c97ea71","id":27,"sort":26,"clicks":496,"public":false,"is_new":false,"stats":[20]},"relativePath":"nv-1/index.md","filePath":"nv-1/index.md","lastUpdated":0}'),p={name:"nv-1/index.md"},b=Object.assign(p,{setup(d){const{params:t,frontmatter:m}=r();return(u,_)=>{const a=e;return l(),s("div",null,[n(a,o(i(c(t))),null,16)])}}});export{k as __pageData,b as default}; +import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as n,R as o,S as i,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://nicroto.github.io/viktor/","date_created":"2023-10-27T12:45:54.388Z","title":"Viktor NV-1","slug":"nv-1","author":"Nikolay Tsenkov ","author_link":"https://github.com/nicroto","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"ff3082ad-3c38-4880-ab23-35711c97ea71","id":27,"sort":27,"clicks":496,"public":false,"is_new":false,"stats":[20]},"relativePath":"nv-1/index.md","filePath":"nv-1/index.md","lastUpdated":0}'),p={name:"nv-1/index.md"},b=Object.assign(p,{setup(d){const{params:t,frontmatter:m}=r();return(u,_)=>{const a=e;return l(),s("div",null,[n(a,o(i(c(t))),null,16)])}}});export{k as __pageData,b as default}; diff --git a/assets/nv-1_index.md.CEKUlaxD.lean.js b/assets/nv-1_index.md.Bkxbwvav.lean.js similarity index 93% rename from assets/nv-1_index.md.CEKUlaxD.lean.js rename to assets/nv-1_index.md.Bkxbwvav.lean.js index 97ed6776..1dbfda27 100644 --- a/assets/nv-1_index.md.CEKUlaxD.lean.js +++ b/assets/nv-1_index.md.Bkxbwvav.lean.js @@ -1 +1 @@ -import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as n,R as o,S as i,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://nicroto.github.io/viktor/","date_created":"2023-10-27T12:45:54.388Z","title":"Viktor NV-1","slug":"nv-1","author":"Nikolay Tsenkov ","author_link":"https://github.com/nicroto","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"ff3082ad-3c38-4880-ab23-35711c97ea71","id":27,"sort":26,"clicks":496,"public":false,"is_new":false,"stats":[20]},"relativePath":"nv-1/index.md","filePath":"nv-1/index.md","lastUpdated":0}'),p={name:"nv-1/index.md"},b=Object.assign(p,{setup(d){const{params:t,frontmatter:m}=r();return(u,_)=>{const a=e;return l(),s("div",null,[n(a,o(i(c(t))),null,16)])}}});export{k as __pageData,b as default}; +import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as n,R as o,S as i,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://nicroto.github.io/viktor/","date_created":"2023-10-27T12:45:54.388Z","title":"Viktor NV-1","slug":"nv-1","author":"Nikolay Tsenkov ","author_link":"https://github.com/nicroto","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"ff3082ad-3c38-4880-ab23-35711c97ea71","id":27,"sort":27,"clicks":496,"public":false,"is_new":false,"stats":[20]},"relativePath":"nv-1/index.md","filePath":"nv-1/index.md","lastUpdated":0}'),p={name:"nv-1/index.md"},b=Object.assign(p,{setup(d){const{params:t,frontmatter:m}=r();return(u,_)=>{const a=e;return l(),s("div",null,[n(a,o(i(c(t))),null,16)])}}});export{k as __pageData,b as default}; diff --git a/assets/olif-sy-1-k_index.md.D1hy3p6f.js b/assets/olif-sy-1-k_index.md.BTLPOoZM.js similarity index 93% rename from assets/olif-sy-1-k_index.md.D1hy3p6f.js rename to assets/olif-sy-1-k_index.md.BTLPOoZM.js index b2c0e8e9..dbe3f37f 100644 --- a/assets/olif-sy-1-k_index.md.D1hy3p6f.js +++ b/assets/olif-sy-1-k_index.md.BTLPOoZM.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as i,R as l,S as n,f as o,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://perso.numericable.fr/olivier.friker/synth/O3-synth%20V1.3.html","date_created":"2023-10-27T12:45:54.069Z","title":"OLIF SY1K","slug":"olif-sy-1-k","author":"Olivier Friker","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"3b9a5e11-3de3-46fe-9cdc-e1668b152f31","id":13,"sort":43,"clicks":145,"public":false,"is_new":false,"stats":[37]},"relativePath":"olif-sy-1-k/index.md","filePath":"olif-sy-1-k/index.md","lastUpdated":0}'),p={name:"olif-sy-1-k/index.md"},g=Object.assign(p,{setup(f){const{params:e,frontmatter:d}=r();return(m,u)=>{const t=a;return c(),s("div",null,[i(t,l(n(o(e))),null,16)])}}});export{v as __pageData,g as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as i,R as l,S as n,f as o,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://perso.numericable.fr/olivier.friker/synth/O3-synth%20V1.3.html","date_created":"2023-10-27T12:45:54.069Z","title":"OLIF SY1K","slug":"olif-sy-1-k","author":"Olivier Friker","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"3b9a5e11-3de3-46fe-9cdc-e1668b152f31","id":13,"sort":44,"clicks":145,"public":false,"is_new":false,"stats":[37]},"relativePath":"olif-sy-1-k/index.md","filePath":"olif-sy-1-k/index.md","lastUpdated":0}'),p={name:"olif-sy-1-k/index.md"},g=Object.assign(p,{setup(f){const{params:e,frontmatter:d}=r();return(m,u)=>{const t=a;return c(),s("div",null,[i(t,l(n(o(e))),null,16)])}}});export{v as __pageData,g as default}; diff --git a/assets/olif-sy-1-k_index.md.D1hy3p6f.lean.js b/assets/olif-sy-1-k_index.md.BTLPOoZM.lean.js similarity index 93% rename from assets/olif-sy-1-k_index.md.D1hy3p6f.lean.js rename to assets/olif-sy-1-k_index.md.BTLPOoZM.lean.js index b2c0e8e9..dbe3f37f 100644 --- a/assets/olif-sy-1-k_index.md.D1hy3p6f.lean.js +++ b/assets/olif-sy-1-k_index.md.BTLPOoZM.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as i,R as l,S as n,f as o,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://perso.numericable.fr/olivier.friker/synth/O3-synth%20V1.3.html","date_created":"2023-10-27T12:45:54.069Z","title":"OLIF SY1K","slug":"olif-sy-1-k","author":"Olivier Friker","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"3b9a5e11-3de3-46fe-9cdc-e1668b152f31","id":13,"sort":43,"clicks":145,"public":false,"is_new":false,"stats":[37]},"relativePath":"olif-sy-1-k/index.md","filePath":"olif-sy-1-k/index.md","lastUpdated":0}'),p={name:"olif-sy-1-k/index.md"},g=Object.assign(p,{setup(f){const{params:e,frontmatter:d}=r();return(m,u)=>{const t=a;return c(),s("div",null,[i(t,l(n(o(e))),null,16)])}}});export{v as __pageData,g as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as i,R as l,S as n,f as o,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://perso.numericable.fr/olivier.friker/synth/O3-synth%20V1.3.html","date_created":"2023-10-27T12:45:54.069Z","title":"OLIF SY1K","slug":"olif-sy-1-k","author":"Olivier Friker","author_link":null,"description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"3b9a5e11-3de3-46fe-9cdc-e1668b152f31","id":13,"sort":44,"clicks":145,"public":false,"is_new":false,"stats":[37]},"relativePath":"olif-sy-1-k/index.md","filePath":"olif-sy-1-k/index.md","lastUpdated":0}'),p={name:"olif-sy-1-k/index.md"},g=Object.assign(p,{setup(f){const{params:e,frontmatter:d}=r();return(m,u)=>{const t=a;return c(),s("div",null,[i(t,l(n(o(e))),null,16)])}}});export{v as __pageData,g as default}; diff --git a/assets/omni_index.md.CtwFvPgq.js b/assets/omni_index.md.B347m62P.js similarity index 93% rename from assets/omni_index.md.CtwFvPgq.js rename to assets/omni_index.md.B347m62P.js index 8e70cef1..acd2016b 100644 --- a/assets/omni_index.md.CtwFvPgq.js +++ b/assets/omni_index.md.B347m62P.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as i,S as o,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://femurdesign.com/omni/","date_created":"2023-10-27T12:45:54.224Z","title":"Omni","slug":"omni","author":"Luke Phillips","author_link":"https://femurdesign.com/","description":null,"tags":["polyphonic","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"fbb1364f-53cf-4f71-8f29-d7f572308e78","id":20,"sort":30,"clicks":210,"public":false,"is_new":false,"stats":[24]},"relativePath":"omni/index.md","filePath":"omni/index.md","lastUpdated":0}'),m={name:"omni/index.md"},b=Object.assign(m,{setup(p){const{params:e,frontmatter:d}=s();return(f,u)=>{const t=a;return l(),r("div",null,[n(t,i(o(c(e))),null,16)])}}});export{y as __pageData,b as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as i,S as o,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://femurdesign.com/omni/","date_created":"2023-10-27T12:45:54.224Z","title":"Omni","slug":"omni","author":"Luke Phillips","author_link":"https://femurdesign.com/","description":null,"tags":["polyphonic","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"fbb1364f-53cf-4f71-8f29-d7f572308e78","id":20,"sort":31,"clicks":210,"public":false,"is_new":false,"stats":[24]},"relativePath":"omni/index.md","filePath":"omni/index.md","lastUpdated":0}'),m={name:"omni/index.md"},b=Object.assign(m,{setup(p){const{params:e,frontmatter:d}=s();return(f,u)=>{const t=a;return l(),r("div",null,[n(t,i(o(c(e))),null,16)])}}});export{y as __pageData,b as default}; diff --git a/assets/omni_index.md.CtwFvPgq.lean.js b/assets/omni_index.md.B347m62P.lean.js similarity index 93% rename from assets/omni_index.md.CtwFvPgq.lean.js rename to assets/omni_index.md.B347m62P.lean.js index 8e70cef1..acd2016b 100644 --- a/assets/omni_index.md.CtwFvPgq.lean.js +++ b/assets/omni_index.md.B347m62P.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as i,S as o,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://femurdesign.com/omni/","date_created":"2023-10-27T12:45:54.224Z","title":"Omni","slug":"omni","author":"Luke Phillips","author_link":"https://femurdesign.com/","description":null,"tags":["polyphonic","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"fbb1364f-53cf-4f71-8f29-d7f572308e78","id":20,"sort":30,"clicks":210,"public":false,"is_new":false,"stats":[24]},"relativePath":"omni/index.md","filePath":"omni/index.md","lastUpdated":0}'),m={name:"omni/index.md"},b=Object.assign(m,{setup(p){const{params:e,frontmatter:d}=s();return(f,u)=>{const t=a;return l(),r("div",null,[n(t,i(o(c(e))),null,16)])}}});export{y as __pageData,b as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as i,S as o,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://femurdesign.com/omni/","date_created":"2023-10-27T12:45:54.224Z","title":"Omni","slug":"omni","author":"Luke Phillips","author_link":"https://femurdesign.com/","description":null,"tags":["polyphonic","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"fbb1364f-53cf-4f71-8f29-d7f572308e78","id":20,"sort":31,"clicks":210,"public":false,"is_new":false,"stats":[24]},"relativePath":"omni/index.md","filePath":"omni/index.md","lastUpdated":0}'),m={name:"omni/index.md"},b=Object.assign(m,{setup(p){const{params:e,frontmatter:d}=s();return(f,u)=>{const t=a;return l(),r("div",null,[n(t,i(o(c(e))),null,16)])}}});export{y as __pageData,b as default}; diff --git a/assets/online-sequencer_index.md.C3sYy1nA.js b/assets/online-sequencer_index.md.bzIdvwuX.js similarity index 99% rename from assets/online-sequencer_index.md.C3sYy1nA.js rename to assets/online-sequencer_index.md.bzIdvwuX.js index 776ea50a..092ecb89 100644 --- a/assets/online-sequencer_index.md.C3sYy1nA.js +++ b/assets/online-sequencer_index.md.bzIdvwuX.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as i,R as o,S as r,f as l,B as u,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const d=u('

Online Sequencer is a web-based music sequencer that allows users to create music saved online, or on their computer. The piano roll is essential to the sequencer, which is on the left of the screen, with 72 notes from C2-B7 (labelled differently from a piano, C2 on the sequencer corresponds to C1 on a piano). In addition to several parameters which can be modified to change the sound of the music, additional functionality can be accessed via the console.

Upon opening the site, users can begin composing and "drawing" notes on the grid, with the default instrument being Electric Piano. By default, a sequence's time signature is set to 4/4, and the grid spacing is set to 1/4 (16 notes per measure). The note lengths can be adjusted by dragging the dark tab on the right of each note, and precision can be afforded by changing the 'Grid' option to other note divisions.

History

Online Sequencer was created on January 2, 2013 by Jacob Morgan during a break at Georgia Tech.

Beginning in the fall of 2013, accounts were available but were separate from the music portion of the site. They were only used in the forum and the website chat.

In 2015, accounts were linked to the main website and allowed songs to be saved under someone's username.

The World Update in 2018 added several new instruments and changed the landscape of sound design on the site. The "World Update Contest" was held for the update.

Starting in late 2020, OS began to receive a variety of updates which vastly improved the functionality of the site. These updates introduced features like custom grid sizes, automation with markers, extra reverb options, detune, and distortion. In 2021, the "Space Race" contest was held, as to see who could work best with the changes.

In late 2022, newer, higher-quality instruments were added. Some of the instruments, such as Electric Piano, Grand Piano, Violin, and Cello got an updated sustained version, while the original versions still exist under the "classic" designation.

Currently, the 10-Year Anniversary Contest is being held.

Features

Within the editor, numerous user interface features allow for various changes which will impact the individual sequence on that page.

Basic features

UI features include:

  • Tempo (10-999 BPM)
  • Measure count or Time count (MM: SS.ssss)
  • Time signature (2/4, 3/4, 4/4, 5/4)
  • Grid size (This correlates to note divisions; 1/16, 1/12, 1/8, 1/6, 1/4, 1/3, 1/2)
  • Auto Scroll (Fast, Smooth, Off; how the sequencer displays measures off-screen as a sequence plays)
  • Add an Audio Track (This won't be saved to the sequence but will play alongside it for ease of transcription)
  • Title input
  • Draw, select, and erase
  • Instrument dropdown, instrument options, and select instrument (selects all notes of the current instrument)
  • Select all, Cut, Copy, and Paste
  • Zoom options
  • Export options
  • Help
  • Fullscreen
  • Tooltips

Advanced features

Users can access more advanced features for use in their sequences by clicking the advanced tab on the instrument they wish to change. This menu contains options to change volume, panning, detune (-1200 to +1200), reverb, distortion, and an equalizer. This array lets users configure specific instruments to create specific sounds, and textures, or to accompany other instruments as a layer or development of the original sound.

OS also allows for commands to be entered in the browser console to manipulate different options in specific ways, such as setting custom to detune values (0-infinity), custom grid sizes, note divisions, and sequence ID amongst other things. These options bring OS closer to that of classic Digital Audio Workstations (DAWs) but are still limited in terms of accessibility and availability.

Browser and device support

Online Sequencer supports Chrome and other Chromium-based browsers, such as Microsoft Edge, Opera, and Brave. Firefox is also supported, but often with limited functionality. Safari and Internet Explorer are not supported, due to engine issues.

Other mobile browsers support sequence playback, but not editing. However, iOS users have the same problem with WebKit on macOS. However, unlike in macOS, all browsers (even Chromium-based browsers) use WebKit as the engine for iOS due to Apple prohibiting other engines for security reasons; iOS does not support Online Sequencer, other than chat and forums.

The website's user interface is formatted for proper use on desktops, but some pages such as the chat page, playlists, and forums should be formatted well on mobile devices.

',22),y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://onlinesequencer.net/","date_created":"2023-10-27T12:45:54.565Z","title":"Online sequencer","slug":"online-sequencer","author":"Jacob Morgan and George Burdell","author_link":"https://github.com/buildist","description":null,"tags":["sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"ec08ba72-8157-4415-8b34-aea1fe686e09","id":36,"sort":28,"clicks":321,"public":false,"is_new":false,"stats":[22]},"relativePath":"online-sequencer/index.md","filePath":"online-sequencer/index.md","lastUpdated":0}'),h={name:"online-sequencer/index.md"},_=Object.assign(h,{setup(p){const{params:e,frontmatter:m}=s();return(f,b)=>{const t=a;return c(),n("div",null,[i(t,o(r(l(e))),null,16),d])}}});export{y as __pageData,_ as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as i,R as o,S as r,f as l,B as u,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const d=u('

Online Sequencer is a web-based music sequencer that allows users to create music saved online, or on their computer. The piano roll is essential to the sequencer, which is on the left of the screen, with 72 notes from C2-B7 (labelled differently from a piano, C2 on the sequencer corresponds to C1 on a piano). In addition to several parameters which can be modified to change the sound of the music, additional functionality can be accessed via the console.

Upon opening the site, users can begin composing and "drawing" notes on the grid, with the default instrument being Electric Piano. By default, a sequence's time signature is set to 4/4, and the grid spacing is set to 1/4 (16 notes per measure). The note lengths can be adjusted by dragging the dark tab on the right of each note, and precision can be afforded by changing the 'Grid' option to other note divisions.

History

Online Sequencer was created on January 2, 2013 by Jacob Morgan during a break at Georgia Tech.

Beginning in the fall of 2013, accounts were available but were separate from the music portion of the site. They were only used in the forum and the website chat.

In 2015, accounts were linked to the main website and allowed songs to be saved under someone's username.

The World Update in 2018 added several new instruments and changed the landscape of sound design on the site. The "World Update Contest" was held for the update.

Starting in late 2020, OS began to receive a variety of updates which vastly improved the functionality of the site. These updates introduced features like custom grid sizes, automation with markers, extra reverb options, detune, and distortion. In 2021, the "Space Race" contest was held, as to see who could work best with the changes.

In late 2022, newer, higher-quality instruments were added. Some of the instruments, such as Electric Piano, Grand Piano, Violin, and Cello got an updated sustained version, while the original versions still exist under the "classic" designation.

Currently, the 10-Year Anniversary Contest is being held.

Features

Within the editor, numerous user interface features allow for various changes which will impact the individual sequence on that page.

Basic features

UI features include:

  • Tempo (10-999 BPM)
  • Measure count or Time count (MM: SS.ssss)
  • Time signature (2/4, 3/4, 4/4, 5/4)
  • Grid size (This correlates to note divisions; 1/16, 1/12, 1/8, 1/6, 1/4, 1/3, 1/2)
  • Auto Scroll (Fast, Smooth, Off; how the sequencer displays measures off-screen as a sequence plays)
  • Add an Audio Track (This won't be saved to the sequence but will play alongside it for ease of transcription)
  • Title input
  • Draw, select, and erase
  • Instrument dropdown, instrument options, and select instrument (selects all notes of the current instrument)
  • Select all, Cut, Copy, and Paste
  • Zoom options
  • Export options
  • Help
  • Fullscreen
  • Tooltips

Advanced features

Users can access more advanced features for use in their sequences by clicking the advanced tab on the instrument they wish to change. This menu contains options to change volume, panning, detune (-1200 to +1200), reverb, distortion, and an equalizer. This array lets users configure specific instruments to create specific sounds, and textures, or to accompany other instruments as a layer or development of the original sound.

OS also allows for commands to be entered in the browser console to manipulate different options in specific ways, such as setting custom to detune values (0-infinity), custom grid sizes, note divisions, and sequence ID amongst other things. These options bring OS closer to that of classic Digital Audio Workstations (DAWs) but are still limited in terms of accessibility and availability.

Browser and device support

Online Sequencer supports Chrome and other Chromium-based browsers, such as Microsoft Edge, Opera, and Brave. Firefox is also supported, but often with limited functionality. Safari and Internet Explorer are not supported, due to engine issues.

Other mobile browsers support sequence playback, but not editing. However, iOS users have the same problem with WebKit on macOS. However, unlike in macOS, all browsers (even Chromium-based browsers) use WebKit as the engine for iOS due to Apple prohibiting other engines for security reasons; iOS does not support Online Sequencer, other than chat and forums.

The website's user interface is formatted for proper use on desktops, but some pages such as the chat page, playlists, and forums should be formatted well on mobile devices.

',22),y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://onlinesequencer.net/","date_created":"2023-10-27T12:45:54.565Z","title":"Online sequencer","slug":"online-sequencer","author":"Jacob Morgan and George Burdell","author_link":"https://github.com/buildist","description":null,"tags":["sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"ec08ba72-8157-4415-8b34-aea1fe686e09","id":36,"sort":29,"clicks":321,"public":false,"is_new":false,"stats":[22]},"relativePath":"online-sequencer/index.md","filePath":"online-sequencer/index.md","lastUpdated":0}'),h={name:"online-sequencer/index.md"},_=Object.assign(h,{setup(p){const{params:e,frontmatter:m}=s();return(f,b)=>{const t=a;return c(),n("div",null,[i(t,o(r(l(e))),null,16),d])}}});export{y as __pageData,_ as default}; diff --git a/assets/online-sequencer_index.md.C3sYy1nA.lean.js b/assets/online-sequencer_index.md.bzIdvwuX.lean.js similarity index 94% rename from assets/online-sequencer_index.md.C3sYy1nA.lean.js rename to assets/online-sequencer_index.md.bzIdvwuX.lean.js index ebb51d7e..f92375e3 100644 --- a/assets/online-sequencer_index.md.C3sYy1nA.lean.js +++ b/assets/online-sequencer_index.md.bzIdvwuX.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as i,R as o,S as r,f as l,B as u,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const d=u("",22),y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://onlinesequencer.net/","date_created":"2023-10-27T12:45:54.565Z","title":"Online sequencer","slug":"online-sequencer","author":"Jacob Morgan and George Burdell","author_link":"https://github.com/buildist","description":null,"tags":["sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"ec08ba72-8157-4415-8b34-aea1fe686e09","id":36,"sort":28,"clicks":321,"public":false,"is_new":false,"stats":[22]},"relativePath":"online-sequencer/index.md","filePath":"online-sequencer/index.md","lastUpdated":0}'),h={name:"online-sequencer/index.md"},_=Object.assign(h,{setup(p){const{params:e,frontmatter:m}=s();return(f,b)=>{const t=a;return c(),n("div",null,[i(t,o(r(l(e))),null,16),d])}}});export{y as __pageData,_ as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as i,R as o,S as r,f as l,B as u,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const d=u("",22),y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://onlinesequencer.net/","date_created":"2023-10-27T12:45:54.565Z","title":"Online sequencer","slug":"online-sequencer","author":"Jacob Morgan and George Burdell","author_link":"https://github.com/buildist","description":null,"tags":["sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"ec08ba72-8157-4415-8b34-aea1fe686e09","id":36,"sort":29,"clicks":321,"public":false,"is_new":false,"stats":[22]},"relativePath":"online-sequencer/index.md","filePath":"online-sequencer/index.md","lastUpdated":0}'),h={name:"online-sequencer/index.md"},_=Object.assign(h,{setup(p){const{params:e,frontmatter:m}=s();return(f,b)=>{const t=a;return c(),n("div",null,[i(t,o(r(l(e))),null,16),d])}}});export{y as __pageData,_ as default}; diff --git a/assets/pixel-synth_index.md.l-Kq8HHH.js b/assets/pixel-synth_index.md.usELcb7e.js similarity index 93% rename from assets/pixel-synth_index.md.l-Kq8HHH.js rename to assets/pixel-synth_index.md.usELcb7e.js index 6fb9e805..b529f10a 100644 --- a/assets/pixel-synth_index.md.l-Kq8HHH.js +++ b/assets/pixel-synth_index.md.usELcb7e.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as n,S as l,f as c,b as o}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://ojack.github.io/PIXELSYNTH/","date_created":"2023-10-27T12:45:54.286Z","title":"PixelSynth","slug":"pixel-synth","author":"Olivia Jack","author_link":"https://ojack.xyz/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"77369c22-944c-4f6a-83b5-85e16fe43abc","id":24,"sort":34,"clicks":217,"public":false,"is_new":false,"stats":[28]},"relativePath":"pixel-synth/index.md","filePath":"pixel-synth/index.md","lastUpdated":0}'),p={name:"pixel-synth/index.md"},k=Object.assign(p,{setup(_){const{params:t,frontmatter:d}=s();return(m,u)=>{const e=a;return o(),r("div",null,[i(e,n(l(c(t))),null,16)])}}});export{g as __pageData,k as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as n,S as l,f as c,b as o}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://ojack.github.io/PIXELSYNTH/","date_created":"2023-10-27T12:45:54.286Z","title":"PixelSynth","slug":"pixel-synth","author":"Olivia Jack","author_link":"https://ojack.xyz/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"77369c22-944c-4f6a-83b5-85e16fe43abc","id":24,"sort":35,"clicks":217,"public":false,"is_new":false,"stats":[28]},"relativePath":"pixel-synth/index.md","filePath":"pixel-synth/index.md","lastUpdated":0}'),p={name:"pixel-synth/index.md"},k=Object.assign(p,{setup(_){const{params:t,frontmatter:d}=s();return(m,u)=>{const e=a;return o(),r("div",null,[i(e,n(l(c(t))),null,16)])}}});export{g as __pageData,k as default}; diff --git a/assets/pixel-synth_index.md.l-Kq8HHH.lean.js b/assets/pixel-synth_index.md.usELcb7e.lean.js similarity index 93% rename from assets/pixel-synth_index.md.l-Kq8HHH.lean.js rename to assets/pixel-synth_index.md.usELcb7e.lean.js index 6fb9e805..b529f10a 100644 --- a/assets/pixel-synth_index.md.l-Kq8HHH.lean.js +++ b/assets/pixel-synth_index.md.usELcb7e.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as n,S as l,f as c,b as o}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://ojack.github.io/PIXELSYNTH/","date_created":"2023-10-27T12:45:54.286Z","title":"PixelSynth","slug":"pixel-synth","author":"Olivia Jack","author_link":"https://ojack.xyz/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"77369c22-944c-4f6a-83b5-85e16fe43abc","id":24,"sort":34,"clicks":217,"public":false,"is_new":false,"stats":[28]},"relativePath":"pixel-synth/index.md","filePath":"pixel-synth/index.md","lastUpdated":0}'),p={name:"pixel-synth/index.md"},k=Object.assign(p,{setup(_){const{params:t,frontmatter:d}=s();return(m,u)=>{const e=a;return o(),r("div",null,[i(e,n(l(c(t))),null,16)])}}});export{g as __pageData,k as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as n,S as l,f as c,b as o}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://ojack.github.io/PIXELSYNTH/","date_created":"2023-10-27T12:45:54.286Z","title":"PixelSynth","slug":"pixel-synth","author":"Olivia Jack","author_link":"https://ojack.xyz/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"77369c22-944c-4f6a-83b5-85e16fe43abc","id":24,"sort":35,"clicks":217,"public":false,"is_new":false,"stats":[28]},"relativePath":"pixel-synth/index.md","filePath":"pixel-synth/index.md","lastUpdated":0}'),p={name:"pixel-synth/index.md"},k=Object.assign(p,{setup(_){const{params:t,frontmatter:d}=s();return(m,u)=>{const e=a;return o(),r("div",null,[i(e,n(l(c(t))),null,16)])}}});export{g as __pageData,k as default}; diff --git a/assets/roland50_index.md.kMTiquEr.js b/assets/roland50_index.md.C0VKhvRf.js similarity index 95% rename from assets/roland50_index.md.kMTiquEr.js rename to assets/roland50_index.md.C0VKhvRf.js index 2a6771e2..8b967c70 100644 --- a/assets/roland50_index.md.kMTiquEr.js +++ b/assets/roland50_index.md.C0VKhvRf.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as o,S as i,f as d,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const w=JSON.parse(`{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://roland50.studio/","date_created":"2023-11-25T05:42:57.573Z","title":"Roland 50 Studio","slug":"roland50","author":"Yuri Suzuki","author_link":"https://www.yurisuzuki.com/","description":"It's a professional sounding online musical interface, which records your masterpieces and allows you to share your creations through social media, messaging and also as a download.\\nOn top of the TR-808 drum machine and TB-303 bass synthesizer featured at the original 2020 release, now the sound of SH-101 synthesizer is added, and more sounds to come later in the year 2022, commemorating Roland's 50th anniversary.","tags":["drum machine","SP404","TR808","TB303","Step sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"3b5aec13-7e50-475c-9165-bc963872515d","id":45,"sort":20,"clicks":17,"public":false,"is_new":false,"stats":[16]},"relativePath":"roland50/index.md","filePath":"roland50/index.md","lastUpdated":0}`),c={name:"roland50/index.md"},S=Object.assign(c,{setup(u){const{params:e,frontmatter:m}=s();return(p,h)=>{const a=t;return l(),r("div",null,[n(a,o(i(d(e))),null,16)])}}});export{w as __pageData,S as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as o,S as i,f as d,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const w=JSON.parse(`{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://roland50.studio/","date_created":"2023-11-25T05:42:57.573Z","title":"Roland 50 Studio","slug":"roland50","author":"Yuri Suzuki","author_link":"https://www.yurisuzuki.com/","description":"It's a professional sounding online musical interface, which records your masterpieces and allows you to share your creations through social media, messaging and also as a download.\\nOn top of the TR-808 drum machine and TB-303 bass synthesizer featured at the original 2020 release, now the sound of SH-101 synthesizer is added, and more sounds to come later in the year 2022, commemorating Roland's 50th anniversary.","tags":["drum machine","SP404","TR808","TB303","Step sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"3b5aec13-7e50-475c-9165-bc963872515d","id":45,"sort":21,"clicks":17,"public":false,"is_new":false,"stats":[16]},"relativePath":"roland50/index.md","filePath":"roland50/index.md","lastUpdated":0}`),c={name:"roland50/index.md"},S=Object.assign(c,{setup(u){const{params:e,frontmatter:m}=s();return(p,h)=>{const a=t;return l(),r("div",null,[n(a,o(i(d(e))),null,16)])}}});export{w as __pageData,S as default}; diff --git a/assets/roland50_index.md.kMTiquEr.lean.js b/assets/roland50_index.md.C0VKhvRf.lean.js similarity index 95% rename from assets/roland50_index.md.kMTiquEr.lean.js rename to assets/roland50_index.md.C0VKhvRf.lean.js index 2a6771e2..8b967c70 100644 --- a/assets/roland50_index.md.kMTiquEr.lean.js +++ b/assets/roland50_index.md.C0VKhvRf.lean.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as o,S as i,f as d,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const w=JSON.parse(`{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://roland50.studio/","date_created":"2023-11-25T05:42:57.573Z","title":"Roland 50 Studio","slug":"roland50","author":"Yuri Suzuki","author_link":"https://www.yurisuzuki.com/","description":"It's a professional sounding online musical interface, which records your masterpieces and allows you to share your creations through social media, messaging and also as a download.\\nOn top of the TR-808 drum machine and TB-303 bass synthesizer featured at the original 2020 release, now the sound of SH-101 synthesizer is added, and more sounds to come later in the year 2022, commemorating Roland's 50th anniversary.","tags":["drum machine","SP404","TR808","TB303","Step sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"3b5aec13-7e50-475c-9165-bc963872515d","id":45,"sort":20,"clicks":17,"public":false,"is_new":false,"stats":[16]},"relativePath":"roland50/index.md","filePath":"roland50/index.md","lastUpdated":0}`),c={name:"roland50/index.md"},S=Object.assign(c,{setup(u){const{params:e,frontmatter:m}=s();return(p,h)=>{const a=t;return l(),r("div",null,[n(a,o(i(d(e))),null,16)])}}});export{w as __pageData,S as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as o,S as i,f as d,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const w=JSON.parse(`{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://roland50.studio/","date_created":"2023-11-25T05:42:57.573Z","title":"Roland 50 Studio","slug":"roland50","author":"Yuri Suzuki","author_link":"https://www.yurisuzuki.com/","description":"It's a professional sounding online musical interface, which records your masterpieces and allows you to share your creations through social media, messaging and also as a download.\\nOn top of the TR-808 drum machine and TB-303 bass synthesizer featured at the original 2020 release, now the sound of SH-101 synthesizer is added, and more sounds to come later in the year 2022, commemorating Roland's 50th anniversary.","tags":["drum machine","SP404","TR808","TB303","Step sequencer"],"archive_link":null,"archive":false,"iframe":true,"cover":"3b5aec13-7e50-475c-9165-bc963872515d","id":45,"sort":21,"clicks":17,"public":false,"is_new":false,"stats":[16]},"relativePath":"roland50/index.md","filePath":"roland50/index.md","lastUpdated":0}`),c={name:"roland50/index.md"},S=Object.assign(c,{setup(u){const{params:e,frontmatter:m}=s();return(p,h)=>{const a=t;return l(),r("div",null,[n(a,o(i(d(e))),null,16)])}}});export{w as __pageData,S as default}; diff --git a/assets/sample-stich_index.md.BxgjVIxD.js b/assets/sample-stich_index.md.BjllBpc8.js similarity index 94% rename from assets/sample-stich_index.md.BxgjVIxD.js rename to assets/sample-stich_index.md.BjllBpc8.js index fa3b1e25..eb5406dc 100644 --- a/assets/sample-stich_index.md.BxgjVIxD.js +++ b/assets/sample-stich_index.md.BjllBpc8.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as c,S as l,f as n,b as o}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://samplestitch.com.s3-website-us-east-1.amazonaws.com/","date_created":"2023-10-27T12:45:54.185Z","title":"Samplestich","slug":"sample-stich","author":"Matt Daniels","author_link":"https://mdaniels.com","description":null,"tags":["samples","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"89859f9f-0d45-44dc-93b6-98dfa2e7d799","id":18,"sort":37,"clicks":164,"public":false,"is_new":false,"stats":[31]},"relativePath":"sample-stich/index.md","filePath":"sample-stich/index.md","lastUpdated":0}'),m={name:"sample-stich/index.md"},v=Object.assign(m,{setup(p){const{params:a,frontmatter:d}=s();return(_,u)=>{const e=t;return o(),r("div",null,[i(e,c(l(n(a))),null,16)])}}});export{k as __pageData,v as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as c,S as l,f as n,b as o}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://samplestitch.com.s3-website-us-east-1.amazonaws.com/","date_created":"2023-10-27T12:45:54.185Z","title":"Samplestich","slug":"sample-stich","author":"Matt Daniels","author_link":"https://mdaniels.com","description":null,"tags":["samples","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"89859f9f-0d45-44dc-93b6-98dfa2e7d799","id":18,"sort":38,"clicks":164,"public":false,"is_new":false,"stats":[31]},"relativePath":"sample-stich/index.md","filePath":"sample-stich/index.md","lastUpdated":0}'),m={name:"sample-stich/index.md"},v=Object.assign(m,{setup(p){const{params:a,frontmatter:d}=s();return(_,u)=>{const e=t;return o(),r("div",null,[i(e,c(l(n(a))),null,16)])}}});export{k as __pageData,v as default}; diff --git a/assets/sample-stich_index.md.BxgjVIxD.lean.js b/assets/sample-stich_index.md.BjllBpc8.lean.js similarity index 94% rename from assets/sample-stich_index.md.BxgjVIxD.lean.js rename to assets/sample-stich_index.md.BjllBpc8.lean.js index fa3b1e25..eb5406dc 100644 --- a/assets/sample-stich_index.md.BxgjVIxD.lean.js +++ b/assets/sample-stich_index.md.BjllBpc8.lean.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as c,S as l,f as n,b as o}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://samplestitch.com.s3-website-us-east-1.amazonaws.com/","date_created":"2023-10-27T12:45:54.185Z","title":"Samplestich","slug":"sample-stich","author":"Matt Daniels","author_link":"https://mdaniels.com","description":null,"tags":["samples","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"89859f9f-0d45-44dc-93b6-98dfa2e7d799","id":18,"sort":37,"clicks":164,"public":false,"is_new":false,"stats":[31]},"relativePath":"sample-stich/index.md","filePath":"sample-stich/index.md","lastUpdated":0}'),m={name:"sample-stich/index.md"},v=Object.assign(m,{setup(p){const{params:a,frontmatter:d}=s();return(_,u)=>{const e=t;return o(),r("div",null,[i(e,c(l(n(a))),null,16)])}}});export{k as __pageData,v as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as c,S as l,f as n,b as o}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://samplestitch.com.s3-website-us-east-1.amazonaws.com/","date_created":"2023-10-27T12:45:54.185Z","title":"Samplestich","slug":"sample-stich","author":"Matt Daniels","author_link":"https://mdaniels.com","description":null,"tags":["samples","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"89859f9f-0d45-44dc-93b6-98dfa2e7d799","id":18,"sort":38,"clicks":164,"public":false,"is_new":false,"stats":[31]},"relativePath":"sample-stich/index.md","filePath":"sample-stich/index.md","lastUpdated":0}'),m={name:"sample-stich/index.md"},v=Object.assign(m,{setup(p){const{params:a,frontmatter:d}=s();return(_,u)=>{const e=t;return o(),r("div",null,[i(e,c(l(n(a))),null,16)])}}});export{k as __pageData,v as default}; diff --git a/assets/sound-box_index.md.BEzPKxFs.lean.js b/assets/sound-box_index.md.DBUvHK9s.js similarity index 94% rename from assets/sound-box_index.md.BEzPKxFs.lean.js rename to assets/sound-box_index.md.DBUvHK9s.js index ad1261ad..5f1e9b2b 100644 --- a/assets/sound-box_index.md.BEzPKxFs.lean.js +++ b/assets/sound-box_index.md.DBUvHK9s.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as o,d as r,y as n,R as i,S as c,f as l,g as t,b as d}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=t("p",null,[t("a",{href:"https://github.com/mbitsnbites/soundbox",target:"_blank",rel:"noreferrer"},"https://github.com/mbitsnbites/soundbox")],-1),v=JSON.parse(`{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://sb.bitsnbites.eu/","date_created":"2023-10-27T12:45:54.625Z","title":"Sound Box","slug":"sound-box","author":"Bits'n'bites","author_link":"https://gitlab.com/mbitsnbites","description":null,"tags":["tracker"],"archive_link":null,"archive":false,"iframe":true,"cover":"f2f825f3-a084-408b-86d1-2b64cf822c3c","id":38,"sort":29,"clicks":209,"public":false,"is_new":false,"stats":[23]},"relativePath":"sound-box/index.md","filePath":"sound-box/index.md","lastUpdated":0}`),p={name:"sound-box/index.md"},y=Object.assign(p,{setup(m){const{params:e,frontmatter:b}=o();return(_,f)=>{const s=a;return d(),r("div",null,[n(s,i(c(l(e))),null,16),u])}}});export{v as __pageData,y as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as o,d as r,y as n,R as i,S as c,f as l,g as t,b as d}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=t("p",null,[t("a",{href:"https://github.com/mbitsnbites/soundbox",target:"_blank",rel:"noreferrer"},"https://github.com/mbitsnbites/soundbox")],-1),v=JSON.parse(`{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://sb.bitsnbites.eu/","date_created":"2023-10-27T12:45:54.625Z","title":"Sound Box","slug":"sound-box","author":"Bits'n'bites","author_link":"https://gitlab.com/mbitsnbites","description":null,"tags":["tracker"],"archive_link":null,"archive":false,"iframe":true,"cover":"f2f825f3-a084-408b-86d1-2b64cf822c3c","id":38,"sort":30,"clicks":209,"public":false,"is_new":false,"stats":[23]},"relativePath":"sound-box/index.md","filePath":"sound-box/index.md","lastUpdated":0}`),p={name:"sound-box/index.md"},y=Object.assign(p,{setup(m){const{params:e,frontmatter:b}=o();return(_,f)=>{const s=a;return d(),r("div",null,[n(s,i(c(l(e))),null,16),u])}}});export{v as __pageData,y as default}; diff --git a/assets/sound-box_index.md.BEzPKxFs.js b/assets/sound-box_index.md.DBUvHK9s.lean.js similarity index 94% rename from assets/sound-box_index.md.BEzPKxFs.js rename to assets/sound-box_index.md.DBUvHK9s.lean.js index ad1261ad..5f1e9b2b 100644 --- a/assets/sound-box_index.md.BEzPKxFs.js +++ b/assets/sound-box_index.md.DBUvHK9s.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as o,d as r,y as n,R as i,S as c,f as l,g as t,b as d}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=t("p",null,[t("a",{href:"https://github.com/mbitsnbites/soundbox",target:"_blank",rel:"noreferrer"},"https://github.com/mbitsnbites/soundbox")],-1),v=JSON.parse(`{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://sb.bitsnbites.eu/","date_created":"2023-10-27T12:45:54.625Z","title":"Sound Box","slug":"sound-box","author":"Bits'n'bites","author_link":"https://gitlab.com/mbitsnbites","description":null,"tags":["tracker"],"archive_link":null,"archive":false,"iframe":true,"cover":"f2f825f3-a084-408b-86d1-2b64cf822c3c","id":38,"sort":29,"clicks":209,"public":false,"is_new":false,"stats":[23]},"relativePath":"sound-box/index.md","filePath":"sound-box/index.md","lastUpdated":0}`),p={name:"sound-box/index.md"},y=Object.assign(p,{setup(m){const{params:e,frontmatter:b}=o();return(_,f)=>{const s=a;return d(),r("div",null,[n(s,i(c(l(e))),null,16),u])}}});export{v as __pageData,y as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as o,d as r,y as n,R as i,S as c,f as l,g as t,b as d}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=t("p",null,[t("a",{href:"https://github.com/mbitsnbites/soundbox",target:"_blank",rel:"noreferrer"},"https://github.com/mbitsnbites/soundbox")],-1),v=JSON.parse(`{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://sb.bitsnbites.eu/","date_created":"2023-10-27T12:45:54.625Z","title":"Sound Box","slug":"sound-box","author":"Bits'n'bites","author_link":"https://gitlab.com/mbitsnbites","description":null,"tags":["tracker"],"archive_link":null,"archive":false,"iframe":true,"cover":"f2f825f3-a084-408b-86d1-2b64cf822c3c","id":38,"sort":30,"clicks":209,"public":false,"is_new":false,"stats":[23]},"relativePath":"sound-box/index.md","filePath":"sound-box/index.md","lastUpdated":0}`),p={name:"sound-box/index.md"},y=Object.assign(p,{setup(m){const{params:e,frontmatter:b}=o();return(_,f)=>{const s=a;return d(),r("div",null,[n(s,i(c(l(e))),null,16),u])}}});export{v as __pageData,y as default}; diff --git a/assets/sound-trap_index.md.CshRdAzV.js b/assets/sound-trap_index.md.DZhZNwRa.js similarity index 93% rename from assets/sound-trap_index.md.CshRdAzV.js rename to assets/sound-trap_index.md.DZhZNwRa.js index 3748cc90..0831a8b2 100644 --- a/assets/sound-trap_index.md.CshRdAzV.js +++ b/assets/sound-trap_index.md.DZhZNwRa.js @@ -1 +1 @@ -import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as o,S as p,f as d,b as i}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.soundtrap.com/","date_created":"2023-10-27T12:45:54.155Z","title":"Sound Trap","slug":"sound-trap","author":"Soundtrap","author_link":"https://www.soundtrap.com/about","description":null,"tags":["daw"],"archive_link":null,"archive":false,"iframe":false,"cover":"63ef832a-f7da-4536-851f-4964005a89f1","id":17,"sort":47,"clicks":124,"public":false,"is_new":false,"stats":[41]},"relativePath":"sound-trap/index.md","filePath":"sound-trap/index.md","lastUpdated":0}'),c={name:"sound-trap/index.md"},k=Object.assign(c,{setup(l){const{params:a,frontmatter:u}=s();return(m,_)=>{const t=e;return i(),r("div",null,[n(t,o(p(d(a))),null,16)])}}});export{v as __pageData,k as default}; +import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as o,S as p,f as d,b as i}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.soundtrap.com/","date_created":"2023-10-27T12:45:54.155Z","title":"Sound Trap","slug":"sound-trap","author":"Soundtrap","author_link":"https://www.soundtrap.com/about","description":null,"tags":["daw"],"archive_link":null,"archive":false,"iframe":false,"cover":"63ef832a-f7da-4536-851f-4964005a89f1","id":17,"sort":48,"clicks":124,"public":false,"is_new":false,"stats":[41]},"relativePath":"sound-trap/index.md","filePath":"sound-trap/index.md","lastUpdated":0}'),c={name:"sound-trap/index.md"},k=Object.assign(c,{setup(l){const{params:a,frontmatter:u}=s();return(m,_)=>{const t=e;return i(),r("div",null,[n(t,o(p(d(a))),null,16)])}}});export{v as __pageData,k as default}; diff --git a/assets/sound-trap_index.md.CshRdAzV.lean.js b/assets/sound-trap_index.md.DZhZNwRa.lean.js similarity index 93% rename from assets/sound-trap_index.md.CshRdAzV.lean.js rename to assets/sound-trap_index.md.DZhZNwRa.lean.js index 3748cc90..0831a8b2 100644 --- a/assets/sound-trap_index.md.CshRdAzV.lean.js +++ b/assets/sound-trap_index.md.DZhZNwRa.lean.js @@ -1 +1 @@ -import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as o,S as p,f as d,b as i}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.soundtrap.com/","date_created":"2023-10-27T12:45:54.155Z","title":"Sound Trap","slug":"sound-trap","author":"Soundtrap","author_link":"https://www.soundtrap.com/about","description":null,"tags":["daw"],"archive_link":null,"archive":false,"iframe":false,"cover":"63ef832a-f7da-4536-851f-4964005a89f1","id":17,"sort":47,"clicks":124,"public":false,"is_new":false,"stats":[41]},"relativePath":"sound-trap/index.md","filePath":"sound-trap/index.md","lastUpdated":0}'),c={name:"sound-trap/index.md"},k=Object.assign(c,{setup(l){const{params:a,frontmatter:u}=s();return(m,_)=>{const t=e;return i(),r("div",null,[n(t,o(p(d(a))),null,16)])}}});export{v as __pageData,k as default}; +import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as n,R as o,S as p,f as d,b as i}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.soundtrap.com/","date_created":"2023-10-27T12:45:54.155Z","title":"Sound Trap","slug":"sound-trap","author":"Soundtrap","author_link":"https://www.soundtrap.com/about","description":null,"tags":["daw"],"archive_link":null,"archive":false,"iframe":false,"cover":"63ef832a-f7da-4536-851f-4964005a89f1","id":17,"sort":48,"clicks":124,"public":false,"is_new":false,"stats":[41]},"relativePath":"sound-trap/index.md","filePath":"sound-trap/index.md","lastUpdated":0}'),c={name:"sound-trap/index.md"},k=Object.assign(c,{setup(l){const{params:a,frontmatter:u}=s();return(m,_)=>{const t=e;return i(),r("div",null,[n(t,o(p(d(a))),null,16)])}}});export{v as __pageData,k as default}; diff --git a/assets/sympathetic_index.md.0-XjNOIF.js b/assets/sympathetic_index.md.CbG1XeWz.js similarity index 95% rename from assets/sympathetic_index.md.0-XjNOIF.js rename to assets/sympathetic_index.md.CbG1XeWz.js index 7127113d..bde0c34f 100644 --- a/assets/sympathetic_index.md.0-XjNOIF.js +++ b/assets/sympathetic_index.md.CbG1XeWz.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as n,S as o,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const S=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://stuartmemo.com/synth/","date_created":"2023-10-27T12:45:54.586Z","title":"Sympathetic Synthesizer System Mk 1","slug":"sympathetic","author":"Stuart Memo ","author_link":"https://github.com/stuartmemo","description":"The Sympathetic Synthesizer System Mk 1 is an interactive web app that emulates a complex synthesizer. It features three oscillators with selectable waveforms, an LFO, filters with ADSR controls, and noise generation. The app allows users to explore sound design through various parameters, offering a detailed and hands-on synthesis experience. MIDI support is also included for enhanced control.","tags":["keyboard","midi","additive"],"archive_link":null,"archive":false,"iframe":true,"cover":"123aeb6d-c7b0-43dd-a852-98660bdf03f0","id":37,"sort":13,"clicks":302,"public":false,"is_new":false,"stats":[12]},"relativePath":"sympathetic/index.md","filePath":"sympathetic/index.md","lastUpdated":0}'),m={name:"sympathetic/index.md"},b=Object.assign(m,{setup(p){const{params:e,frontmatter:d}=s();return(h,u)=>{const t=a;return l(),r("div",null,[i(t,n(o(c(e))),null,16)])}}});export{S as __pageData,b as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as n,S as o,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const S=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://stuartmemo.com/synth/","date_created":"2023-10-27T12:45:54.586Z","title":"Sympathetic Synthesizer System Mk 1","slug":"sympathetic","author":"Stuart Memo ","author_link":"https://github.com/stuartmemo","description":"The Sympathetic Synthesizer System Mk 1 is an interactive web app that emulates a complex synthesizer. It features three oscillators with selectable waveforms, an LFO, filters with ADSR controls, and noise generation. The app allows users to explore sound design through various parameters, offering a detailed and hands-on synthesis experience. MIDI support is also included for enhanced control.","tags":["keyboard","midi","additive"],"archive_link":null,"archive":false,"iframe":true,"cover":"123aeb6d-c7b0-43dd-a852-98660bdf03f0","id":37,"sort":14,"clicks":302,"public":false,"is_new":false,"stats":[12]},"relativePath":"sympathetic/index.md","filePath":"sympathetic/index.md","lastUpdated":0}'),m={name:"sympathetic/index.md"},b=Object.assign(m,{setup(p){const{params:e,frontmatter:d}=s();return(h,u)=>{const t=a;return l(),r("div",null,[i(t,n(o(c(e))),null,16)])}}});export{S as __pageData,b as default}; diff --git a/assets/sympathetic_index.md.0-XjNOIF.lean.js b/assets/sympathetic_index.md.CbG1XeWz.lean.js similarity index 95% rename from assets/sympathetic_index.md.0-XjNOIF.lean.js rename to assets/sympathetic_index.md.CbG1XeWz.lean.js index 7127113d..bde0c34f 100644 --- a/assets/sympathetic_index.md.0-XjNOIF.lean.js +++ b/assets/sympathetic_index.md.CbG1XeWz.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as n,S as o,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const S=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://stuartmemo.com/synth/","date_created":"2023-10-27T12:45:54.586Z","title":"Sympathetic Synthesizer System Mk 1","slug":"sympathetic","author":"Stuart Memo ","author_link":"https://github.com/stuartmemo","description":"The Sympathetic Synthesizer System Mk 1 is an interactive web app that emulates a complex synthesizer. It features three oscillators with selectable waveforms, an LFO, filters with ADSR controls, and noise generation. The app allows users to explore sound design through various parameters, offering a detailed and hands-on synthesis experience. MIDI support is also included for enhanced control.","tags":["keyboard","midi","additive"],"archive_link":null,"archive":false,"iframe":true,"cover":"123aeb6d-c7b0-43dd-a852-98660bdf03f0","id":37,"sort":13,"clicks":302,"public":false,"is_new":false,"stats":[12]},"relativePath":"sympathetic/index.md","filePath":"sympathetic/index.md","lastUpdated":0}'),m={name:"sympathetic/index.md"},b=Object.assign(m,{setup(p){const{params:e,frontmatter:d}=s();return(h,u)=>{const t=a;return l(),r("div",null,[i(t,n(o(c(e))),null,16)])}}});export{S as __pageData,b as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as n,S as o,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const S=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://stuartmemo.com/synth/","date_created":"2023-10-27T12:45:54.586Z","title":"Sympathetic Synthesizer System Mk 1","slug":"sympathetic","author":"Stuart Memo ","author_link":"https://github.com/stuartmemo","description":"The Sympathetic Synthesizer System Mk 1 is an interactive web app that emulates a complex synthesizer. It features three oscillators with selectable waveforms, an LFO, filters with ADSR controls, and noise generation. The app allows users to explore sound design through various parameters, offering a detailed and hands-on synthesis experience. MIDI support is also included for enhanced control.","tags":["keyboard","midi","additive"],"archive_link":null,"archive":false,"iframe":true,"cover":"123aeb6d-c7b0-43dd-a852-98660bdf03f0","id":37,"sort":14,"clicks":302,"public":false,"is_new":false,"stats":[12]},"relativePath":"sympathetic/index.md","filePath":"sympathetic/index.md","lastUpdated":0}'),m={name:"sympathetic/index.md"},b=Object.assign(m,{setup(p){const{params:e,frontmatter:d}=s();return(h,u)=>{const t=a;return l(),r("div",null,[i(t,n(o(c(e))),null,16)])}}});export{S as __pageData,b as default}; diff --git a/assets/tanguy-synth_index.md.BFWfoZFK.js b/assets/tanguy-synth_index.md.Chuzo4y_.js similarity index 94% rename from assets/tanguy-synth_index.md.BFWfoZFK.js rename to assets/tanguy-synth_index.md.Chuzo4y_.js index 9581e47b..61d1693b 100644 --- a/assets/tanguy-synth_index.md.BFWfoZFK.js +++ b/assets/tanguy-synth_index.md.Chuzo4y_.js @@ -1 +1 @@ -import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as o,S as i,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://tanguysynth.com/","date_created":"2023-10-27T12:45:54.036Z","title":"Tanguy synth","slug":"tanguy-synth","author":"Luke Teaford","author_link":"https://github.com/luketeaford","description":null,"tags":["monophonic","additive","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"5471a71e-7c5b-4ea6-aee0-1b394873c381","id":11,"sort":40,"clicks":117,"public":false,"is_new":false,"stats":[34]},"relativePath":"tanguy-synth/index.md","filePath":"tanguy-synth/index.md","lastUpdated":0}'),u={name:"tanguy-synth/index.md"},b=Object.assign(u,{setup(d){const{params:t,frontmatter:p}=s();return(m,_)=>{const a=e;return l(),n("div",null,[r(a,o(i(c(t))),null,16)])}}});export{k as __pageData,b as default}; +import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as o,S as i,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://tanguysynth.com/","date_created":"2023-10-27T12:45:54.036Z","title":"Tanguy synth","slug":"tanguy-synth","author":"Luke Teaford","author_link":"https://github.com/luketeaford","description":null,"tags":["monophonic","additive","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"5471a71e-7c5b-4ea6-aee0-1b394873c381","id":11,"sort":41,"clicks":117,"public":false,"is_new":false,"stats":[34]},"relativePath":"tanguy-synth/index.md","filePath":"tanguy-synth/index.md","lastUpdated":0}'),u={name:"tanguy-synth/index.md"},b=Object.assign(u,{setup(d){const{params:t,frontmatter:p}=s();return(m,_)=>{const a=e;return l(),n("div",null,[r(a,o(i(c(t))),null,16)])}}});export{k as __pageData,b as default}; diff --git a/assets/tanguy-synth_index.md.BFWfoZFK.lean.js b/assets/tanguy-synth_index.md.Chuzo4y_.lean.js similarity index 94% rename from assets/tanguy-synth_index.md.BFWfoZFK.lean.js rename to assets/tanguy-synth_index.md.Chuzo4y_.lean.js index 9581e47b..61d1693b 100644 --- a/assets/tanguy-synth_index.md.BFWfoZFK.lean.js +++ b/assets/tanguy-synth_index.md.Chuzo4y_.lean.js @@ -1 +1 @@ -import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as o,S as i,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://tanguysynth.com/","date_created":"2023-10-27T12:45:54.036Z","title":"Tanguy synth","slug":"tanguy-synth","author":"Luke Teaford","author_link":"https://github.com/luketeaford","description":null,"tags":["monophonic","additive","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"5471a71e-7c5b-4ea6-aee0-1b394873c381","id":11,"sort":40,"clicks":117,"public":false,"is_new":false,"stats":[34]},"relativePath":"tanguy-synth/index.md","filePath":"tanguy-synth/index.md","lastUpdated":0}'),u={name:"tanguy-synth/index.md"},b=Object.assign(u,{setup(d){const{params:t,frontmatter:p}=s();return(m,_)=>{const a=e;return l(),n("div",null,[r(a,o(i(c(t))),null,16)])}}});export{k as __pageData,b as default}; +import{_ as e}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as o,S as i,f as c,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://tanguysynth.com/","date_created":"2023-10-27T12:45:54.036Z","title":"Tanguy synth","slug":"tanguy-synth","author":"Luke Teaford","author_link":"https://github.com/luketeaford","description":null,"tags":["monophonic","additive","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"5471a71e-7c5b-4ea6-aee0-1b394873c381","id":11,"sort":41,"clicks":117,"public":false,"is_new":false,"stats":[34]},"relativePath":"tanguy-synth/index.md","filePath":"tanguy-synth/index.md","lastUpdated":0}'),u={name:"tanguy-synth/index.md"},b=Object.assign(u,{setup(d){const{params:t,frontmatter:p}=s();return(m,_)=>{const a=e;return l(),n("div",null,[r(a,o(i(c(t))),null,16)])}}});export{k as __pageData,b as default}; diff --git a/assets/theremin_index.md.BMBaK-hj.js b/assets/theremin_index.md.xsBSlTfD.js similarity index 94% rename from assets/theremin_index.md.BMBaK-hj.js rename to assets/theremin_index.md.xsBSlTfD.js index ac8e6e59..ad6caa33 100644 --- a/assets/theremin_index.md.BMBaK-hj.js +++ b/assets/theremin_index.md.xsBSlTfD.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as i,y as n,R as s,S as o,f as c,b as m}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.femurdesign.com/theremin/","date_created":"2023-10-27T12:45:54.206Z","title":"Theremin","slug":"theremin","author":"Femur","author_link":"https://femurdesign.com/","description":"Experience the magic of the theremin with this interactive web-app by Femur Design. Harness the power of motion to create ethereal music without physical contact. Experiment with pitch and volume to craft haunting melodies right in your browser.","tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"6b22ef48-6830-4cf2-810d-809408033450","id":19,"sort":15,"clicks":320,"public":false,"is_new":false,"stats":[14]},"relativePath":"theremin/index.md","filePath":"theremin/index.md","lastUpdated":0}'),l={name:"theremin/index.md"},y=Object.assign(l,{setup(p){const{params:e,frontmatter:h}=r();return(u,d)=>{const t=a;return m(),i("div",null,[n(t,s(o(c(e))),null,16)])}}});export{v as __pageData,y as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as i,y as n,R as s,S as o,f as c,b as m}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.femurdesign.com/theremin/","date_created":"2023-10-27T12:45:54.206Z","title":"Theremin","slug":"theremin","author":"Femur","author_link":"https://femurdesign.com/","description":"Experience the magic of the theremin with this interactive web-app by Femur Design. Harness the power of motion to create ethereal music without physical contact. Experiment with pitch and volume to craft haunting melodies right in your browser.","tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"6b22ef48-6830-4cf2-810d-809408033450","id":19,"sort":16,"clicks":320,"public":false,"is_new":false,"stats":[14]},"relativePath":"theremin/index.md","filePath":"theremin/index.md","lastUpdated":0}'),l={name:"theremin/index.md"},y=Object.assign(l,{setup(p){const{params:e,frontmatter:h}=r();return(u,d)=>{const t=a;return m(),i("div",null,[n(t,s(o(c(e))),null,16)])}}});export{v as __pageData,y as default}; diff --git a/assets/theremin_index.md.BMBaK-hj.lean.js b/assets/theremin_index.md.xsBSlTfD.lean.js similarity index 94% rename from assets/theremin_index.md.BMBaK-hj.lean.js rename to assets/theremin_index.md.xsBSlTfD.lean.js index ac8e6e59..ad6caa33 100644 --- a/assets/theremin_index.md.BMBaK-hj.lean.js +++ b/assets/theremin_index.md.xsBSlTfD.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as i,y as n,R as s,S as o,f as c,b as m}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.femurdesign.com/theremin/","date_created":"2023-10-27T12:45:54.206Z","title":"Theremin","slug":"theremin","author":"Femur","author_link":"https://femurdesign.com/","description":"Experience the magic of the theremin with this interactive web-app by Femur Design. Harness the power of motion to create ethereal music without physical contact. Experiment with pitch and volume to craft haunting melodies right in your browser.","tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"6b22ef48-6830-4cf2-810d-809408033450","id":19,"sort":15,"clicks":320,"public":false,"is_new":false,"stats":[14]},"relativePath":"theremin/index.md","filePath":"theremin/index.md","lastUpdated":0}'),l={name:"theremin/index.md"},y=Object.assign(l,{setup(p){const{params:e,frontmatter:h}=r();return(u,d)=>{const t=a;return m(),i("div",null,[n(t,s(o(c(e))),null,16)])}}});export{v as __pageData,y as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as i,y as n,R as s,S as o,f as c,b as m}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const v=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.femurdesign.com/theremin/","date_created":"2023-10-27T12:45:54.206Z","title":"Theremin","slug":"theremin","author":"Femur","author_link":"https://femurdesign.com/","description":"Experience the magic of the theremin with this interactive web-app by Femur Design. Harness the power of motion to create ethereal music without physical contact. Experiment with pitch and volume to craft haunting melodies right in your browser.","tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"6b22ef48-6830-4cf2-810d-809408033450","id":19,"sort":16,"clicks":320,"public":false,"is_new":false,"stats":[14]},"relativePath":"theremin/index.md","filePath":"theremin/index.md","lastUpdated":0}'),l={name:"theremin/index.md"},y=Object.assign(l,{setup(p){const{params:e,frontmatter:h}=r();return(u,d)=>{const t=a;return m(),i("div",null,[n(t,s(o(c(e))),null,16)])}}});export{v as __pageData,y as default}; diff --git a/assets/topos_index.md.DVt9rwws.js b/assets/topos_index.md.DVt9rwws.js new file mode 100644 index 00000000..7d53e840 --- /dev/null +++ b/assets/topos_index.md.DVt9rwws.js @@ -0,0 +1 @@ +import{_ as o}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as t,y as i,R as r,S as n,f as l,g as p,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=p("p",null,"Topos is deeply inspired by the Monome Teletype. The Teletype is/was an open source hardware module for Eurorack synthesizers. While the Teletype was initially born as an hardware module, Topos aims to be a web-browser based cousin of it! It is a sequencer, a scriptable interface, a companion for algorithmic music-making. Topos wishes to fullfill the same goal as the Teletype, keeping the same spirit alive on the web. It is free, open-source, and made to be shared and used by everyone. Learn more about live coding on livecoding.fr.",-1),T=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://topos.live/","date_created":"2024-06-21T12:06:09.754Z","title":"Topos","slug":"topos","author":"Raphael","author_link":"https://github.com/Bubobubobubobubo/topos","description":"Topos is an algorithmic sequencer. Topos is also a live coding environment. To sum it up, think: \\"making music in real time through code\\". Code used as an expressive medium for musical improvisation! Topos uses small algorithms to represent musical sequences and processes.","tags":["Live coding","MIDI","Poly","Visuals","FM"],"archive_link":null,"archive":false,"iframe":true,"cover":"76e0c2b7-e95e-447d-982d-e156cb9d1530","id":57,"sort":12,"clicks":0,"public":false,"is_new":true,"stats":[49]},"relativePath":"topos/index.md","filePath":"topos/index.md","lastUpdated":0}'),d={name:"topos/index.md"},k=Object.assign(d,{setup(m){const{params:e,frontmatter:h}=a();return(b,f)=>{const s=o;return c(),t("div",null,[i(s,r(n(l(e))),null,16),u])}}});export{T as __pageData,k as default}; diff --git a/assets/topos_index.md.DVt9rwws.lean.js b/assets/topos_index.md.DVt9rwws.lean.js new file mode 100644 index 00000000..7d53e840 --- /dev/null +++ b/assets/topos_index.md.DVt9rwws.lean.js @@ -0,0 +1 @@ +import{_ as o}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as t,y as i,R as r,S as n,f as l,g as p,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const u=p("p",null,"Topos is deeply inspired by the Monome Teletype. The Teletype is/was an open source hardware module for Eurorack synthesizers. While the Teletype was initially born as an hardware module, Topos aims to be a web-browser based cousin of it! It is a sequencer, a scriptable interface, a companion for algorithmic music-making. Topos wishes to fullfill the same goal as the Teletype, keeping the same spirit alive on the web. It is free, open-source, and made to be shared and used by everyone. Learn more about live coding on livecoding.fr.",-1),T=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://topos.live/","date_created":"2024-06-21T12:06:09.754Z","title":"Topos","slug":"topos","author":"Raphael","author_link":"https://github.com/Bubobubobubobubo/topos","description":"Topos is an algorithmic sequencer. Topos is also a live coding environment. To sum it up, think: \\"making music in real time through code\\". Code used as an expressive medium for musical improvisation! Topos uses small algorithms to represent musical sequences and processes.","tags":["Live coding","MIDI","Poly","Visuals","FM"],"archive_link":null,"archive":false,"iframe":true,"cover":"76e0c2b7-e95e-447d-982d-e156cb9d1530","id":57,"sort":12,"clicks":0,"public":false,"is_new":true,"stats":[49]},"relativePath":"topos/index.md","filePath":"topos/index.md","lastUpdated":0}'),d={name:"topos/index.md"},k=Object.assign(d,{setup(m){const{params:e,frontmatter:h}=a();return(b,f)=>{const s=o;return c(),t("div",null,[i(s,r(n(l(e))),null,16),u])}}});export{T as __pageData,k as default}; diff --git a/assets/touch-pianist_index.md.DOcY0bu_.js b/assets/touch-pianist_index.md.DrUArMqE.js similarity index 96% rename from assets/touch-pianist_index.md.DOcY0bu_.js rename to assets/touch-pianist_index.md.DrUArMqE.js index e04fd9fc..1f6284aa 100644 --- a/assets/touch-pianist_index.md.DOcY0bu_.js +++ b/assets/touch-pianist_index.md.DrUArMqE.js @@ -1 +1 @@ -import{_ as o}from"./chunks/SynthPage.DISdFh95.js";import{s,d as i,y as r,R as n,S as c,f as u,g as e,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=e("p",null,"Touch Pianist is a musical toy / instrument that allows the user to perform hard-to-play classical piano music favorites (from composers like Beethoven, Mozart, Bach, Satie, Debussy to name a few) just by tapping the rhythm of the piece's particular sound events on a computer keyboard or a touch screen.",-1),h=e("p",null,"It also provides live visualisation of the pieces that are being performed. There is no score keeping, the user is free to perform the music in any way they wish. The premise is that it is really fun to perform a piece you know well, exactly like you feel it with so little effort.",-1),m=e("p",null,"Touch Pianist has CoreMIDI support so you can use your favorite piano / sound plug-in in your computer as a sound source if you wish.",-1),P=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://touchpianist.com/","date_created":"2023-10-27T12:45:54.691Z","title":"Touch Pianist","slug":"touch-pianist","author":"EarSlap","author_link":null,"description":"Unleash your inner virtuoso with Touch Pianist. Experience the thrill of playing the piano with just your fingertips. Choose your favorite classical masterpiece and immerse yourself in the joy of creating beautiful music, all through the power of touch.","tags":["entertainment","piano"],"archive_link":null,"archive":false,"iframe":false,"cover":"415deeeb-a843-4363-b6c9-78918aa688af","id":41,"sort":18,"clicks":177,"public":false,"is_new":false,"stats":[15]},"relativePath":"touch-pianist/index.md","filePath":"touch-pianist/index.md","lastUpdated":0}'),f={name:"touch-pianist/index.md"},x=Object.assign(f,{setup(d){const{params:t,frontmatter:y}=s();return(_,g)=>{const a=o;return l(),i("div",null,[r(a,n(c(u(t))),null,16),p,h,m])}}});export{P as __pageData,x as default}; +import{_ as o}from"./chunks/SynthPage.DISdFh95.js";import{s,d as i,y as r,R as n,S as c,f as u,g as e,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=e("p",null,"Touch Pianist is a musical toy / instrument that allows the user to perform hard-to-play classical piano music favorites (from composers like Beethoven, Mozart, Bach, Satie, Debussy to name a few) just by tapping the rhythm of the piece's particular sound events on a computer keyboard or a touch screen.",-1),h=e("p",null,"It also provides live visualisation of the pieces that are being performed. There is no score keeping, the user is free to perform the music in any way they wish. The premise is that it is really fun to perform a piece you know well, exactly like you feel it with so little effort.",-1),m=e("p",null,"Touch Pianist has CoreMIDI support so you can use your favorite piano / sound plug-in in your computer as a sound source if you wish.",-1),P=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://touchpianist.com/","date_created":"2023-10-27T12:45:54.691Z","title":"Touch Pianist","slug":"touch-pianist","author":"EarSlap","author_link":null,"description":"Unleash your inner virtuoso with Touch Pianist. Experience the thrill of playing the piano with just your fingertips. Choose your favorite classical masterpiece and immerse yourself in the joy of creating beautiful music, all through the power of touch.","tags":["entertainment","piano"],"archive_link":null,"archive":false,"iframe":false,"cover":"415deeeb-a843-4363-b6c9-78918aa688af","id":41,"sort":19,"clicks":177,"public":false,"is_new":false,"stats":[15]},"relativePath":"touch-pianist/index.md","filePath":"touch-pianist/index.md","lastUpdated":0}'),f={name:"touch-pianist/index.md"},x=Object.assign(f,{setup(d){const{params:t,frontmatter:y}=s();return(_,g)=>{const a=o;return l(),i("div",null,[r(a,n(c(u(t))),null,16),p,h,m])}}});export{P as __pageData,x as default}; diff --git a/assets/touch-pianist_index.md.DOcY0bu_.lean.js b/assets/touch-pianist_index.md.DrUArMqE.lean.js similarity index 96% rename from assets/touch-pianist_index.md.DOcY0bu_.lean.js rename to assets/touch-pianist_index.md.DrUArMqE.lean.js index e04fd9fc..1f6284aa 100644 --- a/assets/touch-pianist_index.md.DOcY0bu_.lean.js +++ b/assets/touch-pianist_index.md.DrUArMqE.lean.js @@ -1 +1 @@ -import{_ as o}from"./chunks/SynthPage.DISdFh95.js";import{s,d as i,y as r,R as n,S as c,f as u,g as e,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=e("p",null,"Touch Pianist is a musical toy / instrument that allows the user to perform hard-to-play classical piano music favorites (from composers like Beethoven, Mozart, Bach, Satie, Debussy to name a few) just by tapping the rhythm of the piece's particular sound events on a computer keyboard or a touch screen.",-1),h=e("p",null,"It also provides live visualisation of the pieces that are being performed. There is no score keeping, the user is free to perform the music in any way they wish. The premise is that it is really fun to perform a piece you know well, exactly like you feel it with so little effort.",-1),m=e("p",null,"Touch Pianist has CoreMIDI support so you can use your favorite piano / sound plug-in in your computer as a sound source if you wish.",-1),P=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://touchpianist.com/","date_created":"2023-10-27T12:45:54.691Z","title":"Touch Pianist","slug":"touch-pianist","author":"EarSlap","author_link":null,"description":"Unleash your inner virtuoso with Touch Pianist. Experience the thrill of playing the piano with just your fingertips. Choose your favorite classical masterpiece and immerse yourself in the joy of creating beautiful music, all through the power of touch.","tags":["entertainment","piano"],"archive_link":null,"archive":false,"iframe":false,"cover":"415deeeb-a843-4363-b6c9-78918aa688af","id":41,"sort":18,"clicks":177,"public":false,"is_new":false,"stats":[15]},"relativePath":"touch-pianist/index.md","filePath":"touch-pianist/index.md","lastUpdated":0}'),f={name:"touch-pianist/index.md"},x=Object.assign(f,{setup(d){const{params:t,frontmatter:y}=s();return(_,g)=>{const a=o;return l(),i("div",null,[r(a,n(c(u(t))),null,16),p,h,m])}}});export{P as __pageData,x as default}; +import{_ as o}from"./chunks/SynthPage.DISdFh95.js";import{s,d as i,y as r,R as n,S as c,f as u,g as e,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const p=e("p",null,"Touch Pianist is a musical toy / instrument that allows the user to perform hard-to-play classical piano music favorites (from composers like Beethoven, Mozart, Bach, Satie, Debussy to name a few) just by tapping the rhythm of the piece's particular sound events on a computer keyboard or a touch screen.",-1),h=e("p",null,"It also provides live visualisation of the pieces that are being performed. There is no score keeping, the user is free to perform the music in any way they wish. The premise is that it is really fun to perform a piece you know well, exactly like you feel it with so little effort.",-1),m=e("p",null,"Touch Pianist has CoreMIDI support so you can use your favorite piano / sound plug-in in your computer as a sound source if you wish.",-1),P=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://touchpianist.com/","date_created":"2023-10-27T12:45:54.691Z","title":"Touch Pianist","slug":"touch-pianist","author":"EarSlap","author_link":null,"description":"Unleash your inner virtuoso with Touch Pianist. Experience the thrill of playing the piano with just your fingertips. Choose your favorite classical masterpiece and immerse yourself in the joy of creating beautiful music, all through the power of touch.","tags":["entertainment","piano"],"archive_link":null,"archive":false,"iframe":false,"cover":"415deeeb-a843-4363-b6c9-78918aa688af","id":41,"sort":19,"clicks":177,"public":false,"is_new":false,"stats":[15]},"relativePath":"touch-pianist/index.md","filePath":"touch-pianist/index.md","lastUpdated":0}'),f={name:"touch-pianist/index.md"},x=Object.assign(f,{setup(d){const{params:t,frontmatter:y}=s();return(_,g)=>{const a=o;return l(),i("div",null,[r(a,n(c(u(t))),null,16),p,h,m])}}});export{P as __pageData,x as default}; diff --git a/assets/typedrummer_index.md.BusrGXTy.js b/assets/typedrummer_index.md.BDZ2LjKp.js similarity index 94% rename from assets/typedrummer_index.md.BusrGXTy.js rename to assets/typedrummer_index.md.BDZ2LjKp.js index 9de067dc..516efddb 100644 --- a/assets/typedrummer_index.md.BusrGXTy.js +++ b/assets/typedrummer_index.md.BDZ2LjKp.js @@ -1 +1 @@ -import{_ as r}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as s,y as m,R as o,S as n,f as c,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"http://typedrummer.com/","date_created":"2023-11-25T06:34:10.166Z","title":"Type Drummer","slug":"typedrummer","author":"Kyle Stetz","author_link":"http://kylestetz.com/","description":"Type your drum loops","tags":["sequencer","drums","Keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"19454c82-7338-4144-9f1c-010c80a70a6e","id":48,"sort":48,"clicks":21,"public":false,"is_new":false,"stats":[42]},"relativePath":"typedrummer/index.md","filePath":"typedrummer/index.md","lastUpdated":0}'),i={name:"typedrummer/index.md"},v=Object.assign(i,{setup(d){const{params:e,frontmatter:l}=a();return(u,_)=>{const t=r;return p(),s("div",null,[m(t,o(n(c(e))),null,16)])}}});export{k as __pageData,v as default}; +import{_ as r}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as s,y as m,R as o,S as n,f as c,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"http://typedrummer.com/","date_created":"2023-11-25T06:34:10.166Z","title":"Type Drummer","slug":"typedrummer","author":"Kyle Stetz","author_link":"http://kylestetz.com/","description":"Type your drum loops","tags":["sequencer","drums","Keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"19454c82-7338-4144-9f1c-010c80a70a6e","id":48,"sort":49,"clicks":21,"public":false,"is_new":false,"stats":[42]},"relativePath":"typedrummer/index.md","filePath":"typedrummer/index.md","lastUpdated":0}'),i={name:"typedrummer/index.md"},v=Object.assign(i,{setup(d){const{params:e,frontmatter:l}=a();return(u,_)=>{const t=r;return p(),s("div",null,[m(t,o(n(c(e))),null,16)])}}});export{k as __pageData,v as default}; diff --git a/assets/typedrummer_index.md.BusrGXTy.lean.js b/assets/typedrummer_index.md.BDZ2LjKp.lean.js similarity index 94% rename from assets/typedrummer_index.md.BusrGXTy.lean.js rename to assets/typedrummer_index.md.BDZ2LjKp.lean.js index 9de067dc..516efddb 100644 --- a/assets/typedrummer_index.md.BusrGXTy.lean.js +++ b/assets/typedrummer_index.md.BDZ2LjKp.lean.js @@ -1 +1 @@ -import{_ as r}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as s,y as m,R as o,S as n,f as c,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"http://typedrummer.com/","date_created":"2023-11-25T06:34:10.166Z","title":"Type Drummer","slug":"typedrummer","author":"Kyle Stetz","author_link":"http://kylestetz.com/","description":"Type your drum loops","tags":["sequencer","drums","Keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"19454c82-7338-4144-9f1c-010c80a70a6e","id":48,"sort":48,"clicks":21,"public":false,"is_new":false,"stats":[42]},"relativePath":"typedrummer/index.md","filePath":"typedrummer/index.md","lastUpdated":0}'),i={name:"typedrummer/index.md"},v=Object.assign(i,{setup(d){const{params:e,frontmatter:l}=a();return(u,_)=>{const t=r;return p(),s("div",null,[m(t,o(n(c(e))),null,16)])}}});export{k as __pageData,v as default}; +import{_ as r}from"./chunks/SynthPage.DISdFh95.js";import{s as a,d as s,y as m,R as o,S as n,f as c,b as p}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const k=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"http://typedrummer.com/","date_created":"2023-11-25T06:34:10.166Z","title":"Type Drummer","slug":"typedrummer","author":"Kyle Stetz","author_link":"http://kylestetz.com/","description":"Type your drum loops","tags":["sequencer","drums","Keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"19454c82-7338-4144-9f1c-010c80a70a6e","id":48,"sort":49,"clicks":21,"public":false,"is_new":false,"stats":[42]},"relativePath":"typedrummer/index.md","filePath":"typedrummer/index.md","lastUpdated":0}'),i={name:"typedrummer/index.md"},v=Object.assign(i,{setup(d){const{params:e,frontmatter:l}=a();return(u,_)=>{const t=r;return p(),s("div",null,[m(t,o(n(c(e))),null,16)])}}});export{k as __pageData,v as default}; diff --git a/assets/video-sampler_index.md.BX5J1XC_.js b/assets/video-sampler_index.md.CjoNTEKg.js similarity index 93% rename from assets/video-sampler_index.md.BX5J1XC_.js rename to assets/video-sampler_index.md.CjoNTEKg.js index cf80ca3f..04508e6d 100644 --- a/assets/video-sampler_index.md.BX5J1XC_.js +++ b/assets/video-sampler_index.md.CjoNTEKg.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as n,S as o,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://seeing-sound.netlify.app/","date_created":"2023-10-27T12:45:54.492Z","title":"Video Sampler","slug":"video-sampler","author":"Playtronica","author_link":"https://shop.playtronica.com","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"b39cc546-2571-4402-84cd-f8497e27d0c9","id":31,"sort":22,"clicks":256,"public":false,"is_new":false,"stats":[18]},"relativePath":"video-sampler/index.md","filePath":"video-sampler/index.md","lastUpdated":0}'),p={name:"video-sampler/index.md"},P=Object.assign(p,{setup(d){const{params:e,frontmatter:m}=s();return(_,u)=>{const a=t;return c(),r("div",null,[i(a,n(o(l(e))),null,16)])}}});export{y as __pageData,P as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as n,S as o,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://seeing-sound.netlify.app/","date_created":"2023-10-27T12:45:54.492Z","title":"Video Sampler","slug":"video-sampler","author":"Playtronica","author_link":"https://shop.playtronica.com","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"b39cc546-2571-4402-84cd-f8497e27d0c9","id":31,"sort":23,"clicks":256,"public":false,"is_new":false,"stats":[18]},"relativePath":"video-sampler/index.md","filePath":"video-sampler/index.md","lastUpdated":0}'),p={name:"video-sampler/index.md"},P=Object.assign(p,{setup(d){const{params:e,frontmatter:m}=s();return(_,u)=>{const a=t;return c(),r("div",null,[i(a,n(o(l(e))),null,16)])}}});export{y as __pageData,P as default}; diff --git a/assets/video-sampler_index.md.BX5J1XC_.lean.js b/assets/video-sampler_index.md.CjoNTEKg.lean.js similarity index 93% rename from assets/video-sampler_index.md.BX5J1XC_.lean.js rename to assets/video-sampler_index.md.CjoNTEKg.lean.js index cf80ca3f..04508e6d 100644 --- a/assets/video-sampler_index.md.BX5J1XC_.lean.js +++ b/assets/video-sampler_index.md.CjoNTEKg.lean.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as n,S as o,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://seeing-sound.netlify.app/","date_created":"2023-10-27T12:45:54.492Z","title":"Video Sampler","slug":"video-sampler","author":"Playtronica","author_link":"https://shop.playtronica.com","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"b39cc546-2571-4402-84cd-f8497e27d0c9","id":31,"sort":22,"clicks":256,"public":false,"is_new":false,"stats":[18]},"relativePath":"video-sampler/index.md","filePath":"video-sampler/index.md","lastUpdated":0}'),p={name:"video-sampler/index.md"},P=Object.assign(p,{setup(d){const{params:e,frontmatter:m}=s();return(_,u)=>{const a=t;return c(),r("div",null,[i(a,n(o(l(e))),null,16)])}}});export{y as __pageData,P as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as r,y as i,R as n,S as o,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://seeing-sound.netlify.app/","date_created":"2023-10-27T12:45:54.492Z","title":"Video Sampler","slug":"video-sampler","author":"Playtronica","author_link":"https://shop.playtronica.com","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"b39cc546-2571-4402-84cd-f8497e27d0c9","id":31,"sort":23,"clicks":256,"public":false,"is_new":false,"stats":[18]},"relativePath":"video-sampler/index.md","filePath":"video-sampler/index.md","lastUpdated":0}'),p={name:"video-sampler/index.md"},P=Object.assign(p,{setup(d){const{params:e,frontmatter:m}=s();return(_,u)=>{const a=t;return c(),r("div",null,[i(a,n(o(l(e))),null,16)])}}});export{y as __pageData,P as default}; diff --git a/assets/virtual-piano_index.md.C-AbUXrp.js b/assets/virtual-piano_index.md.BFhOriOg.js similarity index 95% rename from assets/virtual-piano_index.md.C-AbUXrp.js rename to assets/virtual-piano_index.md.BFhOriOg.js index 14aea21a..370db01e 100644 --- a/assets/virtual-piano_index.md.C-AbUXrp.js +++ b/assets/virtual-piano_index.md.BFhOriOg.js @@ -1 +1 @@ -import{_ as n}from"./chunks/SynthPage.DISdFh95.js";import{s as o,d as s,y as r,R as i,S as l,f as u,g as e,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const d=e("p",null,"VirtualPiano.eu is the online synthesizer that allows you to play 128 musical instruments for free using your PC keyboard, the mouse or by connecting an external MIDI keyboard.",-1),p=e("p",null,"You can adjust Volume, Reverb, Loop and quality. Use the sustain and adjust the octaves, you can also select and set different channels including the one for the drums.",-1),m=e("p",null,"Create your own melodies, have fun playing or use VirtualPiano to learn how to play the Piano online on your own.",-1),w=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://virtualpiano.eu/","date_created":"2023-10-27T12:45:54.542Z","title":"VirtualPiano.eu","slug":"virtual-piano","author":"WebSyrup","author_link":"https://websyrup.net/","description":null,"tags":["midi","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"9a59eea5-c77f-483c-9443-1cd0727e6dcc","id":35,"sort":27,"clicks":282,"public":false,"is_new":false,"stats":[21]},"relativePath":"virtual-piano/index.md","filePath":"virtual-piano/index.md","lastUpdated":0}'),_={name:"virtual-piano/index.md"},x=Object.assign(_,{setup(h){const{params:a,frontmatter:f}=o();return(y,v)=>{const t=n;return c(),s("div",null,[r(t,i(l(u(a))),null,16),d,p,m])}}});export{w as __pageData,x as default}; +import{_ as n}from"./chunks/SynthPage.DISdFh95.js";import{s as o,d as s,y as r,R as i,S as l,f as u,g as e,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const d=e("p",null,"VirtualPiano.eu is the online synthesizer that allows you to play 128 musical instruments for free using your PC keyboard, the mouse or by connecting an external MIDI keyboard.",-1),p=e("p",null,"You can adjust Volume, Reverb, Loop and quality. Use the sustain and adjust the octaves, you can also select and set different channels including the one for the drums.",-1),m=e("p",null,"Create your own melodies, have fun playing or use VirtualPiano to learn how to play the Piano online on your own.",-1),w=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://virtualpiano.eu/","date_created":"2023-10-27T12:45:54.542Z","title":"VirtualPiano.eu","slug":"virtual-piano","author":"WebSyrup","author_link":"https://websyrup.net/","description":null,"tags":["midi","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"9a59eea5-c77f-483c-9443-1cd0727e6dcc","id":35,"sort":28,"clicks":282,"public":false,"is_new":false,"stats":[21]},"relativePath":"virtual-piano/index.md","filePath":"virtual-piano/index.md","lastUpdated":0}'),_={name:"virtual-piano/index.md"},x=Object.assign(_,{setup(h){const{params:a,frontmatter:f}=o();return(y,v)=>{const t=n;return c(),s("div",null,[r(t,i(l(u(a))),null,16),d,p,m])}}});export{w as __pageData,x as default}; diff --git a/assets/virtual-piano_index.md.C-AbUXrp.lean.js b/assets/virtual-piano_index.md.BFhOriOg.lean.js similarity index 95% rename from assets/virtual-piano_index.md.C-AbUXrp.lean.js rename to assets/virtual-piano_index.md.BFhOriOg.lean.js index 14aea21a..370db01e 100644 --- a/assets/virtual-piano_index.md.C-AbUXrp.lean.js +++ b/assets/virtual-piano_index.md.BFhOriOg.lean.js @@ -1 +1 @@ -import{_ as n}from"./chunks/SynthPage.DISdFh95.js";import{s as o,d as s,y as r,R as i,S as l,f as u,g as e,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const d=e("p",null,"VirtualPiano.eu is the online synthesizer that allows you to play 128 musical instruments for free using your PC keyboard, the mouse or by connecting an external MIDI keyboard.",-1),p=e("p",null,"You can adjust Volume, Reverb, Loop and quality. Use the sustain and adjust the octaves, you can also select and set different channels including the one for the drums.",-1),m=e("p",null,"Create your own melodies, have fun playing or use VirtualPiano to learn how to play the Piano online on your own.",-1),w=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://virtualpiano.eu/","date_created":"2023-10-27T12:45:54.542Z","title":"VirtualPiano.eu","slug":"virtual-piano","author":"WebSyrup","author_link":"https://websyrup.net/","description":null,"tags":["midi","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"9a59eea5-c77f-483c-9443-1cd0727e6dcc","id":35,"sort":27,"clicks":282,"public":false,"is_new":false,"stats":[21]},"relativePath":"virtual-piano/index.md","filePath":"virtual-piano/index.md","lastUpdated":0}'),_={name:"virtual-piano/index.md"},x=Object.assign(_,{setup(h){const{params:a,frontmatter:f}=o();return(y,v)=>{const t=n;return c(),s("div",null,[r(t,i(l(u(a))),null,16),d,p,m])}}});export{w as __pageData,x as default}; +import{_ as n}from"./chunks/SynthPage.DISdFh95.js";import{s as o,d as s,y as r,R as i,S as l,f as u,g as e,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const d=e("p",null,"VirtualPiano.eu is the online synthesizer that allows you to play 128 musical instruments for free using your PC keyboard, the mouse or by connecting an external MIDI keyboard.",-1),p=e("p",null,"You can adjust Volume, Reverb, Loop and quality. Use the sustain and adjust the octaves, you can also select and set different channels including the one for the drums.",-1),m=e("p",null,"Create your own melodies, have fun playing or use VirtualPiano to learn how to play the Piano online on your own.",-1),w=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://virtualpiano.eu/","date_created":"2023-10-27T12:45:54.542Z","title":"VirtualPiano.eu","slug":"virtual-piano","author":"WebSyrup","author_link":"https://websyrup.net/","description":null,"tags":["midi","keyboard"],"archive_link":null,"archive":false,"iframe":true,"cover":"9a59eea5-c77f-483c-9443-1cd0727e6dcc","id":35,"sort":28,"clicks":282,"public":false,"is_new":false,"stats":[21]},"relativePath":"virtual-piano/index.md","filePath":"virtual-piano/index.md","lastUpdated":0}'),_={name:"virtual-piano/index.md"},x=Object.assign(_,{setup(h){const{params:a,frontmatter:f}=o();return(y,v)=>{const t=n;return c(),s("div",null,[r(t,i(l(u(a))),null,16),d,p,m])}}});export{w as __pageData,x as default}; diff --git a/assets/web-audio-synth-v2_index.md.BLs7YuO-.js b/assets/web-audio-synth-v2_index.md.h138n_65.js similarity index 93% rename from assets/web-audio-synth-v2_index.md.BLs7YuO-.js rename to assets/web-audio-synth-v2_index.md.h138n_65.js index c036bb70..aa515ffb 100644 --- a/assets/web-audio-synth-v2_index.md.BLs7YuO-.js +++ b/assets/web-audio-synth-v2_index.md.h138n_65.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as i,S as o,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://aikelab.net/websynthv2/","date_created":"2023-10-27T12:45:54.141Z","title":"WebAudioSynth V2","slug":"web-audio-synth-v2","author":"like","author_link":"https://github.com/aike/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"ac668fba-7226-43dc-a91f-bd21a31446e5","id":16,"sort":45,"clicks":305,"public":false,"is_new":false,"stats":[39]},"relativePath":"web-audio-synth-v2/index.md","filePath":"web-audio-synth-v2/index.md","lastUpdated":0}'),d={name:"web-audio-synth-v2/index.md"},g=Object.assign(d,{setup(u){const{params:e,frontmatter:p}=s();return(m,_)=>{const t=a;return c(),n("div",null,[r(t,i(o(l(e))),null,16)])}}});export{y as __pageData,g as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as i,S as o,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://aikelab.net/websynthv2/","date_created":"2023-10-27T12:45:54.141Z","title":"WebAudioSynth V2","slug":"web-audio-synth-v2","author":"like","author_link":"https://github.com/aike/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"ac668fba-7226-43dc-a91f-bd21a31446e5","id":16,"sort":46,"clicks":305,"public":false,"is_new":false,"stats":[39]},"relativePath":"web-audio-synth-v2/index.md","filePath":"web-audio-synth-v2/index.md","lastUpdated":0}'),d={name:"web-audio-synth-v2/index.md"},g=Object.assign(d,{setup(u){const{params:e,frontmatter:p}=s();return(m,_)=>{const t=a;return c(),n("div",null,[r(t,i(o(l(e))),null,16)])}}});export{y as __pageData,g as default}; diff --git a/assets/web-audio-synth-v2_index.md.BLs7YuO-.lean.js b/assets/web-audio-synth-v2_index.md.h138n_65.lean.js similarity index 93% rename from assets/web-audio-synth-v2_index.md.BLs7YuO-.lean.js rename to assets/web-audio-synth-v2_index.md.h138n_65.lean.js index c036bb70..aa515ffb 100644 --- a/assets/web-audio-synth-v2_index.md.BLs7YuO-.lean.js +++ b/assets/web-audio-synth-v2_index.md.h138n_65.lean.js @@ -1 +1 @@ -import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as i,S as o,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://aikelab.net/websynthv2/","date_created":"2023-10-27T12:45:54.141Z","title":"WebAudioSynth V2","slug":"web-audio-synth-v2","author":"like","author_link":"https://github.com/aike/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"ac668fba-7226-43dc-a91f-bd21a31446e5","id":16,"sort":45,"clicks":305,"public":false,"is_new":false,"stats":[39]},"relativePath":"web-audio-synth-v2/index.md","filePath":"web-audio-synth-v2/index.md","lastUpdated":0}'),d={name:"web-audio-synth-v2/index.md"},g=Object.assign(d,{setup(u){const{params:e,frontmatter:p}=s();return(m,_)=>{const t=a;return c(),n("div",null,[r(t,i(o(l(e))),null,16)])}}});export{y as __pageData,g as default}; +import{_ as a}from"./chunks/SynthPage.DISdFh95.js";import{s,d as n,y as r,R as i,S as o,f as l,b as c}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const y=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://aikelab.net/websynthv2/","date_created":"2023-10-27T12:45:54.141Z","title":"WebAudioSynth V2","slug":"web-audio-synth-v2","author":"like","author_link":"https://github.com/aike/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"ac668fba-7226-43dc-a91f-bd21a31446e5","id":16,"sort":46,"clicks":305,"public":false,"is_new":false,"stats":[39]},"relativePath":"web-audio-synth-v2/index.md","filePath":"web-audio-synth-v2/index.md","lastUpdated":0}'),d={name:"web-audio-synth-v2/index.md"},g=Object.assign(d,{setup(u){const{params:e,frontmatter:p}=s();return(m,_)=>{const t=a;return c(),n("div",null,[r(t,i(o(l(e))),null,16)])}}});export{y as __pageData,g as default}; diff --git a/assets/web-modular_index.md.Bg8aCyfa.js b/assets/web-modular_index.md.D5IGTZmQ.js similarity index 93% rename from assets/web-modular_index.md.Bg8aCyfa.js rename to assets/web-modular_index.md.D5IGTZmQ.js index 304ba7aa..3f6ea8c0 100644 --- a/assets/web-modular_index.md.Bg8aCyfa.js +++ b/assets/web-modular_index.md.D5IGTZmQ.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as o,R as l,S as n,f as c,b as i}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const w=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.g200kg.com/docs/webmodular/","date_created":"2023-10-27T12:45:54.252Z","title":"Web Modular","slug":"web-modular","author":"g200kg","author_link":"https://www.g200kg.com/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"48e0280c-f7ff-4308-bde3-973b7febe89c","id":21,"sort":31,"clicks":202,"public":false,"is_new":false,"stats":[25]},"relativePath":"web-modular/index.md","filePath":"web-modular/index.md","lastUpdated":0}'),d={name:"web-modular/index.md"},k=Object.assign(d,{setup(m){const{params:e,frontmatter:u}=r();return(p,_)=>{const a=t;return i(),s("div",null,[o(a,l(n(c(e))),null,16)])}}});export{w as __pageData,k as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as o,R as l,S as n,f as c,b as i}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const w=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.g200kg.com/docs/webmodular/","date_created":"2023-10-27T12:45:54.252Z","title":"Web Modular","slug":"web-modular","author":"g200kg","author_link":"https://www.g200kg.com/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"48e0280c-f7ff-4308-bde3-973b7febe89c","id":21,"sort":32,"clicks":202,"public":false,"is_new":false,"stats":[25]},"relativePath":"web-modular/index.md","filePath":"web-modular/index.md","lastUpdated":0}'),d={name:"web-modular/index.md"},k=Object.assign(d,{setup(m){const{params:e,frontmatter:u}=r();return(p,_)=>{const a=t;return i(),s("div",null,[o(a,l(n(c(e))),null,16)])}}});export{w as __pageData,k as default}; diff --git a/assets/web-modular_index.md.Bg8aCyfa.lean.js b/assets/web-modular_index.md.D5IGTZmQ.lean.js similarity index 93% rename from assets/web-modular_index.md.Bg8aCyfa.lean.js rename to assets/web-modular_index.md.D5IGTZmQ.lean.js index 304ba7aa..3f6ea8c0 100644 --- a/assets/web-modular_index.md.Bg8aCyfa.lean.js +++ b/assets/web-modular_index.md.D5IGTZmQ.lean.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as o,R as l,S as n,f as c,b as i}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const w=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.g200kg.com/docs/webmodular/","date_created":"2023-10-27T12:45:54.252Z","title":"Web Modular","slug":"web-modular","author":"g200kg","author_link":"https://www.g200kg.com/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"48e0280c-f7ff-4308-bde3-973b7febe89c","id":21,"sort":31,"clicks":202,"public":false,"is_new":false,"stats":[25]},"relativePath":"web-modular/index.md","filePath":"web-modular/index.md","lastUpdated":0}'),d={name:"web-modular/index.md"},k=Object.assign(d,{setup(m){const{params:e,frontmatter:u}=r();return(p,_)=>{const a=t;return i(),s("div",null,[o(a,l(n(c(e))),null,16)])}}});export{w as __pageData,k as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s as r,d as s,y as o,R as l,S as n,f as c,b as i}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const w=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.g200kg.com/docs/webmodular/","date_created":"2023-10-27T12:45:54.252Z","title":"Web Modular","slug":"web-modular","author":"g200kg","author_link":"https://www.g200kg.com/","description":null,"tags":null,"archive_link":null,"archive":false,"iframe":true,"cover":"48e0280c-f7ff-4308-bde3-973b7febe89c","id":21,"sort":32,"clicks":202,"public":false,"is_new":false,"stats":[25]},"relativePath":"web-modular/index.md","filePath":"web-modular/index.md","lastUpdated":0}'),d={name:"web-modular/index.md"},k=Object.assign(d,{setup(m){const{params:e,frontmatter:u}=r();return(p,_)=>{const a=t;return i(),s("div",null,[o(a,l(n(c(e))),null,16)])}}});export{w as __pageData,k as default}; diff --git a/assets/web-sid_index.md.WekUjAVT.js b/assets/web-sid_index.md.CthTchcH.js similarity index 94% rename from assets/web-sid_index.md.WekUjAVT.js rename to assets/web-sid_index.md.CthTchcH.js index 29301795..736e9082 100644 --- a/assets/web-sid_index.md.WekUjAVT.js +++ b/assets/web-sid_index.md.CthTchcH.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as i,y as r,R as n,S as o,f as d,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.igorski.nl/experiment/websid","date_created":"2023-10-27T12:45:54.438Z","title":"WebSID Commodore 64","slug":"web-sid","author":"Igor Zinken","author_link":"https://www.igorski.nl/","description":null,"tags":["polyphonic","keyboard","midi","additive"],"archive_link":null,"archive":false,"iframe":false,"cover":"932e0ae0-0048-4c6d-92bb-a4a17a8a4dd4","id":28,"sort":25,"clicks":156,"public":false,"is_new":false,"stats":[19]},"relativePath":"web-sid/index.md","filePath":"web-sid/index.md","lastUpdated":0}'),c={name:"web-sid/index.md"},k=Object.assign(c,{setup(p){const{params:e,frontmatter:m}=s();return(_,u)=>{const a=t;return l(),i("div",null,[r(a,n(o(d(e))),null,16)])}}});export{g as __pageData,k as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as i,y as r,R as n,S as o,f as d,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.igorski.nl/experiment/websid","date_created":"2023-10-27T12:45:54.438Z","title":"WebSID Commodore 64","slug":"web-sid","author":"Igor Zinken","author_link":"https://www.igorski.nl/","description":null,"tags":["polyphonic","keyboard","midi","additive"],"archive_link":null,"archive":false,"iframe":false,"cover":"932e0ae0-0048-4c6d-92bb-a4a17a8a4dd4","id":28,"sort":26,"clicks":156,"public":false,"is_new":false,"stats":[19]},"relativePath":"web-sid/index.md","filePath":"web-sid/index.md","lastUpdated":0}'),c={name:"web-sid/index.md"},k=Object.assign(c,{setup(p){const{params:e,frontmatter:m}=s();return(_,u)=>{const a=t;return l(),i("div",null,[r(a,n(o(d(e))),null,16)])}}});export{g as __pageData,k as default}; diff --git a/assets/web-sid_index.md.WekUjAVT.lean.js b/assets/web-sid_index.md.CthTchcH.lean.js similarity index 94% rename from assets/web-sid_index.md.WekUjAVT.lean.js rename to assets/web-sid_index.md.CthTchcH.lean.js index 29301795..736e9082 100644 --- a/assets/web-sid_index.md.WekUjAVT.lean.js +++ b/assets/web-sid_index.md.CthTchcH.lean.js @@ -1 +1 @@ -import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as i,y as r,R as n,S as o,f as d,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.igorski.nl/experiment/websid","date_created":"2023-10-27T12:45:54.438Z","title":"WebSID Commodore 64","slug":"web-sid","author":"Igor Zinken","author_link":"https://www.igorski.nl/","description":null,"tags":["polyphonic","keyboard","midi","additive"],"archive_link":null,"archive":false,"iframe":false,"cover":"932e0ae0-0048-4c6d-92bb-a4a17a8a4dd4","id":28,"sort":25,"clicks":156,"public":false,"is_new":false,"stats":[19]},"relativePath":"web-sid/index.md","filePath":"web-sid/index.md","lastUpdated":0}'),c={name:"web-sid/index.md"},k=Object.assign(c,{setup(p){const{params:e,frontmatter:m}=s();return(_,u)=>{const a=t;return l(),i("div",null,[r(a,n(o(d(e))),null,16)])}}});export{g as __pageData,k as default}; +import{_ as t}from"./chunks/SynthPage.DISdFh95.js";import{s,d as i,y as r,R as n,S as o,f as d,b as l}from"./chunks/framework.BMc-2bSs.js";import"./chunks/useClicks.DBr_plfA.js";import"./chunks/index.DISW28_u.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{"dynamic":true,"page_type":"synth"},"headers":[],"params":{"url":"https://www.igorski.nl/experiment/websid","date_created":"2023-10-27T12:45:54.438Z","title":"WebSID Commodore 64","slug":"web-sid","author":"Igor Zinken","author_link":"https://www.igorski.nl/","description":null,"tags":["polyphonic","keyboard","midi","additive"],"archive_link":null,"archive":false,"iframe":false,"cover":"932e0ae0-0048-4c6d-92bb-a4a17a8a4dd4","id":28,"sort":26,"clicks":156,"public":false,"is_new":false,"stats":[19]},"relativePath":"web-sid/index.md","filePath":"web-sid/index.md","lastUpdated":0}'),c={name:"web-sid/index.md"},k=Object.assign(c,{setup(p){const{params:e,frontmatter:m}=s();return(_,u)=>{const a=t;return l(),i("div",null,[r(a,n(o(d(e))),null,16)])}}});export{g as __pageData,k as default}; diff --git a/auth.html b/auth.html index 403ed968..8ee338ee 100644 --- a/auth.html +++ b/auth.html @@ -42,7 +42,7 @@ - + \ No newline at end of file diff --git a/auth/accept.html b/auth/accept.html index 06300b91..9f606872 100644 --- a/auth/accept.html +++ b/auth/accept.html @@ -42,7 +42,7 @@

ACCEPT INVITE PAGE

Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/auth/index.html b/auth/index.html index bbef19d4..919f86ca 100644 --- a/auth/index.html +++ b/auth/index.html @@ -43,7 +43,7 @@
Login to your account
Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/auth/invite.html b/auth/invite.html index 80d94cef..bdc5f277 100644 --- a/auth/invite.html +++ b/auth/invite.html @@ -42,7 +42,7 @@

Invite a new user PAGE

Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/auth/logout.html b/auth/logout.html index bf32c5bd..fbc93137 100644 --- a/auth/logout.html +++ b/auth/logout.html @@ -42,7 +42,7 @@

LOGIN PAGE

Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/auth/reset.html b/auth/reset.html index bb937897..14eab641 100644 --- a/auth/reset.html +++ b/auth/reset.html @@ -42,7 +42,7 @@

PASSWORD RESET PAGE

Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/bassoon/index.html b/bassoon/index.html index e4b0e798..41488ac9 100644 --- a/bassoon/index.html +++ b/bassoon/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Bassoon Tracker
by Steffest
FM
tracker
8-bit
low-fi
Browser-based old-school Amiga Music Tracker in plain old JavaScript.
Made with 🧡 by
Playtronica &Chromatone
- +
Bassoon Tracker
by Steffest
FM
tracker
8-bit
low-fi
Browser-based old-school Amiga Music Tracker in plain old JavaScript.
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/beepbox/index.html b/beepbox/index.html index ad52599d..4a7eb7ae 100644 --- a/beepbox/index.html +++ b/beepbox/index.html @@ -14,7 +14,7 @@ - + @@ -52,12 +52,12 @@ -
Poly
Sequencer
FM
BeepBox is an online tool for sketching and sharing instrumental music. +
Poly
Sequencer
FM
BeepBox is an online tool for sketching and sharing instrumental music. All song data is contained in the URL at the top of your browser. When you make changes to the song, the URL is updated to reflect your changes. When you are satisfied with your song, just copy and paste the URL to save and share your song! BeepBox is a passion project, and will always be free to use.

BeepBox is developed by John Nesky.

BeepBox does not claim ownership over songs created with it, so original songs belong to their authors.

Neither John Nesky nor BeepBox assume responsibility for any copyrighted material played on BeepBox. No songs are ever received, recorded, or distributed by BeepBox's servers. All song data is contained in the URL after the hash (#) mark, and your song data will not leave your device unless you copy and share the URL. BeepBox does not collect, track, or share any user data.

Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/blokdust/index.html b/blokdust/index.html index 179a5b04..4f625126 100644 --- a/blokdust/index.html +++ b/blokdust/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
creative
sequencer
BlokDust is a creative visual drag and drop music exploration tool. Developed in Brighton UK and released in 2016, BlokDust uses the Web Audio API and makes use of Tone.js as an audio framework.

Luke Twyman - project concept, design & Ul. whitevinyldesign.com @whitevinylUK Luke Phillips - audio development & musical interaction. femurdesign.com @lukephills Edward Silverton - client & server architecture & core development. edsilv.com @edsilv

Made with 🧡 by
Playtronica &Chromatone
- +
creative
sequencer
BlokDust is a creative visual drag and drop music exploration tool. Developed in Brighton UK and released in 2016, BlokDust uses the Web Audio API and makes use of Tone.js as an audio framework.

Luke Twyman - project concept, design & Ul. whitevinyldesign.com @whitevinylUK Luke Phillips - audio development & musical interaction. femurdesign.com @lukephills Edward Silverton - client & server architecture & core development. edsilv.com @edsilv

Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/cardboard-synth/index.html b/cardboard-synth/index.html index e49454e3..0a897eda 100644 --- a/cardboard-synth/index.html +++ b/cardboard-synth/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/cardinal/index.html b/cardinal/index.html index c04fb4df..38a92396 100644 --- a/cardinal/index.html +++ b/cardinal/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Modular
FM
Poly
Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.

Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web. It is based on the popular VCV Rack but with a focus on being a fully self-contained plugin version.

More specifically, this is a DPF-based plugin wrapper around VCV Rack, using its code directly instead of forking the project, with the target of having a self-contained, fully free and open-source plugin version of Rack. See the why section below for the reasons Cardinal exists, also for frequently asked questions check this FAQ document.

Cardinal contains Rack, some 3rd-party modules and a few internal utilities all in a single binary. All "Core" modules from Rack have been replaced by Cardinal equivalents, simplified to better work for an audio plugin.

Cardinal does not load external modules and does not connect to the official Rack library/store. All VCV branding has been removed (to the best of our knowledge) in order to avoid any trademark issues.

Why

Cardinal was created first and foremost as a way to have Rack as a proper open-source audio plugin. A proper audio plugin should be self-contained as much as possible, as to not interfere with the DAW/Host. Loading external modules clearly goes against this idea. Not to mention being open-source, otherwise we are at the mercy of the wishes of a company for what we can and cannot do, which is not something Cardinal's authors wish to abide by.

A self-contained plugin can't be overstated, as DLL/shared-object symbol conflicts can trigger hard-to-debug crashes. While Rack tries to mitigate this as much as possible, crashes due to conflicting modules have already been seen in v2 builds. On the other side, Cardinal redefines class and function names as needed to avoid as many conflicts as possible.

Support for ARM and non-mainstream platforms (for example BSD) has also always been missing from the official Rack since the start. While we can patch the Rack free version to support these, same can't be done with Rack Pro with it being a closed-source product. The online library/store only supports a very specific set of platforms too, so non-supported platforms would need any 3rd-party modules to be manually compiled to make them usable.

Unhappiness with the audio threading behaviour of Rack also plays a role. Both audio and MIDI should be locked to the host audio thread as to minimize (or even altogether remove) latency and jitter. The use of separate threads for MIDI is bad design, one that has been corrected in DAWs and JACK-MIDI for several years... But Rack's use of RtMidi requires separate threading, so Cardinal does not use it.

Made with 🧡 by
Playtronica &Chromatone
- +
Modular
FM
Poly
Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web.

Cardinal is a free and open-source virtual modular synthesizer plugin, available in AudioUnit/CLAP/LV2/VST2/VST3 plugin formats and as a standalone app for FreeBSD, Linux, macOS, Windows and the Web. It is based on the popular VCV Rack but with a focus on being a fully self-contained plugin version.

More specifically, this is a DPF-based plugin wrapper around VCV Rack, using its code directly instead of forking the project, with the target of having a self-contained, fully free and open-source plugin version of Rack. See the why section below for the reasons Cardinal exists, also for frequently asked questions check this FAQ document.

Cardinal contains Rack, some 3rd-party modules and a few internal utilities all in a single binary. All "Core" modules from Rack have been replaced by Cardinal equivalents, simplified to better work for an audio plugin.

Cardinal does not load external modules and does not connect to the official Rack library/store. All VCV branding has been removed (to the best of our knowledge) in order to avoid any trademark issues.

Why

Cardinal was created first and foremost as a way to have Rack as a proper open-source audio plugin. A proper audio plugin should be self-contained as much as possible, as to not interfere with the DAW/Host. Loading external modules clearly goes against this idea. Not to mention being open-source, otherwise we are at the mercy of the wishes of a company for what we can and cannot do, which is not something Cardinal's authors wish to abide by.

A self-contained plugin can't be overstated, as DLL/shared-object symbol conflicts can trigger hard-to-debug crashes. While Rack tries to mitigate this as much as possible, crashes due to conflicting modules have already been seen in v2 builds. On the other side, Cardinal redefines class and function names as needed to avoid as many conflicts as possible.

Support for ARM and non-mainstream platforms (for example BSD) has also always been missing from the official Rack since the start. While we can patch the Rack free version to support these, same can't be done with Rack Pro with it being a closed-source product. The online library/store only supports a very specific set of platforms too, so non-supported platforms would need any 3rd-party modules to be manually compiled to make them usable.

Unhappiness with the audio threading behaviour of Rack also plays a role. Both audio and MIDI should be locked to the host audio thread as to minimize (or even altogether remove) latency and jitter. The use of separate threads for MIDI is bad design, one that has been corrected in DAWs and JACK-MIDI for several years... But Rack's use of RtMidi requires separate threading, so Cardinal does not use it.

Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/chrome-lab/index.html b/chrome-lab/index.html index 238c7f5d..f8907327 100644 --- a/chrome-lab/index.html +++ b/chrome-lab/index.html @@ -45,7 +45,7 @@
Chrome Music Lab
by Google
Educational
Keyboard
MIDI
Poly
Piano
Analysis
Mic
Visuals
Chrome Music Lab is a website that makes learning music more accessible through fun, hands-on experiments.

What can it be used for?

Many teachers have been using Chrome Music Lab as a tool in their classrooms to explore music and its connections to science, math, art, and more. They’ve been combining it with dance and live instruments. Here’s a collection of some uses we’ve found on Twitter.

Can I use it to make my own songs?

Yes. Check out the Song Maker experiment, which lets you make and share your own songs.

Do I need to make an account?

Nope. Just open any experiment and start playing.

How were these built?

All our experiments are all built with freely accessible web technology such as Web Audio API, WebMIDI, Tone.js, and more. These tools make it easier for coders to build new interactive music experiences. You can get the open-source code to lots of these experiments here on Github.

What devices do these work on?

You can play with these experiments across devices – phones, tablets, laptops – just by opening the site on a web browser such as Chrome.

Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/cover/topos.webp b/cover/topos.webp new file mode 100644 index 00000000..d1cd2822 Binary files /dev/null and b/cover/topos.webp differ diff --git a/disco-computer/index.html b/disco-computer/index.html index d9a9122a..0eae3e7b 100644 --- a/disco-computer/index.html +++ b/disco-computer/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Disco-computer
by Patrick Sawyer
polyphonic
fm
keyboard
Made with 🧡 by
Playtronica &Chromatone
- +
Disco-computer
by Patrick Sawyer
polyphonic
fm
keyboard
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/dotpiano/index.html b/dotpiano/index.html index e4b8ce9b..7918a274 100644 --- a/dotpiano/index.html +++ b/dotpiano/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Dotpiano
by Alex Chen and Yotam Mann
polyphonic
midi
keyboard
Multiplayer
Dot Piano is an online musical instrument allowing users to play a digital piano using their computer keyboard. The interactive web app provides a simple and intuitive interface for creating and sharing music, making it accessible for both beginners and experienced musicians.
Made with 🧡 by
Playtronica &Chromatone
- +
Dotpiano
by Alex Chen and Yotam Mann
polyphonic
midi
keyboard
Multiplayer
Dot Piano is an online musical instrument allowing users to play a digital piano using their computer keyboard. The interactive web app provides a simple and intuitive interface for creating and sharing music, making it accessible for both beginners and experienced musicians.
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/dx7/index.html b/dx7/index.html index 5ac6f41f..ba4d2806 100644 --- a/dx7/index.html +++ b/dx7/index.html @@ -45,7 +45,7 @@
The DX7 Synth JS is an online emulator of the classic Yamaha DX7 synthesizer. This interactive web app replicates the iconic FM synthesis capabilities of the DX7, allowing users to create and manipulate sounds using various parameters such as algorithms, operators, and envelopes. The app supports MIDI devices and provides a user-friendly interface for sound design experimentation.
Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/elementary/index.html b/elementary/index.html index a4ae0c78..bd429f21 100644 --- a/elementary/index.html +++ b/elementary/index.html @@ -45,7 +45,7 @@
Elementary synth
by Chromatone
chromatone
polyphonic
keyboard
The Chromatone Elementary Synth is an interactive web-based synthesizer designed to provide a hands-on learning experience in sound synthesis. It features MIDI support and is built using the Elementary audio library. This synthesizer allows users to explore different synthesis techniques through a user-friendly interface, making it an excellent tool for both beginners and experienced musicians looking to experiment with sound design.
Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/groove-pizza/index.html b/groove-pizza/index.html index 82ef8bd6..bff693ae 100644 --- a/groove-pizza/index.html +++ b/groove-pizza/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
drums
sequencer
Educational
Groove Pizza is a circular rhythm app for creative music making and learning! It’s also a playful tool for creating grooves using math concepts like shapes, angles and patterns
Made with 🧡 by
Playtronica &Chromatone
- +
drums
sequencer
Educational
Groove Pizza is a circular rhythm app for creative music making and learning! It’s also a playful tool for creating grooves using math concepts like shapes, angles and patterns
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/hashmap.json b/hashmap.json index 18302393..d3d9aed4 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"microtonal_index.md":"Cxxy5Dbg","touchme_index.md":"rtyqdRs2","dx7_index.md":"BVRn45op","midi-city_index.md":"gfYVaokl","soundfont_index.md":"BM1fsY1U","elementary_index.md":"CizJw94X","aqwertyon_index.md":"DhwosnyG","chrome-lab_index.md":"C5EYj27j","auth_reset.md":"jdmof4lo","auth_logout.md":"BwxHhCs-","sympathetic_index.md":"0-XjNOIF","ableton_index.md":"fvKJq2dx","dotpiano_index.md":"1_M8HuwQ","auth_index.md":"BE9iu_uj","theremin_index.md":"BMBaK-hj","auth_accept.md":"D2HqVX5y","cardinal_index.md":"BasBgc69","multiplayer-orchestra_index.md":"mwGnzPfU","beepbox_index.md":"CQGVEfDZ","roland50_index.md":"kMTiquEr","video-sampler_index.md":"BX5J1XC_","online-sequencer_index.md":"C3sYy1nA","nv-1_index.md":"CEKUlaxD","virtual-piano_index.md":"C-AbUXrp","multiplayer-piano_index.md":"CRuG6YOY","cardboard-synth_index.md":"zTPni48z","typedrummer_index.md":"BusrGXTy","readme.md":"Je2ZCl0U","waveform_index.md":"DJawRQ8e","muted-io_index.md":"D9FQJLGf","web-sid_index.md":"WekUjAVT","auth.md":"CufJbGLz","auth_invite.md":"Cx5894xC","touch-pianist_index.md":"DOcY0bu_","midi-driven-web-audio_index.md":"CDBblW63","juno-106_index.md":"DtzWjeu0","sound-box_index.md":"BEzPKxFs","meet-the-heisenberg_index.md":"H-FWkarT","bassoon_index.md":"B5M0BSI4","omni_index.md":"CtwFvPgq","disco-computer_index.md":"Dt69zvl0","tanguy-synth_index.md":"BFWfoZFK","blokdust_index.md":"BgnJ0na5","groove-pizza_index.md":"DB1vs1YE","note-sculptor_index.md":"N1s4hdB4","mod-synth_index.md":"BZ1KX-4J","olif-sy-1-k_index.md":"D1hy3p6f","acid-machine-2_index.md":"SBWsjGKS","sample-stich_index.md":"BxgjVIxD","pixel-synth_index.md":"l-Kq8HHH","isleoftune_index.md":"CsnCd2FO","sound-trap_index.md":"CshRdAzV","web-modular_index.md":"Bg8aCyfa","web-audio-synth-v2_index.md":"BLs7YuO-","index.md":"D1t8y0zZ"} +{"sample-stich_index.md":"BjllBpc8","auth_logout.md":"BwxHhCs-","auth_reset.md":"jdmof4lo","dotpiano_index.md":"BunS2rE5","auth_accept.md":"D2HqVX5y","video-sampler_index.md":"CjoNTEKg","cardinal_index.md":"DyFHaI5Z","ableton_index.md":"BZzJjJql","multiplayer-piano_index.md":"BRrIXCOO","bassoon_index.md":"BAk5VPvw","nv-1_index.md":"Bkxbwvav","midi-driven-web-audio_index.md":"DC8t1Cy0","virtual-piano_index.md":"BFhOriOg","online-sequencer_index.md":"bzIdvwuX","tanguy-synth_index.md":"Chuzo4y_","blokdust_index.md":"DH3pt9ru","mod-synth_index.md":"BnA2UXRd","olif-sy-1-k_index.md":"BTLPOoZM","note-sculptor_index.md":"DL-7oPQO","web-audio-synth-v2_index.md":"h138n_65","disco-computer_index.md":"CJYnLsi-","isleoftune_index.md":"CZD_HPt-","sound-box_index.md":"DBUvHK9s","omni_index.md":"B347m62P","web-modular_index.md":"D5IGTZmQ","pixel-synth_index.md":"usELcb7e","acid-machine-2_index.md":"BYJpDBJ1","groove-pizza_index.md":"3ekFWbxz","typedrummer_index.md":"BDZ2LjKp","web-sid_index.md":"CthTchcH","auth.md":"CufJbGLz","sound-trap_index.md":"DZhZNwRa","elementary_index.md":"CizJw94X","auth_invite.md":"Cx5894xC","topos_index.md":"DVt9rwws","roland50_index.md":"C0VKhvRf","midi-city_index.md":"gfYVaokl","auth_index.md":"BE9iu_uj","juno-106_index.md":"Byv-eTgg","microtonal_index.md":"B7lUpN1F","touchme_index.md":"rtyqdRs2","waveform_index.md":"DJawRQ8e","sympathetic_index.md":"CbG1XeWz","theremin_index.md":"xsBSlTfD","dx7_index.md":"BVRn45op","multiplayer-orchestra_index.md":"B7SuOL5G","muted-io_index.md":"D9FQJLGf","beepbox_index.md":"ym9J5JVO","meet-the-heisenberg_index.md":"DhL0PLAB","touch-pianist_index.md":"DrUArMqE","cardboard-synth_index.md":"DTxKBWvi","soundfont_index.md":"BM1fsY1U","aqwertyon_index.md":"DhwosnyG","chrome-lab_index.md":"C5EYj27j","readme.md":"Je2ZCl0U","index.md":"Ck_FBFlh"} diff --git a/index.html b/index.html index 65624921..709fef2d 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,7 @@ - + @@ -70,7 +70,7 @@ ## What devices do these work on? -You can play with these experiments across devices – phones, tablets, laptops – just by opening the site on a web browser such as Chrome." data-v-f3c34bc1>
11
Chrome Music Lab
by Google
Educational
Keyboard
MIDI
Poly
Piano
Analysis
Mic
Visuals
Chromatone is an open source visual music language for education, research and performance. We develop a new universal way to communicate music. Playtronica is a digital playground that explores the possibilities of the material world through technology, creating gadgets that make the world musical. Together we share our passion for online music instruments.
0
web synths
0+
web musicians

Welcome to the community of web-based musicians!

Made with 🧡 by
Playtronica &Chromatone
- +@edsilv" data-v-f3c34bc1>
Chromatone is an open source visual music language for education, research and performance. We develop a new universal way to communicate music. Playtronica is a digital playground that explores the possibilities of the material world through technology, creating gadgets that make the world musical. Together we share our passion for online music instruments.
0
web synths
0+
web musicians

Welcome to the community of web-based musicians!

Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/isleoftune/index.html b/isleoftune/index.html index fc6146c0..092dc29c 100644 --- a/isleoftune/index.html +++ b/isleoftune/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Isle of Tune
by Jim Hall
game
sequencer
Draw an island, where everything plays music.
Made with 🧡 by
Playtronica &Chromatone
- +
Isle of Tune
by Jim Hall
game
sequencer
Draw an island, where everything plays music.
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/juno-106/index.html b/juno-106/index.html index 6d3edd0e..b423eb3a 100644 --- a/juno-106/index.html +++ b/juno-106/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
fm
midi
Online emulator of the classic Roland Juno-106 synthesizer. This interactive web app allows users to experiment with the iconic sounds of the Juno-106 directly from their browser. It features authentic recreations of the synth's controls and sound characteristics, making it a valuable tool for music enthusiasts and producers.
Made with 🧡 by
Playtronica &Chromatone
- +
fm
midi
Online emulator of the classic Roland Juno-106 synthesizer. This interactive web app allows users to experiment with the iconic sounds of the Juno-106 directly from their browser. It features authentic recreations of the synth's controls and sound characteristics, making it a valuable tool for music enthusiasts and producers.
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/meet-the-heisenberg/index.html b/meet-the-heisenberg/index.html index 3698747d..cca94042 100644 --- a/meet-the-heisenberg/index.html +++ b/meet-the-heisenberg/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/microtonal/index.html b/microtonal/index.html index c6253964..b858e5fe 100644 --- a/microtonal/index.html +++ b/microtonal/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Websynths Microtonal
by WebSynths
The deepest internet synthesizer

WebSynths is a free resource for any musician with internet access! But, it is made possible by support from our patrons. Please consider helping if you can: patreon.com/WebSynths

  • You can use your QWERTY keyboard, mouse, mobile touch or MIDI keyboard to play the sounds.
  • You can change the tuning of the keys, or select a scale, by clicking the tuning button.
  • MIDI is a way to use an external physical instrument to play it. If you have a MIDI keyboard that you wish to use, hit the MIDI button to set it up.
  • If a note gets stuck, hit the panic button, it will stop all voices from playing.
  • You can use the arrows on your computer keyboard to scroll through the presets.

A simple explanation of Subtractive Synthesis:

  • Subtractive Synthesis works by taking one or more oscillators, setting the pitch of their oscillation (usually to the note of the key being pressed,) setting the shape of their oscillation to the desired timbre (Sine, Saw, Square or more complex shapes,) mixing them together and running them through a filter to change their EQ (usually filtering out the highest or lowest frequencies... this is why it is called "subtractive"), then running them through an envelope so the note can be heard on when a key is pressed down and is silenced when the key is released. In the case of WebSynths Microtonal, the sound is then sent through effects like delay, chorus and reverb and out to your speakers.
  • Oscillators are the voices. This synth has 3 of them in the left column. You can change the character of each voice by changing the parameters of them. The 'Shape' menu allows you to choose from different styles of voice for each oscillator. You can turn each voice on or off and mix them together.
  • The filter section applies equalization to your oscillators via the cutoff and emphasis controls. You can change the equalization filter type to 'low pass / high pass' and many more. You can use the LFOs and/or Envelopes to change how the filtration changes over time. An LFO is just a slow oscillator that is uses to automatically move a parameter over time.
  • The amplitude envelope changes how your sound is played, volume-wise, when you hit a note. For example, having a long release time will mean that once you let go of the note you are playing it will tail off until fading out. Having a slow attack will mean that your note will fade in instead of playing at full volume straight away.
  • The effects section allows you to add various effects to your overall sound. You can change the effects, mix them together and toggle them on or off too.
Made with 🧡 by
Playtronica &Chromatone
- +
Websynths Microtonal
by WebSynths
The deepest internet synthesizer

WebSynths is a free resource for any musician with internet access! But, it is made possible by support from our patrons. Please consider helping if you can: patreon.com/WebSynths

  • You can use your QWERTY keyboard, mouse, mobile touch or MIDI keyboard to play the sounds.
  • You can change the tuning of the keys, or select a scale, by clicking the tuning button.
  • MIDI is a way to use an external physical instrument to play it. If you have a MIDI keyboard that you wish to use, hit the MIDI button to set it up.
  • If a note gets stuck, hit the panic button, it will stop all voices from playing.
  • You can use the arrows on your computer keyboard to scroll through the presets.

A simple explanation of Subtractive Synthesis:

  • Subtractive Synthesis works by taking one or more oscillators, setting the pitch of their oscillation (usually to the note of the key being pressed,) setting the shape of their oscillation to the desired timbre (Sine, Saw, Square or more complex shapes,) mixing them together and running them through a filter to change their EQ (usually filtering out the highest or lowest frequencies... this is why it is called "subtractive"), then running them through an envelope so the note can be heard on when a key is pressed down and is silenced when the key is released. In the case of WebSynths Microtonal, the sound is then sent through effects like delay, chorus and reverb and out to your speakers.
  • Oscillators are the voices. This synth has 3 of them in the left column. You can change the character of each voice by changing the parameters of them. The 'Shape' menu allows you to choose from different styles of voice for each oscillator. You can turn each voice on or off and mix them together.
  • The filter section applies equalization to your oscillators via the cutoff and emphasis controls. You can change the equalization filter type to 'low pass / high pass' and many more. You can use the LFOs and/or Envelopes to change how the filtration changes over time. An LFO is just a slow oscillator that is uses to automatically move a parameter over time.
  • The amplitude envelope changes how your sound is played, volume-wise, when you hit a note. For example, having a long release time will mean that once you let go of the note you are playing it will tail off until fading out. Having a slow attack will mean that your note will fade in instead of playing at full volume straight away.
  • The effects section allows you to add various effects to your overall sound. You can change the effects, mix them together and toggle them on or off too.
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/midi-city/index.html b/midi-city/index.html index 39bdd41e..7ecf5599 100644 --- a/midi-city/index.html +++ b/midi-city/index.html @@ -51,7 +51,7 @@
midi.city is a free online synthesizer, built by Jack. midi.city has over 128 different instruments including: Pianos, Saxophones, Drums, Trumpets, Synth Pads, Guitar, Violins and all other instruments defined in the General Midi specification.

midi.city has been created with the help of hundreds of different open-source projects and with contributions from many others.

  • Tone.js by Yotam Mann: the Web Audio API-based sound engine that implements a majority of nodes used in the audio graph. It powers many of the advanced features used such as Granular Synthesis, Reverb, and timing.
  • Groove Monkee: graciously provided the MIDI files that are used for the percussion loops.
  • Keenan Brand: created the midi.city logo and various icons used on the site.
  • Noun Project: various icons are used via a Pro license.
  • Google Material Design: various icons.
  • Compifont by Marcin Dziembor: the soundfont powering the samples and many the audio graph definitions, is originally . Several modifications have been made to adapt to midi.city and the Web Audio API.
Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/midi-driven-web-audio/index.html b/midi-driven-web-audio/index.html index d918cb1d..34ec53b4 100644 --- a/midi-driven-web-audio/index.html +++ b/midi-driven-web-audio/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/mod-synth/index.html b/mod-synth/index.html index 9d5ada21..f4f8ab48 100644 --- a/mod-synth/index.html +++ b/mod-synth/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/multiplayer-orchestra/index.html b/multiplayer-orchestra/index.html index 7ec47d38..f4cd7394 100644 --- a/multiplayer-orchestra/index.html +++ b/multiplayer-orchestra/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Multiplayer Orchestra
by Mutli_Orchestra
Poly
MIDI
Keyboard
Collaborative
Online
Play in real time with people from all around the world with more than 400 instruments.

Multiplayer Orchestra (https://www.multiplayer-orchestra.com/) is a web application that allows you to virtually collaborate with musicians from around the world in real-time. Here are some key features:

  • Large instrument selection: Choose from over 400 instruments, including pianos, guitars, drums, and orchestral instruments.
  • Real-time collaboration: Play music simultaneously with other users, creating a virtual orchestra.
  • Public and private rooms: Join public rooms to jam with others or create private rooms with a password for specific collaborations.
  • Contests: Participate in contests to win prizes like Amazon gift cards by recording solo performances.

It's important to note that the website seems to be in beta based on the version information listed (Beta 0.30).

Made with 🧡 by
Playtronica &Chromatone
- +
Multiplayer Orchestra
by Mutli_Orchestra
Poly
MIDI
Keyboard
Collaborative
Online
Play in real time with people from all around the world with more than 400 instruments.

Multiplayer Orchestra (https://www.multiplayer-orchestra.com/) is a web application that allows you to virtually collaborate with musicians from around the world in real-time. Here are some key features:

  • Large instrument selection: Choose from over 400 instruments, including pianos, guitars, drums, and orchestral instruments.
  • Real-time collaboration: Play music simultaneously with other users, creating a virtual orchestra.
  • Public and private rooms: Join public rooms to jam with others or create private rooms with a password for specific collaborations.
  • Contests: Participate in contests to win prizes like Amazon gift cards by recording solo performances.

It's important to note that the website seems to be in beta based on the version information listed (Beta 0.30).

Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/multiplayer-piano/index.html b/multiplayer-piano/index.html index 11ccd9f6..e1f235eb 100644 --- a/multiplayer-piano/index.html +++ b/multiplayer-piano/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Multiplayer Piano
by Brandon Lockaby
Piano
MIDI
Poly
Multiplayer
Online piano, that can be played by any site visitor together in a virtual room or alone.
Made with 🧡 by
Playtronica &Chromatone
- +
Multiplayer Piano
by Brandon Lockaby
Piano
MIDI
Poly
Multiplayer
Online piano, that can be played by any site visitor together in a virtual room or alone.
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/muted-io/index.html b/muted-io/index.html index 12b9784c..4356e322 100644 --- a/muted-io/index.html +++ b/muted-io/index.html @@ -45,7 +45,7 @@
educational
midi
Muted.io offers a collection of interactive music theory tools designed for learning music online. These tools include a virtual piano, chord and scale references, a circle of fifths, tuners, and various visual aids to understand music theory concepts. The site is ideal for musicians looking to improve their knowledge and practice music in an engaging way.
Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/note-sculptor/index.html b/note-sculptor/index.html index 4510988f..a4166773 100644 --- a/note-sculptor/index.html +++ b/note-sculptor/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Note Sculptor
by Ruin Technology
Made with 🧡 by
Playtronica &Chromatone
- +
Note Sculptor
by Ruin Technology
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/nv-1/index.html b/nv-1/index.html index b925e3c9..3e73060a 100644 --- a/nv-1/index.html +++ b/nv-1/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/olif-sy-1-k/index.html b/olif-sy-1-k/index.html index a7b95422..512aac3a 100644 --- a/olif-sy-1-k/index.html +++ b/olif-sy-1-k/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/omni/index.html b/omni/index.html index 5e2fcbda..8127f1a5 100644 --- a/omni/index.html +++ b/omni/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/online-sequencer/index.html b/online-sequencer/index.html index b9a94965..1556bc7e 100644 --- a/online-sequencer/index.html +++ b/online-sequencer/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -

Online Sequencer is a web-based music sequencer that allows users to create music saved online, or on their computer. The piano roll is essential to the sequencer, which is on the left of the screen, with 72 notes from C2-B7 (labelled differently from a piano, C2 on the sequencer corresponds to C1 on a piano). In addition to several parameters which can be modified to change the sound of the music, additional functionality can be accessed via the console.

Upon opening the site, users can begin composing and "drawing" notes on the grid, with the default instrument being Electric Piano. By default, a sequence's time signature is set to 4/4, and the grid spacing is set to 1/4 (16 notes per measure). The note lengths can be adjusted by dragging the dark tab on the right of each note, and precision can be afforded by changing the 'Grid' option to other note divisions.

History

Online Sequencer was created on January 2, 2013 by Jacob Morgan during a break at Georgia Tech.

Beginning in the fall of 2013, accounts were available but were separate from the music portion of the site. They were only used in the forum and the website chat.

In 2015, accounts were linked to the main website and allowed songs to be saved under someone's username.

The World Update in 2018 added several new instruments and changed the landscape of sound design on the site. The "World Update Contest" was held for the update.

Starting in late 2020, OS began to receive a variety of updates which vastly improved the functionality of the site. These updates introduced features like custom grid sizes, automation with markers, extra reverb options, detune, and distortion. In 2021, the "Space Race" contest was held, as to see who could work best with the changes.

In late 2022, newer, higher-quality instruments were added. Some of the instruments, such as Electric Piano, Grand Piano, Violin, and Cello got an updated sustained version, while the original versions still exist under the "classic" designation.

Currently, the 10-Year Anniversary Contest is being held.

Features

Within the editor, numerous user interface features allow for various changes which will impact the individual sequence on that page.

Basic features

UI features include:

  • Tempo (10-999 BPM)
  • Measure count or Time count (MM: SS.ssss)
  • Time signature (2/4, 3/4, 4/4, 5/4)
  • Grid size (This correlates to note divisions; 1/16, 1/12, 1/8, 1/6, 1/4, 1/3, 1/2)
  • Auto Scroll (Fast, Smooth, Off; how the sequencer displays measures off-screen as a sequence plays)
  • Add an Audio Track (This won't be saved to the sequence but will play alongside it for ease of transcription)
  • Title input
  • Draw, select, and erase
  • Instrument dropdown, instrument options, and select instrument (selects all notes of the current instrument)
  • Select all, Cut, Copy, and Paste
  • Zoom options
  • Export options
  • Help
  • Fullscreen
  • Tooltips

Advanced features

Users can access more advanced features for use in their sequences by clicking the advanced tab on the instrument they wish to change. This menu contains options to change volume, panning, detune (-1200 to +1200), reverb, distortion, and an equalizer. This array lets users configure specific instruments to create specific sounds, and textures, or to accompany other instruments as a layer or development of the original sound.

OS also allows for commands to be entered in the browser console to manipulate different options in specific ways, such as setting custom to detune values (0-infinity), custom grid sizes, note divisions, and sequence ID amongst other things. These options bring OS closer to that of classic Digital Audio Workstations (DAWs) but are still limited in terms of accessibility and availability.

Browser and device support

Online Sequencer supports Chrome and other Chromium-based browsers, such as Microsoft Edge, Opera, and Brave. Firefox is also supported, but often with limited functionality. Safari and Internet Explorer are not supported, due to engine issues.

Other mobile browsers support sequence playback, but not editing. However, iOS users have the same problem with WebKit on macOS. However, unlike in macOS, all browsers (even Chromium-based browsers) use WebKit as the engine for iOS due to Apple prohibiting other engines for security reasons; iOS does not support Online Sequencer, other than chat and forums.

The website's user interface is formatted for proper use on desktops, but some pages such as the chat page, playlists, and forums should be formatted well on mobile devices.

Made with 🧡 by
Playtronica &Chromatone
- +

Online Sequencer is a web-based music sequencer that allows users to create music saved online, or on their computer. The piano roll is essential to the sequencer, which is on the left of the screen, with 72 notes from C2-B7 (labelled differently from a piano, C2 on the sequencer corresponds to C1 on a piano). In addition to several parameters which can be modified to change the sound of the music, additional functionality can be accessed via the console.

Upon opening the site, users can begin composing and "drawing" notes on the grid, with the default instrument being Electric Piano. By default, a sequence's time signature is set to 4/4, and the grid spacing is set to 1/4 (16 notes per measure). The note lengths can be adjusted by dragging the dark tab on the right of each note, and precision can be afforded by changing the 'Grid' option to other note divisions.

History

Online Sequencer was created on January 2, 2013 by Jacob Morgan during a break at Georgia Tech.

Beginning in the fall of 2013, accounts were available but were separate from the music portion of the site. They were only used in the forum and the website chat.

In 2015, accounts were linked to the main website and allowed songs to be saved under someone's username.

The World Update in 2018 added several new instruments and changed the landscape of sound design on the site. The "World Update Contest" was held for the update.

Starting in late 2020, OS began to receive a variety of updates which vastly improved the functionality of the site. These updates introduced features like custom grid sizes, automation with markers, extra reverb options, detune, and distortion. In 2021, the "Space Race" contest was held, as to see who could work best with the changes.

In late 2022, newer, higher-quality instruments were added. Some of the instruments, such as Electric Piano, Grand Piano, Violin, and Cello got an updated sustained version, while the original versions still exist under the "classic" designation.

Currently, the 10-Year Anniversary Contest is being held.

Features

Within the editor, numerous user interface features allow for various changes which will impact the individual sequence on that page.

Basic features

UI features include:

  • Tempo (10-999 BPM)
  • Measure count or Time count (MM: SS.ssss)
  • Time signature (2/4, 3/4, 4/4, 5/4)
  • Grid size (This correlates to note divisions; 1/16, 1/12, 1/8, 1/6, 1/4, 1/3, 1/2)
  • Auto Scroll (Fast, Smooth, Off; how the sequencer displays measures off-screen as a sequence plays)
  • Add an Audio Track (This won't be saved to the sequence but will play alongside it for ease of transcription)
  • Title input
  • Draw, select, and erase
  • Instrument dropdown, instrument options, and select instrument (selects all notes of the current instrument)
  • Select all, Cut, Copy, and Paste
  • Zoom options
  • Export options
  • Help
  • Fullscreen
  • Tooltips

Advanced features

Users can access more advanced features for use in their sequences by clicking the advanced tab on the instrument they wish to change. This menu contains options to change volume, panning, detune (-1200 to +1200), reverb, distortion, and an equalizer. This array lets users configure specific instruments to create specific sounds, and textures, or to accompany other instruments as a layer or development of the original sound.

OS also allows for commands to be entered in the browser console to manipulate different options in specific ways, such as setting custom to detune values (0-infinity), custom grid sizes, note divisions, and sequence ID amongst other things. These options bring OS closer to that of classic Digital Audio Workstations (DAWs) but are still limited in terms of accessibility and availability.

Browser and device support

Online Sequencer supports Chrome and other Chromium-based browsers, such as Microsoft Edge, Opera, and Brave. Firefox is also supported, but often with limited functionality. Safari and Internet Explorer are not supported, due to engine issues.

Other mobile browsers support sequence playback, but not editing. However, iOS users have the same problem with WebKit on macOS. However, unlike in macOS, all browsers (even Chromium-based browsers) use WebKit as the engine for iOS due to Apple prohibiting other engines for security reasons; iOS does not support Online Sequencer, other than chat and forums.

The website's user interface is formatted for proper use on desktops, but some pages such as the chat page, playlists, and forums should be formatted well on mobile devices.

Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/pixel-synth/index.html b/pixel-synth/index.html index eabc5d35..f3b263f6 100644 --- a/pixel-synth/index.html +++ b/pixel-synth/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/roland50/index.html b/roland50/index.html index 2c830b0c..65a97a92 100644 --- a/roland50/index.html +++ b/roland50/index.html @@ -14,7 +14,7 @@ - + @@ -46,9 +46,9 @@ -
Roland 50 Studio
by Yuri Suzuki
drum machine
SP404
TR808
TB303
Step sequencer
It's a professional sounding online musical interface, which records your masterpieces and allows you to share your creations through social media, messaging and also as a download. +
Roland 50 Studio
by Yuri Suzuki
drum machine
SP404
TR808
TB303
Step sequencer
It's a professional sounding online musical interface, which records your masterpieces and allows you to share your creations through social media, messaging and also as a download. On top of the TR-808 drum machine and TB-303 bass synthesizer featured at the original 2020 release, now the sound of SH-101 synthesizer is added, and more sounds to come later in the year 2022, commemorating Roland's 50th anniversary.
Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/sample-stich/index.html b/sample-stich/index.html index 385880f1..264fa2cf 100644 --- a/sample-stich/index.html +++ b/sample-stich/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 960737af..51e17170 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://synth.playtronica.com/README2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/auth2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/auth/accept2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/auth/2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/auth/invite2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/auth/logout2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/auth/reset2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/dotpiano/https://synth.playtronica.com/waveform/https://synth.playtronica.com/juno-106/https://synth.playtronica.com/elementary/https://synth.playtronica.com/dx7/https://synth.playtronica.com/touchme/https://synth.playtronica.com/muted-io/https://synth.playtronica.com/soundfont/https://synth.playtronica.com/midi-city/https://synth.playtronica.com/aqwertyon/https://synth.playtronica.com/chrome-lab/https://synth.playtronica.com/microtonal/https://synth.playtronica.com/sympathetic/https://synth.playtronica.com/ableton/https://synth.playtronica.com/theremin/https://synth.playtronica.com/cardinal/https://synth.playtronica.com/multiplayer-orchestra/https://synth.playtronica.com/touch-pianist/https://synth.playtronica.com/beepbox/https://synth.playtronica.com/roland50/https://synth.playtronica.com/disco-computer/https://synth.playtronica.com/video-sampler/https://synth.playtronica.com/bassoon/https://synth.playtronica.com/web-sid/https://synth.playtronica.com/nv-1/https://synth.playtronica.com/virtual-piano/https://synth.playtronica.com/online-sequencer/https://synth.playtronica.com/sound-box/https://synth.playtronica.com/omni/https://synth.playtronica.com/web-modular/https://synth.playtronica.com/acid-machine-2/https://synth.playtronica.com/groove-pizza/https://synth.playtronica.com/pixel-synth/https://synth.playtronica.com/multiplayer-piano/https://synth.playtronica.com/midi-driven-web-audio/https://synth.playtronica.com/sample-stich/https://synth.playtronica.com/meet-the-heisenberg/https://synth.playtronica.com/cardboard-synth/https://synth.playtronica.com/tanguy-synth/https://synth.playtronica.com/blokdust/https://synth.playtronica.com/mod-synth/https://synth.playtronica.com/olif-sy-1-k/https://synth.playtronica.com/note-sculptor/https://synth.playtronica.com/web-audio-synth-v2/https://synth.playtronica.com/isleoftune/https://synth.playtronica.com/sound-trap/https://synth.playtronica.com/typedrummer/ \ No newline at end of file +https://synth.playtronica.com/README2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/auth2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/auth/accept2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/auth/2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/auth/invite2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/auth/logout2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/auth/reset2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/2024-05-21T08:46:10.000Zhttps://synth.playtronica.com/dotpiano/https://synth.playtronica.com/waveform/https://synth.playtronica.com/juno-106/https://synth.playtronica.com/elementary/https://synth.playtronica.com/dx7/https://synth.playtronica.com/touchme/https://synth.playtronica.com/muted-io/https://synth.playtronica.com/soundfont/https://synth.playtronica.com/midi-city/https://synth.playtronica.com/aqwertyon/https://synth.playtronica.com/chrome-lab/https://synth.playtronica.com/topos/https://synth.playtronica.com/microtonal/https://synth.playtronica.com/sympathetic/https://synth.playtronica.com/ableton/https://synth.playtronica.com/theremin/https://synth.playtronica.com/cardinal/https://synth.playtronica.com/multiplayer-orchestra/https://synth.playtronica.com/touch-pianist/https://synth.playtronica.com/beepbox/https://synth.playtronica.com/roland50/https://synth.playtronica.com/disco-computer/https://synth.playtronica.com/video-sampler/https://synth.playtronica.com/bassoon/https://synth.playtronica.com/web-sid/https://synth.playtronica.com/nv-1/https://synth.playtronica.com/virtual-piano/https://synth.playtronica.com/online-sequencer/https://synth.playtronica.com/sound-box/https://synth.playtronica.com/omni/https://synth.playtronica.com/web-modular/https://synth.playtronica.com/acid-machine-2/https://synth.playtronica.com/groove-pizza/https://synth.playtronica.com/pixel-synth/https://synth.playtronica.com/multiplayer-piano/https://synth.playtronica.com/midi-driven-web-audio/https://synth.playtronica.com/sample-stich/https://synth.playtronica.com/meet-the-heisenberg/https://synth.playtronica.com/cardboard-synth/https://synth.playtronica.com/tanguy-synth/https://synth.playtronica.com/blokdust/https://synth.playtronica.com/mod-synth/https://synth.playtronica.com/olif-sy-1-k/https://synth.playtronica.com/note-sculptor/https://synth.playtronica.com/web-audio-synth-v2/https://synth.playtronica.com/isleoftune/https://synth.playtronica.com/sound-trap/https://synth.playtronica.com/typedrummer/ \ No newline at end of file diff --git a/sound-box/index.html b/sound-box/index.html index 692b2480..9d52ccdb 100644 --- a/sound-box/index.html +++ b/sound-box/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/sound-trap/index.html b/sound-trap/index.html index cd9b5081..66ad8be9 100644 --- a/sound-trap/index.html +++ b/sound-trap/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/soundfont/index.html b/soundfont/index.html index d4af58d7..3691ae95 100644 --- a/soundfont/index.html +++ b/soundfont/index.html @@ -45,7 +45,7 @@
Soundfont Sampler Synth
by Chromatone
Poly
Keyboard
Sampler
MIDI
Free open source soundfont sampler online synthesizer. Very robust and hassle free way to play some straightforward sampled instruments like horns, xylophones and just piano sounds. Instantly playable instrument with about 90 presets out of the box.
Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/sw.js b/sw.js index 4059aba9..453fd5ad 100644 --- a/sw.js +++ b/sw.js @@ -1 +1 @@ -if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(n,l)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let d={};const a=e=>i(e,r),o={module:{uri:r},exports:d,require:a};s[r]=Promise.all(n.map((e=>o[e]||a(e)))).then((e=>(l(...e),d)))}}define(["./workbox-f3e6b16a"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"404.html",revision:"3c344ffecedf46979ae7a6e382d65545"},{url:"ableton/index.html",revision:"44174540c78b348e6e930c17f1ac2360"},{url:"acid-machine-2/index.html",revision:"58d8eaa1a7bc9b98241991a80c29d734"},{url:"aqwertyon/index.html",revision:"9efcdd068256e36517eaab1d5afe0bf8"},{url:"archive/synthescheisse/index.html",revision:"723c41e4238ba7b9cacdc5e4649a2dee"},{url:"archive/synthescheisse/SYNTHESCHEISSE_files/script.js",revision:"0f2f9610db3c70bf3ef8128066641621"},{url:"archive/synthescheisse/SYNTHESCHEISSE_files/style.css",revision:"4f047b48cc6fa6eac39a6b6026a8e350"},{url:"assets/ableton_index.md.fvKJq2dx.js",revision:null},{url:"assets/ableton_index.md.fvKJq2dx.lean.js",revision:null},{url:"assets/acid-machine-2_index.md.SBWsjGKS.js",revision:null},{url:"assets/acid-machine-2_index.md.SBWsjGKS.lean.js",revision:null},{url:"assets/app.D8nDVkvQ.js",revision:null},{url:"assets/aqwertyon_index.md.DhwosnyG.js",revision:null},{url:"assets/aqwertyon_index.md.DhwosnyG.lean.js",revision:null},{url:"assets/auth_accept.md.D2HqVX5y.js",revision:null},{url:"assets/auth_accept.md.D2HqVX5y.lean.js",revision:null},{url:"assets/auth_index.md.BE9iu_uj.js",revision:null},{url:"assets/auth_index.md.BE9iu_uj.lean.js",revision:null},{url:"assets/auth_invite.md.Cx5894xC.js",revision:null},{url:"assets/auth_invite.md.Cx5894xC.lean.js",revision:null},{url:"assets/auth_logout.md.BwxHhCs-.js",revision:null},{url:"assets/auth_logout.md.BwxHhCs-.lean.js",revision:null},{url:"assets/auth_reset.md.jdmof4lo.js",revision:null},{url:"assets/auth_reset.md.jdmof4lo.lean.js",revision:null},{url:"assets/auth.md.CufJbGLz.js",revision:null},{url:"assets/auth.md.CufJbGLz.lean.js",revision:null},{url:"assets/bassoon_index.md.B5M0BSI4.js",revision:null},{url:"assets/bassoon_index.md.B5M0BSI4.lean.js",revision:null},{url:"assets/beepbox_index.md.CQGVEfDZ.js",revision:null},{url:"assets/beepbox_index.md.CQGVEfDZ.lean.js",revision:null},{url:"assets/blokdust_index.md.BgnJ0na5.js",revision:null},{url:"assets/blokdust_index.md.BgnJ0na5.lean.js",revision:null},{url:"assets/cardboard-synth_index.md.zTPni48z.js",revision:null},{url:"assets/cardboard-synth_index.md.zTPni48z.lean.js",revision:null},{url:"assets/cardinal_index.md.BasBgc69.js",revision:null},{url:"assets/cardinal_index.md.BasBgc69.lean.js",revision:null},{url:"assets/chrome-lab_index.md.C5EYj27j.js",revision:null},{url:"assets/chrome-lab_index.md.C5EYj27j.lean.js",revision:null},{url:"assets/chunks/framework.BMc-2bSs.js",revision:null},{url:"assets/chunks/index.DISW28_u.js",revision:null},{url:"assets/chunks/SynthPage.DISdFh95.js",revision:null},{url:"assets/chunks/theme.CBbWuF7B.js",revision:null},{url:"assets/chunks/useClicks.DBr_plfA.js",revision:null},{url:"assets/chunks/virtual_pwa-register.C-Uf5WYe.js",revision:null},{url:"assets/chunks/workbox-window.prod.es5.Ck4lWPv4.js",revision:null},{url:"assets/disco-computer_index.md.Dt69zvl0.js",revision:null},{url:"assets/disco-computer_index.md.Dt69zvl0.lean.js",revision:null},{url:"assets/dotpiano_index.md.1_M8HuwQ.js",revision:null},{url:"assets/dotpiano_index.md.1_M8HuwQ.lean.js",revision:null},{url:"assets/dx7_index.md.BVRn45op.js",revision:null},{url:"assets/dx7_index.md.BVRn45op.lean.js",revision:null},{url:"assets/elementary_index.md.CizJw94X.js",revision:null},{url:"assets/elementary_index.md.CizJw94X.lean.js",revision:null},{url:"assets/groove-pizza_index.md.DB1vs1YE.js",revision:null},{url:"assets/groove-pizza_index.md.DB1vs1YE.lean.js",revision:null},{url:"assets/index.md.D1t8y0zZ.js",revision:null},{url:"assets/index.md.D1t8y0zZ.lean.js",revision:null},{url:"assets/isleoftune_index.md.CsnCd2FO.js",revision:null},{url:"assets/isleoftune_index.md.CsnCd2FO.lean.js",revision:null},{url:"assets/juno-106_index.md.DtzWjeu0.js",revision:null},{url:"assets/juno-106_index.md.DtzWjeu0.lean.js",revision:null},{url:"assets/meet-the-heisenberg_index.md.H-FWkarT.js",revision:null},{url:"assets/meet-the-heisenberg_index.md.H-FWkarT.lean.js",revision:null},{url:"assets/microtonal_index.md.Cxxy5Dbg.js",revision:null},{url:"assets/microtonal_index.md.Cxxy5Dbg.lean.js",revision:null},{url:"assets/midi-city_index.md.gfYVaokl.js",revision:null},{url:"assets/midi-city_index.md.gfYVaokl.lean.js",revision:null},{url:"assets/midi-driven-web-audio_index.md.CDBblW63.js",revision:null},{url:"assets/midi-driven-web-audio_index.md.CDBblW63.lean.js",revision:null},{url:"assets/mod-synth_index.md.BZ1KX-4J.js",revision:null},{url:"assets/mod-synth_index.md.BZ1KX-4J.lean.js",revision:null},{url:"assets/multiplayer-orchestra_index.md.mwGnzPfU.js",revision:null},{url:"assets/multiplayer-orchestra_index.md.mwGnzPfU.lean.js",revision:null},{url:"assets/multiplayer-piano_index.md.CRuG6YOY.js",revision:null},{url:"assets/multiplayer-piano_index.md.CRuG6YOY.lean.js",revision:null},{url:"assets/muted-io_index.md.D9FQJLGf.js",revision:null},{url:"assets/muted-io_index.md.D9FQJLGf.lean.js",revision:null},{url:"assets/note-sculptor_index.md.N1s4hdB4.js",revision:null},{url:"assets/note-sculptor_index.md.N1s4hdB4.lean.js",revision:null},{url:"assets/nv-1_index.md.CEKUlaxD.js",revision:null},{url:"assets/nv-1_index.md.CEKUlaxD.lean.js",revision:null},{url:"assets/olif-sy-1-k_index.md.D1hy3p6f.js",revision:null},{url:"assets/olif-sy-1-k_index.md.D1hy3p6f.lean.js",revision:null},{url:"assets/omni_index.md.CtwFvPgq.js",revision:null},{url:"assets/omni_index.md.CtwFvPgq.lean.js",revision:null},{url:"assets/online-sequencer_index.md.C3sYy1nA.js",revision:null},{url:"assets/online-sequencer_index.md.C3sYy1nA.lean.js",revision:null},{url:"assets/pixel-synth_index.md.l-Kq8HHH.js",revision:null},{url:"assets/pixel-synth_index.md.l-Kq8HHH.lean.js",revision:null},{url:"assets/README.md.Je2ZCl0U.js",revision:null},{url:"assets/README.md.Je2ZCl0U.lean.js",revision:null},{url:"assets/roland50_index.md.kMTiquEr.js",revision:null},{url:"assets/roland50_index.md.kMTiquEr.lean.js",revision:null},{url:"assets/sample-stich_index.md.BxgjVIxD.js",revision:null},{url:"assets/sample-stich_index.md.BxgjVIxD.lean.js",revision:null},{url:"assets/sound-box_index.md.BEzPKxFs.js",revision:null},{url:"assets/sound-box_index.md.BEzPKxFs.lean.js",revision:null},{url:"assets/sound-trap_index.md.CshRdAzV.js",revision:null},{url:"assets/sound-trap_index.md.CshRdAzV.lean.js",revision:null},{url:"assets/soundfont_index.md.BM1fsY1U.js",revision:null},{url:"assets/soundfont_index.md.BM1fsY1U.lean.js",revision:null},{url:"assets/style.CTytDMrM.css",revision:null},{url:"assets/sympathetic_index.md.0-XjNOIF.js",revision:null},{url:"assets/sympathetic_index.md.0-XjNOIF.lean.js",revision:null},{url:"assets/tanguy-synth_index.md.BFWfoZFK.js",revision:null},{url:"assets/tanguy-synth_index.md.BFWfoZFK.lean.js",revision:null},{url:"assets/theremin_index.md.BMBaK-hj.js",revision:null},{url:"assets/theremin_index.md.BMBaK-hj.lean.js",revision:null},{url:"assets/touch-pianist_index.md.DOcY0bu_.js",revision:null},{url:"assets/touch-pianist_index.md.DOcY0bu_.lean.js",revision:null},{url:"assets/touchme_index.md.rtyqdRs2.js",revision:null},{url:"assets/touchme_index.md.rtyqdRs2.lean.js",revision:null},{url:"assets/typedrummer_index.md.BusrGXTy.js",revision:null},{url:"assets/typedrummer_index.md.BusrGXTy.lean.js",revision:null},{url:"assets/video-sampler_index.md.BX5J1XC_.js",revision:null},{url:"assets/video-sampler_index.md.BX5J1XC_.lean.js",revision:null},{url:"assets/virtual-piano_index.md.C-AbUXrp.js",revision:null},{url:"assets/virtual-piano_index.md.C-AbUXrp.lean.js",revision:null},{url:"assets/waveform_index.md.DJawRQ8e.js",revision:null},{url:"assets/waveform_index.md.DJawRQ8e.lean.js",revision:null},{url:"assets/web-audio-synth-v2_index.md.BLs7YuO-.js",revision:null},{url:"assets/web-audio-synth-v2_index.md.BLs7YuO-.lean.js",revision:null},{url:"assets/web-modular_index.md.Bg8aCyfa.js",revision:null},{url:"assets/web-modular_index.md.Bg8aCyfa.lean.js",revision:null},{url:"assets/web-sid_index.md.WekUjAVT.js",revision:null},{url:"assets/web-sid_index.md.WekUjAVT.lean.js",revision:null},{url:"auth.html",revision:"84d0bfc30ea3de7da01f7424a3756d83"},{url:"auth/accept.html",revision:"957da8e56502f5f56f76f9b85c77a45a"},{url:"auth/index.html",revision:"ffaf87bd7470261ad964162488e93032"},{url:"auth/invite.html",revision:"885dac650f0a2e4bb72d2bd784df446f"},{url:"auth/logout.html",revision:"90ca0d4695d71e38681a25cb406fc086"},{url:"auth/reset.html",revision:"727253ea5f5f387c77891230a0af2ffc"},{url:"bassoon/index.html",revision:"bf06f637b1c8df639f6fd09a6a1c77cb"},{url:"beepbox/index.html",revision:"38d4c192cb4b1998108d2c3ccbcc8924"},{url:"blokdust/index.html",revision:"697e255d073b386bdf98d0d81cd634dd"},{url:"cardboard-synth/index.html",revision:"d6f028d5cf400b8d9711d8672ee23f02"},{url:"cardinal/index.html",revision:"ae2cfa8d43fcdc60bc7ff5367376bba1"},{url:"chrome-lab/index.html",revision:"859c169ca4335ba9df6e439fb11df4f9"},{url:"click-logo.svg",revision:"f15e71cb394926c5f8c08f64186d2d49"},{url:"cover/ableton.webp",revision:"ff3a22aa28084b93c0aad2e6569657e0"},{url:"cover/acid-machine-2.webp",revision:"29fcf6a6ce374dfc8391fe6544b5f08e"},{url:"cover/aqwertyon.webp",revision:"afab8d4bdeccf669a03617c5ce738fb7"},{url:"cover/bassoon.webp",revision:"68d4a434861c2f294623fe762e694ee6"},{url:"cover/beepbox.webp",revision:"e4f93e998951d212c5b678b425769537"},{url:"cover/blokdust.webp",revision:"0613b83a920d709a268d9de2284a0354"},{url:"cover/cardboard-synth.webp",revision:"f93526fee97f6674940ca367cb841b58"},{url:"cover/cardinal.webp",revision:"1cf71dbecd04b9046aa68389b5a12dd0"},{url:"cover/chrome-lab.webp",revision:"d18ee6ca84364e4d175efa054a736fd9"},{url:"cover/disco-computer.webp",revision:"5dd18857caabf0cf1320d82537daa7d1"},{url:"cover/dotpiano.webp",revision:"c08549fc8ca38e2f4b6d1853b947ad3f"},{url:"cover/dx7.webp",revision:"a401e52d21c6d5e44240645b09d9f9c6"},{url:"cover/elementary.webp",revision:"6368b81c56ee656371254dd87bb421e8"},{url:"cover/groove-pizza.webp",revision:"ace880a23d7a39082a02a011d15ef278"},{url:"cover/isleoftune.webp",revision:"4aa136591dee0383df4d60b551bb94d8"},{url:"cover/juno-106.webp",revision:"08c31646032ced1d4c48d295b9c0ca94"},{url:"cover/meet-the-heisenberg.webp",revision:"52318d42eb06e04073f209dd1f1e5c41"},{url:"cover/microtonal.webp",revision:"d4d2b2796350e9cd786b3b68e1b225ff"},{url:"cover/midi-city.webp",revision:"fecb8bf989aba90045bd17cfd0748576"},{url:"cover/midi-driven-web-audio.webp",revision:"897bbc54b77f1e0905ad454063a13189"},{url:"cover/mod-synth.webp",revision:"7d47cac35b80190a3bce223d47756ae0"},{url:"cover/multiplayer-orchestra.webp",revision:"de82211bb0cf8997437f9b263e1dd1b2"},{url:"cover/multiplayer-piano.webp",revision:"70e6eba35fc631046c89637286b57f29"},{url:"cover/muted-io.webp",revision:"d03f4b77e5d8cddc8adc45c0a67abd50"},{url:"cover/note-sculptor.webp",revision:"67c78a7120358915332faa419a2e1f45"},{url:"cover/nv-1.webp",revision:"4c286383b8df97fae10976500d5456a9"},{url:"cover/olif-sy-1-k.webp",revision:"829a8b74f7a628fa5f319e39077687a2"},{url:"cover/omni.webp",revision:"413b121431478a3ea4aa3b3e26e19bc7"},{url:"cover/online-sequencer.webp",revision:"a5f83fc41f430f8ff6ddf9f45fbc57eb"},{url:"cover/pixel-synth.webp",revision:"f6457eb849297fbd07d5172a39573b4e"},{url:"cover/roland50.webp",revision:"1a9fe1ddb1dcd07cb42cd52567ca7173"},{url:"cover/sample-stich.webp",revision:"2019a72c6963aebca1eb7e73fc5d8737"},{url:"cover/sound-box.webp",revision:"9bc7cf72ec4b983786028af651bfb97a"},{url:"cover/sound-trap.webp",revision:"424d3e69d2cabbbd222fa63e03333693"},{url:"cover/soundfont.webp",revision:"c534fa79bd1c6f0c93244189778d400b"},{url:"cover/sympathetic.webp",revision:"3b98478cb9627398e816503b41ad91c8"},{url:"cover/tanguy-synth.webp",revision:"7dc2b96bdd88af09c835d1b3f6db0249"},{url:"cover/theremin.webp",revision:"fc256e4ea00b9e7d39fa76ef97677a55"},{url:"cover/touch-pianist.webp",revision:"75cf9432de7a642fe1c71f3dab956857"},{url:"cover/touchme.webp",revision:"c64942d3fbdba893f09b720dac8ecf2f"},{url:"cover/typedrummer.webp",revision:"8d7be4a5046e7335cf6b91caea120e43"},{url:"cover/video-sampler.webp",revision:"d4b4af73791843f35f796824011cd4aa"},{url:"cover/virtual-piano.webp",revision:"ef9aacb9a39f6908c9d326c7ce588a8a"},{url:"cover/waveform.webp",revision:"fafd71aa1fb141d388d2df6d2e89b06e"},{url:"cover/web-audio-synth-v2.webp",revision:"14206290388166cf6cb7c4023c8b0503"},{url:"cover/web-modular.webp",revision:"ba22a1a127d07da1f494af6b4b1960bf"},{url:"cover/web-sid.webp",revision:"428998a4856ef3aff09ddd0e0d34bc7d"},{url:"disco-computer/index.html",revision:"09b94f5214e467001a7ae3cf02e677da"},{url:"dotpiano/index.html",revision:"d85420c55f5bbdc3f6090c9aaa35c386"},{url:"dx7/index.html",revision:"dc5b98e54b3602dbe24a9ff97b9ee3a8"},{url:"elementary/index.html",revision:"7e18f4ed33c42ff8be8924d8d2078714"},{url:"groove-pizza/index.html",revision:"73f15d44eabab90b2e8b1482b2d650f9"},{url:"icon.png",revision:"eb8e7369ba634f3bd1a96d889be50f7d"},{url:"index.html",revision:"befb1970ee3a3fb816ed09ac97a2836f"},{url:"isleoftune/index.html",revision:"a80d4d9f0d4f3b6477a6ae2353d9c5af"},{url:"juno-106/index.html",revision:"882e4f2ae8df2325e3e6b76f61d22b64"},{url:"line.svg",revision:"4866b853d0c5c97e9f654fa32580076a"},{url:"logo.svg",revision:"134c144f78e462c4672fc8f64e69df9e"},{url:"meet-the-heisenberg/index.html",revision:"b8e38691f615755d4fd8febc9cc0978d"},{url:"microtonal/index.html",revision:"629c0a6c6e0881caa6c82c074cf83f59"},{url:"midi-city/index.html",revision:"617a88bab544784bfd0a3ff3b997076e"},{url:"midi-driven-web-audio/index.html",revision:"a94f525a5ef1f290577bdff688a1986a"},{url:"mod-synth/index.html",revision:"2a5c4d6641660299ec4899fdac3fab52"},{url:"multiplayer-orchestra/index.html",revision:"1f81bbd4e4736241b4449e7efff488c0"},{url:"multiplayer-piano/index.html",revision:"02894738a29790d900443f031431df62"},{url:"muted-io/index.html",revision:"1917ede796040f69ec72d11fa79e455c"},{url:"note-sculptor/index.html",revision:"d8eb36a9e614b4d7abd599bd1fc43ab1"},{url:"nv-1/index.html",revision:"fdd54007f8f13faf39f8ff9a914236cf"},{url:"olif-sy-1-k/index.html",revision:"18b47929d4b57798824d57bbf42f913e"},{url:"omni/index.html",revision:"2304b72d72e2bceda76c551840798d21"},{url:"online-sequencer/index.html",revision:"d1bfc4052cd163e0959a5c003a7e9b76"},{url:"pixel-synth/index.html",revision:"1a4acc197e6f14ce00a9f5c8d355c5e2"},{url:"pl-logo.webp",revision:"9f0d66adf550fa40e8b2e03ff997eb34"},{url:"README.html",revision:"fd48997e0762becfc9ae0b0024bf455d"},{url:"roland50/index.html",revision:"69b79fe196d873bee9f5814952cbe53d"},{url:"sample-stich/index.html",revision:"3f433f231e8961fd62f40657b49429ed"},{url:"sound-box/index.html",revision:"0c34951f30582e2c52bb7e9a87f765bc"},{url:"sound-trap/index.html",revision:"4acfb310a838816186623ded963bcb94"},{url:"soundfont/index.html",revision:"84e10c547d61b2f0cce808cf9379ccf5"},{url:"sympathetic/index.html",revision:"d7222c674dd53402a066a64176c8efdc"},{url:"tanguy-synth/index.html",revision:"56d902cc8e77e30937a8cc331ddd18c1"},{url:"theremin/index.html",revision:"c359613e04090ce133a3c60cfe6ca932"},{url:"touch-pianist/index.html",revision:"c0f76f5da69e616426ba5c8ab719e30c"},{url:"touchme/index.html",revision:"d731cf49bd67b8f9dd53b639d06fdf87"},{url:"typedrummer/index.html",revision:"ea654b5b92352a987a6b1f1bf49547e6"},{url:"video-sampler/index.html",revision:"ba6c0e2fe364a5e346a7ff5d01b731b0"},{url:"virtual-piano/index.html",revision:"d38972f819c252fb6ce8b0c10bbaa06e"},{url:"waveform/index.html",revision:"535bc052fb81440d3b313e85e0b22055"},{url:"web-audio-synth-v2/index.html",revision:"5da697112441876101fd370c49892cff"},{url:"web-modular/index.html",revision:"de679f0925661282429b49f6924aad43"},{url:"web-sid/index.html",revision:"b7842b121f0680b6ccbbc9f67d84c632"},{url:"logo.svg",revision:"134c144f78e462c4672fc8f64e69df9e"},{url:"icon.png",revision:"eb8e7369ba634f3bd1a96d889be50f7d"},{url:"manifest.webmanifest",revision:"aee00a3fc5429948aa59c7d1c9d825cc"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))})); +if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(n,l)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let d={};const a=e=>i(e,r),o={module:{uri:r},exports:d,require:a};s[r]=Promise.all(n.map((e=>o[e]||a(e)))).then((e=>(l(...e),d)))}}define(["./workbox-f3e6b16a"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"404.html",revision:"71da772ad1b3fabe601cbadc07b39a7a"},{url:"ableton/index.html",revision:"03e5358c1ba63ba2318d7bc8472d0269"},{url:"acid-machine-2/index.html",revision:"908b4bb72ef7ea4a04d163ed59a29f38"},{url:"aqwertyon/index.html",revision:"1ee6edcf11e1cace44e92c9baaf20db7"},{url:"archive/synthescheisse/index.html",revision:"723c41e4238ba7b9cacdc5e4649a2dee"},{url:"archive/synthescheisse/SYNTHESCHEISSE_files/script.js",revision:"0f2f9610db3c70bf3ef8128066641621"},{url:"archive/synthescheisse/SYNTHESCHEISSE_files/style.css",revision:"4f047b48cc6fa6eac39a6b6026a8e350"},{url:"assets/ableton_index.md.BZzJjJql.js",revision:null},{url:"assets/ableton_index.md.BZzJjJql.lean.js",revision:null},{url:"assets/acid-machine-2_index.md.BYJpDBJ1.js",revision:null},{url:"assets/acid-machine-2_index.md.BYJpDBJ1.lean.js",revision:null},{url:"assets/app.D8nDVkvQ.js",revision:null},{url:"assets/aqwertyon_index.md.DhwosnyG.js",revision:null},{url:"assets/aqwertyon_index.md.DhwosnyG.lean.js",revision:null},{url:"assets/auth_accept.md.D2HqVX5y.js",revision:null},{url:"assets/auth_accept.md.D2HqVX5y.lean.js",revision:null},{url:"assets/auth_index.md.BE9iu_uj.js",revision:null},{url:"assets/auth_index.md.BE9iu_uj.lean.js",revision:null},{url:"assets/auth_invite.md.Cx5894xC.js",revision:null},{url:"assets/auth_invite.md.Cx5894xC.lean.js",revision:null},{url:"assets/auth_logout.md.BwxHhCs-.js",revision:null},{url:"assets/auth_logout.md.BwxHhCs-.lean.js",revision:null},{url:"assets/auth_reset.md.jdmof4lo.js",revision:null},{url:"assets/auth_reset.md.jdmof4lo.lean.js",revision:null},{url:"assets/auth.md.CufJbGLz.js",revision:null},{url:"assets/auth.md.CufJbGLz.lean.js",revision:null},{url:"assets/bassoon_index.md.BAk5VPvw.js",revision:null},{url:"assets/bassoon_index.md.BAk5VPvw.lean.js",revision:null},{url:"assets/beepbox_index.md.ym9J5JVO.js",revision:null},{url:"assets/beepbox_index.md.ym9J5JVO.lean.js",revision:null},{url:"assets/blokdust_index.md.DH3pt9ru.js",revision:null},{url:"assets/blokdust_index.md.DH3pt9ru.lean.js",revision:null},{url:"assets/cardboard-synth_index.md.DTxKBWvi.js",revision:null},{url:"assets/cardboard-synth_index.md.DTxKBWvi.lean.js",revision:null},{url:"assets/cardinal_index.md.DyFHaI5Z.js",revision:null},{url:"assets/cardinal_index.md.DyFHaI5Z.lean.js",revision:null},{url:"assets/chrome-lab_index.md.C5EYj27j.js",revision:null},{url:"assets/chrome-lab_index.md.C5EYj27j.lean.js",revision:null},{url:"assets/chunks/framework.BMc-2bSs.js",revision:null},{url:"assets/chunks/index.DISW28_u.js",revision:null},{url:"assets/chunks/SynthPage.DISdFh95.js",revision:null},{url:"assets/chunks/theme.CBbWuF7B.js",revision:null},{url:"assets/chunks/useClicks.DBr_plfA.js",revision:null},{url:"assets/chunks/virtual_pwa-register.C-Uf5WYe.js",revision:null},{url:"assets/chunks/workbox-window.prod.es5.Ck4lWPv4.js",revision:null},{url:"assets/disco-computer_index.md.CJYnLsi-.js",revision:null},{url:"assets/disco-computer_index.md.CJYnLsi-.lean.js",revision:null},{url:"assets/dotpiano_index.md.BunS2rE5.js",revision:null},{url:"assets/dotpiano_index.md.BunS2rE5.lean.js",revision:null},{url:"assets/dx7_index.md.BVRn45op.js",revision:null},{url:"assets/dx7_index.md.BVRn45op.lean.js",revision:null},{url:"assets/elementary_index.md.CizJw94X.js",revision:null},{url:"assets/elementary_index.md.CizJw94X.lean.js",revision:null},{url:"assets/groove-pizza_index.md.3ekFWbxz.js",revision:null},{url:"assets/groove-pizza_index.md.3ekFWbxz.lean.js",revision:null},{url:"assets/index.md.Ck_FBFlh.js",revision:null},{url:"assets/index.md.Ck_FBFlh.lean.js",revision:null},{url:"assets/isleoftune_index.md.CZD_HPt-.js",revision:null},{url:"assets/isleoftune_index.md.CZD_HPt-.lean.js",revision:null},{url:"assets/juno-106_index.md.Byv-eTgg.js",revision:null},{url:"assets/juno-106_index.md.Byv-eTgg.lean.js",revision:null},{url:"assets/meet-the-heisenberg_index.md.DhL0PLAB.js",revision:null},{url:"assets/meet-the-heisenberg_index.md.DhL0PLAB.lean.js",revision:null},{url:"assets/microtonal_index.md.B7lUpN1F.js",revision:null},{url:"assets/microtonal_index.md.B7lUpN1F.lean.js",revision:null},{url:"assets/midi-city_index.md.gfYVaokl.js",revision:null},{url:"assets/midi-city_index.md.gfYVaokl.lean.js",revision:null},{url:"assets/midi-driven-web-audio_index.md.DC8t1Cy0.js",revision:null},{url:"assets/midi-driven-web-audio_index.md.DC8t1Cy0.lean.js",revision:null},{url:"assets/mod-synth_index.md.BnA2UXRd.js",revision:null},{url:"assets/mod-synth_index.md.BnA2UXRd.lean.js",revision:null},{url:"assets/multiplayer-orchestra_index.md.B7SuOL5G.js",revision:null},{url:"assets/multiplayer-orchestra_index.md.B7SuOL5G.lean.js",revision:null},{url:"assets/multiplayer-piano_index.md.BRrIXCOO.js",revision:null},{url:"assets/multiplayer-piano_index.md.BRrIXCOO.lean.js",revision:null},{url:"assets/muted-io_index.md.D9FQJLGf.js",revision:null},{url:"assets/muted-io_index.md.D9FQJLGf.lean.js",revision:null},{url:"assets/note-sculptor_index.md.DL-7oPQO.js",revision:null},{url:"assets/note-sculptor_index.md.DL-7oPQO.lean.js",revision:null},{url:"assets/nv-1_index.md.Bkxbwvav.js",revision:null},{url:"assets/nv-1_index.md.Bkxbwvav.lean.js",revision:null},{url:"assets/olif-sy-1-k_index.md.BTLPOoZM.js",revision:null},{url:"assets/olif-sy-1-k_index.md.BTLPOoZM.lean.js",revision:null},{url:"assets/omni_index.md.B347m62P.js",revision:null},{url:"assets/omni_index.md.B347m62P.lean.js",revision:null},{url:"assets/online-sequencer_index.md.bzIdvwuX.js",revision:null},{url:"assets/online-sequencer_index.md.bzIdvwuX.lean.js",revision:null},{url:"assets/pixel-synth_index.md.usELcb7e.js",revision:null},{url:"assets/pixel-synth_index.md.usELcb7e.lean.js",revision:null},{url:"assets/README.md.Je2ZCl0U.js",revision:null},{url:"assets/README.md.Je2ZCl0U.lean.js",revision:null},{url:"assets/roland50_index.md.C0VKhvRf.js",revision:null},{url:"assets/roland50_index.md.C0VKhvRf.lean.js",revision:null},{url:"assets/sample-stich_index.md.BjllBpc8.js",revision:null},{url:"assets/sample-stich_index.md.BjllBpc8.lean.js",revision:null},{url:"assets/sound-box_index.md.DBUvHK9s.js",revision:null},{url:"assets/sound-box_index.md.DBUvHK9s.lean.js",revision:null},{url:"assets/sound-trap_index.md.DZhZNwRa.js",revision:null},{url:"assets/sound-trap_index.md.DZhZNwRa.lean.js",revision:null},{url:"assets/soundfont_index.md.BM1fsY1U.js",revision:null},{url:"assets/soundfont_index.md.BM1fsY1U.lean.js",revision:null},{url:"assets/style.CTytDMrM.css",revision:null},{url:"assets/sympathetic_index.md.CbG1XeWz.js",revision:null},{url:"assets/sympathetic_index.md.CbG1XeWz.lean.js",revision:null},{url:"assets/tanguy-synth_index.md.Chuzo4y_.js",revision:null},{url:"assets/tanguy-synth_index.md.Chuzo4y_.lean.js",revision:null},{url:"assets/theremin_index.md.xsBSlTfD.js",revision:null},{url:"assets/theremin_index.md.xsBSlTfD.lean.js",revision:null},{url:"assets/topos_index.md.DVt9rwws.js",revision:null},{url:"assets/topos_index.md.DVt9rwws.lean.js",revision:null},{url:"assets/touch-pianist_index.md.DrUArMqE.js",revision:null},{url:"assets/touch-pianist_index.md.DrUArMqE.lean.js",revision:null},{url:"assets/touchme_index.md.rtyqdRs2.js",revision:null},{url:"assets/touchme_index.md.rtyqdRs2.lean.js",revision:null},{url:"assets/typedrummer_index.md.BDZ2LjKp.js",revision:null},{url:"assets/typedrummer_index.md.BDZ2LjKp.lean.js",revision:null},{url:"assets/video-sampler_index.md.CjoNTEKg.js",revision:null},{url:"assets/video-sampler_index.md.CjoNTEKg.lean.js",revision:null},{url:"assets/virtual-piano_index.md.BFhOriOg.js",revision:null},{url:"assets/virtual-piano_index.md.BFhOriOg.lean.js",revision:null},{url:"assets/waveform_index.md.DJawRQ8e.js",revision:null},{url:"assets/waveform_index.md.DJawRQ8e.lean.js",revision:null},{url:"assets/web-audio-synth-v2_index.md.h138n_65.js",revision:null},{url:"assets/web-audio-synth-v2_index.md.h138n_65.lean.js",revision:null},{url:"assets/web-modular_index.md.D5IGTZmQ.js",revision:null},{url:"assets/web-modular_index.md.D5IGTZmQ.lean.js",revision:null},{url:"assets/web-sid_index.md.CthTchcH.js",revision:null},{url:"assets/web-sid_index.md.CthTchcH.lean.js",revision:null},{url:"auth.html",revision:"4ee66d8e039197519479e3a9f5b74e7d"},{url:"auth/accept.html",revision:"ccd5673677cdb10f0710900132f4d31f"},{url:"auth/index.html",revision:"0de9b92fbe7178c2a208327b4a1dcf0a"},{url:"auth/invite.html",revision:"badac642b15e33811c226c5fa5af678b"},{url:"auth/logout.html",revision:"a05539b44218a8f7cfd3cccda76436a9"},{url:"auth/reset.html",revision:"9714e15d55a79fe4c0cce8e0de47ba3f"},{url:"bassoon/index.html",revision:"99a1241de9f5a45b854fd49bbcbe02e9"},{url:"beepbox/index.html",revision:"1e8f42b5281cc128e4a06617b5fd2b52"},{url:"blokdust/index.html",revision:"3f836a677f57702b8cc3093e329291d6"},{url:"cardboard-synth/index.html",revision:"6e69980b54f9097eedab86d206ed401b"},{url:"cardinal/index.html",revision:"a60a5325a1e1c79f10915bdaf6ad6490"},{url:"chrome-lab/index.html",revision:"013a86e62e5e20a6f06f634f13dcc2d1"},{url:"click-logo.svg",revision:"f15e71cb394926c5f8c08f64186d2d49"},{url:"cover/ableton.webp",revision:"ff3a22aa28084b93c0aad2e6569657e0"},{url:"cover/acid-machine-2.webp",revision:"29fcf6a6ce374dfc8391fe6544b5f08e"},{url:"cover/aqwertyon.webp",revision:"afab8d4bdeccf669a03617c5ce738fb7"},{url:"cover/bassoon.webp",revision:"68d4a434861c2f294623fe762e694ee6"},{url:"cover/beepbox.webp",revision:"e4f93e998951d212c5b678b425769537"},{url:"cover/blokdust.webp",revision:"0613b83a920d709a268d9de2284a0354"},{url:"cover/cardboard-synth.webp",revision:"f93526fee97f6674940ca367cb841b58"},{url:"cover/cardinal.webp",revision:"1cf71dbecd04b9046aa68389b5a12dd0"},{url:"cover/chrome-lab.webp",revision:"d18ee6ca84364e4d175efa054a736fd9"},{url:"cover/disco-computer.webp",revision:"5dd18857caabf0cf1320d82537daa7d1"},{url:"cover/dotpiano.webp",revision:"c08549fc8ca38e2f4b6d1853b947ad3f"},{url:"cover/dx7.webp",revision:"a401e52d21c6d5e44240645b09d9f9c6"},{url:"cover/elementary.webp",revision:"6368b81c56ee656371254dd87bb421e8"},{url:"cover/groove-pizza.webp",revision:"ace880a23d7a39082a02a011d15ef278"},{url:"cover/isleoftune.webp",revision:"4aa136591dee0383df4d60b551bb94d8"},{url:"cover/juno-106.webp",revision:"08c31646032ced1d4c48d295b9c0ca94"},{url:"cover/meet-the-heisenberg.webp",revision:"52318d42eb06e04073f209dd1f1e5c41"},{url:"cover/microtonal.webp",revision:"d4d2b2796350e9cd786b3b68e1b225ff"},{url:"cover/midi-city.webp",revision:"fecb8bf989aba90045bd17cfd0748576"},{url:"cover/midi-driven-web-audio.webp",revision:"897bbc54b77f1e0905ad454063a13189"},{url:"cover/mod-synth.webp",revision:"7d47cac35b80190a3bce223d47756ae0"},{url:"cover/multiplayer-orchestra.webp",revision:"de82211bb0cf8997437f9b263e1dd1b2"},{url:"cover/multiplayer-piano.webp",revision:"70e6eba35fc631046c89637286b57f29"},{url:"cover/muted-io.webp",revision:"d03f4b77e5d8cddc8adc45c0a67abd50"},{url:"cover/note-sculptor.webp",revision:"67c78a7120358915332faa419a2e1f45"},{url:"cover/nv-1.webp",revision:"4c286383b8df97fae10976500d5456a9"},{url:"cover/olif-sy-1-k.webp",revision:"829a8b74f7a628fa5f319e39077687a2"},{url:"cover/omni.webp",revision:"413b121431478a3ea4aa3b3e26e19bc7"},{url:"cover/online-sequencer.webp",revision:"a5f83fc41f430f8ff6ddf9f45fbc57eb"},{url:"cover/pixel-synth.webp",revision:"f6457eb849297fbd07d5172a39573b4e"},{url:"cover/roland50.webp",revision:"1a9fe1ddb1dcd07cb42cd52567ca7173"},{url:"cover/sample-stich.webp",revision:"2019a72c6963aebca1eb7e73fc5d8737"},{url:"cover/sound-box.webp",revision:"9bc7cf72ec4b983786028af651bfb97a"},{url:"cover/sound-trap.webp",revision:"424d3e69d2cabbbd222fa63e03333693"},{url:"cover/soundfont.webp",revision:"c534fa79bd1c6f0c93244189778d400b"},{url:"cover/sympathetic.webp",revision:"3b98478cb9627398e816503b41ad91c8"},{url:"cover/tanguy-synth.webp",revision:"7dc2b96bdd88af09c835d1b3f6db0249"},{url:"cover/theremin.webp",revision:"fc256e4ea00b9e7d39fa76ef97677a55"},{url:"cover/topos.webp",revision:"43b64de4250b21fed95712b9bb5d0ad6"},{url:"cover/touch-pianist.webp",revision:"75cf9432de7a642fe1c71f3dab956857"},{url:"cover/touchme.webp",revision:"c64942d3fbdba893f09b720dac8ecf2f"},{url:"cover/typedrummer.webp",revision:"8d7be4a5046e7335cf6b91caea120e43"},{url:"cover/video-sampler.webp",revision:"d4b4af73791843f35f796824011cd4aa"},{url:"cover/virtual-piano.webp",revision:"ef9aacb9a39f6908c9d326c7ce588a8a"},{url:"cover/waveform.webp",revision:"fafd71aa1fb141d388d2df6d2e89b06e"},{url:"cover/web-audio-synth-v2.webp",revision:"14206290388166cf6cb7c4023c8b0503"},{url:"cover/web-modular.webp",revision:"ba22a1a127d07da1f494af6b4b1960bf"},{url:"cover/web-sid.webp",revision:"428998a4856ef3aff09ddd0e0d34bc7d"},{url:"disco-computer/index.html",revision:"e740c2aa5832850fac26ab27a9a05e6e"},{url:"dotpiano/index.html",revision:"488764180919752df61b32f8f7533b12"},{url:"dx7/index.html",revision:"4043b3ee15a2fe5886a0631aec0150e3"},{url:"elementary/index.html",revision:"6d41bd12e0daf82a67e3b85ebcfcabeb"},{url:"groove-pizza/index.html",revision:"264030158262c376b2891e1fc5a3b4f9"},{url:"icon.png",revision:"eb8e7369ba634f3bd1a96d889be50f7d"},{url:"index.html",revision:"c445647a8f3aec951b4398d235e0201e"},{url:"isleoftune/index.html",revision:"14fe3f2814255fa5981ff75a345e29fd"},{url:"juno-106/index.html",revision:"26f0980e8ce9e32111e1efcaa2a0d2a7"},{url:"line.svg",revision:"4866b853d0c5c97e9f654fa32580076a"},{url:"logo.svg",revision:"134c144f78e462c4672fc8f64e69df9e"},{url:"meet-the-heisenberg/index.html",revision:"4c5a23ff8899157d82140ba69237f123"},{url:"microtonal/index.html",revision:"4791015ce56a1081c3a8ea034993932a"},{url:"midi-city/index.html",revision:"6ed93f58774288a1c0d4dbef35847e05"},{url:"midi-driven-web-audio/index.html",revision:"10b9e4597c452f93edf61be8999735dd"},{url:"mod-synth/index.html",revision:"803039debcd1503231c42c8e7dc0b4e9"},{url:"multiplayer-orchestra/index.html",revision:"d5adf79b8839d939024a9b15259ff00e"},{url:"multiplayer-piano/index.html",revision:"b5a40c8b9edcc37af8f09e5b2fa81fc5"},{url:"muted-io/index.html",revision:"41f3b12db930e2c4d3e3a6f842be55ad"},{url:"note-sculptor/index.html",revision:"5ac420b44270bde59dc68e39ef11baa5"},{url:"nv-1/index.html",revision:"d3dc67af3425e866097ac60e6ce71a13"},{url:"olif-sy-1-k/index.html",revision:"067a6909c3c1fb01d5fcca1c78b6a0ba"},{url:"omni/index.html",revision:"858b2814a5f8eaa5618073b808f0a75d"},{url:"online-sequencer/index.html",revision:"bd9f2b16d9a1a024cff35a6cf67e3d1d"},{url:"pixel-synth/index.html",revision:"625b5f1c28c83ddbcab5c8db3eb2c4b8"},{url:"pl-logo.webp",revision:"9f0d66adf550fa40e8b2e03ff997eb34"},{url:"README.html",revision:"8ed18b21876101c736a6e7a62d7470f5"},{url:"roland50/index.html",revision:"095acb62f7915638d78b6effa8aad8e7"},{url:"sample-stich/index.html",revision:"bdccf0499cbad2c2afab96251c23509b"},{url:"sound-box/index.html",revision:"43d88740367a1639163d37ca014ae9f6"},{url:"sound-trap/index.html",revision:"baf3860542406823b61da64d211725be"},{url:"soundfont/index.html",revision:"c6187bb1f2ad3f92f3c1ccdae51a0f78"},{url:"sympathetic/index.html",revision:"265b048c05b0a1dab6f97f0e4be00473"},{url:"tanguy-synth/index.html",revision:"3801ca0f53cdfb653315df1a3105b799"},{url:"theremin/index.html",revision:"5ac19db0ef010daefc988622add2af5f"},{url:"topos/index.html",revision:"6de1d8bfdeafb00d9e6f333e6aa1b845"},{url:"touch-pianist/index.html",revision:"e52884bba233429b19af1c71a69d6cf4"},{url:"touchme/index.html",revision:"02074fb7581000a1f8633d148b4e759a"},{url:"typedrummer/index.html",revision:"0c2ad84af62a1def4915f0bf1960c14d"},{url:"video-sampler/index.html",revision:"37355af9dd8f2ebd15c0c1e6922cdb09"},{url:"virtual-piano/index.html",revision:"11dfd84f7db5ec0ddbb4fa93cd315850"},{url:"waveform/index.html",revision:"a95481808c104f3c8eb20f6fb26ee5d0"},{url:"web-audio-synth-v2/index.html",revision:"9bb28c7e27bca4a21d08de88647ae09c"},{url:"web-modular/index.html",revision:"1ebf2bcb86b85517591af789e4c9fbe0"},{url:"web-sid/index.html",revision:"64be3e71a353e26df4d78976855a3040"},{url:"logo.svg",revision:"134c144f78e462c4672fc8f64e69df9e"},{url:"icon.png",revision:"eb8e7369ba634f3bd1a96d889be50f7d"},{url:"manifest.webmanifest",revision:"aee00a3fc5429948aa59c7d1c9d825cc"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))})); diff --git a/sympathetic/index.html b/sympathetic/index.html index 1bf59377..94bb759e 100644 --- a/sympathetic/index.html +++ b/sympathetic/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Sympathetic Synthesizer System Mk 1
by Stuart Memo
keyboard
midi
additive
The Sympathetic Synthesizer System Mk 1 is an interactive web app that emulates a complex synthesizer. It features three oscillators with selectable waveforms, an LFO, filters with ADSR controls, and noise generation. The app allows users to explore sound design through various parameters, offering a detailed and hands-on synthesis experience. MIDI support is also included for enhanced control.
Made with 🧡 by
Playtronica &Chromatone
- +
Sympathetic Synthesizer System Mk 1
by Stuart Memo
keyboard
midi
additive
The Sympathetic Synthesizer System Mk 1 is an interactive web app that emulates a complex synthesizer. It features three oscillators with selectable waveforms, an LFO, filters with ADSR controls, and noise generation. The app allows users to explore sound design through various parameters, offering a detailed and hands-on synthesis experience. MIDI support is also included for enhanced control.
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/tanguy-synth/index.html b/tanguy-synth/index.html index 8629decc..2664d6ad 100644 --- a/tanguy-synth/index.html +++ b/tanguy-synth/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Tanguy synth
by Luke Teaford
monophonic
additive
keyboard
Made with 🧡 by
Playtronica &Chromatone
- +
Tanguy synth
by Luke Teaford
monophonic
additive
keyboard
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/theremin/index.html b/theremin/index.html index 56908ed3..b97f9cf9 100644 --- a/theremin/index.html +++ b/theremin/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Theremin
by Femur
Experience the magic of the theremin with this interactive web-app by Femur Design. Harness the power of motion to create ethereal music without physical contact. Experiment with pitch and volume to craft haunting melodies right in your browser.
Made with 🧡 by
Playtronica &Chromatone
- +
Theremin
by Femur
Experience the magic of the theremin with this interactive web-app by Femur Design. Harness the power of motion to create ethereal music without physical contact. Experiment with pitch and volume to craft haunting melodies right in your browser.
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/topos/index.html b/topos/index.html new file mode 100644 index 00000000..379f6e10 --- /dev/null +++ b/topos/index.html @@ -0,0 +1,51 @@ + + + + + + Web synths | Online web audio instruments collection + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Live coding
MIDI
Poly
Visuals
FM
Topos is an algorithmic sequencer. Topos is also a live coding environment. To sum it up, think: "making music in real time through code". Code used as an expressive medium for musical improvisation! Topos uses small algorithms to represent musical sequences and processes.

Topos is deeply inspired by the Monome Teletype. The Teletype is/was an open source hardware module for Eurorack synthesizers. While the Teletype was initially born as an hardware module, Topos aims to be a web-browser based cousin of it! It is a sequencer, a scriptable interface, a companion for algorithmic music-making. Topos wishes to fullfill the same goal as the Teletype, keeping the same spirit alive on the web. It is free, open-source, and made to be shared and used by everyone. Learn more about live coding on livecoding.fr.

Made with 🧡 by
Playtronica &Chromatone
+ + + + \ No newline at end of file diff --git a/touch-pianist/index.html b/touch-pianist/index.html index ba4ce8ba..e13a7ba9 100644 --- a/touch-pianist/index.html +++ b/touch-pianist/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Touch Pianist
by EarSlap
entertainment
piano
Unleash your inner virtuoso with Touch Pianist. Experience the thrill of playing the piano with just your fingertips. Choose your favorite classical masterpiece and immerse yourself in the joy of creating beautiful music, all through the power of touch.

Touch Pianist is a musical toy / instrument that allows the user to perform hard-to-play classical piano music favorites (from composers like Beethoven, Mozart, Bach, Satie, Debussy to name a few) just by tapping the rhythm of the piece's particular sound events on a computer keyboard or a touch screen.

It also provides live visualisation of the pieces that are being performed. There is no score keeping, the user is free to perform the music in any way they wish. The premise is that it is really fun to perform a piece you know well, exactly like you feel it with so little effort.

Touch Pianist has CoreMIDI support so you can use your favorite piano / sound plug-in in your computer as a sound source if you wish.

Made with 🧡 by
Playtronica &Chromatone
- +
Touch Pianist
by EarSlap
entertainment
piano
Unleash your inner virtuoso with Touch Pianist. Experience the thrill of playing the piano with just your fingertips. Choose your favorite classical masterpiece and immerse yourself in the joy of creating beautiful music, all through the power of touch.

Touch Pianist is a musical toy / instrument that allows the user to perform hard-to-play classical piano music favorites (from composers like Beethoven, Mozart, Bach, Satie, Debussy to name a few) just by tapping the rhythm of the piece's particular sound events on a computer keyboard or a touch screen.

It also provides live visualisation of the pieces that are being performed. There is no score keeping, the user is free to perform the music in any way they wish. The premise is that it is really fun to perform a piece you know well, exactly like you feel it with so little effort.

Touch Pianist has CoreMIDI support so you can use your favorite piano / sound plug-in in your computer as a sound source if you wish.

Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/touchme/index.html b/touchme/index.html index bb99197b..d26c1ec3 100644 --- a/touchme/index.html +++ b/touchme/index.html @@ -45,7 +45,7 @@
chromatone
playtronica
TouchMe Experience by Chromatone is an interactive audio-visual web app that transforms touch inputs into music and visual effects. It features MIDI support, multiple synth oscillators, and various quantize and BPM modes. Users can explore six interactive SVG scenes, switch between light and dark modes, and view basic session statistics. Designed for creative experimentation, it offers a unique way to engage with music and visuals.
Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/typedrummer/index.html b/typedrummer/index.html index 3db2b45f..93c25c19 100644 --- a/typedrummer/index.html +++ b/typedrummer/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
Type Drummer
by Kyle Stetz
sequencer
drums
Keyboard
Type your drum loops
Made with 🧡 by
Playtronica &Chromatone
- +
Type Drummer
by Kyle Stetz
sequencer
drums
Keyboard
Type your drum loops
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/video-sampler/index.html b/video-sampler/index.html index 32746cde..79e80db0 100644 --- a/video-sampler/index.html +++ b/video-sampler/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/virtual-piano/index.html b/virtual-piano/index.html index eb7f7f0d..2bed2873 100644 --- a/virtual-piano/index.html +++ b/virtual-piano/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
VirtualPiano.eu
by WebSyrup
midi
keyboard

VirtualPiano.eu is the online synthesizer that allows you to play 128 musical instruments for free using your PC keyboard, the mouse or by connecting an external MIDI keyboard.

You can adjust Volume, Reverb, Loop and quality. Use the sustain and adjust the octaves, you can also select and set different channels including the one for the drums.

Create your own melodies, have fun playing or use VirtualPiano to learn how to play the Piano online on your own.

Made with 🧡 by
Playtronica &Chromatone
- +
VirtualPiano.eu
by WebSyrup
midi
keyboard

VirtualPiano.eu is the online synthesizer that allows you to play 128 musical instruments for free using your PC keyboard, the mouse or by connecting an external MIDI keyboard.

You can adjust Volume, Reverb, Loop and quality. Use the sustain and adjust the octaves, you can also select and set different channels including the one for the drums.

Create your own melodies, have fun playing or use VirtualPiano to learn how to play the Piano online on your own.

Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file diff --git a/waveform/index.html b/waveform/index.html index 88a7478b..acf3a117 100644 --- a/waveform/index.html +++ b/waveform/index.html @@ -45,7 +45,7 @@
Waveform
by Qvantor
playtronica
polyphonic
midi
Polyphonic web synthesizer with simple yet capable interface.
Made with 🧡 by
Playtronica &Chromatone
- + \ No newline at end of file diff --git a/web-audio-synth-v2/index.html b/web-audio-synth-v2/index.html index 9f086839..175d1816 100644 --- a/web-audio-synth-v2/index.html +++ b/web-audio-synth-v2/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/web-modular/index.html b/web-modular/index.html index a3759ec1..32453bb4 100644 --- a/web-modular/index.html +++ b/web-modular/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ - - + + \ No newline at end of file diff --git a/web-sid/index.html b/web-sid/index.html index 4b44fe3b..a6b99d35 100644 --- a/web-sid/index.html +++ b/web-sid/index.html @@ -14,7 +14,7 @@ - + @@ -44,8 +44,8 @@ -
WebSID Commodore 64
by Igor Zinken
polyphonic
keyboard
midi
additive
Made with 🧡 by
Playtronica &Chromatone
- +
WebSID Commodore 64
by Igor Zinken
polyphonic
keyboard
midi
additive
Made with 🧡 by
Playtronica &Chromatone
+ \ No newline at end of file