markusschwenk / midieditor Goto Github PK
View Code? Open in Web Editor NEWProvides an interface to edit, record, and play Midi data
License: GNU General Public License v3.0
Provides an interface to edit, record, and play Midi data
License: GNU General Public License v3.0
Docs could have used ; qtmultimedia5-dev
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.
midi editor 3.3.0 Crash while opening the specific mid-file:
OS : Windows 10 1809 x64
The specific midi-file:
Filename : Nier.mid
URL : https://drive.google.com/open?id=1TIqGK0lgstllnCQLMzIpR2D7iaAZQau8
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
|
I don't think any good MIDI editor currently offers this option - the piano roll view scrolling vertically (such as player piano rolls worked - see https://www.youtube.com/watch?v=BXFC8hiaRcI ) rather than horizontally. I think a lot of people would like to see this!
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
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!
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
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
By now it's only possible to do by hiding all other channels/instruments and selecting all notes
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.
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.
At the moment, it seems you can't delete a note from the MIDI without stopping play.
I'd like the ability to delete notes while the MIDI file is actually playing.
'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.
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?
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."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)
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?
thanks!
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?
Because now it’s absolutely not obvious how to add percussion
PROPHESSOR@51404d7#diff-4de97eadb1c36d7afcca74faabd7a2a7R147
I know Ctrl+Space exists, but this isn't consistent with the conventions used in pretty much every other player.
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!
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?
Steps to replicate behavior:
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).
When create new midi-files, the default length is 19.00 s. We cannot find button or command to extend this length.
Clicking the right arrow button on the bottom track bar cannot extend the length.
Currently, all key shortcuts are hard-coded.
Since there optimal bindings depend on
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.
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.)
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.
This is most pronounced when scrolling using the touchpad.
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).
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
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.
When the same note exist at the same time in different tracks, one hides the other. Please use semi-transparent colors so that both are visible.
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)
When I open some MIDI files with MidiEditor, I get this message:
*** buffer overflow detected ***: MidiEditor terminated
File example:
http://www.kunstderfuge.com/-/midi.asp?file=13/sibelius_karelia_suite_alla_marcia_(c)siu.mid
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?
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.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.