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

Discussion about old sound cards, MIDI devices and sound related accessories.

Re: WavePi: Use Raspberry pi as a AIO MIDI synth

Postby t9999clint » 2019-6-23 @ 00:08

Thanks for the insight, Looking at some more documentation it looks like I'd loose at least 20w or so just to heat, and I don't want to put my wiring through that sort punishment. I've ordered a bunch of buck converters and they'll arrive in a few days. I've set a few wires on fire and made a 7805 explode by wiring it in reverse... So I've definitely learned some stuff.

Frankly it's been a tone of fun, so this project is living up to my expectations. Let's just hope I don't blow up anything rare.
This seems to be a helpful video for a wiring n008 such as myself, https://www.youtube.com/watch?v=CEhBN5_fO5o

Long story short, I managed to find a USB type C adapter that lets me use a type c cell phone charger that I had laying around. This still has some voltage drops but not really enough to make a big difference in performance.
Now Silpheed plays fine, I can prove my MT32 script is running and stable and can move on with the next step in my project.
This was a bit of a wild goose chase, but it was one that I'll need to tackle eventually anyways, so I'm glad I got something informative out of it.
User avatar
t9999clint
Member
 
Posts: 147
Joined: 2014-10-07 @ 14:08
Location: Edmonton, Canada

Re: WavePi: Use Raspberry pi as a AIO MIDI synth

Postby jmarsh » 2019-6-23 @ 01:26

Tiido wrote: Diodes will not do anything useful either except drop voltage, and such small diodes are gonna drop a whole volt under load while not helping much at all with the load sharing problem.

Diodes on the output stage prevent one convertor from feeding back into another (that may have a slightly lower output). The voltage drop is compensated for by adding another diode of the same value inline with the convertor's earth, effectively "boosting" the output. I never said it was an ideal solution but if you're stuck working with what's at hand...
jmarsh
Member
 
Posts: 184
Joined: 2014-1-04 @ 09:17

Re: WavePi: Use Raspberry pi as a AIO MIDI synth

Postby gdjacobs » 2019-6-23 @ 03:38

Higher powered linear supplies use external pass transistors with a controller IC. The 7805 can also be adapted to use an external pass transistor (or a matched gang) if you need more current than the regulator itself can deliver. Check figures 13 and 14 in the Fairchild datasheet.
http://hades.mech.northwestern.edu/imag ... LM7805.pdf
User avatar
gdjacobs
l33t++
 
Posts: 6353
Joined: 2015-11-03 @ 05:51
Location: The Great White North

Re: WavePi: Use Raspberry pi as a AIO MIDI synth

Postby t9999clint » 2019-6-23 @ 07:34

I made some good progress on the scripting side. Looks like it's loading the configuration files properly now. I'm glad that I was able to keep it modular like that.
Still lots of minor tweaks left to make in the startup script but it's 90% working.
Next is a service script to register with systemd do it'll listen to "service wavepi start" and "service wavepi stop" commands.
Fortunately I've been able to avoid using python for most of it as I don't know python very well yet. All of it so far is just simple bash scripts. I've been trying to make sure it's very well documented so I don't forget what stuff does.
After I get the service script stuff done I'm gonna have to figure out a way to make a python app to listen in the background for the sysex requests and send the appropriate commands to change the synth config preset.
In theory it shouldn't be too hard. At least there's not chance of me setting my board on fire this time. lol
Everything's been updated on the github for those that miss my terrible spaghetti code.
User avatar
t9999clint
Member
 
Posts: 147
Joined: 2014-10-07 @ 14:08
Location: Edmonton, Canada

Re: WavePi: Use Raspberry pi as a AIO MIDI synth

Postby t9999clint » 2019-6-23 @ 18:54

Here's some basic instructions on how to use the project in it's current state, as I finally have something usable. Still lots more to add though, this is just the basic framework.
It should run on almost anything debian based, just remember that the compilation instructions I have are only for the Ras Pi 3 and will need to be modified.

## Current usage is...
cd ~
git clone https://github.com/t9999clint/WavePi.git
#follow compilation instructions in, Notes for mt32emu.txt
#install fluidsynth by...
sudo apt install fluidsynth -yy
#download soundfonts and munt roms. place them in appropriate folders...
#modify config files to match your hardware and soundfont preferences. Feel free to add more cfg files. (000-999).cfg is the naming scheme. config files are stores in the configs subdirectory.
#run specified config file using the following command... startconfig.sh <config number>

# for example is the default which loads my soundfont, (if you have it downloaded)
~/WavePi/scripts/startconfig.sh 000
# or a cm32l
~/WavePi/scripts/startconfig.sh 001
# any invalid requests will just load the default config specified in main.cfg, eg...
~/WavePi/scripts/startconfig.sh dumbthing.cfg
# to switch configs, just run startconfig.sh with the config you want to switch to. It'll automatically stop the previous config
User avatar
t9999clint
Member
 
Posts: 147
Joined: 2014-10-07 @ 14:08
Location: Edmonton, Canada

Re: WavePi: Use Raspberry pi as a AIO MIDI synth

Postby t9999clint » 2019-6-25 @ 03:37

previous instructions are now wrong... lol
basically everything is the same, 'cept the main script is wavepi.sh now instead of startconfig.sh

also if you run the script install-scripts.sh as sudo it'll install wavepi as a service and it'll let you controll it by just typing in wavepi

Yay, progress!
Now that I've put it off as long as I could, now I have to figure out the sysex stuff..........
ohhhh boy.

after that I'll start on the official documentation because at that point I don't think the syntax or anything will be changing anymore.


also, completely an ugly hack, but I think I figured out a way to get wine running on this thing so I can tunnel windows .vst's through the synth. Performance is SUPER limited because it's emulating a x86 cpu through QEMU, but it sort of works...
I'll probably get that stable and scripted after I add serial and maybe jack2 support...
User avatar
t9999clint
Member
 
Posts: 147
Joined: 2014-10-07 @ 14:08
Location: Edmonton, Canada

Re: WavePi: Use Raspberry pi as a AIO MIDI synth

Postby t9999clint » 2019-6-25 @ 16:49

I have a ugly, but working prototype for the sysex monitoring code.
For some reason it seems to be converting the data in a weird way, the highest value I can get out of the third byte in the sysex message is 9, so because of this I can only switch between configs 000 and 009. This leaves 10 total configs you can switch this way.

It is configured to listen to the same sysex messages that Falcosoft MidiPlayer listens to.
I'm not pleased with how unsightly the code is, but for a first draft and as something that's already 80% feature complete, I'm at least pretty glad it's working now.

Next up is adding a feature to allow the loading sf2 files through wavepi without a config assigned, and then the proper documentation (Including tutorial videos).
I think this means it's ready for LTX2019 !!
Attachments
sysex.zip
sysex messages and a simple program and script to send them to the wavepi
(31.21 KiB) Downloaded 3 times
User avatar
t9999clint
Member
 
Posts: 147
Joined: 2014-10-07 @ 14:08
Location: Edmonton, Canada

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

Postby t9999clint » 2019-6-26 @ 10:27

Added a bunch of documentation on the GitHub. Hopefully it should be easier to understand what the project is/does/can do. Still not finished that quite yet.
Now I have to make a few quick youtube videos and start showing it off.
I'll do that after some sleep though. I haven't slept in about 2 days...
User avatar
t9999clint
Member
 
Posts: 147
Joined: 2014-10-07 @ 14:08
Location: Edmonton, Canada

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

Postby t9999clint » 2019-6-29 @ 00:48

Editing the tutorial video.
I got the buck converter in and it seems to have resolved all the power issues. The ones I ordered are a tad to big though...
Here's a video of the Munt working properly now. Also a bit of my terrible testing workstation...
https://youtu.be/OTcFSIxYEOs
User avatar
t9999clint
Member
 
Posts: 147
Joined: 2014-10-07 @ 14:08
Location: Edmonton, Canada

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

Postby seren » 2019-6-29 @ 22:31

Great project!! Basically what I need as Midi module for my Sharp X68000!
I've been playing with Munt and Fluidsynth myself. My experience with Fluidsynth and the FluidR3 GM soundfont is not so good. It sounds not even half as good as the Roland Sound Canvas VA VST on Windows :( Munt on the other end is pretty accurate, however a challenge to get running without stuttering.

Nevertheless, I like to have this Midi stuff in a little box :) My hardware and additional requirements:
I use a Hifiberry DAC+ADC GPIO hat this comes with input minijack and RCA stereo out.

The input I use for the SFX from the Sharp X68000. This is mixed together with the midi music generated by Munt/FluidSynth to the RCA out of the Hifiberry. i use pulseaudio to loop the input to the output. But I hope your WavePi will offer a better, less CPU heavy solution for this, like using Jack.

Hopefully it will support some web GUI, as I would like to run this Headless.
seren
Newbie
 
Posts: 10
Joined: 2019-3-27 @ 12:02

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

Postby t9999clint » 2019-6-30 @ 08:34

seren wrote:Great project!! Basically what I need as Midi module for my Sharp X68000!
I've been playing with Munt and Fluidsynth myself. My experience with Fluidsynth and the FluidR3 GM soundfont is not so good. It sounds not even half as good as the Roland Sound Canvas VA VST on Windows :( Munt on the other end is pretty accurate, however a challenge to get running without stuttering.

Nevertheless, I like to have this Midi stuff in a little box :) My hardware and additional requirements:
I use a Hifiberry DAC+ADC GPIO hat this comes with input minijack and RCA stereo out.

The input I use for the SFX from the Sharp X68000. This is mixed together with the midi music generated by Munt/FluidSynth to the RCA out of the Hifiberry. i use pulseaudio to loop the input to the output. But I hope your WavePi will offer a better, less CPU heavy solution for this, like using Jack.

Hopefully it will support some web GUI, as I would like to run this Headless.


Shit! A webgui is a great idea, I don't know why I didn't think of that yet.
Ok, I'm adding that to the list! Right now I'm using it headless with ssh and sysex commands.
Once installed, the commands are stupid simple.
wavepi <profile number> - loads requested preset
wavepi <soundfont.sf2> - loads requested soundfont instead of a preset
wavepi stop - stops the synth

The sysex command script from ms-dos is also simple.
preset 0-9 - does the same as wavepi <profile number> just remotely.
I wrote that to use with Falcosoft MIDIPlayer, but I made WavePi listen for the same commands.

That's basically it. The entire interface right now. (other than a ton of config files)

Jack isn't supported yet (SOON), but from seeing what other people use the hifiberry for, you kind of need Jack in order for it not to suck. That being said, the latest improvements I've seen, it'll probably run fine even with pulseaudio (I haven't tested that since I fixed my power issue).
Also if your good with Jack you can just setup a ALSA bridge and set the bridge as the default ALSA device. That should be enough to get MUNT to see it.

Also also, FluidR3 GM isn't very good. Try the tiny version of my KOR soundfont, or if that one is still too big, try my Pro7use enhanced soundfont.
KOR Tiny - https://downloads.kor.ninja/Music/korfo ... /?dir=tiny
PRO7USE Enhanced - https://downloads.kor.ninja/Music/?dir=pro7use
User avatar
t9999clint
Member
 
Posts: 147
Joined: 2014-10-07 @ 14:08
Location: Edmonton, Canada

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

Postby bjwil1991 » 2019-6-30 @ 15:10

Love where this is going. Haven't tested it yet, but, I'll be testing this on my 486, K6/2-300, Celeron 1.4GHz, and Sempron 64 3300+ Windows 95C/Windows 98SE machines.
Discord: https://discord.gg/U5dJw7x
Systems from C64 to FX-6300.
User avatar
bjwil1991
l33t
 
Posts: 2448
Joined: 2013-8-14 @ 03:10
Location: SE, MI USA

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

Postby t9999clint » 2019-7-01 @ 03:46

Glad to hear it, although I'm not sure it'd be worth while on a machine with a cpu above 1.0ghz
I'm fairly certain that Falcosoft MidiPlayer would probably run fine on that fast of a cpu and MIDIPlayer does a better job than the Wave Pi at Munt and Soundfonts.
MidiPlayer won't work under dos though, so if your still using those systems for dos games than the WavePi is still useful there.
User avatar
t9999clint
Member
 
Posts: 147
Joined: 2014-10-07 @ 14:08
Location: Edmonton, Canada

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

Postby seren » 2019-7-01 @ 21:19

Nice you consider the Web GUI.

I'm a total n00b regarding Linux Audio. I basically followed some tutorials and hence I used pulseaudio.

I couldn't get the following working with just ALSA alone:
- Route input audio to output and record the input at the same time (independent of the Midi use case here)
- Mix input audio with Midi generated audio (related to this thread).

So if this is done with Jack and costs less resources I'm in, but honestly
Also if your good with Jack you can just setup a ALSA bridge and set the bridge as the default ALSA device. That should be enough to get MUNT to see it.
doesn't make total sense to me :)

Thanks for the other soundfont suggestions. I'll try them soon.
seren
Newbie
 
Posts: 10
Joined: 2019-3-27 @ 12:02

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

Postby gdjacobs » 2019-7-01 @ 21:40

seren wrote:
Also if your good with Jack you can just setup a ALSA bridge and set the bridge as the default ALSA device. That should be enough to get MUNT to see it.
doesn't make total sense to me :)

Thanks for the other soundfont suggestions. I'll try them soon.


JACK can intercept audio coming from programs using the standard ALSA interface. So, instead of:

PROGRAM -> ALSA LIB -> ALSA SOUND DEVICE DRIVER

you get:

PROGRAM -> ALSA LIB -> JACK SOUND SERVER -> ALSA DEVICE DRIVER

JACK handles stream mixing and format conversion which ALSA (and Pulseaudio) aren't good at.
User avatar
gdjacobs
l33t++
 
Posts: 6353
Joined: 2015-11-03 @ 05:51
Location: The Great White North

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

Postby t9999clint » 2019-7-03 @ 03:07

That kind of gets to the hard part of Jack support. It's gonna be tricky to script jack support to be nice and easy for people to use, AND work with most hardware.
I guess I'll cross that bridge when I come to it.

I got distracted by KiCad and made some progress on a circuit diagram. (never used a CAD program before...)
Looks like the KiCad tutorials that DigiKey put up were a pretty good help. https://www.youtube.com/watch?v=vaCVh2S ... 1O&index=8

I still need to figure out a good way to do the buck converter from 12v to 5v (including part numbers)
Image

Still editing the youtube tutorial/introduction...
User avatar
t9999clint
Member
 
Posts: 147
Joined: 2014-10-07 @ 14:08
Location: Edmonton, Canada

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

Postby t9999clint » 2019-7-03 @ 09:06

Instead of finishing that tutorial video like I should have done I continued messing around in KiCAD...

Didn't accomplish much other than design a board with the headers wired the wrong way around... but progress I guess?
Image
Image
Also assigned the wrong footprints for half the components, Those diodes are THICC!!

Think I should upload this to the githib, or wait till I have something more useful?
User avatar
t9999clint
Member
 
Posts: 147
Joined: 2014-10-07 @ 14:08
Location: Edmonton, Canada

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

Postby bjwil1991 » 2019-7-03 @ 10:28

Looks pretty cool. Not bad at all.
Discord: https://discord.gg/U5dJw7x
Systems from C64 to FX-6300.
User avatar
bjwil1991
l33t
 
Posts: 2448
Joined: 2013-8-14 @ 03:10
Location: SE, MI USA

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

Postby t9999clint » 2019-7-05 @ 06:28

Fixed up a few of the errors for the PCB design, header's still on the wrong side, but the pinout is right, so it'll only be backwards on the 3d model. (I'll figure something out for that later).

I uploaded it to the project GitHub.
User avatar
t9999clint
Member
 
Posts: 147
Joined: 2014-10-07 @ 14:08
Location: Edmonton, Canada

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

Postby seren » 2019-7-09 @ 06:18

In anticipation of Wave Pi I now played a bit with PatchBox OS, that uses Jack Audio. So I got familiar with an out of the box Jack installation (since I couldn't find an easy install tutorial for Raspberry Pi), which looks really cool! I did lose the real time kernel to be able to support my Hifiberry (with rpi-update). So, hoping wave-pi will come with Jack Audio eventually.
seren
Newbie
 
Posts: 10
Joined: 2019-3-27 @ 12:02

PreviousNext

Return to Sound

Who is online

Users browsing this forum: No registered users and 6 guests