For me, a Raspberry as a MIDI controlled synthesizer is so obvious that I wonder why there is not more fuzz about it. As far as I know, Korg Kronos and Yamaha Motif are actually Linux computers inside a piano keyboard.
This is my feeling as well - if my keyboard basically has a computer inside it I want to be able to rewrite the code if I want to. That was part of my motivation for this.
I watched your first Pi synth video, and this is an amazing improvement. Your info has always been good, but the step up in production quality makes the content top notch. Good job.
I'm glad you did this! I created my own rpi fluidsynth box awhile back and I love it, but it's much cludgy-er than yours. I'm glad you made it more accessible to people who just want to play music. Keep on keepin' on.
I am so happy I found this video! I tried putting together a Fluidsynth setup about 2 years ago so I could use my Casio MG-510 (an electric guitar with a built-in MIDI pickup) without a computer, but could never quite get it working the way I wanted. I'm excited to follow along with your instructions and hopefully get this all working! Thanks for making such an enjoyable and easy to follow video.
@@white2rnado Thanks! I got it all installed and I'm trying it out with a 25 key USB MIDI keyboard, since the guitar needs a little work. It works but the audio is really distorted and jumbled, especially if I play more than one note at a time. The volume is also sort of low. I'm using a Pi Zero W and a USB sound card. Do you know what the issue could be?
The Pi Zero is a bit on the low end of processing power for this - you should be able to clean up the audio by increasing the value of --period in your /home/pi/.jackdrc file to 128 or 256. For more info check out github.com/albedozero/fluidpatcher/blob/master/troubleshooting.md#the-audio-cracklesstutters-or-theres-too-much-latency
I have been running squishbox on a pi 4 for a few months now and it's great! Really good work here, thanks for making it please continue its development.
There's a hot chance I'm going to make this exact build now that I've found this, and if so, there is a hotter chance I'll be back with follow up questions.
At this point, old tablets or old phones are cheap enough to just go that route. They have touch screens, powerful processors, and intuitive ui. I am just starting back into music and will be focused on cheap tablets running dedicated apps and midi controller as if they are hardware synth. Controllers labeled to the vst/app. Pretty much an endless possibilities at roughly 200 to 300 per 'synth' setup.
Minidexed is indeed very cool. The tradeoff is that this software runs on Raspberry Pi OS, so you don't have to wipe your SD card - but I think MiniDexed can get much lower latency audio since it's bare metal \m/
Cheers for the update, I was testing fluidsynth on my Pi Zero not having touched Linux for 15 years :) will see how I go with your scripts, although I'm not familiar with the MIDI functions of my M-Audio Keyrig 49 (Edit button + a key for most 'advanced' functions).
Looks like you could assign the modulation wheel to send a different CC#, which you could assign to SELECT_PATCH: data2.manualslib.com/pdf/10/971/97024-maudio/keyrig_keyrig_49.pdf?7092eeaa5930e8504894cc4da1f83aa2#page=14 Some of those M-Audio controllers let you assign the octave buttons to send CC's, but not that one - just program/bank change messages. Unfortunately, there isn't a great way to capture those without python getting in the way and slowing the synth way down. Good luck with the Pi Zero - I've done it with a USB sound card and it has a bit more delay but is still playable. Might work better if I wired on a headphone jack - possible future video.
Had issues with the USB splitter I bought not being able to power both the controller and USB audio interface, I have a hub now which seems to solve that problem but need to reinstall all the fluidsynth stuff as I made a huge mess of it. Considering just buying the NEW zero for a bit more grunt regardless!
Exactly! I was looking up prices for Nord Stage and Holy Manure, they are expensive. Then I decide to buy the Arturia Keylab Essential for 300 USD, then the Analog V pack with 6000 sounds for 50 USD. I now have a synth for 350. Suck it Nord!
also i kind of accidentally made a double synth. I got the pi to make a midi host for the korg nts-1 so i could play that with an akai lpk25 keyboard which i did but it actually runs along side the patch you created. so I have the jack out of the pi with your nice clean piano to one amp and the nts-1 audio out (powered by the pi) a dirt synth to a second amp with an akai lpk keyboard triggering them both at once! it sounds amazing and i can even run the jack out into the mini korg audio in and use the delay and reverb! and it is tiny and running from one 5v phone battery bank. was all so cheap. thanks again man.
Would be lovely to use some MIDI controller, make a clean cutout and put the RaspBerry Pi alongside with a little 3.5" or whatever fits touchscreen inside as I can imagine that simple MIDI controller keyboards like this don't have too many electronics going on inside.
Cool idea! Now I'm thinking about doing some teardowns of my various MIDI controllers... If you found one with enough space, you could do this pretty easily with one of my SquishBox kits and a Raspberry Pi A+ 🤔
@@white2rnado This is definitely something I am aiming for but at the moment I am in the process of moving to a different more sunny country. However rather sooner than later I shall pick you up on this. Little side question. As we are talking python here, is there any reason why this code shouldn't be able to run on a X86 machine? The Pi A+ makes a lot more sense in terms of cooling that's a given.
My original idea was to fit my pi zero + hub/usb audio INSIDE my old M-Audio KeyRig. Might not be enough room though. considered using some of the existing ports/switches on it too. I'm probably not "advanced" enough to do so.
I watched your video and everything is up and running! I have one suggestion, though. Can you please make a tutorial on how to add and remove banks, soundfonts, and patches? Thank you!
This playlist of lessons should give you what you need: ru-vid.com/group/PL4a8Oe3qfS_-CefZFNYssT1kHdzEOdAlD Skip to 1:00 in the first lesson to see how to use the web editor to copy files over and edit banks 😉
Super Awesome!! Thank you!! I'm actually working on building a MIDI bass foot pedal, like you'd find on an old organ, I was looking for creative ways to do this, and this might just workout. (Assuming it all works the way I hope it will), once I get it rigged up, I'll take some video. Again, very very awesome. Cheers!! >M
Just saw this today, and thinking it may be just what I need. I've a Pi4A+ board that now I get to print a case for to get itto d o something useful for me (I hope.) May have space for a hat to add buttons and an I2C screen on as well. Still would be fairly low profile I think. Thank you.
And two made. 1 Pi3A+, and 1 Pi4 2G. I doubt that I'll be performing any time soon, but it gives me some way to listen while dabbling. Thanks for the great work. Going to need a headphone amp from the sounds of things. Have a fun, and keep up the good work.
Glad it's useful! You could also use the PCB from my other video: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-64-OijJMXRo.html - that has an onboard DAC with line-level output.
@@white2rnado I may go with that on another build. I don't know if I ran into a flaky pi3a+, or some other issue. Amber showed the volume at max, but audioout of fluidity was low. Amp works with it. I didn't bring either on this trip though. Next time. :-) I will have to work out the codes for controls for three different keyboards. All in good time. I will consider the board though. And I do have a separate audio board hat I can try. Thanks for the great work!
Thanks for sharing this! Regarding corrupting the SD card on power down, there's a script floating around to configure read-only mode, enabled via a jumper on the GPIO.
Yo Bill! That was a fantastic project man, I'm quite excited to try it out! I've a couple of questions though, will it work on a Raspberry pi zero w? I'm not fully aware of the technical differences between the RPi 3 and the Zero, but I've seen people install and run a headless setup on a Zero W with FluidSynth, albeit not as precisely and neatly as you have. And the second question is, will the installing script you coded work on the Zero as well? You see, I've been a musician for about 16 years but I've just recently got into coding and this stuff is still way out of my league as of right now hehehe Anyways, thanks man, I wish more people did tutorials as detailed and beginner-friendly as you do. Much appreciated! Stay funky dude!!!!
Thanks for the kudos! Yes, the install script works on a Pi Zero, but because it's slower than a 3B+ (single-core 1GHz vs. quad-core 1.4MHz) you'll probably want to increase the value of --periods in your /home/pi/.jackdrc file to 128 or 256. You'll also need a powered USB hub to be able to run both a USB sound card for output and your MIDI keyboard/controller. The newer Pi Zero 2 W will probably work better, but I haven't been able to get my hands on one yet. Feel free to ask questions here or at github.com/albedozero/fluidpatcher/discussions if you need!
@@white2rnado thanks for the quick reply man! Now's the time to get the rest of the gear you suggested, I'll surely ask again if I encounter other roadblocks along the way hehehe you've been of tremendous help!
Love this! The only issue I am having is delay. I am using a USB interface which has less delay than the headphone jack, but still more than I would like. Would using a sound card that connects to the GPIO pins be better? Also, I am using an install that runs the desktop environment. Would keeping the desktop from loading also improve the MIDI latency? In any case, thanks for your work!
Sorry to be long replying to this. A USB sound card should give you about the same latency as a GPIO-connected I2S card. Running a desktop environment doesn't seem to affect latency for me, either, as long as I'm not trying to run Firefox at the same time or something. The audio.period-size=64 and audio.periods settings=3 in SquishBox/squishboxconf.yaml should give a latency of about 1.1ms with a little USB dongle sound card like this one: www.amazon.com/Syba-external-Adapter-Windows-C-Media/dp/B001MSS6CS. If you run the script from a command line it will tell you if it can't provide those settings (like with the headphone jack). This also assumes you're using a Pi 3B+, older models run a bit slower.
@@white2rnado So I had the WCMCU-5102 on order so I tried it with this setup. Latency is now much better than with the Behringer UM2 USB interface. Not even noticeable using a Pearl Malletstation as the controller. I have no latency measurement or knowledge of the chip set of the Behringer but this changed the setup from a toy to a useable instrument. Thanks so much for this project!
Awesome! Thanks for your job! It really works fine with my PI4. However, I spent a lot of time trying to set up switching instrument and bank buttons on my Impact LX49+. The reason of issue is when you monitor events via "aseqdump" command via PI terminal on Linux, it shows "0" channel, or "15", e.g. (depends on pressed controls), and these values don't work. When I set up FluidPatcher and used its monitor, it shows "1" and "16" channels, and I found out that these values are correct and fixed the script on PI!
At the moment you can only record this synth into Ableton like any other audio source. However, I'm working on a plugin version of the software that should work in Ableton or any DAW that supports VST or AU!
hi , i tried installing this fluid naked synth in raspberry pi 2 B and it installed successfully but after reboot it does not starts automatically.. what to do..
I've got a discussion about that here: github.com/albedozero/fluidpatcher/discussions/32 TLDR we're working on it 😉, but we need to code a better driver to create a MIDI port that sends/receives data from the serial port on the Pi
@@white2rnado could it get away with using a USB-MIDI adapter cable? That's what most Pi MIDI hosts I've seen do and that's a compromise I'd be fine with
Yes - the older Pi Zero has kind of noticeable latency, but a Pi Zero 2 W should do just fine. For audio you'll need a USB audio dongle and a hub so you can also plug in your controller - or you if you're into it you could add a headphone jack by following this: othermod.com/raspberry-pi-zero-audio-circuit/
Default is 256-voice polyphony, and can be set up to 65535. Some sounds use multiple voices per note, but even at 256 I've never had any dropped notes.
Latency with the headphone jack is about 10ms. Using a USB or GPIO sound card it can be as low as 1.5ms. For your second question - can you be more specific what you mean by "creating soundwaves"?
However, FluidSynth is also practically a virtual modeling synth all by itself - as required by the soundfont spec it has amp and mod envelopes, an LFO, and low-pass filter. You can easily use it as a modeling synth using the included ModSynth_R3.sf2 font, which I demo here: ru-vid.comQUQe0vcsR1w
@@white2rnado "GPIO sound card it can be as low as 1.5ms." // What kind of logic or connections makes built-in RPi sound card to produce 10 ms latency as opposed to GPIO sound card?
Hi, this looks really great - it's exactly what I was looking for - but I can't install python3-rtmidi. Your script failed then I tried running sudo apt install python3-rtmidi, but the package still can't be found. Any ideas? Thanks!
Are you getting those "Unable to fetch" messages when you run apt? This happens to me too - from what I understand, this happens because raspbian.raspberrypi.org is sometimes too slow to respond and direct you to a local mirror to download from. I usually retry a couple times until it works, but I think you can edit /etc/apt/sources/list and replace raspbian.raspberrypi.org/raspbian/ with a mirror that's near you from this list: www.raspbian.org/RaspbianMirrors/. Maybe I should add this as an option in the script..
@@white2rnado Hi, thanks for your prompt reply. I haven't seen any errors in the console, just that the package can't be found. I even ran apt full-update, etc, just to be sure I'm on latest version.
Just FYI The script creates a file install-log.txt wherever you run it and dumps all the technical output from the commands in there - you could check that to see if there's any useful info in there.
@@white2rnado It works! I had Jessie installed on my old Raspberry PI 3 and had to upgrade to Buster before I could get your script to work. It would have been good if your script checked that the right OS was installed, but never mind, I'm really impressed and I now have a working MIDI keyboard. Thanks!
I have been troubleshooting for 2 days and there´s no way of making work with any of mi Pies. With windows 11 it works fantastic, but with Raspberry it just disables the audio jack and enables hdmi audio by default. Audio jack does not even appears listed.
This should happen automatically when you connect it to one of the Pi's USB ports. You can report any specific issues here: github.com/GeekFunkLabs/fluidpatcher/issues
Awesome video! Thanks. I was wondering, do you know if it's possible to load VST's from a Pi headless from boot? There's some softsynth I own that I really like and having a way to use them live without a laptop would be awesome.
Your VSTs will need to have a Linux version (some do, but def not all). Then you need a program to host the plugins - I hear Carla is a good one. You might check out Zynthian - it's an OS for Raspberry Pi built around running softsynths, and I think it has Carla built in.
This looks like it could be a good solution to a problem I have. I have a few RPi computers and I'm looking to get a midi keyboard controller. Since the feel is important get a hands on feel for the contoller, I want to physically play a weighted hammer action keyboard before I buy. That works with keyboards that have sounds to begin with, but when visiting a local music store, keyboard controllers weren't hooked up to anything so I couldn't get a feel for them and this was a big chain music store. One would think that a music store would understand this problem and have a laptop available to demo midi controllers. This looks like it could be made into a good plug and play solution to try out midi controllers. Is the synthesizer software velocity sensitive? Are sampled sounds available, specifically a piano?
This would work fine as long as the store doesn't mind you plugging it in 😉. You could use one of those phone backup batteries to power the Pi. Keep in mind there's a little bit of latency (~10ms) with this barebones setup as explained at 10:32 Yes the synth is velocity sensitive, and piano is the first patch
I'm trying this right now and I have a gig in 2 weeks where I'm hoping to use this. I'll let you know my progress. Note, I did get a message about using Bullseye OS (I'm testing now on a virtualbox. Is this an issue?
Bullseye is the code name for the latest version of Debian Linux that is the basis for Rasbperry Pi OS - as long as you're using the latest (or even a recent) version of RPi OS you should be fine
Looks like I'm at least a month late on getting a premade squishbox. Any plans for restocking your tindie store or was it more of a one run and done type of deal? Amazing job BTW...
I'll definitely be restocking within the next couple weeks - I had a run of orders and sold out of my last few quicker than I expected. As long as people are buying, I plan to keep making them!
@@white2rnado Awsome' that's great to hear. I'll get on the waiting list. I would love to attempt to build one from scratch but at the moment it seems a bit daunting. 😅 I'm definitely going to give it a try soon though. Thanks for your code and design work, it's great to have people putting their work out there for hopeful makers to explore. 👍🏽
Any idea why I can't use any other bank (yaml) file than the three included in the script? No audio plays at all, even with router_rules copied over, same permissions, existing soundfont
@@white2rnado thank you and sorry for bombarding you with my issues. I can get anything out of the thing at all now, even after complete wipe and reinstall.
hello! how updated is this project? Will I be able to use portmento and other effects with this install? Or I should make other steps for that? Grateful if you can bring some light in this subject matter... THANKS!
Yes - FluidSynth implements portamento - and you can hear an example of it in the "Smooth Flute" patch in bank1.yaml: github.com/albedozero/fluidpatcher/blob/c1079b9e4709955113641bf0ff96bd4ab40df971/SquishBox/banks/bank1.yaml#L79 You can also use FluidSynth's built-in Reverb and Chorus, and LADSPA plugins can give you delay, AutoWah, etc.
squishbox from shop will work on midi keyboard too? im planning to buy the kit just for the latency thing, and i wonder if i can plug it to my computer interface or amp
You can set the knobs on your keyboard to send control change (CC) #91 for reverb level and #93 for chorus level. You can also modify the parameters of the chorus and reverb effects units as described in this lesson video: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-53OFZnKhPa8.html Though it might be a good idea to start with Lesson 1 and work your way up to that point 🙂 ru-vid.com/group/PL4a8Oe3qfS_-CefZFNYssT1kHdzEOdAlD
Right now you can play MIDI files and trigger sequences/patterns - I'll be explaining this in some future lessons and you can look at the example bank file bank0.yaml or check out the bank file format wiki to see how it's done ( github.com/albedozero/fluidpatcher/blob/master/patcher/file_formats.md ). I have some thoughts about adding a looper feature to the code, probably by leveraging the sequencer objects, but that's a work in progress.
Hi! I have a question: the sounds that the module use are from GM2 (General MIDI Two)? I know that you didn't say that but do we agree that it is the same quality of sounds, right? ¡Thank you very much for your time!
The sounds I'm playing from roughly 2:00 to 3:00 are mostly from the FluidR3_GM.sf2 font. From 3:00 onward you can hear me play a few higher-quality sounds - you have the option to download a large set of additional sounds (~400MB) during the install process. You're not restricted to GM2 by any means - you can upload whatever soundfonts you want to use.
very nice video! I would like to use this for electronic drum pads, can I add custom sounds and trigger them with different pads/midi notes? (also, Im currently making an adc with an arduino, y already made the "octopad" part)
Yes, you can do this. You create a soundfont with your different drum samples, then write a bank file that routes the notes on your pads to different notes in the soundfont. You could even set up one of your pads or a slider to switch patches, so you could have multiple sets of drum sounds.
@@white2rnado Im already picking up signals from my piezos on an arduino, and already have the piezos set up in an array like with cymbal support whole, so Im halfway there, :D trying to install your amazing software in my raspbi3 now
Thanks for the clear explanation, I got it working with the headphone jack but too much latency. I still have a Scarlet Solo USB interface laying around so i've plugged it into the Pi. It connects and works when I play sound from youtube in the desktop environment. I did a re-install of your script and i chose to use the USB interface as audio output. But unfortunately no sound. When I boot the pi i can see the midi keyboard is connected and the usb interface too. Not sure where to start troubleshooting, do you have an idea? Thanks!
This should be doable. Did you see my troubleshooting tips at the link below? github.com/albedozero/fluidpatcher/blob/master/troubleshooting.md#i-dont-hear-any-sound Try editing the config file and using alsa instead of jack as the audio driver - that can be easier to get working.
Neat! Sorry if I missed this, but how do you deal with powering off the pi without potentially corrupting the sd card? Do you have some button to trigger the pi to shutdown?
No problem! At 3:36 if you hold down one of the patch change buttons for 7 seconds it will initiate a safe shutdown. After 5 seconds the PWR led starts blinking to warn you're about to shut down.
Seems like someone did it: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-Sec7Sf4q34s.html. It would be nice to set up something that just requires your Pi and a MIDI controller. I've only messed with PD a bit, but this is on my list to try.
I see a lot of posts that the default velocity curve on the Mini MK3 is kind of weak. This person has a video explaining how to adjust it: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-54cpv8Md10k.html
Please, do you have an update to this video. I've just spent all afternoon trying to follow different instructions and got absolutely nothing to work. Eeek!
Hopefully I'll have a chance to create an updated video soon, but until then you can post details of your issues at github.com/GeekFunkLabs/squishbox/discussions and I can help you troubleshoot
@@white2rnado Trying it multiple times today with a Rasberry Pi 2 and the same keyboard as in this video, it seems like the script just isn't running properly, like there is some error/incompatibility.
If you choose the option to download the soundfonts when running the install script you'll get the 'Hip Hop Combo.sf2' soundfont that has some decent drumkits and samples. You can create as many simultaneous sequences as you want using the built-in sequencer: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-GfelD8ZofyM.html. If you want something with more physical controls where you can create sequences on the fly this guys project looks pretty sweet: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-h5UmPTttN1s.html
@@white2rnado the raspberry pi doesn't respond, when I try to execute aplay -i in terminal, but if I do a ctrl + c I have this message : "aplay: read_header:2839: erreur de lecture (sorry I'm french ^^)
Ahh I see it was a bug due to the multilingual output of some programs. I have updated the install script to hopefully work around this. Let me know if you have more problems.
I'm redoing the lesson videos right now to bring them up to speed with the changes to banks in version 0.5. There's some description of them here: github.com/albedozero/fluidpatcher/discussions/20 If you post your bank file as an issue on github or send it to me I can help debug 😀
You can, but it's usually easier to change on your keyboard/MIDI controller itself. Check out this discussion: github.com/albedozero/fluidpatcher/discussions/52
Hello! I want to make a sound box for my arduino midi drums. and I want to make more channels for triggers, is it possible to connect 2 midi devices to fluidsyns at once (2 modules of arduino-midi drums)?
Yes - you can theoretically connect as many USB devices as you want to fluidsynth, as long as your USB ports have enough amps to power them all. You'll want to set each device to send on a different MIDI channel, so you can route their MIDI messages to different sounds/functions if you want to.
Really great explanation, I have a question, I wan to build this onto my midi avcordion to have internal sounds, the Bass is on Ch1, Chords Ch2, Right hand notes Ch3, how can I configure that to change the patch independently for every channel? Or can I use it without the patcher and use just plain fluisynth? I would apreciate your help, you did a great job overall. I like your projects.
You would create multiple patches, each with a different combination of soundfont presets assigned to channels 1, 2, and 3. There isn't a built-in way to scroll through different sounds on each channel individually, but you could get pretty much the same effect by picking out the specific set of combinations of sounds that you actually want to use. If your controller sends program change messages, you could use router rules to do some changing of presets on individual channels. Check out the Fluidpatcher lessons for more on how to create patches: ru-vid.com/group/PL4a8Oe3qfS_-CefZFNYssT1kHdzEOdAlD
@@white2rnadoThank you very much, ok I will give it a try, I already set up the program on my Pi, is there a size limit on uploading soundfonts? Because I got one thats 1gig and it uploads for about 20% and then throws an error, what can I do for this?
@@unboxingglory8451 unfortunately that's because a Raspberry Pi 3B+ has 1G of RAM total, with only about 700MB being available for loading soundfonts. You could get a RPi 4 with 2, 4, or 8G of RAM, but your font will still take a while to load. IMO a lot of soundfonts are terribly bloated in size, packed with absurdly high quality samples that don't actually sound better, and are often unusable in many situations because they've been recorded with room effects to make them sound pretty - that's my hot take. The largest single instrument soundfont I use is the 75MB jRhodes font, and it sounds perfect. Check out www.polyphone-soundfonts.com - there are a lot of good ones on there.
Thank you very much for this, a way better and more stable than any other pi headless synth that I come across. I get all working but I have one small problem that I cannot figure out. I have transferred the sf2 file into the sf2 folder via squishbox file manager. However, I cannot select that soundfont when headless scrolling through all soundfonts. How can I make it work, do we need to edit bank1.yaml ? Also, I am curious how can I change the default order of soundfonts, to make one that I upload play first when turning it on?
You do need to edit one of the bank files so it uses preset(s) from your new soundfont, or create a new bank file. The pi will always load the last bank file you were using when you turn it on and select the first patch in that bank file. Check out my lesson series on creating banks and patches for more info: ru-vid.com/group/PL4a8Oe3qfS_-CefZFNYssT1kHdzEOdAlD Your question does make me think I ought to add an option for button(s) that will just scroll through every possible preset in every soundfont you've loaded onto the Pi - although that could take a lot of scrolling!
Ah yes thank you. Very well explained! Anyway, yes I also think it would be great update if you add scroll through root bank folder. As for example my midi keyboard is poor on program keys so I can only assign previous and next preset to two buttons but lack third for bank. As always thank you very much for your hard work!
I flashed my raspberry according to the instructions, connected my midi drum module, the raspberry flashes a red diode 3 times in a period. I don't have buttons with notes 24,23,22,21
Same here :/ Hope we would have a workaround for this ? I've tried 2 fresh install with RPI Imager, 32bit Lite, RaspberryPi 2B, with and without the extended 400MB soundfonts, giving the same results. I've also tried to put the sd card in a RasPi 3B, ended with same Power Led Blinking 3 times. It is said on github that this is due to a bank issue... well, having not touched any file, i do not know how to fix it.
My bad! I was updating the main bank file and made a typo. Should be fixed now! If you run the install/update script again and say yes to the question about "Overwrite existing banks/settings" it should work.
@виталий соколовский you can change the values of CTRLS_MIDI_CHANNEL, DEC_PATCH, INC_PATCH, and BANK_INC at the top of the headlesspi.py file to match control change values that are sent by your drum controller.
@@white2rnado I reinstalled everything, but I still did not hear the sound. If I go to the command line of my raspberry - I see two midi clients 20 - my drums and 128 - fluidsynth. if I run fluidsynth -a alsa -g 5 /usr/share/sounds/sf2/FluidR3_GM.sf2 - I still can't hear anything, but when I check midi clients - I see another fluidsynth 129 if I run aconnect 20: 0 129:0 - I hear drums. but restarting my raspberry I can't hear anything again. What am I doing wrong? How to get away from the command line every time?
I have been working with this again and did a new install. With the current install script there doesn't seem to be a way to avoid starting automatically on bootup. Help?
The command `sudo systemctl disable squishbox.service` will prevent the synth from running at startup. `sudo systemctl enable squishbox.service` will bring it back. This does seem like a useful option to have when installing - I'll work on adding it.
@@randriamamonjytsilavina9257 Sure, although there will be a bit more lag since the Pi Zero isn't as fast as a 3B+, and you'll need to use a USB sound card or solder on your own headphone jack (here's an example: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-3pXB90IDNoY.html)
My midi controller (Mono Price Stage Right 606607) only has knobs and sliders. Do you know if I can use these to change sounds? Must I have a button to do this? Thanks for the great video. I have it working but am unable to change from the default piano sound.
Yes! By default, a knob or slider mapped to CC #23 will scroll through the patches. The Pi's green LED will blink on switching patches to provide feedback. You can also change the value of SELECT_PATCH in the headlesspi.py script to a different continuous controller number if that's more convenient.
Hi, this looks very handy to me. Thx! But I can‘t find a full image of this project. Can you please post a link with ready to play image for raspberry 3?
I've decided it's best for me to not provide full SD card images - the install script should work on any Raspberry Pi with one of the standard Raspberry Pi OS images installed!
@@white2rnado Everything works now fantastic for me!!! Thanks for helping me at the github-project with configurating my midikeyboard :D. Sometimes it is hard to find the problem if you have no experience and don't know where to start. No I am very happy and learned lots of things. Thanks again!!!
When you run the install script it should ask you for the control change (CC) values for patch and bank change buttons. Enter the CC values sent by the pads on your MPK mini, or use the Editor software to configure the pads to send CCs 21, 22, and 24.
This is really cool. I may have to give this a try. I would really like to try my hand at creating my own audio filter. Something like an fx pedal for a guitar or bass but for whatever type of audio I choose to run through it. Anybody have any experience with something like this? I think I can figure it out by looking through similar projects but damn do I wish more of my tech buddies were into music the way that I am. Instead they prefer video games and cartoons which is cool, but I couldn’t care less about those things to be honest. 😂
Good stuff! Has anyone tried this with a wind controller like EWI USB? I’m certain it would work, just wondering which sound fonts and settings to recognize breath control. Headless with USB sound card on a pi zero W2 and a battery? (small enough to tuck away with the wind instrument)
People have used this with breath controllers with good results. You just want to route breath control (CC 2) to expression or volume (CC 11 or 7). You may also want to turn on the legato "pedal" by sending a value >63 on CC 68. When you play successive notes without releasing the previous note (i.e. stopping your breath), most soundfonts will play the next note with less of an attack, allowing them to blend together. This example shows how to set this up in a bank file: gist.github.com/albedozero/0c2561be1d4100a6632339cd29a85789
Should work great with a Pi Zero, USB sound card, and a small phone battery! These guys did something very similar: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-Qz8cj-6Ql4s.html
Thanks for the catch! Re-running the install script now will fix the issue. You can answer "n" to everything except the "What script should be run on startup?" question if you don't want to reinstall everything.
So, one bugfix (maybe): don't know if you recently changed the file on the "geekfunklabs.com/squishbox" but it is returning an "DOS/Windows" version of the text (with CR/LF end lines) instead of a UNIX version (with just LF). I was getting an error from "bash", but then I got the file locally and I just run "dos2unix" and it worked.
Can you re-run the install script and say no/no change to everything except installing the web-based file manager, and post the output here or at github.com/albedozero/fluidpatcher/discussions?
@@white2rnado I get a 404 I guess. Just a website note available. I can reinstall. I will say that the keyboard works which is great. Was playing it today. Just wanted to be able to add sounds.
Thanks! I wouldn't say it's easy, but I think it's possible. You'd have to convert your scala file to an MTS sysex file, which you could do using this tool: www.microtonalsoftware.com/scl-scala-to-mts-converter.html. Then you can send your sysex file when a bank is loaded or a patch is selected using the `sysex` keyword, described here: github.com/albedozero/fluidpatcher/wiki/Bank-Files
It runs fine on the older Pi Zero W, except you'll need a USB sound card, plus a hub to plug in your MIDI keyboard, and the latency is a bit more noticeable. Works great on the Zero 2 W too.
@@white2rnado awesome. Have you come across any looping or sampling modules that could work with fluidsynth? The idea of a box that can turn any midi keyboard into a poor man's OP-1 is very interesting.
@@WesDoesStuff Fluidsynth doesn't take audio input, so you couldn't sample live. You can put audio samples in a soundfont and play them back as you need. Also maybe check out samplerbox
You did a great job! I have only a slight problem with "headless"! Everythings works properly when keyboard an HDMI are connected! When I try to start headless I get no sound; LED is blinking red 4 times! I added manually : "sudo python3 /home/pi/headlesspi.py" to the rc.local but it didn`t help. Any idea?
Four blinks means the script is running but encountering an error. Try this - with your screen and keyboard connected, enter command "sudo systemctl stop squishbox.service; python3 headlesspi.py". That will run the script interactively and should give you some more info about the error. Nice idea trying to get the script to run by adding it to rc.local, but since it's already running as a startup service this will actually start a second instance of the synth, and you won't know which your controller is connecting to.
@@alfredruethlein9934 had the same problem, after several hours of research and messing around i found the fix, put the sd in a standard computer to browse the files and open the config text file, the first option is #hdmi_safe=1 I deleted just the # symbol(uncomment), saved and closed. and now it just works as it should, I'm guessing without a display detected it was automatically going to safe mode.
Awesome, it's like my old yamaha keyboard have a new life, can you please explain how the router rules work because when i'm playing midi song and the channel 9(percussion) goes to a piano sound, thanks master
I made a series of videos on setting up bank files: ru-vid.com/group/PL4a8Oe3qfS_-CefZFNYssT1kHdzEOdAlD Sounds like you might need to select the correct bank in the soundfont - percussion is usually bank 128. Note that MIDI channels in this software start with channel 1, like most keyboards, so percussion is actually MIDI channel 10 😉
@@white2rnado so many thanks dude, you rock 😃, i'll try this, i want to work on a raspberry that can run ".STY" (yamaha) file, but my knowlege on raspberry is very basic, i have almost all knowlege on MIDI ,it could be a big deal
@@onjaravanonjanahary632 Cool idea! I didn't know about Yamaha .sty files before. FYI the update I'm working on will have the ability to play MIDI files, loops, sequences, and arpeggios - so a conversion could be very useful!
@@onjaravanonjanahary632 I like to use github for discussing ideas/updates - feel free to post an idea here: github.com/albedozero/fluidpatcher/discussions
Howdy. I've downloaded, and thank you for the share. When I change patch from the first which is piano, the pi crashes. I have a 3b+, any help would be awesome. I literally got my pi on Saturday, so am a total beginner when it comes to this computer language, I'm gonna start learning python ASAP. Thanks from England.
@@MegaAshski would you open up a terminal and enter the commands: sudo systemctl stop squishbox.service python3 squishbox.py Then switch patches and paste any error output you get. That should help debug. Feel free to reply here or post an issue at github.com/albedozero/fluidpatcher/issues 😊
@@white2rnado Ok so I booted up, the piano soundfont voiced when I played the midi keyboard, I entered the command you provided in terminal. The following messages appeared and the sound stopped. "Failed to stop python3.service: Unit python3.service not loaded. "Failed to stop squishbox.py.service: Unit squishbox.py.service not loaded. Usually when it's headless the pi just crashes as soon as I load a new track. I tried last night on my NI KKm32, and nektar lx49+. The Nektar I pressed every button to change patch with no luck. The M32, one of the encoders changes cc settings, and this is when the pi crashes. Thanks for taking the time to help me get this sorted.
hi, great tutorial, just what I needed. but please Help!! my midi M-audio Keystation49 does not play any sound on de piano keys, only the to keys make sound!? it is recognized see: Port Client name Port name 0:0 System Timer 0:1 System Announce 14:0 Midi Through Midi Through Port-0 20:0 Keystation 49 Keystation 49 MIDI 1 20:1 Keystation 49 Keystation 49 MIDI 2 If I debug my keys I hear sound on top keys (play, stop, pauze button) and I see hits with following command but NO sound: aseqdump -p "Keystation 49" Waiting for data. Press Ctrl+C to end. Source Event Ch Data 20:0 Note on 13, note 36, velocity 67 20:0 Note off 13, note 36 20:0 Note on 13, note 38, velocity 53 20:0 Note off 13, note 38 20:0 Note on 13, note 40, velocity 63 20:0 Note off 13, note 40 20:0 Note on 13, note 41, velocity 36 20:0 Note off 13, note 41 20:0 Note on 13, note 57, velocity 29 20:0 Note on 13, note 48, velocity 6 20:0 Note off 13, note 57 20:0 Note off 13, note 48 any Ideas what I am doing wrong?? tnx
Looks like your Keystation is sending notes on MIDI channel 13, but the default banks in the software assume your keyboard sends on channel 1. You could edit the bank files, but it's probably easier to change your keyboard channel to 1 as described on page 11 of the manual (www.m-audio.com/support/documents-search) You'll probably want to assign your octave buttons to send momentary CC messages to change patches as well!
@@xgansterplayz Sure - in the "fluidsettings" section of SquishBox/squishboxconf.yaml just add an item " synth.gain: XX". XX can be from 0.0-5.0, but value above 1.0 will probably sound distorted. Check the headphones volume with the 'alsamixer' command as well.
Amazing job! But I can't install in my Rpi 3B :( After a long time installing appears: Apt failed to install tap-plugins! Logged to install-log.txt Any ideas to solve it?
Sometimes the Raspbian software repository is too slow to respond and gives up midway through the install. Usually it works if you try the install a couple more times, but if you're feeling technical you can edit /etc/apt/sources/list and replace raspbian.raspberrypi.org/raspbian/ with a mirror that's near you from this list: www.raspbian.org/RaspbianMirrors/. I'm going to add an option for this in the install script in the near future.
Hi, I would like to install this on a rpi v2 but when I type the download adress I'm getting an error " line 1 syntax error near unexpected token ' Newline' " any idea what I can do to get the script running?
That sounds unexpected - are you using the latest version of Raspberry Pi OS? It might help me if I could see the exact text of your command and the output. You can post them easier by creating an issue at github.com/albedozero/fluidpatcher/issues, or you can just email me 🙂
Hi, got it working at first I coppied what was typed in in the youtube film, later I found the commands in the text, and that worked. I have tried to connect a usb soud card but that gave to much latency and the headphone sounds weak. can you tell me how to ajust de fluidsynts gain? I know it is possible burI dont know how to do this
@@dennisollebek2683 If you add `synth.gain: 0.6` underneath `fluidsettings:` in the SquishBox/squishboxconf.yaml file it will increase the gain. You can set values 0.0-5.0 but above 1.0 it will sound distorted. If you re-ran the installer script to set up your USB sound card (you can just say no to the other options), it should give you the best latency settings. You can also try adjusting the values of audio.periods and audio.period-size in squishboxconf.yaml. Unfortunately, there are many different types of USB sound cards and some have worse latency than others.
Hi, I've played abit with the settings and it works, latency could be better but by calculations it should be around 8 msec. The sound card didn't work " out of the box" I had to change the alsa.conf file to get it working. Squishbox be good on a rpi 3 or 4 but the version 2b must be pushed to it's limits go get an accepteble result, thanks for sharing squishbox with us. Regards, Dennis
You can prevent SD card corruption by telling the Pi not to write to the SD card. Obviously, it won't work if your script needs to write to the card, but if it doesn't, or you can get around it, here's the link: medium.com/@andreas.schallwig/how-to-make-your-raspberry-pi-file-system-read-only-raspbian-stretch-80c0f7be7353
Nice - could be very useful! Currently the script has to write to a file object to blink the LEDs, but maybe it's worth trading that off for longer SD card life. Thanks!
In theory, you should be able to send MIDI from the Pi to another computer running a DAW and vice versa, but there isn't a simple, readily available hardware solution for connecting USB MIDI hosts (i.e. computer computer) that I'm aware of. Working on it, though - speak up if anyone knows of one!
It works *BUT* the software crashes when I load another SoundFont. If you got a fix for this, please let me know!! (i have a Raspberry pi 4 model b with a 16GB sd card, it's raspberry pi os lite)
@@white2rnado fluidsynth: warning: Requested a period size of 64, got 444 instead fluidsynth: warning: Failed to set thread to high priority fluidsynth: Connection of Midi Through Port-0 succeeded fluidsynth: Connection of Impulse MIDI 1 succeeded fluidsynth: Connection of Impulse MIDI 2 succeeded fluidsynth: warning: Failed to set thread to high priority Connection is already subscribed Connection is already subscribed Connection is already subscribed Loading bank 'bank0.yaml' .. fluidsynth: warning: Sample 'SineWave': ROM sample ignored Bank loaded. Selected patch 1/6: Simple EP Selected patch 6/6: Elevator Jam Selected patch 5/6: Analog Saw Selected patch 4/6: Weird Keys Shutting down.. Tho I think I know what the error is. The button to change soundfont is a slider on my keyboard. (Novation Impulse 63) And fluidsynth think that I press the button constantly and that would explain why it's shutting down after a few seconds. But I don't know what numbers the buttons on my keyboard are, Do you know how I can find that?
@@najjjb2 type `aconnect -io` to see what port ## your midi controller is, then `aseqdump -p ##` to see what messages it sends when you press keys/buttons/etc. If you use a slider to change patches its CC# should match SELECT_PATCH in the headlesspi.py script, not DEC_PATCH or INC_PATCH
Just trying the setup now but I don't get any sound when I plug in the midi controller (Launchpad Pro Mk3). How do I debug because I am very new to audio on a Raspberry Pi.
Are you certain you're sending note messages from the Launchpad? The default initial MIDI Mapping on the Mk3 only sends CC (continuous controller) messages - Custom 3 and Custom 4 look like they send some notes. To do some debugging, you can log in to your Pi via ssh (see www.raspberrypi.org/documentation/remote-access/ssh/ for how) and type: sudo systemctl stop squishbox.service python3 headlesspi.py This will give you some feedback on when the script changes patches, banks, etc. You can also type `aseqdump -p 20:0` to see what MIDI messages your controller is sending (if your controller is not on port 20:0 type `aconnect -i` to see what it is). Feel free to reply or post in the forum at geekfunklabs.com/forums/forum/questions-issues/ if you have more questions!
@@white2rnado Just had a look at the forum and don't see a way to register to ask a question. I have run the scripts and I can see the launchpad as device 24 and there are note on and off messages. I have tried changing the channel for the midi notes but nothing happens. What's the next step to test?
Try rebooting the Pi (so the script is running) and log in via ssh again and type `aconnect -iol` - this will let you see if the Launchpad is connecting to FluidSynth. Also, see if your audio output is working by typing `speaker-test`.
Got another issue.. so it FINALLY works but then my pi crashes within 5 minutes. I have raspi 4 on the latest raspberry software and I also have a mini fan connected to it so I feel like it’s not over heating. Any thoughts?
Yeah - if you're running the Pi headless, the synth shouldn't cause it to heat up enough to even need the fan, unless you've got some other software doing lots of things as well. Here are tips on how to figure out what might have caused a system crash/restart: raspberrypi.stackexchange.com/a/38005 - let me know if you find anything there.
I installed the software and get "Root path "/home/og/SquishBox" not found!" when starting the web app, although the directory is there. What's going on?