Skip to content

Midi/track input#170

Merged
vsariola merged 1 commit intovsariola:masterfrom
LeStahL:midi/track-input
Oct 22, 2024
Merged

Midi/track input#170
vsariola merged 1 commit intovsariola:masterfrom
LeStahL:midi/track-input

Conversation

@qm210
Copy link
Copy Markdown
Contributor

@qm210 qm210 commented Oct 18, 2024

I just rebased your current upstream master and I think I made it work again, but...

Expecting your feedback ;)

Copy link
Copy Markdown
Owner

@vsariola vsariola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool stuff, accepting notes through the MIDI while jamming seems to be the point of this? There was so much changes to many different files, so it's a bit difficult to review what it actually does.

  1. Please properly rebase to the master. You have essentially just reverted all the changes there :) In particular, the refactorings e.g. MIDIContexter -> MIDIContext, m.d.Loop -> m.Loop and you removed again the fixUnitParams...
  2. There's a ton of minor style changes (e.g. renaming method receivers), documentation (comments), and changing .gitignore. These probably should go to separate commits, with style:, doc: and chore: type indicators.
  3. I'd appreciate if you can already squash the commits, because it seems that there's more different types of changes than one feat: commit here. I recommend you making a backup branch of your current commit history, if you start removing some of those unrelated style/doc/chore changes from the PR.
  4. Please add a message in the CHANGELOG.md (on the first line after "Added") to describe what feature you actually added.

@vsariola
Copy link
Copy Markdown
Owner

Oh, and all the VST binaries don't seem to build, that would have to be sorted out also.

@vsariola
Copy link
Copy Markdown
Owner

vsariola commented Oct 19, 2024

So, I got to experiment with this properly. I have a question: normally, when recording and jamming, we interpret the midi channel to correspond to the instrument that is being played. But now you input whatever MIDI notes have arrived at the current cursor position. Little bit confusingly, the player still respects the channel instrument as the instrument being played, so even if you input a note on track corresponding to instrument Foo, but the channel of the MIDI message corresponds to instrument Bar, the player will play instrument Bar. I guess at least we should at least somehow trigger the right instrument to not confuse the user?

In your use case, I think you intentionally do not want to respect the channel information of the MIDI message, right? So you want to have a MIDI keyboard near by, and place the cursor where-ever, and input a note at that position, so it's almost similar as pressing a note on keyboard?

@qm210 qm210 force-pushed the midi/track-input branch 2 times, most recently from b920c95 to 37dab09 Compare October 21, 2024 19:58
@vsariola vsariola merged commit 8dfadac into vsariola:master Oct 22, 2024
@vsariola
Copy link
Copy Markdown
Owner

Merged, thank you for your contribution!

@vsariola
Copy link
Copy Markdown
Owner

Just a little heads up that I completely reworked the MIDI input logic so that the MIDI events work just as an alternative to keyboard. Namely, if the MIDI input mode is turned on, all MIDI events are sent to GUI and the GUI is free to deal with them as it pleases. If not, they are sent directly to the player.

The GUI ignores the channel of the MIDI note on event, and now it works like the keyboard: if a track is selected, then it inputs a note to the track. Otherwise, it triggers the currently selected instrument.

Now, this did remove the "chord" input support i.e. inputting nodes on multiple tracks. But I remember you indicated that it would need anyway rethinking a bit, especially for the velocity. I am also still thinking of the note velocity: if it should be a deeper rethinking of the entire sointu internals (poking things even on the synth side), and not just a fancy way to input notes on the GUI side.

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

Successfully merging this pull request may close these issues.

2 participants