Code Monkey home page Code Monkey logo

barelymusician's People

Contributors

anokta 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  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

barelymusician's Issues

finalize performer

generator adds notes to score
conductor conducts the notes in score
performer performs the conducted notes

support different channel configurations

the initial plan to have only mono and stereo channels for instruments (and audio output).

might benefit more downmix/upmix methods for surround etc. later on.

revisit timestamps

  • where/if they are absolute time samples (vs. relative to score etc.)
  • do they need a specific "time" type, or just keep it int etc.?

support interpolating samples in sample player

for simplicity, current behavior snaps the playback cursor to the nearest sample.

this may be problematic for certain sampling ratio (system vs. playback sampling rate).

one very trivial improvement is to use linear interpolation for the fractional part of the cursor. then, can be further improved via cubic interpolation and/or a proper resampler - although, arguably not worth the added complexity.

perform missed note hits in a sample accurate way

performer will play notes with a timestamp prior to the start sample as soon as possible, meaning that will trigger them at the start of the buffer - without handling the missed samples.

while this should be an unlikely case (handled by the top-level api already?), might be good to investigate this further in the future.

create audiobuffer structure?

  • where/if a custom structure needed for passing buffers
  • ensure no unnecessary copies get created across the modules

[lsc] standardize member/variable ordering

alphabetical vs. contextual etc.

possibly:

  • functions

    • constructor/destructor (increasing param)
    • inherited (alphabetical)
    • declared (alphabetical)
  • variables

    • contextual grouping?

revisit random number generation

currently only used rand() in white noise generation for simplicity.

however, a more structured solution will become of importance soon when music generators are introduced.

next step: switch to random number generators in stl.

revisit note structure

how many different note structures needed?

  • w/o timestamps
  • note on/off vs start/end
  • absolute vs relative indices

how/where should the structures exposed across the api?

clarify module reset behavior

module interface reset behavior is not consistent across the codebase with usage of either,

  1. reset the internal states, or
  2. reset all the settings to default (more of re-initialize)

it should either be unified, or split behaviors into two explicit functions

support fractional indices in note scale transform?

seemingly unnecessary for now, considering the whole point of scaling a note is to snap to the scale in-key notes in the first place.

but might still be useful to at least round the fractional value rather than flooring.

implement beat quantizer

might be useful to add a quantizer method/class to avoid editing raw floating point beat durations

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.