Giter Club home page Giter Club logo

midiopsy's People

Contributors

jeffbourdier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

midiopsy's Issues

automatically update track length

When finishing an edit session, automatically update the number of bytes in each track that was edited, as this is tedious (and error prone) to do manually.

prevent "false start" playback

The first file that's opened after the application is launched starts playback (in the media player) for just a split second. Prevent this.

add charts to Help

Add to the Help some charts showing hex values for notes, meta-events, etc. (basically summarizing the information on pages 42, 100-4, 137-9, & 150-1 of the MIDI spec).

highlight lines

Highlight the whichever line the cursor is on, in both the hex and comments text boxes (probably via Select).

configuration setting: verbosity

Add a configuration setting for verbosity, to allow comments to be more "terse" and thus not take up as much space (e.g., instead of "Note number 60 (C 4), Velocity 96", something like "Note 60 (C 4), Vel 96").

persist hex text box width

When the app window closes, save the current width of the hex text box (along with the window bounds and maximized flag).

add Go To command

Add a Go To... (Ctrl+G) command button to the editing screen to jump to the beginning of a given track, and possibly other locations within the file.

There appears to be no such command predefined, it will need to be built.

support MIDI 2.0

It's not clear how this will affect the standard MIDI file format, but it would be good to support any such changes. Since MIDI 2.0 is still being developed, this may be ongoing for a while.

convert to format 0

When the user edits the header and changes the format to 0, convert the file to format 0 (one multi-channel track) automatically.

make edit warning configurable

Provide a configuration setting to show (or not to show) the warning that the user sees when starting an editing session, preferably accessible via a checkbox on the UI (e.g., "Don't show this message again.")

allow change running status

Right now, once a channel event is created, whether or not it uses running status cannot be changed. Allow the user to change this (check/uncheck the box), even after the event is created.

'Index was outside the bounds of the Array' error opening possibly invalid MIDI file

I am trying to open the MIDI file which has a d/l link here
http://www.midi-karaoke.info/21038bb5.html
(direct link to the download is) http://www.midi-karaoke.info/21038bb5.mid

If I open this file in the vanBasco Karaoke Player, I get a warning that the file is damaged and can only be party loaded, but then it finishes loading and plays fine. So there is obviously enough of a valid MIDI file there to be playable.

But when I load it into MIDIopsy, I get an error 'Index was outside the bounds of the Array' and no file is loaded.

It would be nice if it was possible to still show whatever parts of a damaged/malformed file could be interpreted.

Add ability to display code in binary numbers

For example, it would highlight what numbers are associated to message type (say note on) and what are related to MIDI channel. We could even go a step further, colouring the first bit of a channel message (1 for a status, 0 for data), hence the last 7 bits of a byte define the actual value of the data.

(on behalf of Cyril Délécraz)

Does this work on Mac OS?

Any chance we can have a MacOS build?
I've tried running it with Rider but got Settings.Designer.cs not found error.

check for unchanged property values

When some properties are set, the value is checked to see if it really changed, thus prevent unnecessary processing. (For a good example of this, see MidiEvent.DeltaTime.) Most properties could probably benefit from doing this. Examine the code to find other opportunities to prevent unnecessary processing when setting properties by checking the value to see if it really changed.

add help

Add some more content to the Help page.

enable rapid note entry

Enable the user to enter a series of Note On events in rapid succession (without having to go through the MIDI Channel Event dialog for each individual event).

filtering

Would it be possible to add filtering?
For example by event type or channel?

allow user-defined selection

Since Select is now used for highlighting, user-defined selection is effectively disabled. Add a toggle for user-defined selection (which would effectively disable highlighting).

Help command crashes application

In the Release version of the application, executing the Help command results in the error message:

MIDIopsy has stopped working

A problem caused the program to stop working correctly.
Windows will close the program and notify you if a solution is available.

The Debug version does not exhibit this behavior.

allow multiple selection

It has become clear that multiple selection is more of a must-have than a nice-to-have, though it will have to be restricted to events within a single track, and adding new events may be not be allowed if multiple events are selected.

status bar

Add a status bar to the UI. (This would be especially helpful for cut/copy/paste commands, like in vi.)

enable playback without saving

Currently, the application requires a file to be saved to disk before it can be played back (using the media player). Ideally, it would be able to play back the file without saving it first (possibly by saving it to a temporary file, as the media player does require that the file be stored on disk).

allow editing

Add a button for editing. When the app starts, the button should say "Start Editing". When clicked, the comments text box becomes unavailable, the hex text box becomes editable, and the button should say "Stop Editing". When clicked again, the hex text will need to be parsed to repopulate the comments text box and the binary MIDI data. If successful, the file state is set to Edited, the hex text box becomes read-only, the comments text box becomes available, and the button should say "Start Editing". Otherwise, an error message informs the user of the parsing error.

Custom soundfont for integrated player and editable instrument names

MIDIopsy has been really great in helping me reverse-engineer some non-standard MIDI files.

There are a few features that would be really amazing (if this functionality is not already possible somehow):

  • Load custom soundfont to use with the integrated player
  • Expose instrument names to make them optionally editable (I realize the instrument names are based on the standard, but in the case where the files themselves don't adhere to the standard in the slightest, it would be a helpful improvement.)

Thank you for this software! 👏

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.