ratchov / midish

Real-time MIDI sequencer & filter with shell-like user interface for Linux and BSD
http://www.midish.org
48 stars 7 forks source link

List notes on track? #1

Open gminorcoles opened 5 years ago

gminorcoles commented 5 years ago

I just found midish. I think it is very cool.

I would like to list the notes and other events on a track, perhaps starting at a certain location. Is this possible? If I have a front end that takks to midish in verbose mode I would like to refresh the note list from midish instead of remembering every detail of the song in two places. I was thinking of an ncurses front end editor.

ratchov commented 5 years ago

On Thu, May 30, 2019 at 12:15:27PM +0000, gminorcoles wrote:

I just found midish. I think it is very cool.

I would like to list the notes and other events on a track, perhaps starting at a certain location. Is this possible?

There's no such function, but it doesn't seem difficult to add one. BTW, I also need one. Out of curiosity, how do you plan to use it? Would a list of (absolute_time, midi_event) tuples be usable?

If I have a front end that takks to midish in verbose mode I would like to refresh the note list from midish instead of remembering every detail of the song in two places. I was thinking of an ncurses front end editor.

great ;-)

gminorcoles commented 5 years ago

I am not even sure verbose mode is the best approach. But a list of tuples is fine. I have been looking at the code and maybe I should try to integrate the ncurses stuff directly. I am not very experienced with midi programming but it's a project I would like to do.

Thanks

ratchov commented 5 years ago

Using the verbose/batch may seem harder but it allows to properly isolate the real-time midish process from the user interface.

FWIW, before having tty support, there used to be a "rmidish" utility using the gnu readline library and the verbose/batch mode of midish. It may be useful as an example.

ratchov commented 5 years ago

You could try the new tdump command, it displays all selected events.