Hello. I am new to coding and Sonic Pi. I have been using FL Studio for years. I should note that I am working on a Mac. Through the Mac MIDI set up I was able to connect Sonic Pi to FLS. However it is not behaving the way I imagined. FLS only plays whatever channel I happen to have selected no matter what MIDI channel I am telling Sonic Pi to play. I was hoping I could have Sonic Pi playing to several MIDI channels in FLS (bass, lead, drums, etc).
Is this a problem with my MIDI settings or my understanding of how MIDI works? I have attached screen shots of my FLS MIDI settings.
welcome to our forums! Hopefully we can get you over this hurdle and up and running as soon as possible.
I’m not quite sure yet what your issue is - it could either be with Sonic Pi or FL.
One thing I do notice though is that you’re just using midi_note_on without a following midi_note_off. Your code when looped is essuentially like an infinite series of fingers pressing an infinite series of piano notes and not letting go.
The typical option here is to call midi which automatically calls midi_note_off after 1 second (which can be modified with the sustain: opt). Alternatively, you can manually call midi_note_off for very specific levels of control.
Also of note, if you don’t specify a port: to your call to midi_* then the message will be sent to all MIDI outputs, so in your case:
iac_driver_fl_studio
iac_driver_sonic_pi
network_sonic_pi
If you just want to send to one port (such as iac_driver_fl_studio) then you need to specify that explicitly:
I’m completely stumped. Now I have no sound at all. I have not changed any settings. Sonic Pi is receiving MIDI from FLS, but not sending anything. Here is my code.
I’m not sure what the issue is, but when I’ve run into similar problems I’ve found Midi Monitor to be useful to look at exactly what midi message are being sent.
Maybe try to put your code into a loop with a sleep to give sonic pi time to send the midi message.
Could you send us a video via YouTube as example. You can try to use another software, helm a free synth and see if helm can receive midi notes
OK, my loop plays, but still no sound in FL. I used @emlyn’s suggestion and installed MIDI Monitor. It shows the source s being from iac_driver_fl_studio. Shouldn’t the source be iac_driver_sonic_pi?
If you want to send the same thing to all channels, the easiest way is probably to leave off the channel: param, then I believe it will send the note to every channel.
But it may be better to call midi multiple times, one for each channel you want to send to, that way you get full control of what gets sent to each channel.