kmatheussen / radium

A graphical music editor. A next generation tracker.
http://users.notam02.no/~kjetism/radium/
GNU General Public License v2.0
835 stars 36 forks source link

[Feature request] Music (possibly midi) export #1404

Open mward25 opened 1 year ago

mward25 commented 1 year ago

I'd really like some way to get music out of radium and into sheet music. This could be via musicxml, ly (lilypond), midi, or any format that can be converted to musical data that I can import into musescore without to much work.

I figure the general implementation from the user's perspective would go something like this: UI Implementation:

Keybinding:

Things that in general I'd like to have with this feature:

Things that I in general are indifferent about with this feature:

Anyway, have a great rest of your day.

EDIT: Clarified some things.

kmatheussen commented 1 year ago

Yes, I think export MIDI would be more natural to implement before any type of score format. In the old days, when Radium was only about MIDI, you could create scores from .rad files using Common Music Notation, but it might be less work implementing MIDI export than reviving that code.

mward25 commented 11 months ago

I figured out how to do this utilizing Radium's built in Pure Data.

Here's the patch: export_midi.pd.gz And here's my little test radium file: midi_export_test_embeded_samples.rad.gz And finally, here is the exported midi from that file: exported_midi.midi.gz

NOTE: I have not yet figured out how to have a Pure Data instrument open a specific patch by default, so in this example you will have to do so manually.

I'm satisfied with the results. Should I close this issue?

kmatheussen commented 11 months ago

Is this better than sending midi out to another sequencer, which records the midi messages?

On Thu, Jul 27, 2023 at 9:36 PM mward25 @.***> wrote:

I figured out how to do this utilizing Radium's built in Pure Data.

Here's the patch: export_midi.pd.gz https://github.com/kmatheussen/radium/files/12187529/export_midi.pd.gz And here's my little test radium file: midi_export_test_embeded_samples.rad.gz https://github.com/kmatheussen/radium/files/12187540/midi_export_test_embeded_samples.rad.gz And finally, here is the exported midi from that file: exported_midi.midi.gz https://github.com/kmatheussen/radium/files/12187581/exported_midi.midi.gz

NOTE: I have not yet figured out how to have a Pure Data instrument open a specific patch by default, so in this example you will have to do so manually.

I'm satisfied with the results. Should I close this issue?

— Reply to this email directly, view it on GitHub https://github.com/kmatheussen/radium/issues/1404#issuecomment-1654424935, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIX3J3CSXH7ESAVNJHPHQ3XSK7K7ANCNFSM6AAAAAAXJB7ARE . You are receiving this because you commented.Message ID: @.***>

kmatheussen commented 11 months ago

You can also use jack transport to make sure both radium and the sequencer-program starts playing and recording at the same time. Maybe qtractor, ardour, muse, rosegarden, bitwig, etc. could be used for that.

On Thu, Jul 27, 2023 at 11:17 PM Kjetil Matheussen @.***> wrote:

Is this better than sending midi out to another sequencer, which records the midi messages?

On Thu, Jul 27, 2023 at 9:36 PM mward25 @.***> wrote:

I figured out how to do this utilizing Radium's built in Pure Data.

Here's the patch: export_midi.pd.gz https://github.com/kmatheussen/radium/files/12187529/export_midi.pd.gz And here's my little test radium file: midi_export_test_embeded_samples.rad.gz https://github.com/kmatheussen/radium/files/12187540/midi_export_test_embeded_samples.rad.gz And finally, here is the exported midi from that file: exported_midi.midi.gz https://github.com/kmatheussen/radium/files/12187581/exported_midi.midi.gz

NOTE: I have not yet figured out how to have a Pure Data instrument open a specific patch by default, so in this example you will have to do so manually.

I'm satisfied with the results. Should I close this issue?

— Reply to this email directly, view it on GitHub https://github.com/kmatheussen/radium/issues/1404#issuecomment-1654424935, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIX3J3CSXH7ESAVNJHPHQ3XSK7K7ANCNFSM6AAAAAAXJB7ARE . You are receiving this because you commented.Message ID: @.***>

mward25 commented 11 months ago

I'd tried Qtractor, Ardour, and Muse, and had various problems with each, (normally involved with them finding the correct midi ports, or syncing properly with jack).

However I hadn't tried Rosegarden before, so I gave that a try and it worked great; using Rosegarden in conjunction with Radium is exactly what I wanted/needed. Thanks for the recommendation.

I see no advantage to using puredata, using Rosegarden works much better, and makes more since for what I want (because it has built in scoring).

kmatheussen commented 11 months ago

Great to hear! I see one advantage with the pd-solution though, and that's timing. I guess it's possible to use jack-midi somehow (Radium supported it directly before, but not anymore, so now you have to use a third party plugin for sending midi to jack), and then you will get perfect timing, but currently Alsa midi is used, and then timing is not guaranteed to be perfect. If it makes any notable difference, I don't know though.

On Fri, Jul 28, 2023 at 12:57 AM mward25 @.***> wrote:

I'd tried Qtractor, Ardour, and Muse, and had various problems with each, (normally involved with them finding the correct midi ports, or syncing properly with jack).

However I hadn't tried Rosegarden before, so I gave that a try and it worked great; using Rosegarden in conjunction with Radium is exactly what I wanted/needed. Thanks for the recommendation.

I see no advantage to using puredata, using Rosegarden works much better, and makes more since for what I want (because it has built in scoring).

— Reply to this email directly, view it on GitHub https://github.com/kmatheussen/radium/issues/1404#issuecomment-1654686602, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIX3J3GYXP5CUK3ZR4SQFDXSLW5TANCNFSM6AAAAAAXJB7ARE . You are receiving this because you commented.Message ID: @.***>