Close

More Dialogs and Sequences

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

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

maarten-janssenMaarten Janssen 04/27/2021 at 07:370 Comments

There are now two new dialog boxes: an alert dialog and a choice dialog. They are nothing special; you can show 3 lines of text and show an icon on them. When the dialog is closed the application module can take the result of the dialog and handle it accordingly. 

For the melody sequencer I added most of the missing pieces. You can now select the MIDI channel to record / play on, change the instrument patch, the volume control works and the clock divider has been implemented. Some bugs in the internal clock have also been fixed so the melody sequencer can now use both the internal and the external MIDI clock.

The biggest change for the melody sequencer is that you can now have up to 64 different sequences. This is still a bit buggy in the editor module, though through playing with it a lot I'm making it more stable and also making the UI of the editor more intuitive. I'm already happy that after refactoring the melody sequences there are no crashes due to broken pointers :)

Future additions

Soon I will start on the implementation for the SD card. Not being able to save and load files starts to get annoying while testing. I find myself playing with the device for a long time which is a lot of fun, but not being able to save the rhythms and instrument patches is getting annoying. This will be a lot of work, because I want the file browser to make use of the same UI. I have some file icons and mock-ups drawn already.

I've made some designs on paper for a simple effect module where playing certain instruments can trigger playing up to 3 other instruments (layers?). Per layer you can change the instrument patch, volume, panning, transpose and set a trigger delay. This way you can layer instruments to create more complex sounds or create chorus effects. There will also be an option to retrigger the effect while a note is sustained and this way you can create arpeggios.

I'm also starting to think about some physical controls and how to implement them. I'm thinking about at least having some rotary encoders to break out the main operator settings (ADSR, output level, feedback, etc) and some push buttons with LEDs to select the active operator. For the physical controls I'm thinking to add an Arduino, or rather just an Atmega328p to monitor all buttons and encoders. I don't want to put the burden of monitoring the controls on the Teensy as well. The Atmega can communicate with the Teensy over the SPI bus and it could be used for other tasks as well in the future.

Discussions