Chromatone audio-visual web-experience for Touch Me - the tactile MIDI instrument by Playtronica.
- Open any WebMIDI enabled browser on any device
- Connect a MIDI-controller via USB, Bluetooth or DIN to the device
- OR just use your desktop keyboard
- Play notes and collect stats
- Hold any note for 3 seconds to have scene change randomly.
- Swap scenes with icon buttons to the left. Scenes change randomly after any note being held for over 3 seconds, or pressing Spacebar or Enter key.
- Quantize notes to 1/8, 1/16, 1/32 or free time with the bottom-left button.
- Offset notes by -2,-1,0,+1 or +2 octaves with a button above.
- Change oscillator waveform with a wave button. It will also help you shut any hang notes that may ocasionally appear.
- Route MIDI from inputs to outputs, both hardware or software
- Monitor MIDI in message log
- Dark mode - turn the lights on or off with a button to the top and left.
- Stretch to fullscreen with the toggle in the top-right corner
- webmidi.js provides access to MIDI
- tone.js is used for audio synthesis and effects
- vue 3 the reactive components library
- vite - the fast build tool
- vueUse - composables to build upon
- unplugin-icons - free svg icons to embed
- Icônes - the free icon catalog
- pug - the neat version of HTML
- windi css - the neat version of CSS
public/
- the files to be copied to the root of the built sitesrc/
- the source codecomponents/
- Vue 3 components ready to be auto-imported in any other componentscenes/
- auto-parsedvue-router
route components withpug
flavoured svg code, that will be used inside the mainscene
svguse/
- all the composable and utility functions for the app logicapp.vue
- the main scene SVG and overlaysmain.js
- the Vite app entry point
- Clone this repo to a folder on your computer
- Run
pnpm i
to install all project dependencies (You may need to install pnpm before) - Run the dev script with
pnpm run dev
and visit the localhost address for development and tests - Run the build script with
pnpm run build
and have thedist
folder ready to upload to your static file web hosting.
- Fork the repo
- Create a Vue 3 component inside the
src/scenes/
folder - The template should contain valid SVG code to be embedded into the main scene
- Import and use all the interfaces for MIDI, synth, colors and more from
'~/use/'
folder - Use present scenes as examples
- You may use
pug
andwindicss
or prefer plainhtml
templates andcss
styles - Add a line to the
app.vue
with Iconify icon and the scene file name like thisicon-ri-donut-chart-fill(v-if="scene.name == 'donut'")
- Push you component to your GitHub repo
- Create a Pull Request with the changes to this repo to share it
- We will check your code and, if everything is fine, the updated version of the experience will be deployed to the main site.
- Audio recorder
- MIDI recorder
- Achievements
- Global statistics server