Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MIDI: automatically refresh ports and try again if no output found #463

Open
PaulMorris opened this issue Aug 31, 2014 · 11 comments
Open

MIDI: automatically refresh ports and try again if no output found #463

PaulMorris opened this issue Aug 31, 2014 · 11 comments

Comments

@PaulMorris
Copy link

A wish: when the user tries to play a midi file and "No output found!" occurs, could Frescobaldi automatically refresh the midi ports, choose one if one is available, and try playing the file again, before giving the "No output found!" message? (If the refresh results in more than one available port, perhaps a dialog could appear that allows the user to choose one?)

Currently I am doing this refresh and select process manually via preferences almost every time I want to play midi (because I forget to open qsynth before opening Frescobaldi).

@fedelibre
Copy link
Member

This would be nice. But if you don't really need Qsynth you can define your fluidsynth options (including the port name) in a service to be launched at login. Read this thread:
https://groups.google.com/forum/#!topic/frescobaldi/S8cnCfyT2dI

@wbsoft
Copy link
Collaborator

wbsoft commented Oct 4, 2014

If you specify only the first characters of the input port, Frescobaldi will automatically pick one that matches. But it still is a good idea.

@proski
Copy link
Collaborator

proski commented Jan 26, 2015

It would be nice if Frescobaldi could just run timidity as a fallback if no MIDI ports are found. Frescobaldi users should not need to use the command line to run Timidity. No GUI is complete if it needs the command line for some functionality.

@wbsoft
Copy link
Collaborator

wbsoft commented Jan 26, 2015

I think a good desktop environment should have MIDI channels. A user should be able to enable running a MIDI softsynth in the OS settings.

A user can use LilyPond→Generated files and then select the MIDI to open it in an external application. Then an external player will play it (and which one can be configured in the helper apps page).

@fedelibre
Copy link
Member

I've added a few simple instructions in the wiki about MIDI playback onLinux.

When I used Debian, I remember that I had problems with the timidity-daemon package, which was often stopped suddenly. Fedora does not have any timidity-daemon package so I explained how to set up a systemd service, which seems to work fine.

@fedelibre
Copy link
Member

I think a good desktop environment should have MIDI channels. A user should be able to enable running a MIDI softsynth in the OS settings.

A user can use LilyPond→Generated files and then select the MIDI to open it in an external application. Then an external player will play it (and which one can be configured in the helper apps page).

Well, this is a different case. When I select Generated files, I know that external applications will open the files (same for PDF) and this depends on desktop settings. But here we are talking about Frescobaldi MIDI player. At the moment, the user must care about having an active soft synth running before Frescobaldi is started. Otherwise any MIDI file will play silently. Frescobaldi may do better here.

BTW, the wiki page linked above seems quite incomplete. I'll ask for comments on Frescobaldi mailing list.

@fedelibre
Copy link
Member

I think a good desktop environment should have MIDI channels. A user should be able to enable running a MIDI softsynth in the OS settings.

Anyway, I see the point of Wilbert here.
I'll check what gnome-control-center developers may think of it.

@fedelibre
Copy link
Member

I'll check what gnome-control-center developers may think of it.

I had a quick chat on IRC, but I don't think they would agree, as it's a pretty specific task and you'd better use tools designed for that, such as Qsynth.

@fedelibre
Copy link
Member

Anyway, there's an easy workaround to avoid having to close Frescobaldi, start Qsynth first and then launch again Frescobaldi in order to pick up the right synth port.

By default Qsynth uses the process id (pid) as value of the port.
In Setup>MIDI Client Name ID choose qsynth (instead of pid). Then Frescobaldi will always have the right port/name set up, even if you launch Qsynth afterwards.

You can achieve the same on the command line if you use fluidsynth -p NAME.

@fedelibre
Copy link
Member

Finally, what I find not user-friendly is the fact that Frescobaldi does not warn the user if no output is found. It should print a message saying "Hey, you need a MIDI synthesizer to play the file".

@fedelibre
Copy link
Member

Currently I am doing this refresh and select process manually via preferences almost every time I want to play midi (because I forget to open qsynth before opening Frescobaldi).

Same here. I recently disabled my custom systemd fluidsynth.service which used to start at system login, as it was a waste of resources (I don't use Frescobaldi that often). Now I launch it manually in a terminal, but sometimes I forget it and I have to refresh the ports otherwise MIDI output is not found (no need to change any setting though, as explained above).

It would be nice if there was a MIDI setting where I could set a command to be launched at startup of Frescobaldi, so I don't have to open a terminal (or Qsynth or whatever) first.
In Linux it could be the fluidsynth command directly or a systemd service. In both cases, it should be closed when Frescobaldi is closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants