Code Monkey home page Code Monkey logo

lpadder's People

Contributors

dependabot[bot] avatar imgbotapp avatar invertime avatar maelgangloff avatar nksaraf avatar trobonox avatar vexcited avatar

Stargazers

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

Watchers

 avatar

lpadder's Issues

feature: support more devices

  • Allow users to have the same or similar functionality to a launchpad while using devices like Matrix, Ableton Push, Midi Fighter etc

  • Allow support for LED strips for use of underlights or other examples like what can be seen in lumin's "An Omen In The Rain" project


  • Launchpads (most used one)
  • Matrix & Matrix PRO + Underlights of it
  • Midi Fighter 64
  • Ableton Push
  • Custom devices ?

feature: video output

Allow users to play GIFS/other forms of video onscreen in a separate tab via buttons on the Launchpad/MIDI Device

example: I will set the bottom left button to be a gif of a shiba dancing for two seconds, and I can choose for that gif to end in one second
output: I press the button and the gif of the shiba dancing plays for one second then goes back to the default black screen

feature: cross-compatibility

If we had the option to possibly plug in our launchpads to our phones like Unipad, maybe we could add the ability to work with people that are on PC while you're on the phone or another device.

feature: add `loop` property to loop samples

Allow users to loop a sample for a specific amount of time or only until the button is released.


Feature Tracking

  • Add a loop property to ProjectStructure.
/** Looping a sample when defined. */
loop: {
  untilReleased: boolean;

  /** Time to loop, when `untilReleased` is `false`. */
  until: number;
} | null;

feature: Mini-Games

Describe the solution you'd like.
Small Mini-Games to play on the Launchpad while you're bored or perhaps integration into projects via mini-games plugin
Different game ideas could include
Piano Tiles
Osu!
Tetris

Additional context
Allow users to create maps for the Mini-Games with ease
Content you're unable to display on the launchpad could be displayed on the website such as:
Level Selection
Map Info
Leaderboards
Score

feature: performance settings

FPS - Allow users to change the frames per second (like Apollo Studio) to help with users that have bad computers and/or internet.

Audio Quality - Allow users to change the audio quality to help with users that have bad computers and/or internet.

Delay - Since this is on a website, I assume there is going to be a lot of delay, but I hope to expect little to no delay so users can play the
song correctly on time.

General Performance Settings - If there can just be some more performance settings that could help with slow computers and/or slow internet, perhaps that could bring even more people into the community because not many people are able to afford great computers or internet, but $100 for a matrix(if it's compatible) and like $100 for a phone could bring in a lot more people into the community.

feature: multi-launchpad in `collab` mode

If you could provide support for more than one launchpad/midi device at a time, that would be a big bonus!
and if you could do that with PlayShare enabled like requested here: #6
you could literally do duo launchpad projects live! (like one person does drums and the other does the melody)


Feature Tracking

  • Support multi-launchpads in "collab" mode.

feature: automation trigger

Allow users to assign automation to buttons (things like EQ, Volume, Reverb etc)
or an option to start an automation and end it at a certain point when you press a button

feature: sampling using pad combination

Make an option to create double sampling, which is a method that cannot be utilized in Ableton currently.
If you only press one button, it will not play the sample. But if you press the button along with another button, it will play the sample.
This could be good for mirrored sampling, or sampling where you have to press 4 buttons or more at once.

Another good addition to add some extra spice would be to have a "gap" setting to widen the gap between the time you have until you're no longer able to press the next sample. this could help with finger sliding.
for example: you can adjust the "gap" to be one second, so you can play one button and wait a maximum of 1 second to hit the next button for it to play the sample.

feature: held samples

Describe the solution you'd like.
Allow users to create samples that will only play when held

Additional context
If you press a button and hold it, the sample will play until the button is no longer being pressed.

feature: add `choke` property to triggers

Allow users to choke samples and name choke groups

Example: you set sample D to be in the specified choke group renamed to be "vocal1", and you set sample B to ALSO be in the choke group "vocal1". what should happen, is if you press sample D, it will play normally. but if you press sample B before sample D ends, it will stop sample D abruptly to let sample B play.

feature: RNG

Describe the solution you'd like.
a way to randomize another plugin's behavior

Additional context
This could mean randomization of which sample is played in multi-sampling or multi-lights, or where a light is going to be played on the launchpad, or when it is going to be played. a plugin for this could be very useful to just add ontop of other plugins.

feature: offline mode and collab on LAN

If there is a way to make the program/website usable while offline, that would help with website traffic if that becomes a problem. maybe there could be a way to implement bluetooth or LAN connectivity so your friends can work with your projects IRL instead of online


Feature Tracking

  • Make the app available offline using PWA.
  • Make possible to collab on LAN

feature: on-grid sampling (timeline)

I haven't experimented enough with this website yet, but it seems like you're doing off-grid sampling right now, I'd prefer if there's an option to change to on-grid sampling like how Ableton is so you can sample to exactly how the song is, and allow us to select different grid types.


Feature Tracking

  • Create a timeline component with divs than contains the midi tracks in children.
  • Use wavesurfer.js to create waveforms.
  • Create a BPM input to make the grids.
  • Create grids using CSS or markers (?)
  • On MouseEvents with the waveforms, move or drag to the nearest bar grid.
  • Create different grid types.

feature: `collab` mode support

Online Mode - Perhaps a multiplayer option would be feasible? I think this could be something absolutely revolutionary if done correctly.
you could be working with a friend on the same project in realtime instead of having to send the projects back and forth to each other, this would help a LOT with efficiency. just imagine like a 10 person collaboration, it could be finished in like two days.

PlayShare - also having like a setting to disable and enable "PlayShare", this option could allow you to see your friends playing the project on YOUR launchpad, so if for example they press a kick button, you'd see the same light on your launchpad and you'd hear the same audio.
this could open the creative possibilites for launchpad artists by a LOT.

Online Browser - Perhaps an online browser for released lpadder projects could be awesome to discover new projects! you could add the ability to add custom images and artwork to display the feeling of their project to the maximum.


Feature Tracking

  • /collab route with /:peer_id as parameter, else redirect to home page.
  • The host resides in /projects, the peers in /collab
  • When a peer joins, export the current_project store and send it over P2P to him.

feature: themes and customizability

  • Allow users to create per-project customized themes via custom colors or other

  • Allow users to create notes anywhere they want, this could be used as info of the project (for example: which pages have drops, verses, choruses, buildups, bridges etc)

  • Allow users to create custom images & gifs anywhere they want (for example the cover art can be displayed at the very beginning of a track or something similar) this can help with artists allowing their projects to feel more complete.

feature: onscreen Launchpad/MIDI device

  • Allow users to enable and disable an onscreen launchpad so they can share their screen to show their friends instead of having to turn on the camera

  • Have the ability to create projects efficiently with the use of the onscreen launchpad

feature: multi-sampling

Allow users to press one button to cycle between multiple samples, and have a button you can customize to reset the multi-sampling

feature: Utilizing velocity with the Launchpad

Describe the solution you'd like.
Allow users to disable or enable velocity sensitive samples and decide what they want the different velocities to trigger.

Additional context
This could be utilized for more automation.
Example - you could be pressing the button very lightly to play a very quiet kick, then press it harder to play a loud kick for buildups

This could also be utilized for pitch bending
Example: If you move your finger around while holding the button, you are changing the amount of force you're putting into the button, so you could be playing a guitar sample and if you move around your finger it could pitch bend the guitar.

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.