Coder Social home page Coder Social logo

bubobubobubobubo / topos Goto Github PK

View Code? Open in Web Editor NEW
22.0 5.0 9.0 189.36 MB

Web Based Live Coding Environment. Inspired by the Monome Teletype.

Home Page: https://topos.live

License: GNU General Public License v3.0

HTML 7.72% JavaScript 2.38% TypeScript 73.79% CSS 15.95% Rust 0.07% Dockerfile 0.09%
computer livecoding midi monome music sequencer synthesis teletype toplap webaudio algorithmic-composition controller

topos's Introduction

Topos: A Web-Based Algorithmic Sequencer

 | Discord | BuboBubo | Amiika | About Live Coding |

Contributors

Buy Me a Coffee at ko-fi.com


Topos is a web based live coding environment designed to be installation-free, independant and fun. Topos is loosely based on the Monome Teletype. The application follows the same operating principle, but adapts it to the rich multimedia context offered by web browsers. Topos is capable of many things:

  • it is a generative/algorithmic music sequencer made for improvisation and composition alike
  • it is a synthesizer capable of additive, substractive, FM and wavetable synthesis, backed up by a powerful web based audio engine
  • it can also generate video thanks to Hydra, oscilloscopes, frequency visualizers and image/canvas sequencing capabilities
  • it can be used to sequence other MIDI and OSC devices (the latter using a NodeJS script)
  • it is made to be used without the need of installing anything, always ready at https://topos.live

Screenshot

Disclaimer

Topos is still a young and experimental project developed by two hobbyists :) Contributions are welcome! We wish to be as inclusive and welcoming as possible to your ideas and suggestions! The software is working quite well and we are continuously striving to improve it. Note that most features are rather experimental and that we don't really have any classical training in web development.

Local Installation (for devs and contributors)

To run the application, you will need to install Node.js and Yarn. Then, clone the repository and run:

  • yarn install
  • yarn run dev

You are good to go. The application will update itself automatically with every change to the codebase. To test the production version of the applicationn, you will need to install Node.js and Yarn. Then, clone the repository and run:

  • yarn run build
  • yarn run start

If the build passes, you can be sure that it will also pass our CI pipeline that deploys the application to https://topos.live. Always run a build before committing to check for compiler errors. The automatic deployment on the main branch will not accept compiler errors!

Tauri version

Topos can also be compiled as a standalone application using Tauri. You will need Node.js, Yarn and Rust to be installed on your computer. Then, clone the repository and run:

  • yarn tauri build
  • yarn tauri dev

The tauri version has never been fleshed out. It's a template for later developments if Topos ever wants to escape from the web :)

Docker

To run the Docker version, run the following command:

docker run -p 8001:80 bubobubobubo/topos:latest

Build and run the prod image

docker compose --profile prod up

Build and run the dev image

First you need to map node_modules to your local machine for your IDE IntelliSense to work properly :

docker compose --profile dev up -d
docker cp topos-dev:/app/node_modules .
docker compose --profile dev down

then run the following command:

docker compose --profile dev up

Note that a Docker version of Topos is automatically generated everytime a commit is done on the main branch.

Credits

  • Felix Roos for the SuperDough audio engine.
  • Frank Force for the ZzFX synthesizer.
  • Kristoffer Ekstrand for the AKWF waveforms.
  • Ryan Kirkbride for some of the audio samples in the Dough-Fox sample pack, taken from here.
  • Adel Faure for the JGS font.
  • Raphaël Bastide for the Steps Mono font.

Many thanks to all the contributors and folks who tried the software already :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.