A New Sequencer

A project log for OPL Studio - OPL2 / OPL3 MIDI Synthesizer

The ultimate dual OPL3 MIDI syntesizer with touch screen

maarten-janssenMaarten Janssen 08/20/2023 at 16:180 Comments

It's been quiet here for a while regarding updates, but I think that today I have a nice one. 

Ever since I had the melody sequencer in OPL Studio I never really liked it. It's ok for just the basic stuff, but it's a pain to really get serious about editing your sequences, because it only shows you if one or more notes are active on a step. You can't easilly change existing notes, let alone change any other properties such as modulation, panning, etc after recording.

This is now going to change. I've had the idea to implement a piano roll style editor for a long time and finally now is the time to show the progress I'm making with it.

The new sequencer is a more conventional piano roll style editor that you may be familiar with from other MIDI editing software. You can add notes to a sequence by simply drawing them onto the piano roll. This is also a welcome improvement for when you don't have a MIDI device to record from, but still want to play with the sequencer. You can drag new notes up and down to set their pitch and left and right to change their length. As you drag the notes around they will play.

Existing notes can be dragged across the piano roll to change pitch and location. You can grab the end point of notes to change the start and end points. Or long press to delete individual notes from your sequence. While dragging the notes around, the piano roll will automatically scroll.

The little piano on the left hand side of the view shows you the range of the musical scale where you're editing and you can press the keys to get a note preview.

The piano roll has a green playhead to indicate the current playback position. As you play the sequence the piano roll will start to scroll to show you the notes that are being played. Scrolling can be disabled by disabling the scroll lock on the bottom right of the view.

When you are in recording mode the playhead will turn red and show you where the next note will be recorded in the sequence. All existing recording functionality still exists in the new sequencer: direct MIDI recording, step recording and the ability to set up a trigger to start recording as soon as a note on event occurs.

It took quite a lot of code to get this all working, but it was well worth it I think! The piano roll makes the sequencer much more user friendly and powerful. But, we're not done yet... Moving notes around is just one thing, but as the tabs at the bottom of the screen may be giving away already, there will also be options for more detailed editing. Changing note velocities, volume, panning, pitch, modulation etc. 

The detailed editing is something I haven't fully figured out yet how to make it work in the UI on this tiny screen. It also leaves no room for the 'menu' buttons that I have on some of the other app modules to, for instance, copy & paste. I'm sure I'll figure it out as I go...

Below you can see a demo of the sequencer in action.