VOGONS


WavePi: Use Raspberry pi (2/3/4) as a AIO MIDI synth

Topic actions

Reply 200 of 206, by t9999clint

User metadata
Rank Member
Rank
Member

I've been running into various noise issues and compatibility issues with different soundcards. This looks like it'll be a little trickier than I though with the current design.
Software wise it's working ok, but the schematic might need a entire redesign. Sadly I don't think the price will be anywhere near my original $20 goal.

So I'm thinking of forking this into two projects based off the same codebase. Both will still use the same code, it's just the PCB designs and goals will be quite different.

Project one - This will run on basically anything with Debian and USB ports, A external box with MIDI and Audio inputs and outputs. 3D print a case and make it look like a SC-55 or something. Keep the size within the specs of a 5 1/4" drive bay so you can still mount it internally if you wish. - I think I'll still call this project WavePi so I don't have to rename the Core OS. This project will be the software side of things will be.

Project two - A custom PCB designed to integrate with (and eventually replace) a sound card. Using a wavetable header, and a Raspberry Pi compute unit. This should allow for a slim attachment to a soundcard and a super clean look.
Ideally I'd love to just have a PCB connected directly to the ISA slot as a HardMPU replacement with some sort of GPL soundblaster clone chip on it, but that's well beyond my current abilities. That being said, this is my final goal so it will happen eventually. It'll probably just take about 6yrs or so for me to figure out (That is if I don't get any help with it). - Not sure what I should name this, maybe PiBlaster16?

My Youtube Channel: https://www.kor.ninja/
My Soundfont Project: K.O.R. Soundfont Project V.5.0
My Soundcloud Page: https://soundcloud.com/clint-theriault

Reply 201 of 206, by t9999clint

User metadata
Rank Member
Rank
Member

Ok, here's a bit of a brain dump of my plan for the new direction for the PCB part of this plan. The PiBlaster 16 (name is not final)

Been looking at this for a while...
https://www.raspberrypi.org/documentation/har … e/schematics.md
This has some usefull information of the pinouts and voltage requirements of a CM3+ (likely the main target platform for now).

End Goal, Make a Soundblaster 16 clone using the CM3+ for all the heavy lifting. OPL3 and MIDI Synth emulation, use some microcontrollers to handle the SB16 digital audio, use Jack to mix audio in RT on the Pi. The system will see it as a SB16 with a intelligent MPU-401 and OPL3 attached.

How I plan on doing this... (this will most definitely be wrong)
Take the design of a HardMPU ISA, take the MPU controller stuff, wire it to the serial output of the CM3+.
Use a common USB DAC design and use that for audio in/out. It will appear to the pi as a USB audio device.
I forget the name of the project but I remember there being a reverse engineered SB16 chip that can near perfectly emulate it's digital audio processing. Take the design of that and wire the digital audio into the Pi somehow. (I think it was the BlasterBoard project, but that's only SB2 not 16...)
Use the USB line in for other inputs? CD-ROM, Speaker, Etc... (not sure how mixing will be handled)
Have some sort of communication bus over i2c between the ISA PCB and the pi to handle OPL information. (Might be a good idea to use this instead of serial for MPU-401 as well). Use software emulation on the Pi to emulate OPL3 sounds.
Maybe make a PCI version as well?

In theory this should allow for near perfect support for SC-55, MT-32, OPL and SB-16 all in one card, while adding some nice extra features like large (700mb+) soundfont support. I have no idea how windows would tread this hypothetical card, but it should in theory work just see it as a normal SB-16

First things first though. Now that the end goal is set, how do we get there? Well babysteps of course.
First step... Wavetable adapter board.
Something simple, just a wavetable header with some pinout connectors for MIDI in an out translated to 3.3v ttl, and some audio in an out jacks. This will also be helpfull for people who want to use the WavePi in the CDRom bay attach things internally. I'm ditching the 12v power circuitry from it for now because that's more complicated than it's worth and not really something you can safely attach to a soundcard.

Second step... some sort of MPU-401 ISA board that has the CM3+ connected to it. It still passes through the audio to the soundcard through the adapter made in step one. Not exactly a babystep, but in theory it shouldn't be too hard. I might have to add a molex for additional power for the Pi. The USB Dac will just be plugged into a usb port on the side of the PCB for now.

Third Step... add support for OPL (I have no idea how to do this), hardware wise it should be pretty simple, I just need to add a bit of controller logic to the ISA board. All the audio stuff is still being done through the Pi.

Fourth Step... wire in a USB Dac directly into the PCB and start looking at how to get digital audio into the pi.

Fifth Step... Integrate the clone SB16 digital audio circuitry into the PCB making it a AIO solution.

Sixth Step... Work on getting it to sound good with headphones and stuff. Start testing audio amp chips and various caps. Maybe add a digital audio output. Add mixing support.

Seventh Step... Add a gameport with proper MPU-401 support. Probably also add a serial connection to talk directly to the Pi. Maybe even a wavetable header, 🤣

Nth step... Start all over again but aiming at PCI instead of ISA. Then maybe a PCMCIA version for laptops?

My Youtube Channel: https://www.kor.ninja/
My Soundfont Project: K.O.R. Soundfont Project V.5.0
My Soundcloud Page: https://soundcloud.com/clint-theriault

Reply 202 of 206, by ahmadexp

User metadata
Rank Member
Rank
Member

Hello @t9999client,

I was wondering if there is any update on your WavePi project.
I am trying to run it on the CM4 as an alternative to mp32-pi which allows me to have more flexibility.
I tried to follow your instructions on the Github and things tend to fail as a lot of things have changed.
Some links like the link to sf2 are no longer valid as well as the address for /etc/init is no longer on the new dietpi.
Looking forward to any information from you.

Reply 203 of 206, by t9999clint

User metadata
Rank Member
Rank
Member

You might have to use a older version of dietpi for now. I'm probably going to have to redo the entire thing to get it running on a modern version of Linux.
The downloads for the soundfonts are gone because the webhosting fees went up 4x and I don't have any money to pay for hosting anymore. I'm working on getting another site up for that, but that's still a WIP.

Mostly the synth part of this project was put on the back burner as MT32-pi kinda replaced it, but I've still been working on the other parts of this project. I've started going to college and taking classes on electronic engineering. There's a lot of valuable information that I was missing when I first started this. In a year or two you'll be seeing some pretty promising results from this (think FPGA).

But since it looks like someone actually wants to use the software part of this project, I'll start to do a rewrite of it to get something simple working.

My Youtube Channel: https://www.kor.ninja/
My Soundfont Project: K.O.R. Soundfont Project V.5.0
My Soundcloud Page: https://soundcloud.com/clint-theriault

Reply 204 of 206, by t9999clint

User metadata
Rank Member
Rank
Member

Okay, as I'm starting this from scratch, it starts to make me wonder. What should my minimum requirements be? Should we go for as small a footprint as possible, like previous? Or should I try to make things easier for myself and target faster hardware and just piggyback off of Falcosoft's midiplayer?
Because honestly, all my plan was for the software part was basically just, Falcosoft Midiplayer but running from arm Linux. This wasn't practical with Pi 3 hardware, but with Pi 4 and 5, it's fairly trivial.
Also, mame's done a lot of progress on the SC-55 stuff so I'll probably try to tie that in somehow.
I still don't know of a proper way to implement a webui, but that should probably be a thing as well.

Also, I was talking with some friends on discord and Scrap Computing's Throttle Blaster came up in the discussion, I'm gonna want to add that as an option as well. (feature bloat? maybe. cool? YES)

My Youtube Channel: https://www.kor.ninja/
My Soundfont Project: K.O.R. Soundfont Project V.5.0
My Soundcloud Page: https://soundcloud.com/clint-theriault

Reply 205 of 206, by ahmadexp

User metadata
Rank Member
Rank
Member
t9999clint wrote on 2024-08-15, 15:37:
Okay, as I'm starting this from scratch, it starts to make me wonder. What should my minimum requirements be? Should we go for a […]
Show full quote

Okay, as I'm starting this from scratch, it starts to make me wonder. What should my minimum requirements be? Should we go for as small a footprint as possible, like previous? Or should I try to make things easier for myself and target faster hardware and just piggyback off of Falcosoft's midiplayer?
Because honestly, all my plan was for the software part was basically just, Falcosoft Midiplayer but running from arm Linux. This wasn't practical with Pi 3 hardware, but with Pi 4 and 5, it's fairly trivial.
Also, mame's done a lot of progress on the SC-55 stuff so I'll probably try to tie that in somehow.
I still don't know of a proper way to implement a webui, but that should probably be a thing as well.

Also, I was talking with some friends on discord and Scrap Computing's Throttle Blaster came up in the discussion, I'm gonna want to add that as an option as well. (feature bloat? maybe. cool? YES)

Thank you for getting back to me. So, mt32-pi got a lot of issues such as the lack of power management which causes the Pi to run super hot. In addition, it really does not support CM4, Rpi 5 etc. Also it will not allow you to do other things with the Pi besides the MIDI synthesis. Despite all these short comings, it is a great solution if you just want something to work for its sole purpose and therefore, I appreciate the work its developer has been.
Eivind Boher (an awesome hardware developer and active on Vogons) started a sequel of Vortex86 based SBCs called Tiny Llama. He did a fantastic job with the TinyLlama 1, then 2, then ITX and now the Tinyllama 3. So, the Tinyllama 3 is equipped with a CM4 to do the MIDI synthesis on top of many more cool features like CD-ROM emulation and perhaps Connectively solutions. If we get WavePi revived, it will be great for the TinyLlama 3 and perhaps onward projects.
In addition, I really want to have an easier way to develop newer addons for the MIDI synthesizer like a nice Spectrogram like the one that is on the mt32-pi but more user friendly and customizable. On the mt32-pi I was able to increases the support for OLEDs etc... but the developer of mt32-pi did not show that much enthusiasm as he was more into keeping the features locked.
I am hoping that with the WavePi we will have pretty much all the features available on mt32-pi to more forward with richer features integrated on Linux rather than barebone.
If I have to list those features:
Support for mt-32
Support for Nucked SC-55
Perhaps an friendly interface (buttons and OLED) to switch between mt-32 and Nucked SC-55 as well as soundfonts.
At the moment we are able to get things working with ttymidi taking the MIDI stream and munt or nucked sc-55 but certainly the LCD/OLED interface is something that can be further developed.
I hope it makes sense.

Reply 206 of 206, by ahmadexp

User metadata
Rank Member
Rank
Member
t9999clint wrote on 2024-08-15, 15:37:
Okay, as I'm starting this from scratch, it starts to make me wonder. What should my minimum requirements be? Should we go for a […]
Show full quote

Okay, as I'm starting this from scratch, it starts to make me wonder. What should my minimum requirements be? Should we go for as small a footprint as possible, like previous? Or should I try to make things easier for myself and target faster hardware and just piggyback off of Falcosoft's midiplayer?
Because honestly, all my plan was for the software part was basically just, Falcosoft Midiplayer but running from arm Linux. This wasn't practical with Pi 3 hardware, but with Pi 4 and 5, it's fairly trivial.
Also, mame's done a lot of progress on the SC-55 stuff so I'll probably try to tie that in somehow.
I still don't know of a proper way to implement a webui, but that should probably be a thing as well.

Also, I was talking with some friends on discord and Scrap Computing's Throttle Blaster came up in the discussion, I'm gonna want to add that as an option as well. (feature bloat? maybe. cool? YES)

Since we have some many tools already taking care of the midi part (ttymidi, sc-55, munt, ...) the only missing piece is the LCD (OLED) interface.
I am wondering, what does it take to add LCD(OLED) support the ttymidi to make it act like mt32-pi. I not so proficient to get this task done, and I already gave it some tries and it is difficult, especially that mt32-pi is all written based on circle and I want it to work on gcc added to the ttymidi project.
I would appreciate any help.