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

Feature Request - Additional Midi support #45

Open
ryanfelder opened this issue Jan 2, 2021 · 5 comments
Open

Feature Request - Additional Midi support #45

ryanfelder opened this issue Jan 2, 2021 · 5 comments

Comments

@ryanfelder
Copy link

First of all, I have greatly enjoyed using FamiStudio and I think it's incredible.
I've been teaching myself 6502 asm on and off for the past year, in part by reading the nesdev.com forums.

I have a feature request for FamiStudio which I know is non-trivial.
I would like to be able to record midi performances into a track in FamiStudio.

There are a few key elements I think would enable this :

  • Arm certain patterns for recording
  • Record events while the project is playing
  • Better audio latency (Probably the primary showstopper for this request)
  • Capture midi velocity
  • Record key release as stop-note
  • Metronome (optional but helpful)
  • Add or Replace Recording mode (also very optional but helpful)

In this way, I could :

  • Arm a few patterns for recording
  • Hit play on the song
  • When those patterns come up, play them on my keyboard
  • Tweak them and reuse them throughout the song

I could also simply record a drum fill with my midi controller pads.

If you need a bug tester for anything midi related, I am setup with midi controllers and usb audio interfaces in Linux, Windows, and OSX environments.

@BleuBleu
Copy link
Owner

BleuBleu commented Jan 2, 2021

Hi!

Thanks for the feedback, and also the offer for testing.

While I totally understand the request, unfortunately, it's not very high on my priority list.

Real-time recording (as you mentioned) opens up a whole can of worm related to latency, which is not a problem I'm interesting in tackling at the moment. Especially considering that we need to support all 3 platforms.

In the mean time, the workflow I use is something like this (granted its far from ideal...) :

  1. Make sure to eliminate any other source of latency (Bluetooth headphones are a huge one, for example)
  2. Play your song and rehearse the melody you want to record in real-time (granted there will be some latency : ~60ms on Windows/Mac, ~80ms on Linux, but still manageable for rehearsing)
  3. Turn on recording mode and input in note-by-note.

I'll keep the issue open in the meantime and let you know if there are any updates.

-Mat

@ryanfelder
Copy link
Author

I totally understand this not being your priority and thank you for keeping the issue open.

@BleuBleu
Copy link
Owner

BleuBleu commented Jan 3, 2021

Thanks man, let me know if you find a way to reduce the current latency on Windows. If find it odd that your Mac has a lot less than Windows, this doesnt sound right to me!

@nezvers
Copy link

nezvers commented Feb 11, 2021

I don't really see how velocity would benefit composing for NES, since you are using instruments mostly.
On other hand, live tracking would be beneficial to bypass the limitation on NES bpm lock keeping timing on yourself. That is if latency would be working correctly.

@Kully
Copy link

Kully commented Jul 4, 2021

I don't really see how velocity would benefit composing for NES, since you are using instruments mostly.

Good point here, and this makes me think of another idea... 🤔

What if there was a way to map MIDI performance (w/ velocity) to NES instruments. So, given a set of instruments that already exist and are predefined (enough of them), can you take a performance and programmatically map the notes over to the corresponding data for FamiStudio, where you are preserving as close to the same sound as possible.

I wonder how difficult it would be to program such a thing?

This is certainly outside the scope of this GH Issue but just want to explore and get feedback on it. 😸

@BleuBleu

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

4 participants