Keyboard recording problem

Started by jcmarcos, October 20, 2009, 14:42:05

Previous topic - Next topic

jcmarcos

Hello people. I'm one of those who has rediscovered tracking, and I've just registered to this site, because I have a problem that I almost can't believe is true.
I've done a couple of searches, and haven't found anyone with my symptom, which surprises me, as I have exactly the same problem with exctly the same version 1.17.2.54 of OpenMPT, on two completely different computers.
My problem is as follows: I find it impossible to record a melody on a playing pattern with the computer's regular keyboard. Notes don't get into the pattern position I need.
Alright, it's been many years since I last used a tracker (I'm a bit embarrased to reveal which one), but I believe I can still follow a rythm. I've created a four by four kick drum pattern, then attempt to add a melody, and it's impossible, notes seem to get in the previous row that I want. The instrument I'm using is a piano, provided by a VST plugin. The only keyboard related thing I've changed is that chord detection timeout, set it to zero.
Any ideas?

LPChip

This sounds really vague. Nevertheless I still want to try to help you.

Can you make a screenshot of the pattern where you want the note to enter, edit that screenshot and draw where the cursor should be and where the notes are being entered?

Either its a simple configuration problem, or something else is going on...

I hope that a screenshot can help us finding out what causes this.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

jcmarcos

Quote from: "LPChip"This sounds really vague. Nevertheless I still want to try to help you.

Thank you very much. I agree that the problem seems hard to believe.

QuoteCan you make a screenshot of the pattern where you want the note to enter, edit that screenshot and draw where the cursor should be and where the notes are being entered?

Sure, here it is:



See those three pityful notes on channel 2? I swear i pressed "C-6" just in row 48, and it got in row 47. Happens to me almost always, it only gets right when I press keys delayed on purpose which, as you might guess, is almost impossible with music in mind.

Saga Musix

Actually, your C-6 is on row 49, which would suggest that there's a big latency (which would be typical of cheap midi cards).

You can try enabling "automatic delay commands" from the "General" setup screen. Thisi will automatically insert SDx commands (i.e. delays). This works best with modern tempo settings (you can enable those from the "song properities" dialog) and a rather high song speed (15 is the most efficient in this case, anything above is useless).
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

LPChip

Can you try setting row-spacing to 1, and see if that helps?

EDIT: Jojo's suggestion sounds more likely, but you can still give it a try.

To combat Jojo's suggestion, you could decrease the audiobuffer.

If you have DirectX, use it instead of a wave device. If you have ASIO, even better.

The lower the latency, the better response you get.

To see how the response is, press play pattern while viewing the pattern, and look for the playing row indicator. See if it makes sound when it highlights a note or not. If this is off, so will entered notes be.
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

Saga Musix

Row spacing doesn't work when recording live, so that option is out of question. It would be very bad if it actually worked, since it would speed up the module whenever a note is being entered.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

LPChip

Quote from: "Jojo"Row spacing doesn't work when recording live, so that option is out of question. It would be very bad if it actually worked, since it would speed up the module whenever a note is being entered.

I kinda missed the part that he was recording live during playback. Your reply made me realize that and I edited my post afterwards...
"Heh, maybe I should've joined the compo only because it would've meant I wouldn't have had to worry about a damn EQ or compressor for a change. " - Atlantis
"yes.. I think in this case it was wishful thinking: MPT is makng my life hard so it must be wrong" - Rewbs

Sam_Zen

When reading this topic, I started wondering : - Is he trying to record notes while the pattern is running ?

If so, it will always be implemented with some delay, no matter how fast the driver is.
I used this mode occasionally to get a 'live' touch, but, as Jojo states, with "automatic delay commands" enabled.
0.618033988

Saga Musix

QuoteIf so, it will always be implemented with some delay, no matter how fast the driver is.
Even with home studio equipment you can get this down to an completely unnoticable delay, though.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

Sam_Zen

Of course you're right in a practical sense, but I meant it theoretically.
Even an unnnoticable delay could cause a note to land in row 30, not 29.
0.618033988

Rakib

Don't forget the SDx values to improve the precision.
^^

jcmarcos

You are a group of very helpful people!

Quote from: "Jojo"Actually, your C-6 is on row 49, which would suggest that there's a big latency (which would be typical of cheap midi cards).

My mistake, I actually meant "D-6", which is the note which should go to row 48 (where the kick drum beats in channel 1). That's what shocked me, the note got recorded one row before, not after. It's the opposite to a delay.

Quote...modern tempo settings...

Yes, while desperately searching for keyboard recording options, I saw that "modern tempo" setting, and wondered what it was really. Is it adviseable to use it, as a general rule? I guess it has something to do with the way a pattern's playback speed is crafted.

QuoteThe lower the latency, the better response you get.

Of course, but I believed that the recording would be fine out of the box. Latencies do exist, but I didn't expect them to be so noticeable in modern systems.

Quotepress play pattern while viewing the pattern, and look for the playing row indicator. See if it makes sound when it highlights a note or not

Guess what, even the pattern moves a bit in a jumpy way while playing. The music plays 100% right, but it seems the pattern somehow struggles to follow it. Again, something I wouldn't expect in a modern system. And remember, I have the same symptoms on two completely different computers. As you probably guess, I don't have any fancy audio card, and just resort to the simple integrated audio functions of the computer.

Quote from: "Sam_Zen"Even an unnnoticable delay could cause a note to land in row 30, not 29

Yes, but my problem is that the note is put into the row before, not the row after.

Quote from: "Rakib"Don't forget the SDx values to improve the precision

If I understand correctly, delay is not actually my problem. Should I try these "automatic delay" option anyway?

Quote from: "LPChip"you could decrease the audiobuffer.

That sounds appropiate, I was already thinking about something like this. After all, trackers no longer bang Paula chip directly (hint for the oldest blokes here).

QuoteIf you have DirectX, use it instead of a wave device. If you have ASIO, even better.

Aha! Will do. Let me make some tests, and will be back with some news. Thankyou again to all of you!

Saga Musix

QuoteYes, while desperately searching for keyboard recording options, I saw that "modern tempo" setting, and wondered what it was really. Is it adviseable to use it, as a general rule? I guess it has something to do with the way a pattern's playback speed is crafted.
If you want to spread your modules in IT or XM format, you shouldn not use it as no other player supports it. Basically, The song's tempo will exactly match the BPM, no matter how high or low you set the speed - The "tempo" will always match the BPM. The speed on the other hand will determine how many rows will be processed in one pattern row.

QuoteGuess what, even the pattern moves a bit in a jumpy way while playing.
Yes, because you use Wave Out or DirectX with rather high latencies (>50ms). ModPlug doesn't sync really well at those high latencies. With ASIO, you can go down to 1ms latency, which will compensate also the "jumpy" patterns.

QuoteIf I understand correctly, delay is not actually my problem. Should I try these "automatic delay" option anyway?
It is. ModPlug registers your keypress while it is still in the old row (which might, for example, be due to the high latency explained above - remember, Audio playback and pattern display are processed independently!), so enabling automatic delay commands, this can be compensated - your note will still not be exactly on row 48, but at least on row 47, tick 15 - which is better than row 47, tick 0. Since there's no real quantization happening in MPT, this is the closest you can get, and manual adjustments are always necessary.
» No support, bug reports, feature requests via private messages - they will not be answered. Use the forums and the issue tracker so that everyone can benefit from your post.

jcmarcos

Quote from: "Jojo"
QuoteI saw that "modern tempo" setting. Is it adviseable to use it, as a general rule?
If you want to spread your modules in IT or XM format, you shouldn not use it as no other player supports it. The "tempo" will always match the BPM. The speed on the other hand will determine how many rows will be processed in one pattern row.

Understood (I think... :D ).

Quote
QuoteGuess what, even the pattern moves a bit in a jumpy way while playing.
Yes, because you use Wave Out or DirectX with rather high latencies (>50ms). ModPlug doesn't sync really well at those high latencies. With ASIO, you can go down to 1ms latency, which will compensate also the "jumpy" patterns.

Well, then, I want "ASIO", which I don't know what it ls... In the sound card setup, I can choose between eight options:

1.- Auto (wave mapper)
2.- Realtek HD Audio output
3.- Modem line #1
4.- Modem headphone #1
5.- Primary audio driver
6.- Realtek HD Audio output
7.- Modem line #1
8.- Modem headphone #1

Actually, as my system is in spanish, the descriptions vary, I hope I have translated them well. As you can see, it looks as if there are, actually, four options in two flavours: The first four have a yellow speaker icon, the last four have a yellow X inside a blue circle. What's that? Also, with these later options, the option to use of secondary buffers is available.
Which one should I choose? Can I have ASIO at all with the embedded Realtek audio chip?

Here is a screenshot of my sour card options tab (why doesn't it show here, instead of just the URL?):



Quote
QuoteIf I understand correctly, delay is not actually my problem. Should I try these "automatic delay" option anyway?
It is. ModPlug registers your keypress while it is still in the old row

Aha! This explains a lot. At least, now my problem doesn't shock me that much. And why does OpenMPT need to do that...?

Quote(which might, for example, be due to the high latency explained above)

...this must be the explanation.

Quoteremember, Audio playback and pattern display are processed independently!

Of course, but it shocked me a lot that painting the song pattern was so hard to do for a moden system. By now, I guess you know on which system I tracked when I was young...

Quoteenabling automatic delay commands, this can be compensated - your note will still not be exactly on row 48, but at least on row 47, tick 15 - which is better than row 47, tick 0

Aha! Where can I set that amount of delay for every note I record?

QuoteSince there's no real quantization happening in MPT, this is the closest you can get, and manual adjustments are always necessary.

Understood. Thankyou very much Jojo![/img]

uncloned

can this help??

ASIO4ALL

http://www.asio4all.com/

ASIO driver for almost every sound card.