Code Monkey home page Code Monkey logo

barelylooper's People

Contributors

anokta avatar

Watchers

 avatar  avatar

barelylooper's Issues

Refactor input manager

probably something like an input module (inherited from baseinputmodule) + graphicsraycaster in addition to a custom input manager to handle the rest of the game items would work the best.

Can fade in/out of loops improved?

Currently uses buffer length samples in each side of loop with exponential decay. Could be worth investigating if there's a better way of handling the start/stop glitches..

Sequencer/metronome is buggy

After the recent fixes (78f75f3), they are seemingly outdated.

Should be able to playback in sync with the loops before and after the loop playback starts.

Simple audio effects with spatial assignments

With a solution for #17, some simple audio effects (such as low pass, distortion etc) could be introduced with scalable zones (similar to reverb zones) that can be placed in the 3d environment to affect the loops inside these regions.

Record loop length is wrong!

When StopRecording is called, the record cursor is behind the current time, which ends up having a wrong record clip length. Could be possibly fixed by the following steps:

  1. (optional) Always keep recording and save the very first dsptime when start recording to get the latency.
  2. When StartRecording, compare the (current - initial dsptime) % record length with the cursor to find out the current latency.
  3. When StopRecording, again compare the dsptime with the cursor to find out how long the record is behind, then:
    a. Immediately return the current data and fade in the first samples
    b. Start a coroutine to wait for Microphone.GetPosition(null) >= targetdsptimesamples + 2 * crossfadetimesamples, then send back the real data.
    c. Update the looper data by crossfading both ends for seamless loop.

The 3rd step may require the streaming audioclip or onaudiofilterread methods to avoid glitches on data update.

While this overall sounds rather complex, could solve the syncing issues for good!! <3

Improve looper visuals

Esp. a must to have, more sophisticated - e.g. frequency based - dynamic visualizations!

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.