muse-sequencer / muse

MusE is a digital audio workstation with support for both Audio and MIDI
https://muse-sequencer.github.io/
Other
660 stars 71 forks source link

Sometimes the wrong drummap is displayed in the drum editor #527

Closed AndrewPy closed 3 years ago

AndrewPy commented 8 years ago

If an instrument with an customized drummap is selected, sometimes the wrong drummap is displayed in the drum editor. (I use MusE 2.2.1 (from kxstudio) with Ubuntu 14.04 64 bit.)

Steps to reproduce:

Casiotone_MT240_MT540_v2.zip

(Feel free to add the two attached idf-files to the muse instrument library! )

(One thing I noticed : In the idf file "Drummaps" needs an uppercase letter "D" and "drummap" needs a lowercase letter "d"...)

terminator356 commented 8 years ago

Verified the new drums bug. Thanks! Was beginning to think new drums were fully broken until that last step. Will try to check more...

Note: With old drums you need to load separate maps via Drum Editor: Functions -> Load Map. There are some example drum maps. The drum definitions in an instrument file are for new drum tracks only. I know - not a good situation. All those definitions waiting to be used.

I really ought to take another try at making some kind of converter or other way of getting those new drum defs into the old drum tracks and vice versa. Obviously the problem is one only has 128 defs while the other has more. Or else find a way to make new drums support port and channel override like old drums. That's how Florian made the new drums. I've tried a few times. If we did that, we might actually eliminate the old drums - once and for all.

terminator356 commented 8 years ago

Hi. I just pushed a change to git master if you'd like to test. New drums maps seem to be working now. Please test and watch for excessive or continuous (!) debugging messages (to be removed later), or unusual behaviour or slowness etc. Rather than go into detail here, please see the ChangeLog file for information about how it works and what to expect. Thanks for testing!

AndrewPy commented 8 years ago

Thank you very much. The new style drums work very fine now. (I only saw some debug-messages "MidiTrack::auto_update_drummap: maps not equal" and "DrumCanvas::rebuildOurDrumMap").

One other thing i have noticed: If you build muse3 with lv2 but without dssi, then the lv2host.cpp cannot compile because DSSI_NONE is not declared. (I tried it under Ubuntu 16.04 64bit this time.)

terminator356 commented 8 years ago

On Monday, October 3, 2016 10:56:03 AM EDT AndrewPy wrote:

Thank you very much. The new style drums work very fine now. (I only saw some debug-messages "MidiTrack::auto_update_drummap: maps not equal" and "DrumCanvas::rebuildOurDrumMap").

Hi, thanks.

Now, you may notice that if you change anything in the drum map, it basically remains stuck on that map and you can't get the map to change again unless you right click the track in the arranger and hit 'reset' drum map.

So, stay tuned for more fixes. I'm working on something... The 'new drums' are gonna rock... I hope.

Locally, I've got it right now so that if you change a drum map, you can switch to another map and then back again and your changes are still there. Further, any 'field' you change (drum name, volume quant etc.) is highlighted in bold text, and stays that way even if you switch maps and then back again. Later I will add 'reset to default' features for each 'field', or the whole line, or the whole map. These are global effects, so I'm looking at providing local track overrides so that drum maps can be arranged to taste for each track while still maintaining global changes.

These are significant changes and they sure ain't easy, especially since new drums were not my code.

It is possible (or not, I'm optimistically investigating) that soon we may be able eliminate the 'old drums' completely, if I can just add the two features found in 'old drums', which are not found in 'new drums', to the 'new drums'. Stay tooned...

One other thing i have noticed: If you build muse3 with lv2 but without dssi, then the lv2host.cpp cannot compile because DSSI_NONE is not declared. (I tried it under Ubuntu 16.04 64bit this time.)

Strange, shouldn't happen, will check thanks. Tim.

Windfisch commented 8 years ago

Heya!

On 09/29/2016 09:33 AM, Tim wrote:

Or else find a way to make new drums support port and channel override like old drums.

That's not how they're meant to be :D

Why exactly would one want to do that? The solution is, to create one drum track for every MIDI device that does drums. You can edit all of them in one single window, but they are different tracks, just as MIDI tracks need to be different tracks if you want to use different MIDI devices.

You wouldn't expect the "C4" to be played by one device, but the "C5" of the same track be played by another device, after all. Same for new style drum tracks.

That's how Florian made the new drums. I've tried a few times.

Cheers, Florian

terminator356 commented 8 years ago

On Saturday, October 8, 2016 6:05:13 PM EDT Florian Jung wrote:

Heya!

On 09/29/2016 09:33 AM, Tim wrote:

Or else find a way to make new drums support port and channel override like old drums.

That's not how they're meant to be :D

Why exactly would one want to do that? The solution is, to create one drum track for every MIDI device that does drums. You can edit all of them in one single window, but they are different tracks, just as MIDI tracks need to be different tracks if you want to use different MIDI devices.

You wouldn't expect the "C4" to be played by one device, but the "C5" of the same track be played by another device, after all. Same for new style drum tracks.

Sometimes you have one drum instrument that is not quite pleasing, so with old drums you can 'redirect' that one single index to another port and channel's instrument drum index. It is handy when you are experimenting with different drum soundfonts for example, you can substitute a drum sound from one synthesizer for another.

If successful it will just be there if anyone needs it. May not get another opportunity to try this for some time, so I want to really try to take care of all this stuff now while I'm in there, focused.

T.

Windfisch commented 8 years ago

On 09.10.2016 05:03, Tim wrote:

On Saturday, October 8, 2016 6:05:13 PM EDT Florian Jung wrote:

Heya!

On 09/29/2016 09:33 AM, Tim wrote:

Or else find a way to make new drums support port and channel override like old drums.

That's not how they're meant to be :D

Why exactly would one want to do that? The solution is, to create one drum track for every MIDI device that does drums. You can edit all of them in one single window, but they are different tracks, just as MIDI tracks need to be different tracks if you want to use different MIDI devices.

You wouldn't expect the "C4" to be played by one device, but the "C5" of the same track be played by another device, after all. Same for new style drum tracks.

Sometimes you have one drum instrument that is not quite pleasing, so with old drums you can 'redirect' that one single index to another port and channel's instrument drum index. It is handy when you are experimenting with different drum soundfonts for example, you can substitute a drum sound from one synthesizer for another.

Hum, yeah.

I agree that there should be some easy-to-use GUI interface to make this happen. I disagree with the old style drum tracks by saying, this should not be solved by having one track operating on multiple devices.

Instead, by placing the particular index to another port/channel, this should actually delete all relevant events from one track, and insert them into another track. (The Drum Roll Editor, being able to display the indices in any order, should change its ordering accordingly, such that nothing "jumps around". Instead, it should remove "Track 2, Index 42" from "the third position" and instead insert "Track 9, Index 42" into "the third position".)

Frankly, I haven't read through the whole thread; maybe this is exactly what you've just done. Is it?

The core idea about most of what I've done in MusE is: keep things simple. Do not add layers of indirection, do not hide technically relevant data structures from the user. Instead, expose them and offer him tools to deal with them in a pleasant way.

Admit that there must be two drum tracks in order to utilize two different synthesizers, but let the user edit both tracks together, and make moving stuff around trivial.

Sorry in case i'm overshooting a bit, but I felt that I should get this clear ;)

Cheers, flo

P.S.: maybe you'll have me back in the next couple of months. I might have some spare time :)

terminator356 commented 8 years ago

Hang in there folks, still coming along, I hope to have a push within in a few days. Tim.

terminator356 commented 7 years ago

Just now pushed to the git master. About 99% functional and usable.

Many changes. Attention to detail. I will elaborate later with ChangeLog and will try to include a README-drums for later inclusion into the help file.

Explore. Enjoy. Feedback.

Quickly though, just keep these in mind:

Drum map lists are PER PATCH NUMBER now. See the Instrument Editor for BIG changes, and subtle ones too.

I accept donations. Thanks. Tim.

github-actions[bot] commented 3 years ago

This issue is stale because it has been open one year with no activity. Remove Stale label or comment or it will be closed in 30 days.

github-actions[bot] commented 3 years ago

Issue has been closed automatically after two years of inactivity. Feel free to reopen if the issue is still relevant for current MusE version.