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

Can't import exported MIDI into Garageband #484

Closed
pablote opened this issue Mar 4, 2017 · 25 comments
Closed

Can't import exported MIDI into Garageband #484

pablote opened this issue Mar 4, 2017 · 25 comments

Comments

@pablote
Copy link

pablote commented Mar 4, 2017

This used to be working on 0.9.6 beta1. I've recently installed 0.9.7 and now exported MIDI files don't import well.

I'm attaching both midi tracks and how they look when opened with Garageband. The file from 0.9.7 adds a piano track for some reason, and the drum track doesn't play any sound.

Thanks for the help

0 9 6

0 9 7

[midi files.zip](https://github.com/hydrogen-music/hydrogen/files/818860/midi.files.zip)
@pablote
Copy link
Author

pablote commented Mar 4, 2017

i think the midi files didn't attached well

midi files.zip

@mauser
Copy link
Member

mauser commented Mar 5, 2017

Hi!

Thanks for the report! This question appeared today at another place. I'm not sure if you're the same person, so i will cite my answer here again:

since 0.9.7 Hydrogen uses the midi out value for the midi export. Before, hydrogen just took the >instrument position + 36. So you should make sure that your kit has the desired midi out values set.

We're aware of the fact that this behaviour might be confusing/unclear, and it is on my todo list for the >next version of hydrogen.

@pablote
Copy link
Author

pablote commented Mar 5, 2017

Thanks for the reply, I'm not the same guy.

Sorry if this is a noob question but I'm not sure what to do. Is this midi out value something I can set? so I just set it to 36 + current position? I'm using a set called GMkit, which I think it's the default.

thanks

screen shot 2017-03-05 at 10 44 22

@mauser
Copy link
Member

mauser commented Mar 5, 2017

Hi!
Ok, what a coincidence :) You can set the value on the instrument tab. There is a section with a "channel" and "note" box. Those numbers are the midi out channel and the midi note value (used for the midi output).

midi_out

@funkmuscle
Copy link

hey mauser, it was me at linuxmusicians.com. thanx for the help and pointing me here.

@JonnyTech
Copy link

Ah, thank you, just what I was looking for too!

@mauser
Copy link
Member

mauser commented Mar 5, 2017

Hi everyone,

would it be helpful if the midi exporting method (use midi out values (0.9.7)/use instrument number + 36 (0.9.6 and before)) would be configurable? Maybe via an midi export dialog? Or what would be need to make midi exporting more "user friendly" ?

@funkmuscle
Copy link

very good question. I've always used DrumGizmo with H2 as the as sequencer editor ever since someone at linuxmusicians made h2drumkits xml for the DrumGizmo kits. Whoever made them I guess added the midi out values so I've never thought of it.
Before DG, I ran H2's multi-output to Ardour's multi-track to get individual instruments.. Other than that I know nothing about midi and how it works. I just agree we do need a way to add the values as now AV kits have multi outputs. H2 is the best for creating patterns.
Can't the value be automatically assigned once a kit is loaded. I mean the kit's instruments are labeled so is it possible to auto-assign the values?

@elpescado
Copy link
Contributor

Hi,

I have proposed solution:
#450

@elpescado
Copy link
Contributor

Hi all,

I don't think adding configuration options is a good idea. I don't see how that would be better than current state. After all, fix for reported error is simple. In worst case, user has to set MIDI note values. In best case, reloading drumkit (which is three clicks) should work just fine. Configuration option wouldn't add any convenience here. On the other hand, what's real problem is that this situation is confusing. It's hard to tell what's going on when exported file has only Hi Bongo notes. Users still would have to look for help only to find that they have to switch some configuration option in order to have usable MIDI export.

I believe good solution should do the right thing 90% of the time, and provide viable workaround for remaining 10% cases. I have written code that detects if drumkit does not have MIDI notes assigned (i.e. all are set to the same note) and assigns default values when so. I was pointed that this might break when piano roll is used to set note values. Would checking for piano roll notes in addition to drumkit note values make this safer?

Or maybe I could rework my Pull Request to show some information box when assigning default notes happens, and wrap the whole operation in undoable action, like:

Hi, I have noticed that this song wouldn't sound good when exported as MIDI file, but don't worry, I have fixed that for you. [ Undo ] [ Acknowledge ]

Alternatively, rework Pull Request to detect this situation, show alert box, and ask user what to do, like:

Watch out! This song has some unusual MIDI setup. Would you like me to fix it? [ Yeah, go ahead ] [ No, I like Hi Bongo ]

Przemek

@funkmuscle
Copy link

I think I understood what elpescado said and I think it could work.

@mauser
Copy link
Member

mauser commented Mar 7, 2017

Hi!

I agree that a configuration option (maybe hidden somewhere deep in the prefences dialog) is not a suitable option for this problem.

My alternative for elpescados idea was to create an export dialog, which prompts the user with his choices. The dialog could explain which settings are taken into account for the export. This would avoid the current confusion ("Where are those values coming from? What can i do to change them?). We could also embed an "Help" button which points directly to a chapter in the user manual. This is sth. which we haven't done yet, but that might help a lot people (the same is certainly true for other dialogs, like the sample editor).

@elpescado
Copy link
Contributor

Export dialog still shifts the burden to user. One has to select correct option on every time song is exported. Choosing wrong option results in unusable MIDI file, which in turn can be only found out after unsuccessfully importing that file into other application. Correcting that means going back to Hydrogen, exporting, choosing the other option, exporting and importing back to target application.

Hydrogen could remember selected options, but that's still not perfect - correct settings might depend on drumkit used. It could be saved in song file - but how that's different from storing correct MIDI setup?

I think the core issue is misconfigured MIDI setup in song files. Previous MIDI export behaviour (36+n) simply hid that issue. Correct action should be to help user sort out MIDI setup. We could add options to MIDI exporter, but then user still would have broken live MIDI output and MIDI input and recording.

@funkmuscle
Copy link

funkmuscle commented Mar 8, 2017 via email

@elpescado
Copy link
Contributor

In order for instruments to mute each other, you must assign them to the same mute group using Instrument panel (just below ADSR controls).

@funkmuscle
Copy link

funkmuscle commented Mar 8, 2017 via email

@elpescado
Copy link
Contributor

I think mute groups are not used by MIDI. You'd need to check settings of virtual instrument that you use in Ardour.

@funkmuscle
Copy link

funkmuscle commented Mar 8, 2017 via email

@mauser
Copy link
Member

mauser commented Mar 8, 2017

We could add options to MIDI exporter, but then user still would have broken live MIDI output and MIDI input and recording.

@elpescado :

The MIDI input (and i suppose therefore also recording) can be switched between using the "classic" way (instr number + 36) and using the midi output value as the midi input note for instruments.

What i had in mind by "shifting the burden to user" is to make the decision about the export method visibie to the user. People have then the freedom to choose whether they want to assign values via the midi out property or via the old, automatic way.

But if everyone here favors the other way (an implicit mechanism in the core of hydrogen which does "the right thing"), i don't have a problem with accepting that pull request and leave the rest untouched.

@funkmuscle
Copy link

funkmuscle commented Mar 9, 2017 via email

@kurddt
Copy link
Contributor

kurddt commented Mar 9, 2017

My 2cents:

I think that the idea of @elpescado is the best, ie:

Alternatively, rework Pull Request to detect this situation, show alert box, and ask user what to do, like:
Watch out! This song has some unusual MIDI setup. Would you like me to fix it? [ Yeah, go ahead ] [ No, I like Hi Bongo ]

  • For people who don't care about MIDI export, they will probably select Yeah and never show this dialog again (for this particular song)
  • For people who care and used the default setting (node + 36), they will select Yeah, and their export will work as expected
  • For people who care but want to use the same note for all instrument, they will select No but see the dialog every time they open a song (very annoying). Maybe A checkbox could be added to remember this choice ?
  • For people who already have changed the default output note, the default assignment will not run, The dialog will not be prompted. Their export would work differently than before 0.9.7 but they probably know how to fix it (they already changed the ouput note).

@elpescado
Copy link
Contributor

To clarify, instead of showing dialog, I'd like to show "info bar" that does not require user to take immediate action, like in Firefox:

info bar example

@mauser
Copy link
Member

mauser commented Mar 11, 2017

Hi!

Ah, ok. That could be a good solution.

Just out of interest: Is such an infobar already part of QT? Or would this be a custom widget which we will have to implement on our own?

@elpescado
Copy link
Contributor

I was looking for it and couldn't find one, so I think Qt doesn't provide any. I have seen suggestion that QStatusBar may be used.

Anyway, that widget is pretty simple so creating custom one shouldn't be prohibitively complicated.

@mauser
Copy link
Member

mauser commented Mar 14, 2018

The info bar from @elpescado is available in the master branch of Hydrogen for some time. I'm going to close this issue now..

@mauser mauser closed this as completed Mar 14, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants