Close

Tying up some loose end & Starting on the composer

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

a MIDI interface for the OPL2 Audio Board and OPL3 Duo!

maarten-janssenMaarten Janssen 05/24/2021 at 18:050 Comments

Loose Ends & Improvements

Last week seemed like not much was happening on the project, though looking back I did lot of small jobs and improvements to finish up on things. 

Patch Editor update

First is the patch editor. The buttons to clear an operator, patch or all patches now work. The latter two will first show a confirmation dialog before clearing. The buttons to copy and past operators and patches are now also working. And finally for the patch editor there is now also an error message if loading patches from a file fails.

Drum Sequencer update

Next up is the drum sequencer. This one has some bigger changes. First off are the buttons on the top to run and stop the sequencer. Earlier these were shared with the melody sequencer, but this is no longer the case. The buttons are now bigger, they have new icons and there is no longer a record button in the drum sequencer. 

Another change is that drum sequences now also have a color and pattern representation that helps identifieng sequences in the composer. With this change the spinner control for the track has moved to a new line below the spinner to select the pattern.

There was some unfinished work in the Drum Controller that did not allow for more than 1 drum sequence of 8 tracks. This is now fixed and it allows to have 16 drum sequences of 8 tracks each. There is still some work to be done here, because the way drum sequences work now will become a problem for the sequence composer.

Lastly there are now some buttons on the bottom of the drum sequencer that allow you to clear tracks, single sequences and all sequences as well as buttons to copy and paste tracks and sequences. The  copy / past button actions are not yet implemented, but the clear buttons all work including dialog boxes that ask to confirm before clearing a single sequence or all sequences.

Small improvements

Some of the other small improvements include:

Sequence Composer

The big new thing this week is the sequence composer. This is a new module that allows you to arrange drum and melody sequences into more complex loops or songs.

The sequence composer shows a grid of 6 rows and up to 256 beats. The cells will contain blocks for the drum and melody sequences that make up your song. The blocks will show with the color and pattern that you selected in the sequence editors to make it easier to see the structure of a song.

This will be a very complex module due to the UI interaction where sequence blocks should be able to be moved around by dragging them with the pointer. Graphics performance wise it will be very demanding as a lot of repainting is needed while a song is also playing in the background. Currently this is not yet possible; the module is now only rendering an empty grid, but it does show the current measure (bar) of the song and it can be moved with the scrollbar below the grid.

The sequence composer allows setting two loops within the song that can be individually enabled. Each loop has a cue button to immediately jump to the start of the loop. Looping is a new feature within the Transport Controller, which handles all timing and clocks.

When the transport controller is running the grid will scroll per 4 measures depending on the song tempo and position. There will be an indicator for the current song position in the form of a line.

For the sequence composer there are also rewind and fastforward buttons that take advantage of some Transport Controller improvements. With the rewind button you can step back 1 measure in the song when clicked or rewind to the beginning of the song by holding the button. The fast forward button works the same way: clicking the button will jump ahead 1 measure and holding the button will jump to the end of the song. However since there is no song yet holding the button has currently no action.

Eventually it would be nice to be able to export compositions to MIDI, DRO, IMF or other popular OPL2 formats. The MIDI file could also include all of the OPL Studio settings of the song using system exclusive events. But this is all for later...

Discussions