-
Detailed Editing Panels In The New Sequencer Module
10/08/2023 at 14:55 • 0 commentsTime 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.
-
A New Sequencer
08/20/2023 at 16:18 • 0 commentsIt'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.
-
Some Cool Software Improvements
05/24/2023 at 19:03 • 0 commentsDespite all the hardware troubles with the all in one boards I'm not forgetting about the software with some nice updates coming up!
Drum Sequence Recording + MIDI Input
The drum sequencer has always been kind of left out when it comes to recording and MIDI functionality. You could create a drum sequence by tapping on the sequence buttons in the app, but not record from the MIDI inputs.
This will finally change! The drum sequencer will now listen to MIDI channel 10 for drum notes to play. You can also record a drum sequence from MIDI, where the sequencer will assign the various drum sounds to one of 8 tracks depending on what drum sound is played and which tracks are available. You make a recording by clicking the record button to go into recording mode and clicking play. While working on this feature I found that the way in which a triggered recording is started (recording starts when the first MIDI note is received) was a bit counter intuitive. You would click the record button to enable a recording and then long press the play button to go into trigger mode... That will now be changed to doing a long press on the record button to go into triggered recording mode for both the melody and the drum sequencers. Of course our friend the metronome will also make an appearance in the drum sequencer.
Something that I didn't mention yet is that the drum sequencer also received a randomizer function some time ago. When you click the Random button the current track of your sequence will get a random pattern. Great for experimenting!
Better Patch Selection
A second improvement that is coming up is about how you can select instrument patches. Throughout the UI there are these spinners where you need to step through your patches one by one to select the one you want. Not very user friendly! To improve this there will be an instrument selection window that shows you a list of all available patches (melodic or drum) that you can scroll through to look up and select the patch you want. When you select a patch from the list it will go into preview mode, so you can immediatley hear a different instrument playing and you can select another one right away if you don't like the one you selected. You open the instrument selection by double clicking on the instrument name in the spinner. Of course the old way of stepping through the instrument one by one will also still work.
From the mixer you can now also change the instrument patch of each channel (except for channel 10) by clicking on the instrument name.
Mini Keyboard
Lastly, I've started to work on an on-screen keyboard that will help you in one of the sequencers or the patch editor when you don't have a MIDI input connected. The little keyboard can play individual notes by tapping the keys on screen, but it can also do pitch sides by dragging the stylus left or right and modulation by dragging up and down when a note is playing.
The keyboard can be opened on its own as well from the accessories panel. In that case you will get some additional controls to select an instrument patch, adjust volume and panning and maybe some more.And The All In One Boards??
For the all in one boards I've now narrowed the problem down to the amplifier. The line out with some additional caps sounds crystal clear! The speaker out however is still unusable. I'm thinking it's the ground plane or the lack of a good ground plane... I need to make a video of it and reach out to see if there are some audio gurus who can help.
-
I'm throwing in the towel
04/01/2023 at 12:52 • 4 commentsSadly this will be the end for OPL Studio unless some sort of miracle happens. As much as I love my project and all the things that it can do I'm starting to loose my sanity over all the issues with the TDA2822 amplifier and all the noise it's picking up from the screen. I simply can't make this thing work...
- Add resistors to the signal lines. Done, it didn't help much
- Add more capacitance to filter the supply. Done, it didn't help. Are two beefy 4700 uF caps good enough?
- Add a separate regulator for the analog part of the circuit. Done, it didn't help
- Add ferrite beads to filter the power lines. Done, it didn't help
- Add another regulator for the LCD screen. Done, it didn't help
- Don't power the thing from your laptop! Done, even on a powerbank the noise remains the same
Whatever I do the amplifier keeps picking up noise from the screen. This is way above my level of knowledge to fix. So after a month or two of going insane over this problem I've had enough. I'm calling it quits!
-
One Broken Crystal Later...
03/01/2023 at 19:56 • 0 commentsI found the problem regarding the signal noise!
The issue seems to have been caused by a broken clock crystal. After assembling the board I had already noticed that the clock for the OPL3 chips was not right. It measured 33 MHz instead of the 14.3 MHz that is required and the OPL3s would only produce hissing noises. For the time being I had written it off as a small problem for later, after I had fixed the horrible signal noise.
Though after two evenings of getting nowhere I decided to maybe tackle a more simple issue first, so I desoldered the little crystal and I replaced it with a through hole 14.3 MHz crystal that I also use tor the OPL3 Duo boards. I soldered it to the little pads on the board and powered it up again. At this point I though I had now broken the board with all my bodges, because my headphones were dead silent. No noises when the OPL Studio was booting, nothing when it was accessing the SD card, nothing when I was touching the screen. Obviously I started looking for what wire I had disconnected without noticing it. Everything was still connected. I went into the drum sequencer to create a little drum beat and lo and behold! There was crystal clear sound coming from the line out!
I can't quite explain what had gone wrong with the crystal that would cause all this noise, but what I'm thinking is that during soldering I put too much heat through the crystal with my hot air gun. This probably damaged the crystal causing its frequency to change to 33 MHz. Maybe signal noise was picked up by the crystal's GND causing some frequency modulation in the broken crystal that got picked up by the OPL3s and amplified. I don't know, I don't have a better explanation for what happened.
Long story short, the major noise issue has been fixed! There are some smaller problems that I want to address with the boards, such as the location of the power button so the board fits better in the enclosure. Also I'm not 100% happy yet with the amplifier, which will take some more tweaking.
I would've never thought that a broken crystal could cause this kind of problem and I'm happy to have caught it early on, in a small batch of prototype boards. It's a small setback toward the all in one OPL Studio!
-
Problems with the All In One boards
02/27/2023 at 20:13 • 0 commentsSince a couple of days I have the first prototypes of the OPL Studio all in one boards where I combine the OPL Studio and OPL3 Duo onto a single PCB. I'm quite happy with how boards look and how easy it is to assemble them, however...
There is a big problem with the all in one design and it is noise. Noise from the LCD, the pointer, the SD card and the internal buzzer. It's like when you have headphones connected to your laptop and you can hear the computer do its work or buzzing when you move the mouse, but much louder! If there was one thing that I wanted to get completely rid of with the new design it was noise, but I made it much, much worse than just a little buzzing on the speaker output. Now also the line output has unacceptable levels of noise.
So far I've tried adding series resistors to the SPI lines and adding a bunch of capacitors on the 5v rail for the analog portion of the circuit, though when I got to 4700 uF there was still too much noise. Probably next I'll start messing with the 5v line. Maybe a voltage regulator will clean up the signal? Maybe I should get rid of the separate supply all together and just use a single supply for both the digital and analog parts of the circuit? I don't know...
With my very limited knowledge on the subject I doubt whether I'll be able to fix all the noise issues with these boards. If anyone reading this has any tips for me that I can try then I'd like to hear! For now I think that these all in one boards are not going to happen any time soon unfortunately.
-
More MIDI Stuff & All In Ones
01/04/2023 at 15:36 • 0 commentsAvailability Of Units
The first run of OPL Studio kits has been sold. Thanks to everyone who bought a unit! More OPL Studios will be available through January as the situation around the availability of Teensys is improving and additional components for the OPL3 Duo are also on the way.
Software Update
The upcoming software update will include some great new features on the MIDI front. First of all you will have the option to export you OPL Studio compositions to a .MID file and it allows you to include your instrument patches and synth settings as SysEx data so other MIDI players can read the patch data and exactly reproduce the song as it was played on OPL Studio.
Besides saving to MIDI there will be a new media player module that allows you to play .MID files from the SD card. This can also be, of course, MID files that you exported on OPL Studio with custom instrument patches. Later the media player may support more OPL2 / OPL3 music formats for example tracked music such as .RAD (Reality Adlib Tracker). The media player is practically ready except for the SysEx support and some optimizations for seeking backward in multi-track MIDI files.
In an earlier update I already changed the calibration of the CV/T inputs by adding an auto calibrate function. The manual calibration is nice when you have a pot that you turn by hand to calibrate the range, but when you're taking an input from a fluctuating signal the manual calibration doesn't make much sense. That's where the auto calibration comes in to sample the input and make calibration much easier.
Next to this the next software update will likely change the LCD dirver code to a driver that is aimed toward using it on a Teensy instead of the generic dirver I'm currently using to improve stability of the LCD (see below). Of course there will be some bug fixes and changes behind the scenes to make the UI more flexible, for example support for different icons per file in the file chooser.
All In One Units
The all in one units that merge the OPL3 Duo and OPL Studio are progressing well. It's a full redesign of the PCB since for the all in ones I'm moving to SMD components as much as possible to make it easier to manufacture.
This also means that the all in ones will, probably, not be available in kit form, because I want to guarantee a working unit and I rely on OPL3 chipsets from Chinese vendors. There is usually nothing wrong with the OPL3s sourced from these vendors, but as I've learned with the OPL2s it's better to be safe than sorry!
One thing I'm most unhappy about in the current unit is the stability of the LCD. Ocasionally the display goes blank, inverse or the colors are slightly off. Often this is fixed by going in and out of standby, but that's just a workaround and it prevents me from driving the LCD at a higher bus speed. One fix I'm looking into is replacing the current LCD driver code with a driver that's specific to the Teensy instead of the generic one I'm using right now. Besides that the physical connection of the LCD to the main board using pin headers is probably not optimal to drive the screen at high speeds. So I'm trying alternative ways to mount the screen.
-
OPL Studio Is Available Now!
11/21/2022 at 17:31 • 0 commentsI'm happy to announce that as of today OPL Studio is available both as a kit or pre assembled unit on Tindie!
https://www.tindie.com/products/cheerful/opl-studio/
Thanks to component shortages I don't have a lot of units available. It looks like things will improve in January and in the meantime I'll do my best to find alternative component sources when I'm starting to run out.
At the same time I'm still making improvements to the software of OPL Studio. Lately this has mainly been last minute bug fixes before releasing, but I also have a big list of features that I want to add, like a MIDI file player, a piano roll view for melody sequences, drum recording from a MIDI source, etc.
And I hope to hear from you! Now more people will get their hands on OPL Studio, I'm sure there will be many bright ideas coming my way, as well as the unavoidable bug reports, I'm sure ;). The best way to report question / requests and issues will be the OPL Studio Github repo: https://github.com/DhrBaksteen/OPLStudio/issues
I can also see if I can host some of the OPL Studio creations from people. If you have an *.OPS file that you want to share then feel free to get in touch!
-
The Final Stretch
10/26/2022 at 19:43 • 0 commentsThe past weeks I've been busy with writing the user manual, figuring out the process for future software updates, tweaking 3D printed parts, documenting and taking pictures for the kit assembly guide and many many more small things to get the first batch of OPL Studio kits ready!
The last big tasks on my list are to give the documentation another read through, finish the website and put together a big demo video. My 3D printer will be running non-stop next week to get all 3D printed parts ready and I will be looking into what will be the best way to pack the kits.
OPL Studio software is now in a state where I'm happy enough to do a first release. Of course there are still many ideas and plans for future updates. Also I'm sure that, even though I tried my best to find and fix all bugs, once OPL Studio is out into the wild there will be new bug that I didn't catch and need fixing!
The finish line is in sight :D
-
Highlights, Sequencers and Accessories
08/20/2022 at 18:12 • 0 commentsAnother week has passed and there are some big changes this time. Version 1.0 is getting nearer and nearer...
Button Highlights
The play and record buttons will now light up when they are active. This is to make them stand out more to show OPL Studio is playing and whether recording is enabled. It also makes the recording trigger stand out more in the melody sequence editor since the play and record buttons will now flash to indicate recording trigger has been set.
The Quad Synthesizer
Development on the new synthesizer module is progressing quickly. The main functionality is now ready and it's a matter of cleaning things up and working out the finer details. The UI has changed a bit. The textfield with the small button has been replaced by a bigger blue or gray button that is used to select a sequence and to show whether the sequence is active. Slots can also be empty now and in this case the button to enter the sequence editor will be grayed out with a stripe pattern.
Sequences are added to one of the sequencer slots by clicking on the slot title. This opens the sequence selection dialog that's also used by the composer module and selecting a sequence will place it in the selected slot. A new feature of the selection dialog is that you can now also select empty sequences. Doing so will not only assign the sequence to a slot, but it also opens either the drum or melody sequence editor to record the sequence.
To finish off the new sequencer I have to make sure it's well integrated so there will be no hickups when it's playing in the background and you're navigating through the UI. I have to add the ability to save the state of the sequencer in the session manager. And I have to finish work on the retriggering.
Home Screen Cleanup
The home screen was getting quite crowded now I added the new sequencer module and besides I thought it would be confusing to have the sequecer, drum sequencer and melody sequencer all on the shame screen. But man I love those icons! It would be a shame to remove them. So what I did is that I added what you might call a program group on the home screen called 'Accessories' . This opens a new screen with the less frequenctly used modules: drum sequencer, melody sequencer and settings.
Moving the two sequence editors to this new folder makes sense to me since now they are more or less part of the sequencer module. Though it will still be handy if you want to work on a single sequence.
The Accessories group will be a convenient place as well from another module that I want to add later, post launch.
Lots of Fixes
And to round things up a lot of small fixes have gone in:
- Changing a parameter in the patch editor will no longer force the note to a C when a key is held down while making the change
- When pointer calibration is started MIDI playback and the sequencer is stopped. Notes are flushed to prevent buffering them to be play when normal operation resumes
- There was an issue in the composer module regarding loop cueing. Cue would only take effect every 16 steps!
- Sequence selection dialog now stops the preview when you unselect a sequence, but the preview function is still problematic in combination with the sequencer
- When you select a sequence with the same index in a different tab of the sequence selection dialog then the button now correctly shows that it's selected
- The composer module now also handles the new PolyMelody
- An error where the composer would only play 1/4th of the song and then loop is now fixed
- Hanging notes occurring when entering / exiting the patch editor have been fixed
- The patch editor will from now on only listen to notes played on MIDI channel 1, but it now also takes into account control changes on this channel
- The patch editor will no longer forget the patch that was being edited when you close it
- Closing OPL Studio settings no longer causes a repaint of an empty background
- Notes no longer get stuck in the patch linking module