trying to get some perspective on editing/writing in Openmpt

Started by musicalman, January 12, 2022, 16:29:44

Previous topic - Next topic

musicalman

Hi everyone,
Apologies for the long post. I know this is probably too much to expect one person to respond to, but I have a lot to ask.

Even though I've dabbled in openmpt for a while now, I haven't sunk very deep into it yet. I've done a few simple things, but I want to get more complex. The first reason I haven't is just lack of energy, second is that I'm having a hard time getting a good feel for tracking in general. I think part of this is that I'm a screen reader user, and despite the great efforts on Openmpt accessibility, I think tracking is always going to be a bit clunky when you're trying to do it blind.

In an effort to get some perspective, I wanted to ask how other people do things. There are three specific areas I'm curious about. Two are primarily musical, while one is related more to workflow. I'll mention the workflow first.

I often feel pretty awkward especially when working with the pattern editor. This is probably my fault; I haven't really gotten to grips with all the keyboard shortcuts yet, and I do need to sit down and assign them to my liking. Still, a few bars of music seems like it takes forever, and I rarely have the energy to go beyond the first pattern. This is probably because I go row by row in a very deliberate way when I'm editing, or I count rows and do mental math to work out where I am eg. if there are 8 rows per beat, and I'm on row 18, I know I'm somewhere in the third beat.

My impression though is that sighted users can look at an entire pattern, or at least a large chunk of it, and they can take the whole thing in at a glance. Furthermore, I imagine the row colors and misc display features help a lot in determining where beats, measures etc. are, so it's really easy to visually put things where you want them. Counting rows, and doing math to figure out where you are, is probably not an efficient strategy by comparison.

I guess my main question here is wondering if I'm right. If I am, then the difference between a blind and sighted workflow seems huge, and my next question is if that gap can be narrowed with practice and customization, or if this is just something I'm going to have to get used to. I know there's no definite answer for that, but it's something I'm trying to figure out.

Now for the musical stuff. First is drums. How do people sketch out and do drum patterns? I've seen some pretty intricate drum sequencing in modules, and I'll be honest, it's a little intimidating. I just can't imagine how people can write that stuff out!

I bet you could make things easy by just mapping samples across the keyboard in a single instrument. This would in particular make sketching easier. But if you want to apply different envelopes to each sample, that approach won't work; you'll need separate instruments. Most if not all modules I've looked at take this approach. And I'd like to as well, but sketching is going to be really hard then, unless I'm missing something?

Finally, layering. Either putting two instruments together to make a thicker sound, or using echo channels. Duplicating/Copy-pasting is easy enough, but I often find myself needing to go back and change things eg. cutting a note off a row earlier, or tweaking an effect parameter. The prospect of editing the main channel plus 1, 2 or more echo channels or layers is simply daunting for me. Is this just something to get used to, or is there a way to make this easier?

In MML I normally set up macros or the equivalent in this kind of situation. This lets me copy a melody to multiple channels easily, and every edit I want to make only has to be done once. I guess I'm just looking for that convenience.

So yeah, that's more or less everything I can think of right now. Any insight?

Saga Musix

Quote from: musicalman on January 12, 2022, 16:29:44
I guess my main question here is wondering if I'm right. If I am, then the difference between a blind and sighted workflow seems huge, and my next question is if that gap can be narrowed with practice and customization, or if this is just something I'm going to have to get used to. I know there's no definite answer for that, but it's something I'm trying to figure out.
I would also guess that having context of the surround notes gives a huge advantage to the sighteds workflow. As always I'd be glad to improve this for visually impaired users but for that I need some input what can be improved further. I imagine that being able to read out surrounding notes could be really interesting, but it largely depends on the situation which notes you'd want to access that way. I know I have been promising it for over ten years now, but maybe when OpenMPT's scripting API finally becomes reality, it could assist here so that users can write their own scripts which announce whatever surrounding context they want to Windows' accessibility API.

Quote from: musicalman on January 12, 2022, 16:29:44
Now for the musical stuff. First is drums. How do people sketch out and do drum patterns? I've seen some pretty intricate drum sequencing in modules, and I'll be honest, it's a little intimidating. I just can't imagine how people can write that stuff out!
I guess it depends on what you consider as intricate. To be honest, some of the most interesting complex rhythms can be created by choosing a percussion sample and semi-randomly mashing keys while the pattern is running. ;D

Quote from: musicalman on January 12, 2022, 16:29:44Most if not all modules I've looked at take this approach. And I'd like to as well, but sketching is going to be really hard then, unless I'm missing something?
I don't think that setting up all the details of those instruments is important for sketching. It something that can be done afterwards, if at all required. Most of my percussion instruments are simple, and the main reason why I use different instruments for each percussion sample is: 1) it's the default 2) it allows the sample to be played at different pitches.

Quote from: musicalman on January 12, 2022, 16:29:44
Finally, layering. Either putting two instruments together to make a thicker sound, or using echo channels. Duplicating/Copy-pasting is easy enough, but I often find myself needing to go back and change things eg. cutting a note off a row earlier, or tweaking an effect parameter. The prospect of editing the main channel plus 1, 2 or more echo channels or layers is simply daunting for me. Is this just something to get used to, or is there a way to make this easier?
This is again something that I wouldn't tackle during the sketching phase but rather towards the end. That avoid having to update echo channels. But even if I want to change something after echo channels have been created already, I don't manually copy over notes - I just copy the whole channel over again. It's really not much work that way.

I hope those answers are helpful to you.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

musicalman

Quote from: Saga Musix on January 12, 2022, 17:41:57
I imagine that being able to read out surrounding notes could be really interesting, but it largely depends on the situation which notes you'd want to access that way. I know I have been promising it for over ten years now, but maybe when OpenMPT's scripting API finally becomes reality, it could assist here so that users can write their own scripts which announce whatever surrounding context they want to Windows' accessibility API.
Yeah, I see what you mean. Personally if scripting was a thing, I'd probably want to combine text output with audio playback of some kind. I don't have any specific ideas yet, but hearing things is far more immediate for me. I need to investigate options for getting audible feedback when I'm moving around.

Quote from: Saga Musix on January 12, 2022, 17:41:57
I guess it depends on what you consider as intricate. To be honest, some of the most interesting complex rhythms can be created by choosing a percussion sample and semi-randomly mashing keys while the pattern is running. ;D
Haha. What I meant by intricate patterns is more stuff like this. Kind of an extreme example, and I wouldn't be surprised if some of the drums at least were thrown in by chance and then tweaked until they worked, but even the basic groove is something I think I would have trouble  programming, unless I could sketch the drums out with a midi keyboard first. So I was just curious if tracker people had a certain way of thinking of drums, or if it's one of those individualistic things where some people are really wild about it, others just do what they need/can to have a beat going.

Quote from: Saga Musix on January 12, 2022, 17:41:57
Even if I want to change something after echo channels have been created already, I don't manually copy over notes - I just copy the whole channel over again. It's really not much work that way.
Ah, makes sense. I'll have to mess with it more. The last time I tried an echo, I might've been complicating things. At the end of the day, it's just an extension of editing after all.

Saga Musix

Quote from: musicalman on January 12, 2022, 20:34:36
I need to investigate options for getting audible feedback when I'm moving around.
I guess some options that may be of interest are "play whole row while recording" and "play notes when transposing" in the general settings. Another trick you can try is to bind both the "play row" shortcut and navigation shortcuts to the same key (one on Key Up and the other on Key Down, or alternatively by setting the "AllowMultipleCommandsPerKey" setting to 1 in the advanced settings). that way you can listen to rows while navigating. It's not quite perfect because "Play Row" by itself already advances the cursor by one row, but maybe I can add a variant of that shortcut which doesn't do that, if it would be helpful for you.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

A11CF0

Quote from: Saga Musix on January 12, 2022, 20:49:03
I guess some options that may be of interest are "play whole row while recording" and "play notes when transposing" in the general settings. Another trick you can try is to bind both the "play row" shortcut and navigation shortcuts to the same key (one on Key Up and the other on Key Down, or alternatively by setting the "AllowMultipleCommandsPerKey" setting to 1 in the advanced settings). that way you can listen to rows while navigating. It's not quite perfect because "Play Row" by itself already advances the cursor by one row, but maybe I can add a variant of that shortcut which doesn't do that, if it would be helpful for you.
It would be great to have a built in way of previewing the rows while navigating with the keyboard. As you have already noticed, the multiple binding hack would work only if there was a "play row without advancing" action of some sort. Even then this would require users to modify all navigation-related key bindings, which are quite numerous.

Saga Musix

The main reason why I think the shortcut method may make sense is because I'd imagine that you wouldn't always want to navigate with immediate preview, so you could e.g. use Cursor Down to go to the next row, but Alt + Cursor Down to go to the next row with preview. Maybe another idea would to have a shortcut that toggles immediate preview, so that you can turn off the preview whenever you want and then turn it back on when required?
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

A11CF0

Quote from: Saga Musix on January 12, 2022, 21:16:26
The main reason why I think the shortcut method may make sense is because I'd imagine that you wouldn't always want to navigate with immediate preview, so you could e.g. use Cursor Down to go to the next row, but Alt + Cursor Down to go to the next row with preview. Maybe another idea would to have a shortcut that toggles immediate preview, so that you can turn off the preview whenever you want and then turn it back on when required?
The immediate preview toggle action seems to be a better option at least for me. Why make an entirely new series of harder to press navigation shortcuts if a single togle can do the same and with more ease? Also, This toggle will automatically work with  "jump to previous/next entry in column" actions, which are unassigned by default but extremely useful to screen reader users. Is this toggle harder to implement? If so, The action that plays the current row without jumping to the next  is a completely acceptable solution.

Saga Musix

I don't think it would be harder to implement. One thing I'm wondering about though is how to visalize it for sighted users, as I think having a checkbox for this feature would be nice but space is scarce in the pattern editor. Either way, I'll see what I can do about it.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

musicalman

Hmm. I feel like play current row without advancing was proposed and rejected at some point? This would admittedly have been ages ago though, but yeah I wasn't sure what the current thoughts were on it. Glad it's being considered!

I vote that both should be implemented i.e. have a preview row when moving cursor toggel, but also have a play row action you can assign in keyboard shortcuts. It would be the most flexible approach. Then you could have certain shortcuts always play the current row if you want.

Regardless I think any one of those proposals would give me the hands-on sensation I'm looking for without feeling like I'm bending over backwards. :D

QuantumRain

I don't know your musical background and correct me if I'm wrong, but your first post leaves me with the impression that you've read a lot about music theory and get very discouraged by trying to work with techniques that sound good on paper but are actually quite complex and advanced. As Saga Musix has already suggested, you should only venture into tinkering with layering or different envelopes for a sample at the very end, or even skip these techniques altogether. It's almost always better to start as simple as possible and build on that, rather than start very complex and end up with nothing.

Saga Musix

Quote from: musicalman on January 12, 2022, 23:16:13
Hmm. I feel like play current row without advancing was proposed and rejected at some point? This would admittedly have been ages ago though, but yeah I wasn't sure what the current thoughts were on it. Glad it's being considered!
It's very well possible that I tried it before and ran into issues with it, or maybe they were other reasons. Either way, as pointed out above having the tracker just play the currently row with any up/down navigation should probably work, which wouldn't require modifying or adding another variant of the Play Row shortcut.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

musicalman

Quote from: QuantumRain on January 13, 2022, 04:11:12
I don't know your musical background and correct me if I'm wrong, but your first post leaves me with the impression that you've read a lot about music theory and get very discouraged by trying to work with techniques that sound good on paper but are actually quite complex and advanced.
That's true, I do know about a lot on paper, and get in over my head on small details. Not so much about music theory, but about the technical side of how to write for a soundchip.

I think part of it is that I'm used to MML and midi and have come up with qol tweaks that make certain tasks easier. Some of them conscious choices, others I just fell into without thinking. As a result, I'm not as afraid to try things and roll back if I don't like it. The process of developing my habits felt natural for me, but with Openmpt and I suspect other trackers as well, it's harder than I expected to slide into it.

It's probably a bunch of things. The lack of audible feedback as I move the cursor. The fact that I haven't spent enough time working out a preferred way to navigate. Or maybe just the structure of a module is different than what I'm used to eg. deciding row spacing and how many rows I want in each pattern is logical but still foreign to me.

Quote from: QuantumRain on January 13, 2022, 04:11:12
As Saga Musix has already suggested, you should only venture into tinkering with layering or different envelopes for a sample at the very end, or even skip these techniques altogether. It's almost always better to start as simple as possible and build on that, rather than start very complex and end up with nothing.
Yep, makes sense. Maybe it's strange, but I've fallen into the habit of getting the advanced stuff out of the way as much as I can first. I find sound design more fun, the excitement over writing the music has to grow on me over time. Still, I think that suggestion of saving the advanced stuff for the end is worth trying. I've been burning out a lot more than I'd like lately, and that's probably a big part of it.

A11CF0

BTW, what do you think about adding actions for jumping up/down by the current edit step value? I think this can make blind navigation inside complex patterns at least somewhat easier.

musicalman

Hmm. I normally have my edit step at 0 since I don't like having the cursor move automatically after entering a note. So that action wouldn't do much for me, unless we're talking about something different? If there was a way to move by step while keeping the cursor stationary on note entry, I think I would find that useful.
Edit: I would probably not mind the cursor moving on note entry as much if move by step actions were a thing.

Saga Musix

Okay, as of r16529 (soon available from https://builds.openmpt.org/builds/) there is a new option in the general settings, "Play whole row when navigating". This causes the whole row to be played when navigating up or down in the pattern.
There is also a complementary keyboard shortcut called "Toggle row playback when navigating" which toggles aforementioned option without having to visit the settings dialog. The new status after toggling the shortcut can be read from the status bar after it has been toggled.

Let me know if this is useful for you or if any changes are required.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.