Giter Club home page Giter Club logo

Comments (2)

Natooz avatar Natooz commented on August 17, 2024

Good point, that's actually something I kept in my head for later when working on miditoolkit.

I think keeping all the controls in Track.controls is better, and it's simpler to write only the controls. Track.pedals should just be for users to use.

Now avoid any pedal-control inconsistency, we could ensure that each pedal stored has its Control equivalent. This shouldn't be a problem when parsing as the pedals are deduced from the controls. But then, if a user is adding a pedal to any Track.pedals, we could add the equivalent control in Track.controls. And also each time a control is added to Tracks.controls, if its a pedal we could just add the pedal to Track.pedals.

Setting Track.pedals as a property with setters / deleters would achieve this purpose.

It would make sure that the user can use/add any pedals without duplication, even for let's say two identical pedals (that may append even if it's not natural).

from symusic.

Yikai-Liao avatar Yikai-Liao commented on August 17, 2024

It would be challenging to achieve this encapsulation if common operations in list is allowed for pedal like slice.
Also, in this case, we may need to store two references of the corresponding control change in pedal, and a reference of pedal in control change event.

from symusic.

Related Issues (20)

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.