Giter Club home page Giter Club logo

openchart-web's Introduction

Join the Discord for announcements and be part of the discussion!


OpenChart is a free, open source, web-based tool for creating rhythm game charts and maps. OpenChart is currently in active development.

We plan to add support for the following games:

You can view the editor here: http://openchart.io/

Motivation

The primary goal for OpenChart is to create an editor which is:

  1. Easy to use
  2. Open source
  3. Available for all platforms
  4. Supports several rhythm games
  5. Supports n-key charting (4k, 6k, 7k, etc.)

There are several other bullet points that could be added but it really just boils down to this: Provide the community with a transparent, accessible editor that makes it easy to share charts/maps between games.

Getting Started

Prereq's

You will need:

  • Node
    • v14 is preferred but other versions will likely work
  • yarn
  • Docker

Setup

The only setup that needs to be done is to install the dependencies:

yarn

Serving Files Locally

The preferred method is to use Docker and serve the files through nginx. There are issues using parcel serve, mainly due to the fact that noteskins are copied to the dist/ dir manually.

Start by opening two terminals. The first will watch and rebuild for changes:

yarn watch

The second will run nginx and serve the files at http://localhost:8000/

docker run \
    --rm \
    -v "`pwd`/dist:/usr/share/nginx/html:ro" \
    -p "8000:80" \
    nginx

License

The OpenChart project is dual-licensed.

All code and non-branding related assets are protected under the GNU GPLv3 license. See the LICENSE for more information.

Branding images are protected under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. This applies to any artifacts located in the branding/ folder. See the README for more information.

openchart-web's People

Contributors

kangaroux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

openchart-web's Issues

Store audio file name so it can be used when exporting

When the user opens an audio file we should store that file name on the project. Later when the project is exported we can save the audio file name in whatever format is being exported.

If the user imports a project and hasn't opened an audio file we should use the file name from the imported project. This is to make sure that if the user opens a project, edits it, and saves it without loading the audio file, we don't overwrite the audio file name.

Fix umami DB not initializating correctly

The DB normally initializes the schema using a local .sql file but because we're using docker swarm the file isn't available on the remote machine when we do the deploy.

The obvious solution that comes to mind is to create a postgres image that has the schema already in it, so instead of doing a mount it's just already included.

Add copy/cut/paste

Pasting notes should place them at the current scroll position.

For now, let's just remove any notes in the paste region before pasting, and not worry about trying to merge with what's already there.

Place and draw holds

The notefield only supports drawing tap notes at the moment. It should also draw holds.

The user should also be able to place holds by holding down the column key and scrolling. When the user lets go of the key the hold should be placed.

Add a delete button for BPMs

With a BPM selected there should be a delete button activate, if the selected BPM isn't the first one in the chart.

Add 2 player charting

I've been looking for an alt to arrowvortex recently and this is the best i could find but this doesnt support 2 player charting. Can you add that please>

Select notes by dragging

The user should be able to drag their cursor to select a group of notes. If the user is holding down shift or control, whatever is selected should be added to the current selection

If the user starts dragging and scrolls the notefield the selection box should grow/shrink accordingly. In other words, when the user starts dragging, the point they clicked at should be relative to the notefield's current scroll position.

Select notes by clicking them

The user should be able to select a note by clicking it. If the user holds down shift or control it should add notes to the selection (or remove them if they were already selected).

Add undo/redo

Performing a reversible action adds it to the undo stack. If the user presses undo, the change is reversed, and it's moved to the redo stack. Likewise the user can press redo to re-apply it and move it back to the undo stack.

The redo stack should be cleared when the user performs a new action.

  • Keep track of actions taken using a stack
  • Add a method to Action which undoes the change
  • Add a keybind for triggering undo
  • Handle undo action
  • Add a keybind for triggering redo
  • Handle redo action
  • Take an inventory of all the things which should be undoable and create actions for things which are missing

Add note tick sound

This should play a sound when a note crosses the receptor while the song is playing.

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.