Code Monkey home page Code Monkey logo

midieditor's People

Contributors

andyyates avatar daslomin-microsoft avatar dgslomin avatar markusschwenk avatar mojoaxel avatar torarnv 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

midieditor's Issues

Cannot build on Rosa Linux

When i try to buld from source it reports

src/midi/MidiFile.cpp: In member function ‘void MidiFile::printLog(QStringList*)’:
src/midi/MidiFile.cpp:1736:42: error: format not a string literal and no format arguments [-Werror=format-security]
         qWarning(str.toUtf8().constData());
                                          ^
cc1plus: some warnings being treated as errors
make: *** [Makefile:1473: .tmp/MidiFile.o] Error 1

A temporal solution is edit Makefile and remove -Werror=format-security option from CFLAGS and CXXFLAGS

qmake-qt5 -v output

QMake version 3.1
Using Qt version 5.9.4 in /usr/lib64

What exactly does the Tweak section do?

I am translating the interface and don’t quite understand how to translate the Tweak section, because I don’t understand what exactly it does. Can you clarify?

Save does not maintain note start-stop message order

When creating two notes with the same channel, on the same track, where the off tick of one note is the same value as the on tick of the second note, then saving, sometimes the order of the off tick and on tick events switch, leading to one longer note with a zero-length note within upon closing and reopening the file, or playing it in an external editor.

[REQUEST] Add limiters for Standart Tool

For example, so that holding the Ctrl key allows events to be moved only vertically, and Shift - only horizontally.
This will allow you to completely get rid of unnecessary tools without losing their capabilities. (#30)

How to use device tempo when recording?

The project tempo differs from the tempo on my MIDI device, making quantization difficult or impossible when recording using the device metronome. How can I use the device tempo when recording MIDI?

More subdivided quantization?

I am trying to recreate musics from Thunder Force V in MIDI but the program does not allow any smaller quantization, which means I can't quantify the drum and guitar track like the original soundtrack. Is there any plan to make the quantization adjustable or make it smaller?

Request: Adjustable Quantization

I use this software to write music for my Tesla coil. It has a few limitations, including number of notes it can play at a time, and a need for down time between notes.

These 2 issues which could be solved with 1 change.

1. Quantizing notes causes them to overlap and not sound.
Currently, when quantizing, MidiEditor makes notes as long as they possibly can, extending into the timing of other notes.
For example, 4 quantized quarter notes would take up the following ticks:
0-192
192-384
384-576
576-768
Notice how the off tick of each note is the same as the on tick of the next.

In typical applications, this isn't an issue. However, the Tesla coil is programmed to only play 2 notes at a time, so when harmonies, or just several notes come on in quick succession, the software I use to translate Midi to Tesla coil cuts notes, which isn't ideal for the listening experience.

I'm hoping/suggesting that an adjustment or option could be made to accommodate this.
I believe that adjusting quantized notes to take up 1 fewer tick and lift earlier should stop this issue:

For example, the same notes above could take up these ticks:
0-191
192-383
384-575
576-767

2. If similar notes don't have enough space between them, they blend together.
Currently, if similar notes are too close together (less that 16 ticks) they blend together to sound like one note when they are played on my Tesla coil.

Proposed Solution
It would be beneficial to have the ability to adjust spacing from one note to another when using the quantize function.
That is to say, it would be nice to be able to choose to have off ticks 1, 2, 4, 16, or whatever number away from following notes.

This would allow me to write music, and then very easily adjust their spacing, removing a whole lot of tedious work that I'm doing currently.

Output to two devices at the same time

I am trying to output to two midi devices at the same time, however I can only have one selected at a time

Is it possible to output to two devices at the same time?

Keyboard shortcuts for transport? (Play, Pause, Stop)

Thanks for this great midi editor :)
Are there any keyboard shortcuts for the transport (Play, Pause, Stop)? (Like in DAWs.)
I wish I could use the space bar to play and pause because it's SUCH a common operation, using the mouse takes much longer every time.
Proposed semantics:
When stopped, pressing space bar plays from stop location.
When playing, pressing space bar pauses, cursor stays at current location.
When paused and pressing space bar, if shift is pressed, it should continue from the paused location, otherwise start playback from the stop location.

note_on vv=0

'By definition, a note-on message with vv=0 is equivalent to the message: "note-off vv=40" '
Not sure if this is still valid but I got complaints when I inserted such events in a midi file
and opened that file in MidiEditor, Complaints from the program was about notes not terminating.

[REQUEST] Snap-to-raster when adding or editing note events

It would be convenient to have an option to let the note painting with the "standard right click" or "create event" tool snap-to-raster for instant quantization. Now we must first paint the notes by hand and then quantize them afterwards.

The same should apply for moving and resizing events horizontally.

Bug in midi format when adding tracks to format 0 file

Steps to replicate behavior:

  • open a format 0 midi file (by definition, limited to 1 track)
  • add 1 or more new tracks
  • save the file

The file will be saved with "midi-format bytes" (bytes 9 and 10 of the file) still set to 00 00, denoting "format 0", which is invalid. In this situation, the "midi-format bytes" should have been set to 00 01, denoting "format 1" (multi-track file).

Request: a license for this open source project

Well, I'm working on a project which needed a MIDI edit feature. I found this amazing project and I want to use a part of the code of this project. But without an license I don't know how should I credit after use the code. Even I don't know if I can use these code.
Therefore, could you place an license under the project dictionary?

HiDPI support

Currently, MidiEditor uses pixel-based scaling, which doesn't fare well with 4k monitors and Windows' DPI scaling.

Without messing with Qt's environment variables, this causes the program to be incredibly small:
image

zooming in with scroll wheel?

when zooming with the scroll wheel and holding shift or ctrl, scrolling up and scrolling down both cause you to zoom out - i believe that this is a bug as i cannot find a way to zoom in other than the onscreen buttons

MidiEditor should not lock the file while it's opened

I noticed whenever I open a midi file in MidiEditor, it locks the file so that it can't be written to, while MidiEditor is running, EVEN after I open another file so that the first file isn't even editable anymore.
I have to restart MidiEditor to unlock the file.

Please don't keep the file locked. Especially after another file has been loaded to replace the first file.
(I'm not saying it should auto-reload the file if it changed on disk, only to not keep it locked.)
(The midi player I'm using to listen to midi files (AIMP) doesn't lock the file either, it loads it into RAM once.)

Interface disappears, despite mostly functioning

After editing a midi and closing the editor after saving, I loaded it again, but when I do, all the events, as well as even the measures, disappear, despite all tracks and channels being set to visible. Despite this, playback still works perfectly fine, and I noticed no issues with the sound. I'm unsure if it's an issue with the midi, and if so, how I can fix it, as the events aren't visible for me to fix said issues.

I would attach the midi here, but I'm unsure how to go about that as GitHub does not support attaching that file type.

midieditor portable for windows

Thank you for this very nice piece of software!

Many people don't have admin rights on the computers they use (students) and would benefit from an official portable version (just a zip file with the exe and anything else that's required).

In the meantime, from the current official installer (3.3.0):
MidiEditor.zip

Cannot hear metronome when recording MIDI

I have connected a MIDI keyboard and would like to use a metronome when recording. When pressing the metronome button in MidiEditor and then recording, the metronome does not play.

I have MIDI input and output set to my MIDI device, if this makes a difference.

BPM is calculated inaccurately

When I save a midi file from Reaper with BPM 127 it gets saved with 472441 ms per quarter note (beat).
When I open this file in MidiEditor.exe, it shows BPM 126.
The calculation it seems to do is:

int bpm = 1000000.0 * 60.0 / ms_per_beat;

But 60000000.0 / 472441 is 126.99998518333506194424277317168, so it's shown as 126 because of truncation.
It should either show a fractional BPM or be a little more accurate by doing:

int bpm = 1000000.0 * 60.0 / ms_per_beat + 0.5;

instead :)

Similar care should be taken when saving the BPM.
E.g. in Reaper when I saved with BPM 127:
60000000.0 / 127 == 472440.94488188976377952755905512
And it stored 472441 (rounded up, probably with + 0.5) instead of truncating!

Setting the Cursor improvement

Whilst it is possible to set the cursor accurately at the start of a measure, it is impossible to accurately set it within a measure. This makes copying events accurately within a measure very difficult. Perhaps two additional buttons to move the cursor to the next Raster Point within a measure? Or a right-click option on the cursor itself to set the cursor tick?

Great tool though!

midiEditor crashes in opening an edited file

Before updating to 3.3.0, two downloaded midis https://files.gamebanana.com/bitpit/th06_06.midhttps://files.gamebanana.com/bitpit/th06_11.mid played fine.
When I tried to update to 3.3.0, the two files plays weird sounds. Some of their channels, instead of the intended instruments, produce rather distorted, funny or screech-like sounds.
When I stoped playing and opened other files, the problem is passed on with those channels, while other channels are unaffected. When I restart midieditor and play the other files, they sound fine.
When I played the files on Microsoft Media Player (using System's default GS Wavetable soundfont as output), it plays without problem.
I tried to reinstall midiEditor and synthesizer, and switch soundfonts, but the problem persists.
In the middle of playing, I paused, went to midi setting, set the midi output from the synthesizer to the default GS Wavatable, it again played fine. When I pauseagain and switch back to the synthesizer, in miracle it is played fine as well.
I tried to do the switch above before and after playing, and eventually found that the culprit are the 700+ control change events in Measure 2 of the two files.
I deleted the control change events, and the midi sound no weird anymore. I gladly made some editing.
The problem comes when I save the files and opened them again. The program froze and crashed.

 

Problem signature:
  | Problem Event Name: APPCRASH
  | Application Name: MidiEditor.exe
  | Application Version: 0.0.0.0
  | Application Timestamp: 5d3b2724
  | Fault Module Name: ntdll.dll
  | Fault Module Version: 6.1.7601.24545
  | Fault Module Timestamp: 5e0eb751
  | Exception Code: c0000005
  | Exception Offset: 0004ebc3
  | OS Version: 6.1.7601.2.1.0.256.1
  | Locale ID: 2052
  | Additional Information 1: 0a9e
  | Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
  | Additional Information 3: 0a9e
  | Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
  |  

MidiEditor crashes on midi file with empty tracks due to division by zero

When I try to load this midi file, MidiEditor crashes due to division by zero.

Note: Each of the 16 tracks of this midi file is empty (only contains the EndOfTrack meta event).

image

image

image

Problem signature:
  Problem Event Name:	APPCRASH
  Application Name:	MidiEditor.exe
  Application Version:	0.0.0.0
  Application Timestamp:	56637940
  Fault Module Name:	MidiEditor.exe
  Fault Module Version:	0.0.0.0
  Fault Module Timestamp:	56637940
  Exception Code:	c0000094
  Exception Offset:	0005cac3
  OS Version:	6.3.9600.2.0.0.256.48
  Locale ID:	1033
  Additional Information 1:	5861
  Additional Information 2:	5861822e1919d7c014bbb064c64908b2
  Additional Information 3:	6fbe
  Additional Information 4:	6fbe6bde2701766d81cbca0597a5fa35

Read our privacy statement online:
  http://go.microsoft.com/fwlink/?linkid=280262

If the online privacy statement is not available, please read our privacy statement offline:
  C:\Windows\system32\en-US\erofflps.txt

Make shortcuts configurable and provide defaults per OS

Currently, all key shortcuts are hard-coded.
Since there optimal bindings depend on

  • OS,
  • User preferences,
    we should let the user configure those shortcuts.

E.g. limiting the standard tool's move behavior is currently done with ALT + Drag and drop. On Ubuntu (all Linux?) this is a global shortcut allowing to drag the whole application window. Hence, the feature doesn't work on Linux currently.

Move Events (Up and Down) inaccurate

When using the Move Events (Up and Down) button, the starting tick is often decremented by one - resulting in inaccurate timing, which can be time-consuming to fix.

ubuntu dark theme

I can't see icon buttons with ubuntu dark theme
icon button is always black, it should use foreground text color

Screenshot_20190905_120105

crash or freeze when opening some files

When trying to open certain files, MidiEditor crashes or freezes. For examples, see the sample MIDI files that are included with the latest release of MIDIopsy.

  • 2_mariachi.mid results in an error message saying "The file is damaged and cannot be opened."
  • The others result in a crash.

These are all valid MIDI files that can be played with Windows Media Player and opened with MIDIopsy (my application - please excuse the shameless plug).

When trying to open this file, MidiEditor freezes and CPU consumption skyrockets. (Infinite loop, perhaps?) Granted, this file is truly damaged, but it would be nice if MidiEditor could detect that and show the aforementioned error message instead of locking up.

(see also issue #68, possbly related)

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.