LMMS / lmms

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

Multiple instruments enabled at once #6118

Closed xor32dotcom closed 6 months ago

xor32dotcom commented 3 years ago

Enhancement Summary

the right half of the MIDI keyboard maps to a different instrument The left half gets another instrument

Or even better, is to have the user specify which notes get which instrument

Justification

I was using LMMS as a NES synthetizer and it sounds AMAZING through a midi keyboard channel. The only problem that it has is that the nescaline channel 3 is meant to be used for the bass notes but enabling multiple channels on it mixes the two for each note.

So at least for the nescaline, bass notes get used through channel 3, and the higher notes use a different channel. (instead of using both at once which really messes up and distortions the sound)

Mockup

rdrpenguin04 commented 3 years ago
  1. Please delete the first line. You did look for duplicates, right?
  2. You can work around this problem by making two channels, muting the triangle channel on one and muting the pulse channels on the other.
  3. This absolutely sounds like a useful feature, but it's also something that would either need to be implemented separately for all of the instruments (in particular, this is non-viable for VSTs), or there would need to be a separate instrument made specifically for splitting the keyboard that references other instruments. I'd personally go with the second option.
he29-net commented 3 years ago

This should be already possible to set up with the recent alpha build, but depending on what exactly is you goal it may only work on Linux systems. Here is a short video I made at the end of 2019, showing how it works:

https://user-images.githubusercontent.com/20932751/127535688-a168f0cf-d040-4f3e-9378-5bff099ebbc7.mp4

To explain what is happening (since the custom MIDI range is a new thing): you first limit the key range accepted by each instrument, and then set all of them to get MIDI data from the "Midi Through" interface / instrument / whatever it is. Then you can use another instrument to drive all of them by setting Midi Through as the MIDI output; I used AFP with no sample loaded.

If you goal is to connect a physical MIDI keyboard, it should work anywhere: just set all instruments to use the keyboard and set the ranges they should react to.

But if you want to use one track to drive several instruments, Windows may not work. The problem is that the video example above relies on "Midi Through", which I was told isn't always available. I assume it is an interface created by ALSA or something, and therefore available only on Linux. Another problem is that there is only one Midi Through interface, so you could not do the same setup for multiple tracks in a project.

xor32dotcom commented 3 years ago

> You can work around this problem by making two channels, muting the triangle channel on one and muting the pulse channels on the other.

that's weird I can't seem to find an option that would let me do so. But ill keep looking.

> a separate instrument made specifically for splitting the keyboard that references other instruments. I'd personally go with the second option.

I second that. And I think that's the step in the right direction. The only use I can think of that at the moment is for the ultimate Nescaline MIDI experience. Generally speaking, anything that involves a piano benefits heavily from splitting the keyboard in such a fashion regardless. So it still has other uses that don't involve 8-bit music.

Another reason why this is the best way to go about it, is that the instrument would have it's own track without the need to worry about merging multiple tracks together. ( In the current build i don't think it's possible to record 2 tracks at the same time) That track would then index the other instruments as you said. I also think that tracks made in this fashion should be color coded differently as to distinguish itself as a track that depends on other instruments.

However, at the moment I also think that it would be even better if the new instrument also gave the option of adding notes to the tracks of the instruments it uses, the notes would be color coded, and then a simple checkbox could be used to enable or disable the new color coded notes generated from the proposed instrument, to avoid getting confused at which notes came from it.

zonkmachine commented 6 months ago

@xor32dotcom Thanks! I'm closing this in favor of https://github.com/LMMS/lmms/issues/6938 since it's a bit more detailed.