Detailed Editing Panels In The New Sequencer Module

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

The ultimate dual OPL3 MIDI syntesizer with touch screen

maarten-janssenMaarten Janssen 10/08/2023 at 14:550 Comments

Time for another sequencer update! 

I had a little break in between to attend the 2023 Eindhoven Maker Fair with the OPL Studio and some other projects of mine. It was a lot of fun to see and talk to everyone there and have lots of people and especially kids play around with all the synths I brought! Lots of good energy to continue work, so there has been a lot of progress over the last couple of weeks. 

The sequencer is now at a point where it's fully functional and includes all the panels that allow you to edit all sequence details.

In the previous log I wasn't sure yet how I could facifitate editing sequence details such as note properties, volume, modulation, etc. I was thinking to add a little panel with tabs below the piano roll, but since most of the screen was already taken this would be way too small. Still sticking with the tabs seemed like the only viable option, although still the screen is too small since I need 6 tabs and this wouldn't leave any room to show any labels on the tabs. This meant that it was time to expand the UI with a new component: a tabs ribbon! The ribbon now allows me to scroll through a list of tabs if there are too many to fit on screen.

The 'Sequence' tab is the main tab of the sequencer where you create your sequences by recording MIDI or using the drag and drop piano roll and where you do all your basic editing. The other tabs go into more details of the sequence and allow you to tweak all the tiny details. Something the old sequencer really was lacking!

The first tab shows the note details. It shows a graph of the full sequence and all of the notes. Using the spinners and rotary controls you can now navigate through the sequence note by note and change parameters such as note velocity, panning and start and duration up to MIDI tick level. Quantization is also done in this tab, plus there is a handy feature to equalize the velocity and / or panning of all sequence notes. By clicking the equalize button a dialog will open that allows you to set a default velocity and panning. Handy if your fingers don't always hit the keys with the right pressure.

The next tabs allow you to change volume level, panning, pitch and modulation. They all function in a similar way. Again the sequence graph is there to show you the parameter values over time, with the notes of the sequence in the background (in dark grey). In these panels you can tweak existing events that you may have recorded from MIDI, you can add new events and of course delete them. A handy reature is to interpolate between the values of two events when you're adding them manually. 

For now the sequencer has all the basic functions that I want it to have. Some things that are still missing are more controls to add, delete, copy and paste notes, to transpose the sequence and to configure the MIDI channel. This will be added in the coming weeks as well as more improvements and streamlining of the code while I work and play around with the sequencer. Whether or not I'll also replace the current drum sequencer with this new one in the same release is something I'm not yet sure of. Eventually I will, but it depends a bit on how much memory I will have left on the Teensy and on how much effort it takes to finalize the sequencer.