@cwebber I had the #MIDI of the #Gameboy Game's splash screen as a ringtone in 2002.
@cwebber I had the #MIDI of the #Gameboy Game's splash screen as a ringtone in 2002.
Ich verkabele mein Einraumstudio teilweise neu, dazu lautstark #Faithless.
Erstaunlich ist auch immer wieder #MIDI. Alle Musik-Geräte können hier zumindest rudimentär miteinander sprechen. Auch die, die 1984 auf den Markt kamen sprechen mit dem aktuellen Linux-PC.
Mischpulte? Was weiß ich als Profi über Mischpulte? Was sage ich Ratsuchenden immer zu Mischpulten?
Richtig: Ein Mischpult kann eigentlich nie groß genug sein.
4 hochwertige Mic-Inputs (#RME Preamp/Wandler) sind noch frei. 22 weitere Kanäle sind voll auf dem #Yamaha #01V96i. Noch 6 weitere Kanäle sind Returns aus dem Rechner. Die vier internen Effektmaschinen haben 4 weitere Stereokanäle in Beschlag.
Actualización: DOSBox AGA y RTG
DOSBox, el renombrado emulador de MS-DOS, se actualiza en su port para Amiga gracias al trabajo del desarrollador NovaCoder. Dos nuevas versiones, optimizadas para AGA y RTG, permiten a los usuarios disfrutar de la vasta librería de juegos y aplicaciones de PC directamente en sus sistemas.
La versión DOSBox AGA v0.74.013 está diseñada para Amigas equipadas con el chipset AGA y un procesador 68060 rápido. Requiere AHI (versión 4.18 recomendada) y ROMS 3.1. Ofrece un port SDL nativo para AGA, soporte MIDI y sonido AHI, así como modos de pantalla completa y ventana.
Por otro lado, DOSBox RTG v0.74.023 se dirige a Amigas con tarjetas gráficas RTG y un procesador 68040 (se recomienda un 68060). Al igual que la versión AGA, necesita AHI 4.18 y ROMS 3.1. Sus características incluyen un port SDL optimizado para RTG, soporte MIDI, sonido AHI y las opciones de visualización a pantalla completa o en ventana.
https://www.youtube.com/watch?v=Zh-Fdhf8FlE
#68040 #68060 #actualización #aga #ahi #amiga #chipsetAga #commodore #Compatibilidad #comunidadAmiga #demosDePC #dosbox #emulación #emulador #gamingRetro #hardwareAmiga #juegosAntiguos #juegosDePC #MIDI #modoVentana #MSDOS #novacoder #pantallaCompleta #port #preservaciónDigital #retro #retrocomputing #ROMS #rtg #sdl #sistemaOperativo #software #softwareClásico #sonido #tarjetaGráficaRTG #Videojuegos
I thought this would be an easy fix - using a Pi Zero-format RP2040 board in my MiniDexed EuroRack module...
... but it ended up an afternoon of frustration and unfortunately I still can't get it making sound or booting reliably.
It does look cool though :)
Anyone else have any experience of these Stacky-Pi "RP2040 on a Pi Zero shaped PCB" boards?
https://diyelectromusic.com/2025/04/12/picodexed-stackypi-minidexed-eurorack/
I've updated my #picoDexed to include a basic encoder/display UI and updated to the latest Pico SDK.
This is a port of Synth_Dexed to the Raspberry Pi PIco.
I also thought it was probably about time I actually documented the basic architecture :)
https://diyelectromusic.com/2025/04/12/raspberry-pi-pico-synth_dexed-revisited/
Hey I don't know if this might be useful for anybody, but I uploaded a #Midi Monitor tool for the #cardputer
Get it on M5Burner, or get the code on my Github
https://github.com/Zaratton/CardputerMidiMonitor
Qtractor is natively hardwired and exclusive to the JACK Audio Connection Kit infrastructure, and the ALSA sequencer for MIDI. It is a Linux-only application.
Qtractor 1.5 4 was recently released on April 04, 2025.
Qtractor is an Audio/MIDI multi-track sequencer application written in C++ with the Qt framework. Target platform is Linux, where the Jack Audio Connection Kit (JACK) for audio, and the Advanced Linux Sound Architecture (ALSA) for MIDI, are the main infrastructures to evolve as a fairly-featured Linux desktop audio workstation GUI, specially dedicated to the personal home-studio.
Hat jemand Lust mit mir an diesem Projekt weiterzuarbeiten? Https://github.com/do9re/midi2hamlib #amateurfunk #ham #blinde #blind #accessibility #midi #hamlib
Massive thanks to Michel who not only posed the question "can my MiniDexed EuroRack PCB also run MT32-Pi" but then proceeded to figure out how and to send me the instructions :)
Now all written up here: https://diyelectromusic.com/2025/04/07/mt32-pi-on-my-eurorack-minidexed-pcb/
@NeneExists synced the video with the Bad Apple MIDI remix we made ^^ Damn the Yamaha MU100 has a good drum set.
https://www.youtube.com/watch?v=Ty4iULpAzBs
Sometimes you say "I need 30 seconds of Bad Apple for a bit on Stream" and then an entire production happens
Using a Cheap 5V MIDI Interface at 3V3
I had a query about using one of the common Arduino MIDI Shields with an ESP32 and when I looked into it, this is where I got to.
Warning! I strongly recommend using old or second hand equipment for your experiments. I am not responsible for any damage to expensive instruments!
If you are new to Arduino, see the Getting Started pages.
Parts list
Arduino MIDI Shield
These shields are available very cheaply and designed to plug directly onto an Arduino Uno. They are a variation of an original Olimex open source design (details here) but details of the specifics of this shield seem pretty sparse. But it isn’t too complex to figure out.
Essentially it is a 6N139-based 5V MIDI IN circuit and a non-buffered 5V MIDI OUT and THRU. The boards include a switch to cut off RX from MIDI to allow for sketch uploading. There is often a footprint for a button for RESET which may or may not be populated, and there is a block of breakout connectors for all the Arduino’s IO pins.
I did eventually happen upon an uncredited schematic in a random online cloud service file storage, so I’ve copied it over here.
And mapping this over to the board itself I found this PCB diagram. Note this has a URL for “soliddigi” on it, but that doesn’t seem to exist (or do anything) that I could see.
But whilst on the topic of this board, we can map out the IO pin breakouts for future reference too by simply examining the underside of the board:
From this we can see the following pinouts for the board.
Anyway, back to MIDI…
Converting MIDI IN
The output (to the Arduino) from the MIDI IN circuit of this board is a UART RX connection pulled high to 5V. The easiest way to drop that to 3V3 for use with a 3V3 logic system is to use a resistor divider as shown below.
The MIDI shield will still need to be powered by 5V but the output from the RX pin will now be dropped by the ratio 33K/(22K+33K) which is approximately 0.6. So 5V x 0.6 = 3V.
The choice of resistor for this specific application is relatively arbitrary as it is the ratio that is important, but it should be remembered that this is connecting both the optoisolator’s output (RX) and the microcontrollers IO pin (GP19 above) to GND so there will be limits on the amount of current that can be sourced from the two IO pins and that can be sunk into GND.
Converting MIDI OUT
Converting MIDI OUT isn’t quite so easy unfortunately. If the MIDI interface had included a buffer, like the 74HCT14 I’ve used in the past, then no conversion would be necessary – a 3V3 logic signal can drive that directly and the output would be a 5V signal to the rest of the MIDI circuit.
But it doesn’t – it is a directly connected 5V-expecting MIDI OUT circuit involving two 220Ω resistors. If this is driven from a 3V3 level then it is unlikely that there would be enough current to drive the optoisolator at the other end of the MIDI link.
The basic calculation goes as follows (see my MIDI Connections Cheat Sheet for details of the circuits) – this assumes one 220Ω resistor on the receiving side and two on the sending side as per the MIDI spec, and a typical 1.7V drop across the optoisolator.
For 5V operation, from Ohm’s law: Current = (5 – 1.7) / (220+220+200) = 5mA
For 3V3 operation: Current = (3.3 – 1.7) / (220+220+200) = 2mA
This is why the MIDI spec recommends 10Ω and 30Ω resistors for a 3V3 logic OUT circuit:
For proper 3V3 operation: Current = (3.3 – 1.7) / (220+30+10) = 6mA
Really, the easiest method, assuming the MIDI connectors/hardware are required to be used “as is” would be to include a 74HCT14 (the HCT variant, not the HC version) as a buffer by passing the 3V3 signal through two of the inverters.
But at this point, as this is just a couple of resistors, I’d probably look to remove the two 220Ω resistors in the OUTPUT circuit and attempt to patch in a 10Ω and 30Ω instead with the 30Ω pulling up to 3V3 rather than 5V.
Patching the Shield
Given all the above, I believe it is possible to patch this shield to support 3V3 logic operation by performing the following:
WARNING: All of this is theoretical. I’ve not actually done it myself.
Step 1: Remove R3, R4, cut RX track.
Step 2: Add resistors.
Note: I don’t believe that anything has to be done to the THRU as it is taken directly off the RX side of the 6N139, so that will continue to work (as I understand things) off the 5V circuit directly.
Closing Thoughts
Given the number of off-the-shelf 3V3 MIDI boards now available, I suspect in most cases acquiring one directly would be the better option to the above.
But having said that, these boards are available so cheaply and widely that it is worth considering. Also, there are 3V3 logic level boards in Uno form factor, so having a 3V3 version of the shield would be useful in any case.
But I repeat, other than testing the resistor divider on RX, I’ve not tested any of the modifications to the board itself. Do let me know if you’re brave enough to give it a go
At some point I might make my own 3V3 Uno format shield PCB…
Kevin
Dose of the 90s vibes!
'Bird Apple' is a remix I made together with @NeneExists This songs based off Touhou Bad Apple (feat nomico) and was remixed in midi primarily for the 1997 Yamaha MU100 and also featuring the 2012 Roland Integra 7. I did the work on the midi and recording, Nene did the mixing and mastering. I got a little playful with it, so have fun! ^v^
Revisiting my Duppa LED Rings this time using Waveshare Zero format devices to support USB MIDI CC controllers.
https://diyelectromusic.com/2025/04/06/duppa-i2c-midi-controller-part-4/
The second technical challenge of the day was getting this Livid Code into a usable state for the Nord Micro Modular.
The editor software is about ten years old,. The company shut down many years ago, and it wasn't still archived on their site. The company closed because the founder died of a rather unpleasant disease, so maybe longevity of legacy products wasn't at the forefront of his concerns.
Finally got those ccs updated, and I've now labelled the knobs for easy reference.
#midi #synth
I finally finished this custom USB Controller using a 12 position switch. The customer will be using it as a USB MIDI Controller where they want to select 11 different settings.
It's a bit taller than I'd like but the switch is pretty tall and I need a certain amount of space for the PCB and controller.
The enclosure is 3D printed and so is the knob. The multi-color prints for both came out great.
Forbidden Planet “Krell” Display – MIDI CC Controller – Part 2
This revisits my Forbidden Planet “Krell” Display – MIDI CC Controller using my Forbidden Planet “Krell” Display PCB with a Waveshare RP2040 to create more of a “all in one” device.
Warning! I strongly recommend using old or second hand equipment for your experiments. I am not responsible for any damage to expensive instruments!
If you are new to Arduino, see the Getting Started pages.
Parts list
PCB
This requires a built of the Forbidden Planet “Krell” Display PCB with the following:
I’ve used potentiometers that are their own knob, as they only poke through the casing by around 5mm or so.
If it you are able to get longer shaft pots, then that would probably be worthwhile.
Updated 3D Printed Case
This requires the following from the Krell Display 3D Printed Case:
This requires the following options in the OpenSCAD code:
show_frame = 1;
show_quadframe = 0;
show_insert = 1;
show_support = 0;
show_quadsupport = 0;
show_eurorack = 0;
show_eurorack_support = 1;
alg_pot1 = 1;
alg_pot2 = 1;
alg_cv = 0;
The frame does not really take into account the PCB at present, but I’ve reached the “good enough I want to do something else” stage, so I’ve just added a couple of small cut-outs (using a hacksaw) for the two MIDI sockets, and am content that the components stick out a bit from the back.
This cutout has to be 10.5mm from the end, 6mm wide, and 5mm deep.
At some point I might go back and design a deeper frame that has the cut-outs included and some kind of snap-on back to make it a self-contained box.
But for now, this is left as an exercise for, well, anyone else
Construction
I’ve used four brass 6mm spacers to screw into the mounting holes in the frame. Then the PCB can be inserted, taking care to squeeze in the 3D printed support around the LEDs and pots, and fixed with 20mm spacers which will also act as “legs”.
The Code
I’ve used a Waveshare Zero RP2040 and Circuitpython for this build. This is a combination of some of the test code used for the Forbidden Planet “Krell” Display PCB but with added MIDI.
The code supports both Serial and USB MIDI.
I wanted an equivalent of the Arduino map() and constrain() functions and didn’t immediate spot them in Circuitpython so wrote my own:
def algmap(val, minin, maxin, minout, maxout):
if (val < minin):
val = minin
if (val > maxin):
val = maxin
return minout + (((val - minin) * (maxout - minout)) / (maxin - minin))
This allows me to map the analog read values (0 to 65535) down to MIDI CC values (0 to 127) whilst also allowing for some inaccuracies (I’ve treated anything below 256 as zero for example):
alg1cc = int(algmap(alg1_in.value,256,65530,0,127))
I’ve used the Adafruit MIDI library, which I’m still not really a fan of, but I wanted to include MIDI THRU functionality to allow the controller to sit inline with an existing MIDI stream. But it doesn’t seem to work very well.
I was already only updating the LEDs/MIDI CC if the pot values had changed, to cut down on the number of Neopixel writes required.
I experimented with changing the scheduling of the analog reads and MIDI but that didn’t seem to help very much. In the end I made sure that all MIDI messages queued up in the system would be read at the same time before going back to checking the pots.
msg = midiuart.receive()
while (msg is not None):
if (not isinstance(msg, MIDIUnknownEvent)):
midiuart.send(msg)
msg = midiuart.receive()
It will do for now. Moving forward, I might try the Winterbloom SmolMIDI library. If that still doesn’t give me some useful performance then I might have to switch over to Arduino C.
Closing Thoughts
The MIDI throughput is disappointing, but then I’ve never really gotten on with the Adafruit MIDI library. I use it as USB MIDI on Circuitpython is so easy, so will need to do something about that.
I’m still deciding on the PCB-sized supports too. The original seemed to have nicer diffusion of the LEDs, but that could have been the difference between 5mm SMT neopixels and these THT APA106s which seem more directional in the first place.
And I really ought to finish the 3D printed case properly too.
So this is “that will do” for now, but I ought to come back and finish it off properly at some point.
Kevin
serial2midi v1.1.1
Turn your serial port into a virtual midi device
Finding tty device should now be faster
Overhauled the sysex request
Better parsing of midi bytes to not read invalid midi messages from tty
Added --timeout flag to cli
Moved crates into own subfolder (./crates)
Updated dependencies
https://codeberg.org/obsoleszenz/serial2midi/releases/tag/v1.1.1