Direkt zum Inhalt

Improved Usability, Step Input

Posted

Since we are currently tackling usability improvements (Figure editing is about to become much more intuitive and instantaneous), I need some input from you regarding step input. A very basic implementation is already up, but I'm not sure about your priorities.

This is what we currently have (yet unreleased)

  1. Start step input mode on Recording tab of the Take inspector.
  2. Notes played on an external MIDI keyboard are added to the Take, starting from the currently selected position (you can select a position with the Span tool where you want to start). Position is indicated by the vertical blue line of a Span selection.
  3. Single notes and chords work as well.
  4. The position advances after each input. Step width can be changed on the toolbar 1, 2, 4, 8, 16, etc. 
  5. Notes fill the spaces between steps. 
  6. When finished, the Take (as a whole or parts thereof) can be converted to Figure as usual, using figure recognition and all its options.

Now I wonder what may be the most practical and convenient way to change the step width, because that's what you need to do very often. Reaching to the toolbar with the mouse is probably not so convenient. Using the computer keyboard is not ideal either because shortcuts are always in short supply.

How's that done in different DAWs (I never used this feature)? Any suggestions? 


Fr., 31.01.2025 - 19:27 Permalink

Hi.   First thing that occurs to me, assuming "step input mode" as stated, is for the number keys to represent different step sizes.   There are potentially 20 choices here, 10 for the normal numbers, and 10 for numbers on the numeric keypad.

Of course a well-chosen set of default assignments  for these is desirable, with an optional stretch goal being a dialog UI to let the user create custom assignment sets.

This approach is "one-touch" direct to any desired new step size (from the set of 20).   You can't get quicker than that!

Of course, be sure to have a "rest" key, which advances the step without inserting anything in it.

Another possibility is to use the up/down arrow keys to bump the step size up or down.  

Fr., 31.01.2025 - 20:12 Permalink

How about the bottom octave of the master keyboard? Some master keyboards also have tons of buttons and knobs that can be used.

Fr., 31.01.2025 - 22:01 Permalink

Oh, that's nice, that you consider this.

Essentially, I know of two different input methods, each of which has its advantages and disadvantages:

First method:

  1. You press the desired notes on a MIDI keyboard
  2. You press one of the numbers 1 to 7 on a computer keyboard. This enters a note where the number represents the note length. For example, “1” is a whole note, “2” a half note, “3” a quarter note and so on up to the 64th note. For triad notes for example a key combination like "T" and a number is to be entered
  3.  If you then release the keys on the MIDI keyboard, the playhead goes one step further and you can enter a new note.
  4. Several notes with smaller note values can be combined to larger note values by not releasing the keys on the MIDI keyboard after a step. For example, if you need a dotted quarter note, press the number key for 8th notes three times without releasing the key on the MIDI keyboard in between.
  5. For pauses, do the same as above without pressing a key on the MIDI keyboard.

The advantage of this method is, that is relatively quick when you're getting practiced. But it's not particularly intuitive and you have to constantly concentrate on which number key to press and to coordinate left hand and right hand.

Second method:

  1. You preselect the note value with the numbers on the computer keyboard (like above).
  2. Then you can play notes on a MIDI keyboard
  3. Each time you release a key, a note with the selected length is entered.
  4. To enter longer notes, hold the key on the MIDI keyboard and press the space bar on the computer keyboard. (Alternatively, you can of course also change the selected step length).
  5. To enter rests, simply press the space bar without pressing a note on the MIDI keyboard.

I prefer the second method. Typically, I simply set the shortest note value to be entered and then usually don't have to change that step size at least for a few bars. So if you set the step width to 16th, you can enter 16th notes, but also 8th, quarter notes, dotted notes etc.. Simply press space bar as often as you need without releasing the notes on the MIDI keyboard. If the music you want to enter then comes to a part in which only 8th notes or longer notes appear, it makes sense to change the step width to 8th notes.

It is even better if you can use a foot pedal instead of the space bar on the computer keyboard. Then you have both hands free to press the notes and use the foot pedal to enter the steps. The computer keyboard is then only needed from time to time to switch the step size. That's super intuitive and after a while you enter the notes faster than if you were playing them live. 

The only disadvantage of this method comes into play when you want to enter music in which triplets (or quintuplets, etc) and regular note values are constantly changing. Then you also have to change the step size constantly. But this doesn't really happen that often.

 

Fr., 31.01.2025 - 23:21 Permalink

Juergen's comments  are excellent, IMO.

I would caution against assuming the input device is  a)  a standard keyboard, with b) lot's of "extra" octaves to the left or right.    

Many people are working with, say, 25 key keyboards (e.g. Triton taktile, Launchkey 25, both of which I happen to have, but neither of which is normally even hooked up).

Perhaps fewer, but ever more, people are working with alternative controllers  (e.g. Sensel Morph, or Linnstrument, which is my primary).

I'm all for slick UIs that let whatever physical touch-ables the user happens to have, on whatever gear, be assigned to control whatever is desired to control - but the UI design and development to enable that can become much more of a project than originally hoped for rather quickly this way.

The computer keyboard is the common denominator which everyone has.   I suggest to make use of it first for that reason.   Other possibilities could be added in the future, in competition with other features awaiting attention.

(FWIW, optional "one-hand, one-touch" exclusive snippet launching is the usability issue most pressing for me personally.   Of course we must all allow for the great variety of hopes for Synfire's future ;^) 

Sa., 01.02.2025 - 00:17 Permalink

Is it worth considering notation apps for step entry?  Dorico for example.  

https://www.steinberg.help/r/dorico-pro/5.1/en/dorico/topics/write_mode/write_mode_note_input/write_mode_note_input_c.html "In Dorico Pro, you can only input notes during note input, which is when the caret is activated." ... so very similar.  "You can input notes in different ways and using any of the following devices, including switching between them at any time: MIDI keyboard; Computer keyboard; Mouse or touchpad; Keyboard, Fretboard, and Drum Pads panels"  Too many choices ...

https://tutorialtactic.com/blog/steinberg-dorico-shortcuts/ ... all 136 of them with Note Entry the first group.

https://forums.steinberg.net/t/fast-note-entry/967170  ... customising by key mapping.

 

 

Sa., 01.02.2025 - 11:52 Permalink

I like Jurgen's second method but would love it if there were options to switch between computer keyboard and learnable midi notes or CC values. That way people could use a midi controller's triggers, mod wheel, splits on a midi keyboard, with a fallback to a computer keyboard if none of the other devices are available to select note length and next step.

Sa., 01.02.2025 - 12:54 Permalink

Thanks a lot for the input so far.

The only objection I have is using the spacebar (or other transport commands). Space runs the transport. This would require the application to go into a completely different mode of operation (like showing all currently inactive views in a different color or something), which is not feasible. 

If at any time you press play, switch parameters, instruments or containers, or basically do anything, step input is aborted and leaves you with a Take. Step input is for the Take parameter exclusively, which is the proper way to get static notes into Synfire.

There are quite a few note durations, if you include triplets, quintuplets and dotted notes. I don't know how common dotted triplets and dotted quintuplets are, but you will certainly need the option to select them, too. 

(This is how the new menus will look like, btw)

I like the idea of holding MIDI keys while you advance the step, potentially multiple times, and notes are added only when keys are released. That's much like playing the performance in slow motion, tick by tick.

The first thing we will probably do is to allow all steps on the toolbar to be mapped to keyboard shortcuts.

Sa., 01.02.2025 - 13:08 Permalink

If I understand correctly, step input is mainly useful for transcription, i.e. you look at a printed score and enter that into the program. That's probably why I haven't used it much yet. I usually import existing scores. There are apps that scan a printed score and convert it to MIDI, if you don't have a MIDI file already.

If I want to enter a melody I have in my head, I record it. Then stretch the Take to match tempo and meter and apply quantization.

If I have a random idea, like "what if there's a run of quintuplets from here to there", I draw it with the Line tool.

So to improve my understanding, what are use cases for this feature other than transcription?

Sa., 01.02.2025 - 13:49 Permalink

"If I understand correctly, step input is mainly useful for transcription, i.e."'
You can do also drum programming with step edit  

Sa., 01.02.2025 - 14:07 Permalink

I have been always looking for a text input of the step parameter (like for velocity or length).

With all the different values this is maybe not an easy task - especially if you want to keep it intuitive. 

But typing "4 8 8 4 4" to get a simple pop pattern would be nice :-)

Sa., 01.02.2025 - 14:45 Permalink

The first thing we will probably do is to allow all steps on the toolbar to be mapped to keyboard shortcuts.\

I hope this means keyboard shortcuts that are specific to being in step-entry mode, rather than keyboard shortcuts that compete/conflict with the in-general keyboard shortcuts that exist now.

It would be desirable to deliver a default mapping of such.   The default mapping could be clearable, both with a one-touch-clears-all action, and via one-by-one replacement with different user-chosen mappings.

From the user POV, being able to save/load sets of step-entry mappings (e.g. from a text file) would allow such to be posted and shared.

Returning to the default mapping should also be a one-action operation, as this will probably be the desired/necessary first step in any troubleshooting of this feature.

 

Sa., 01.02.2025 - 17:51 Permalink

Key commands have a local scope, searching upwards until they reach the global scope. The same key may do something else in a different context (view that has focus). Since step input happens in the context of the phrase editor (which includes the toolbar), all commands have to be unique only within that context.

So you could override the spacebar (global scope). But that would disable playback when ever the phrase editor has focus. Bad idea.

Sa., 01.02.2025 - 18:14 Permalink

If I understand correctly, step input is mainly useful for transcription, i.e. you look at a printed score and enter that into the program. That's probably why I haven't used it much yet. I usually import existing scores. There are apps that scan a printed score and convert it to MIDI, if you don't have a MIDI file already.

I'm not saying that step input is the best solution for all situations, but there are definitively use cases. It is always a good option if you have a clear idea of the notes you want to enter. Does not need to be sheet music, it can also be used for entering musical ideas if you are able to transcribe it into notes in your head. Then it is certainly quicker than recording it live on a MIDI keyboard, because with a live recording you probably need several attempts until the result is satisfactory and then you still have to do some post processing.  And of course you are dependent on the level of your personal playing skills :)  

As you mentioned score scanning software. Do you get good results with it? The last time I tried it (about 5 years ago maybe), it was quite a mess. If you include all the post-processing time, in most cases the step input is also faster than this. And more accurate. And when I want to enter music from existing sheet music into Synfire, we're usually only talking about a few bars. An interesting motif, for example. I'm not going to take out the scanner software for that. Apart from that, we want to do everything in Synfire as much as possible and not have to rely on external software, right?

The only objection I have is using the spacebar (or other transport commands). Space runs the transport. This would require the application to go into a completely different mode of operation 

Yes of course, step input would be a separate mode. 

As for the modes: I could imagine a note entering step mode and a symbols entering step mode mode. The note entering mode would produce a Take with absolute pitch notes. The symbols entering mode would work with just the white keys of a MIDI keyboard (like with the scaleboard windows) and produce symbols. Successive symbols should be connected to a segment automatically. A special keyboard command would set a cut and start a new segment. 

Since step input happens in the context of the phrase editor

It should be implemented also in the track view, because I also need to see what the other instruments are playing when I enter notes.

Sa., 01.02.2025 - 20:50 Permalink

Sure, I didn't mean to suggest one could simply use a scanner. Your use cases make perfectly sense.

Step input must be enabled/disabled to avoid unwanted side effects. Remapping the transport keys seems hairy though. I'd rather expect any playback request to exit step input mode.

After some input, you run figure recognition, test the result, optimize settings and run it again, etc. Actual input is only one part of this procedure. It's all happening in the open unconstrained application. Not a "mode" that locks it into some special state.

Step input for Figure is much more complex than Take. White keys only sounds fine at first, but where to start? Connecting notes into segments is also not trivial. Where does a segment start and where does it end? Which symbol is the anchor? In fact, figuring this out (no pun intended) is what Synfire spends the most time on during import. It can't be done in real time and it's more difficult without harmony context.

If you have a melody in your head and the sound from your master keyboard doesn't match it tonally, that should be very confusing. Figure input is certainly possible but Take input will be much more intuitive.

Do you remember the Scale Board? It's still there.

Sa., 01.02.2025 - 21:28 Permalink

Step input for Figure is much more complex than Take. 

It would be ok if this mode initially would only be able to generate Takes. But to be honest I don't see the problem why it shouldn't be possible to generate Figures directly. 

The vertical position of the Figure symbols would be selected with the white keys of the MIDI keyboard (as I said: similar to the entry with the scale board) and the time position and length is determined by the steps according to the method described above. A new segment would start by hitting a special keyboard command, say "S" (split). Then, after entering a couple of notes (sorry: Symbols), you hit "S" again.  Then  the previously enter segment is completed and a new one would start. Where should the anchor be placed? How should the symbols of a segment be connected? Just as if I were to select the group of symbols I have just entered and press Ctl-G (the grouping command).