View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001315 | OpenMPT | Feature Request | public | 2020-04-28 13:07 | 2020-08-15 11:12 |
Reporter | AndreB | Assigned To | |||
Priority | normal | Severity | feature | Reproducibility | always |
Status | new | Resolution | open | ||
Platform | x86 | OS | Windows | OS Version | XP |
Summary | 0001315: standard panning command to Midi-out | ||||
Description | Dear Programmer, dear Saga Musix Volume and Velocity can be handled great for MIDI, I'm glad for that! Kind regards, | ||||
Additional Information | panning cc10 in the official midi-standard: | ||||
Tags | No tags attached. | ||||
Has the bug occurred in previous versions? | |||||
Tested code revision (in case you know it) | |||||
It's a bit more complicated than that, and not just "weird synths". Many plugins just don't use MIDI CCs at all. And I don't want to implement a half-baked solution that only works for some plugins, just to replace it by a solution that works for all plugins and then having to support both solutions forever. When you do that, you end up with the terrible volume handling situation that takes away more space in the instrument editor than it should. For this reason it's mostly a UI issue - once that UI issue has been solved, it's easy to support all plugins no matter if they support CC 10 or not. For what it's worth, you can already manually transmit the current panning value to plugins using MIDI macros: https://wiki.openmpt.org/Manual:_Macro_Configuration#Panning_Variables
Why "only"? There's not much left apart from those. And yes, pretty much any effect apart from volume / pan changes is sent via MIDI. That includes arpeggio, tremor, vibrato and many other effects. |
|
So that's how it is, alright. I figured there could be a good reason, thank you for explaining. But what about a little option called 'send panning' in a Setup-tab or the Instrument tab (right next to where panning is able to be set)? I found the volume handling in the instrument editor very useful.
|
|
Making this a global setting that affects all songs is an even worse idea.
See, this is exactly the problem I was talking about - there is simply no space the instrument tab to address this problem properly. The volume command handling is already taking up way more space there than it should. I have considered in the past to put both volume and panning handling into a dialog that would be hidden behind a button on the instrument tab, but that would make reviewing those settings much more difficult. I just need a good idea how to solve this problem, then the issue is basically done. The rest of code the code is simple. |
|
Dear Saga Musix
Thank you for openly sharing that proplem, may I give a suggestion? What about moving some midi-stuff that is rather general over to the midi-in/out-plug-in screen? Each device needs it's own midi-plugin anyway, good for setting spertaining to the midi-device/plugin. What do you think?
|
|
Why don't you just try it yourself? You will see that these effects work out of the box. As Vibrato is implemented by using pitch bends, you need to set the correct pitch wheel depth in the instrument, just like for normal portamentos.
No, because the general assumption is that all effects are evaluated; it's just that not all of them (in particular volume related stuff) get transmitted because of the lack of standard behaviour. However, in principle it is possible to transmit any volume and panning commands by defining the correct MIDI macros.
These settings apply to any instrument plugins, not just the MIDI I/O plugin. And they are per-instrument, not per-plugin, so if you have two different instruments using the same plugin but have different volume configurations, you cannot express that anymore with your suggestion. And we have to keep supporting existing files which are configured that way (which do exist), so we cannot simply remove these instrument settings. They have to stay part of the instrument configuration. Again, this is part of the whole idea that I don't want to change the behaviour from one imperfect solution to another imperfect solution, because in the end that means that later on I have to support two imperfect solutions and one final (perfect) solution. I will find a proper way to handle this some day, but now is not the time I'm afraid. |
|
Thanks a lot for the interesting explanations.
|
|
You can have instruments with both samples and MIDI output at the same time. And again, such files already exist in the wild. If it was that simple, it would have already been done. :) |
|
Ah, true. |
|
Again, it's not simply "just add another page / button / etc.". I don't want a temporary crappy UI. I want a good approach to solves the problem once and for all, and not implement a crutch that makes the program more difficult to use and that will be replaced with something better later. OpenMPT has suffered in the past from randomly throwing stuff together in the user interface (the instrument editor is actually a good example for that), and I don't want that to happen again. PS: Comments in this issue tracker are formatted with Markdown, not HTML. |
|
Dear Saga Musix On the following, I'd appreciate your advice. |
|
SImply put: All of this is for historical reasons, and we cannot change the past. OpenMPT extends the work other developers have done in the past (e.g. in Impulse Tracker) and builds upon it, so we cannot simply change those rules and break existing modules. And once again: None of this can be changed easily. We cannot "just" add yet another tab just for MIDI stuff, because there is no clean distinction between MIDI and sample-based instruments. You can have both in one. People (including myself) have been making use of that before, and we cannot just make it stop work. Everything you see in OpenMPT is done the way it's done for a reason, and often that reason is history.
I just wish you understand that I have been thinking about all of these things before, many times, for many years, and if it was so simple to fix them for everyone, I would have already done it. There are many things to keep in mind and there is no simple solution due to our strict desire to keep backwards compatibility.
All effects including any panning effects can be passed to MIDI, by means of manually crafted Zxx commands (as mentioned above). |
|
Dear Saga Musix I'm all in all pleased with all that OpenMPT can do, and it's nice we could talk. |
|
Of course things could be done differently. I want them to be done differently eventually. But what I don't want is a mishmash of many different options that will just make the whole issue more complicated for everyone. That's what you have to keep in mind. You might imagine a simple fix for the problem that will suit your needs, but a simple fix will not be enough for some other user's needs. The difficult part here is to balance all of that, while also keeping the code maintainable. |
|
Since I sense this answer will probably still not make you happy, here is the bigger picture that we are moving in:
I hope it's also clear from the above that we cannot simply start sending MIDI CC 10 without asking the user (by adding some UI element somewhere) because it might change the sound of existing modules. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2020-04-28 13:07 | AndreB | New Issue | |
2020-04-28 16:44 | Saga Musix | Note Added: 0004295 | |
2020-04-28 17:54 | AndreB | Note Added: 0004296 | |
2020-04-28 18:04 | Saga Musix | Note Added: 0004297 | |
2020-04-30 11:03 | AndreB | Note Added: 0004299 | |
2020-04-30 12:47 | Saga Musix | Note Added: 0004300 | |
2020-04-30 13:22 | AndreB | Note Added: 0004301 | |
2020-04-30 13:23 | Saga Musix | Note Added: 0004302 | |
2020-04-30 13:58 | AndreB | Note Added: 0004303 | |
2020-04-30 15:27 | Saga Musix | Note Added: 0004304 | |
2020-08-13 12:30 | AndreB | Note Added: 0004415 | |
2020-08-13 12:40 | Saga Musix | Note Added: 0004416 | |
2020-08-14 12:50 | AndreB | Note Added: 0004417 | |
2020-08-14 16:30 | Saga Musix | Note Added: 0004419 | |
2020-08-15 11:12 | Saga Musix | Note Added: 0004422 |