Is MIDI resolution standarised within MIDI files?

Audio Plugin Hosts and other audio software applications discussion
RELATED
PRODUCTS

Post

I use a hardware module to play drums even using USB midi thru computer out to hardware, using a simple little signal router called midiTrix and i can't feel any latency.

I have ideas starting to record my little drum sessions that i play to Youtube videos and use them as groove basis for making music of my own.

Someone said that the latency 2-4 ms was not good enough and i wonder could it be that routing thru applications rather then miditrix add extra latency?

So my questions are.

1. Is the midi *.mid files format standarised to a certain message resolution, it seem it have to or it would not be compatible between different players.

2. Is the USB midi standard set to a specific resolution or is it basicly an analog signal following USB resolution USB 1.0 "1 MB" 2.0 "10 MB" USB 3.0 "300 MB"? But i heard USB 3.0 ports may give worse latency is it true and are there any differences between 1.0 and 2.0?

3. Since i do intend record my drumming to songs, the BPM will be kind of default, so should one set it to max while recording, if there is differences in resolution which sequenser will have highest and will such track be able to import into for example reaper? For the actual recording i basicly need the simplest possible sequenser that do not hog or affect the latency of recording so a single track midirecorder is preferable given it has high resolution any suggestions?

4. Well after recording i have a miditrack are out of synch with BPM, that i can import # and may or may not have a beat feeling :hihi: is there any VSTI or midisequenser that may be able to analyse the track and adjust it to a BPM given i use standardised midi drumset? Would be nice to cut out 3-4 bars and get the BPM. I never quite understood what timesignature is at least not when it comes to midi, it seem more for notewriting but maybe it is related to the chosen resolution?

I know it is alot of sequensing, midi questions in a DAW thread i hope you do not mind.

Jonas T

Post


Post

Jman101 wrote:I use a hardware module to play drums even using USB midi thru computer out to hardware, using a simple little signal router called midiTrix and i can't feel any latency.

I have ideas starting to record my little drum sessions that i play to Youtube videos and use them as groove basis for making music of my own.

Someone said that the latency 2-4 ms was not good enough and i wonder could it be that routing thru applications rather then miditrix add extra latency?

So my questions are.

1. Is the midi *.mid files format standarised to a certain message resolution, it seem it have to or it would not be compatible between different players.
You realize that MIDI is just generic computer data, right? So, it has NOTHING to do with latency. Any sequencer imports the MIDI file and then adjust that information according to the grid it's using internaly. Usually, this now is at least 480 PPQN (Pulse Per Quarter Note) which means that any quarter note is divided in 480 "ticks" or "pulses". But many sequencers can work now at double that resolution or even more. Cubase and Logic now work as standard at 960 PPQN, but they can work at even finer resolutions. Digital Performer can go up to an insane millions PPQN.

Also, there are MIDI interfaces that use a Time Stamping that embeds information in the MIDI, like the MOTU interfaces. Not all sequencers can deal with that though.
Jman101 wrote: 2. Is the USB midi standard set to a specific resolution or is it basicly an analog signal following USB resolution USB 1.0 "1 MB" 2.0 "10 MB" USB 3.0 "300 MB"? But i heard USB 3.0 ports may give worse latency is it true and are there any differences between 1.0 and 2.0?
Again, MIDI has nothing to do with the latency being induced in the chain. That is most probably due to poorly written drivers, and the USB protocol itself. MIDI data throughput is way lower than USB, therefore, USB can carry that data without problems, unless something else is interfering with the bus. That's why it is advisable to use an interface compatible with USB 2.0, and a dedicated one, if you are serious about MIDI.
Jman101 wrote: 3. Since i do intend record my drumming to songs, the BPM will be kind of default, so should one set it to max while recording, if there is differences in resolution which sequenser will have highest and will such track be able to import into for example reaper? For the actual recording i basicly need the simplest possible sequenser that do not hog or affect the latency of recording so a single track midirecorder is preferable given it has high resolution any suggestions?
You still didn't describe what is your problem. Once recorded, and if you are using internal VIs, all the information will be tempo locked by the sequencer itself. The problem only arises if you are trying to lock the sequencer internal data with some external drum machine or something. For that, MIDI had some old sync protocols (like MIDI clock) that could be sent to allow this lock, but the hardware has to be able to read that information, and the sequencer (or any other master) has to be sending it. Usually, we synced with the slower or less reliable machine as master (usually the extyernal hadrware), then we had this generating MIDI clock, and the sequencer locked to that sync. But I may be misundestanding what you are trying to do, and you mean recording drums "live". In that case, you have to later either quantize the audio (if your DAW allows it, and your tempo doesn't really suck) or adapt the recording of MIDI to that audio that you recorded in the first place.
Jman101 wrote: 4. Well after recording i have a miditrack are out of synch with BPM, that i can import # and may or may not have a beat feeling :hihi: is there any VSTI or midisequenser that may be able to analyse the track and adjust it to a BPM given i use standardised midi drumset? Would be nice to cut out 3-4 bars and get the BPM. I never quite understood what timesignature is at least not when it comes to midi, it seem more for notewriting but maybe it is related to the chosen resolution?
The MIDI track cannot be "out of sync", unless you have a very unreliable interface, or the source is very unstable. What you may have is a track that is deviated from the tempo beat. In that case, it's just a matter of quantize de information, or drag it to the proper place in the grid manually (quantize usually works OK, as long as you define the smaller value that you have as the grif unit - for example if you have 16th notes as your smaller vakue, define that as your grid unit, and quantize starts with a strenght of 100%). There is also the "groove quantizing" which applies a "groove" or "beat feeling" to the MIDI data while quantizing. The best sequencer can even analyze audio data and extract a groove from that.

Time signatures are for people who does serious composing, and know what that means and like to have the information readable in notation form (there are some around) :hihi: You probably will be safe leaving that at the default 4/4.

Hope this can be of any help.
Fernando (FMR)

Post

You still didn't describe what is your problem. Once recorded, and if you are using internal VIs, all the information will be tempo locked by the sequencer itself. The problem only arises if you are trying to lock the sequencer internal data with some external drum machine or something. For that, MIDI had some old sync protocols (like MIDI clock) that could be sent to allow this lock, but the hardware has to be able to read that information, and the sequencer (or any other master) has to be sending it. Usually, we synced with the slower or less reliable machine as master (usually the extyernal hadrware), then we had this generating MIDI clock, and the sequencer locked to that sync. But I may be misundestanding what you are trying to do, and you mean recording drums "live". In that case, you have to later either quantize the audio (if your DAW allows it, and your tempo doesn't really suck) or adapt the recording of MIDI to that audio that you recorded in the first place.

=======================
I will lay/record my own grooves using beats from songs at youtube or cd's and since no DAW/SEQUENSER can estimate a live beat i aim to record at the highest resolution so i set the bpm to max and the timesignature as sensitive as possible.

But you seem to say it do not matter it is just raw data anyway?

Afterwards i would like a tool "sequenser or VSTI" using the standard mididrum config Bass and Snare to analyse the miditrack and "calculate/interpolate the BPM" from a couple of bars of song.

If i was a good drummer "professional" i probably could set the BPM and play to metronome but any "simpleton" do know it is much easier to pick up the groove to a song to get the swing of it.

Afterall it can't be that hard to recognise the notes of the bassdrum and snare over a couple of beats divide the timeframe /x beats and then reformat the file to the new bpm and signature. But if i understand you correct the BPM and Timesignature is not within the actual data, it just the header that tell howto read out the data?

So rewritting the header with the correct BPM and timesignature will do?
If so how come noone has made a VSTI where you mark a number of beats and it will automatically calculate at least the BPM using bass and snare, and maybe even the time signature using the hihat?

I can't be the only drummer who need some music to get the feeling, playing swing and backbeats to a metronome i for one find hard but with an existing track it is piece of cake and i only played drums for a week ;)

Basicly i want a pure midirecorder with maxresolution where i can record mididrums to my favourite songs, but a tool that can find the BPM and maybe even the timesignature. I realise now i was wrong thinking about it as a continous stream it is just timedevents/rawdata as you say. So it seem simple enough to me to calculate the BPM from it using a startnote probably a GM bassdrum? Quantization is more about rearrange the timeslot of the note into a grid, but what i talk about seem different?
I want the recorded intervals to stay fixed, but find an approximated BPM using recorded beats by setting a start and endpoint and analyse the bassdrum and snare.

Is there such a tool the simpler the better.
It was a long time since i really used sequencers and DAWs so it possible i missed something, but it is not quantization that is just time correction, i talk about bpm finding, if i understand you correct you want me to find the approximate bpm and manage to start the midi recording in synch with the music and later quantize it "import wave and manually track it down".

That seem a bit awkvard to me, why not just record at highest resolution and calculate the bpm from the mididata.

But i am quite open to import the actual wave and analyse the BPM from it automatically "but that would be alot harder to find the bpm within than using mididata", and you may not own the song, you may be playing to radio or a youtube video. It is a simple but useful tool that must exist?

I have done what you suggest in the past import and searched the BPM manually, but should it really be necessary?
Jonas T
Last edited by Jman101 on Tue Oct 11, 2016 6:45 pm, edited 3 times in total.

Post

Jman101 wrote: I will lay/record my own grooves using beats from songs at youtube or cd's and since no DAW/SEQUENSER can estimate a live beat i aim to record at the highest resolution so i set the bpm to max and the timesignature as sensitive as possible.

But you seem to say it do not matter it is just raw data anyway?

Afterwards i would like a tool "sequenser or VSTI" using the standard mididrum config Bass and Snare to analyse the miditrack and "calculate/interpolate the BPM" from a couple of bars of song.

If i was a good drummer "professional" i probably could set the BPM and play to metronome but any "simpleton" do know it is much easier to pick up the groove to a song to get the swing of it.

Afterall it can't be that hard to recognise the notes of the bassdrum and snare over a couple of beats divide the timeframe /x beats and then reformat the file to the new bpm and signature. But if i understand you correct the BPM and Timesignature is not within the actual data, it just the header that tell howto read out the data?

So rewritting the header with the correct BPM and timesignature will do?
If so how come noone has made a VSTI where you mark a number of beats and it will automatically calculate at least the BPM using bass and snare, and maybe even the time signature using the hihat?

I can't be the only drummer who need some music to get the feeling, playing swing and backbeats to a metronome i for one find hard but with an existing track it is piece of cake and i only played drums for a week ;)
Yes, and the BPMs are inherent to the loops/beats you want to use. So, if that information is not in the loop already, you have to "guess" or find it yourself. For that, I advise you to adjust the BPM in the sequencer until the audio file adjusts perfectly (or more or less perfectly) to the bar grid. But pay attention that the audio may not be necessarily in 4/4. The ternary divisions (which means bars of 6/8 or 12/8) are very common too. You really need to know what you are looking for, first and foremost.
Jman101 wrote: Basicly i want a pure midirecorder with maxresolution where i can record mididrums to my favourite songs, but a tool that can find the BPM and maybe even the timesignature. I realise now i was wrong thinking about it as a continous stream it is just rawdata as you say. So it seem simple enough to me to calculate the BPM from it to a startnote probably a GM bassdrum? Quantization is more about rearrange the timeslot of the note into a grid, but what i talk about seem different?
I want the recorded intervals to stay fixed, but find an approximated BPM using recorded beats by setting a start and endpoint and analyse the bassdrum and snare.

Is there such a tool the simpler the better.
It was a long time since i really used sequencers and DAWs so it possible i missed something, but it is not quantization that is just time correction, i talk about bpm finding, if i understand you correct you want me to find the approximate bpm and manage to start the midi recording in synch with the music and later quantize it.

That seem a bit awkvard to me, why not just record at highest resolution and calculate the bpm from the mididata.

Jonas T
Once you have the proper BPM devised, then it's just a matter of following the loop/beat, or the metronome of the sequencer. Later, you can quantize properly the MIDI recorded (or audio recorded, if you are recording audio and not MIDI - I still didn't understood what you are aiming to do)
Last edited by fmr on Tue Oct 11, 2016 7:10 pm, edited 1 time in total.
Fernando (FMR)

Post

Dont blame the OP for his confusion; he got spun some misinformation about latency by someone in another thread, and he's obviously trying to make sense of it, despite the fact that it was mostly bullshit.
An idiot on Set Theory:
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."

Post

I just want to press record lay my ***mididrum**** groove to the radiosong, vinyl, TV, youtube without even have to consider tracks, beats per minute a singletrack midirec will do just fine.

And when i am finished i want a tool, could be a "DAW, SEQUENSER, VSTI" to analyse the trackdata, i just mark first and last note, it check automatically using the GM standard for bassdrums and snare notes, alternatively you can give their notes "3 should do, with hihat or ride".
And it interpolate the BPM by divide time/x_beats update the header data and save it as a midifile that is it.

If it is a bit intelligent it could use the hihat and ride to find the time signature but it seem like a much harder project then just divide time/x_beats.

I do not want the hussle pirate download, record and import wavefiles to DAW, and do not want to manually search and try to set the BPM correct to quantisize.

Because the process seem superfluous to me, i think i suggest a better tool.

Jonas T

Post

Jman101 wrote:I just want to press record lay my ***mididrum**** groove to the radiosong, vinyl, TV, youtube without even have to consider tracks, beats per minute a singletrack midirec will do just fine.

And when i am finished i want a tool, could be a "DAW, SEQUENSER, VSTI" to analyse the trackdata, i just mark first and last note, it check automatically using the GM standard for bassdrums and snare notes, alternatively you can give their notes "3 should do, with hihat or ride".
And it interpolate the BPM by divide time/x_beats update the header data and save it as a midifile that is it.

If it is a bit intelligent it could use the hihat and ride to find the time signature but it seem like a much harder project then just divide time/x_beats.

I do not want the hussle pirate download, record and import wavefiles to DAW, and do not want to manually search and try to set the BPM correct to quantisize.

Because the process seem superfluous to me, i think i suggest a better tool.

Jonas T
Sorry man, I don't know any other method. There's no such thing as a music robot to do the work for you, at least that I'm aware of. If you just want a player, launch iTunes and hit Play. If you want something/someone to do the hard work for you, hire someone...
Fernando (FMR)

Post

Oh i can program, to read in and edit a binary/ASCII midfile and look for a couple of note recurrences and divide them over the timeframe first->last note to get the bpm, and then change the header to reflect the BPM.
Is clearly within the range of my ability.

Well if it really so easy as to change the header will say.
But i found it weird noone done it before, if it really that easy.

Jonas T

Post

Jman101 wrote:Oh i can program, to read in and edit a binary/ASCII midfile and look for a couple of note recurrences and divide them over the timeframe first->last note to get the bpm, and then change the header to reflect the BPM.
Is clearly within the range of my ability.

Well if it really so easy as to change the header will say.
But i found it weird noone done it before, if it really that easy.

Jonas T
Yeah, whatever... You clearly have no idea what you are talking about, but if you insist :roll:
Fernando (FMR)

Post

Basicly i want a pure midirecorder with maxresolution where i can record mididrums to my favourite songs, but a tool that can find the BPM and maybe even the timesignature.
try jamstix using the audio m8 (part of jamstix), it will listen to a song and create drum tracks for it in audio jam mode. Not sure if it will do beat detection but there is beat detection software out there even free I believe. Not sure if that's what you're looking for and beware, jamstix is great but there is a learning curve.
The highest form of knowledge is empathy, for it requires us to suspend our egos and live in another's world. It requires profound, purpose‐larger‐than‐the‐self kind of understanding.

Post

Sometimes I wonder why we humans try so often to reinvent the wheel instead of using the standard tools and language of the task at hand. I cannot really imagine how a drummer can exist without knowing what time signatures are. My advice to the OP: learn the basics of music, especially time signatures and note values, that are what rythm is made of. It is much easier than what you are trying to do. Imagine that you wanted to be a cabinet maker, but refused to deal with length and angle measures. I bet you would not get too far in that trade, even if you just wanted to copy other people's work.

Post

To original poster - maybe you are thinking about tempo maps?

Some daws have this build in and I've heard that Melodyne is great for tempo mapping (and as I understand it will follow the groove of the song - not only the bars will be synchronized, but the whole grid will be synchronized to the groove of the audio).

And as for generating tempo by grabbing a bar of music from audio - for example in Reaper it's
Create Measure From Time Selection (Detect Tempo) function. If the tempo is fluctuating you can do it multiple times - http://www.soundonsound.com/techniques/tempo-mapping

Post

Jman101 wrote:Oh i can program, to read in and edit a binary/ASCII midfile and look for a couple of note recurrences and divide them over the timeframe first->last note to get the bpm, and then change the header to reflect the BPM.
Is clearly within the range of my ability.

Well if it really so easy as to change the header will say.
But i found it weird noone done it before, if it really that easy.

Jonas T
There is no header. BPM of playback is generally set in the playback software, although timing change messages can be embedded through the MIDI file.


http://www.deluge.co/?q=midi-tempo-bpm
https://cycling74.com/forums/topic/dete ... _4RICSTNBk

If you can program, you really should be looking at the MIDI message and MIDI file specifications, all the information you're asking about is there.

http://www.ccarh.org/courses/253/handout/smf/
An idiot on Set Theory:
"In some cases there is an object called red that contains everything that is red. In much the same way a pot is a plate."

Post

Please i have already started thinking of a HTML5 application that will do what i suggest.
You do notice the bpm and timesignature in header 120 4-4

But since the midi BPM format seem a bit wacky in sequensers only full beats "naturals" while reaper for example use decimal points upto thousands "120.xxx" and songs today probably never exact on spot one probably should do a VSTI for daws rather then what i intend todo a simple midi beat and timesignature corrector for midisequenser. What bother me though is that it will be off if i do not interpolate/translate the recorded decimal sensitive groove until a format that just use naturals for BPM like below.

But one have to start somewhere.

MThd.........ðMTrk...!.ÿ..120 4-4 02.ÿX......ÿQ..¡ .ÿ/.MTrk...j.ÿ..120 4-4 02.$k.*M.&.'‰&@.‰$@.&..‰*@.‰&@.&.,‰&@.*.,‰*@.&..$f)‰&@.‰$@.&..**)‰&@.‰*@.*6,‰*@.&u+‰&@L*n,‰*@.&.+‰&@.*..&.)‰*@.‰&@.*8,‰*@.&x,‰&@.*++‰*@.*T,‰*@.&..‰&@.&..‰&@.&..*:.$k%‰&@.‰*@.‰$@.&.+‰&@.*,,‰*@.&..$e)‰&@.‰$@.&..*4%‰&@.‰*@.*C*‰*@.&v,‰&@H*q,‰*@.&.,‰&@.&..*.!‰&@.‰*@.&..*:)‰&@.‰*@.&y+‰&@.*Q+‰*@.*T+‰*@.&..‰&@.ÿ/.

Post Reply

Return to “Hosts & Applications (Sequencers, DAWs, Audio Editors, etc.)”