LMMS / lmms

Cross-platform music production software
https://lmms.io
GNU General Public License v2.0
7.83k stars 988 forks source link

add Jack Midi Input +many controllers #695

Open oeai opened 10 years ago

oeai commented 10 years ago

Jack can use not only alsa and my alsa lmms-midi-config gets to dummy often, maybe because of changed alsa-device-#number or i'm not really sure why. i don't know if it is really hard to implement, it works with alsa though i'd suggest to add many midi-controllers not just one, so we could use few inputs for different instruments, for example midi-keyboard and midi-pad and midi-dj-mixer really i'd like to use gamepad as beat controller with X-Y-Z as wheel for pitch or panning/volume/reso /octave shift etc just to have some fun with friends maybe .' ) - i think it's the same midi-input for beat-bass editor assign controller and assign buttons to play one note of different instruments (beats&clicks) (can be also up-down-left-right) or few notes of one instrument (bass), mod-wheel can be assigned only for analog-sticks (distortion, amp, reverb and others)

the difference between keyboard and joystick is in channels - i think joysticks got only 1 channel and for midi there should be reserved address pools for 2-7 instruments so they wont reach more than 896 and the rest can work with joysticks, just tell user which pool this instrument is using

there's a lot of gamers in the world, i hope they'll be happy to be a part of music creation and for me it is a better way to create not so automatic beat, doing it with midi-keyboard is not like with pads that i don't have, while i have gamepad and 2 joysticks with analog modulators - whole band

tresf commented 9 years ago

@oeai is this two requests?

I think I see the first request to add multiple midi controllers, which IIRC, we support on so as long as each controller is assigned its own instrument track. Are you referring to a limitation of Jack/Alsa? Can you explain that a bit more?

The second request seems to allow the MIDI channels access to a game controller as a MIDI input device. Is this correct?

Sti2nd commented 9 years ago

The second request seems to allow the MIDI channels access to a game controller as a MIDI input device. Is this correct?

Which really sounds like nothing LMMS should/could do, but what other software (or drivers for Windows) is for. I am 74% sure that you would have to support the infinity of various control specifically.

tresf commented 9 years ago

Which really sounds like nothing LMMS should/could do

Says who? The OP mentions technically how possible this is. Furthermore, old game controllers used to use the same DB-15 plug as the MIDI keyboards, so I fail to see why this shouldn't be done (regardless of whether or not it can't be done)

Remember, Linux exists because a bunch of hackers made hardware do something that they wanted it to do. Don't underestimate the value of using the wrong device for MIDI input (cough, like your _bleep_ing computer keyboard!) :)

Sti2nd commented 9 years ago

Furthermore, old game controllers used to use the same DB-15 plug as the MIDI keyboards

Oh, ok, why not. I thought he seriously was thinking about converting signals to MIDI.

Umcaruje commented 9 years ago

Don't underestimate the value of using the wrong device for MIDI input (cough, like your bleeping computer keyboard!) :)

I'm a kind of a junkie on this theme. I spent a lot of time investigating and making MIDI instruments out of different devices (I made MIDI controllers out of Tablets/phones, Numpads, gamepads). Mostly there is software that does this, but its either lacking functionality or its very old, so it doesen't work with newer versions of windows. PureData works on Linux, but has some issues with alsa etc. But there are always workarounds (I had to turn my numpad into a virtual joystick and then use a joystick to midi converter to make it work as a controller).

I think that LMMS should accept HID devices alongside MIDI devices and allow the same controller functionality as it does with MIDI ones. I have no actual knowledge of how this would go and be implemented, but I think that this is a good idea.

tresf commented 9 years ago

I have no actual knowledge of how this would go and be implemented, but I think that this is a good idea.

This can vary in complication... For example... Do we want to use the game-controller-direct-input, such as via Microsoft Direct Input API, or hack together a quick-hack HID API that just makes assumptions about the hardware? I think it can vary in complexity since some controllers use proprietary communications and drivers whereas others don't.

tresf commented 9 years ago

IIRC, SDL may have a cross-platform API for game controllers too.

http://www.libsdl.org/release/SDL-1.2.15/docs/html/joystick.html

fpesari commented 2 years ago

Disclaimer: I do not own a Steam Deck, even dislike Steam as a software. I am speaking for what I think to be the benefit of the wider GNU/Linux community.

Valve's Steam Deck is a GNU/Linux-based portable game console. It can run any GNU/Linux program.

I think that, being a popular program, chiptune-friendly and, in general, having the most user-friendly GUI among the FLOSS DAWs, LMMS lends itself well to being a "gamer's DAW". For this reason, I think it would benefit a lot from being fully controllable via joystick. The Steam Deck's controller I think would be a good starting point for defining a joystick-based control flow. If implemented well, I think it could help LMMS become more popular.