Coder Social home page Coder Social logo

sequence-json's Issues

What is the purpose of "pitch"?

Maybe this was in the publication from awhile back, but I don't see it documented in the README. I don't know what would be the use of this event--could someone enlighten me?

Sequence Event--suggestion for generic "override" instead of rate

A Sequence as an Event is currently specified as follows:

[time, "sequence", data, rate]

Parameter rate seems to belong to interpretation.
In the case that data is a Sequence object, this can go into interpretation.
In the case that data is a reference to a sequence dependency, there may be other parameters about the sequence one wishes to override, in which case, we could change the rate param into an override param or something of sorts.

Transforms

@danigb

So, can I start a discussion about possible transforms? Do you have an idea of the transforms you would like to see? Some obvious transforms that spring to mind ...

'transpose', n

Where n is a positive or negative float that describes the number of semitones to transpose by.

'diatonic-transpose', mode, n

Where mode describes a scale and key, and n the number of steps to transpose by. It is not clear to me what to do with notes that lie between notes in the defined mode in a way that makes musical sense.

'invert', note

Where note defines a pitch that a note or sequence of notes is inverted around.

'diatonic-invert', mode, note

Where mode describes the scale and key and note defines a pitch that a note or sequence of notes is inverted around diatonically. Again, it is not clear to me what to do with notes that lie between notes in the defined mode.

'translate', time

Where time is a positive or negative float that describing a shift in time.

'quantize', ref, strength

Where ref references another sequence of events, and strength defines how much time shift to apply to align the current event or events with the events in the referenced sequence.

'velocity-curve', ...

...

Nice proposal, but it needs work

First of all it is great to see that there are more people thinking about this. What is clear however is that a few fundamental aspects are missing from your proposal. To me this is because you seem to have based your work on OSC and MIDI which both are rather poor representations of music, because in their essence these protocols are controller streams.

My suggestion would be to read up with the work of Peter Desain and Henkjan Honing, most specifically their work on representing music in "Lisp as a second Language: Functional Aspects", as well as have a very thorough look at how Lilypond (http://lilypond.org) implements this system.
Together with a partner I am also developing a JSON protocol for music, which I will be using to replace the current model (which also doesn't take the work of Desain and Honing into account) in my canvas based notation system Presto (http://mauritslamers.github.io/presto).

duration as part of event signature

Hello,

I've been following the progress of this for while. Good work! I wish something like this to get more or less standarized across different libraries. I'm interested in a declarative API to generate music and I've made a first attempt with scorejs and know I'm planning to rewrite a second version and I think it would be nice to follow your specification.

One problem that bothers me is that in scorejs the duration play an important role, the same as time, in order to perform events transformations without knowing the type of the events, and in your specification, the duration is not always present, so this kind of functionallity is harder to implement.

Something like this would made the things much easier:

event = [ time, dur, type, data... ] // dur === null means no duration

... but I'm open to any solution... what do you think?

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.