<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Modartt user forum - Keyboard sampling freq]]></title>
	<link rel="self" href="https://forum.modartt.com/extern.php?action=feed&amp;tid=10234&amp;type=atom"/>
	<updated>2023-03-13T18:40:01Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.modartt.com/viewtopic.php?id=10234</id>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988753#p988753"/>
			<content type="html"><![CDATA[<div class="quotebox"><cite>brundlefly wrote:</cite><blockquote><p>But if the keyboard/controller is connected via 5-pin DIN too a standalone USD MIDI interface, you should (usually?) see that higher message frequency in real time.</p></blockquote></div><p>Yes, that&#039;s what I have shown in post 38 of this thread:<br /><a href="https://forum.modartt.com/viewtopic.php?pid=988685#p988685">https://forum.modartt.com/viewtopic.php...85#p988685</a></p><p>I could play 10 notes in just 6-7 ms with the Goldstar keyboard, that had its 5-pin DIN-MIDI connected via an Edirol USB-MIDI interface to the Pianoteq PC. That is better &quot;realtime&quot; behavior, than a directly USB connected keyboard to the same PC, which needed 10 ms for 10 notes (in other words 1 note per ms average).</p>]]></content>
			<author>
				<name><![CDATA[groovy]]></name>
				<uri>https://forum.modartt.com/profile.php?id=1021</uri>
			</author>
			<updated>2023-03-13T18:40:01Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988753#p988753</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988750#p988750"/>
			<content type="html"><![CDATA[<div class="quotebox"><cite>groovy wrote:</cite><blockquote><p>Things clear up after looking into the USB data with wireshark and usbmon. The USB connection expands each note event to complete 3 byte messages (no 2 byte running status notes exist in the USB path). The acceleration happens earlier over the 5-pin serial line between Goldstar keyboard and USB-MIDI converter (running status compression).</p><p>When the 3 byte messages arrive at the PC and are saved to standard midi file format, they are saved in the data reduced form using the running status method already known.</p><p>Alsa tools like amidi and aseqdump show the expanded note messages how they arrive with the USB packets. Like Pianoteq the alsa tool aseqdump translates Note-On vel 0 to the term &quot;Note Off&quot; in the monitoring.&nbsp; &nbsp;</p><p>Because the Korg B2 is directly connected via USB with the PC and complete 3 byte Note-On/Off messages are visible inside the USB frames, the Korg is probably not using running status internally.</p></blockquote></div><p>Resonses in this thread on the MIDI Association forum seem to support that (i.e. running status is only used across DIN connections and USB interfaces restore the status byte if not present):</p><p><a href="https://www.midi.org/forum/5262-running-status">https://www.midi.org/forum/5262-running-status</a></p><p>But if the keyboard/controller is connected via 5-pin DIN too a standalone USD MIDI interface, you should (usually?) see that higher message frequency in real time.</p>]]></content>
			<author>
				<name><![CDATA[brundlefly]]></name>
				<uri>https://forum.modartt.com/profile.php?id=8366</uri>
			</author>
			<updated>2023-03-13T16:34:59Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988750#p988750</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988724#p988724"/>
			<content type="html"><![CDATA[<p>Things clear up after looking into the USB data with wireshark and usbmon. The USB connection expands each note event to complete 3 byte messages (no 2 byte running status notes exist in the USB path). The acceleration happens earlier over the 5-pin serial line between Goldstar keyboard and USB-MIDI converter (running status compression).</p><p>When the 3 byte messages arrive at the PC and are saved to standard midi file format, they are saved in the data reduced form using the running status method already known.</p><p>Alsa tools like amidi and aseqdump show the expanded note messages how they arrive with the USB packets. Like Pianoteq the alsa tool aseqdump translates Note-On vel 0 to the term &quot;Note Off&quot; in the monitoring.&nbsp; &nbsp;</p><p>Because the Korg B2 is directly connected via USB with the PC and complete 3 byte Note-On/Off messages are visible inside the USB frames, the Korg is probably not using running status internally.</p>]]></content>
			<author>
				<name><![CDATA[groovy]]></name>
				<uri>https://forum.modartt.com/profile.php?id=1021</uri>
			</author>
			<updated>2023-03-12T00:33:38Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988724#p988724</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988719#p988719"/>
			<content type="html"><![CDATA[<p>But a sender has not to use running status, the sender is free to use complete 3-byte Note messages -- or is it mandatory?</p><p>Just the receiver should always be able to handle incoming running status streams.</p><p>Two questions are open at the moment:</p><p>Why do I find just ~1 note event per 1 ms from the Korg in Pianoteq&#039;s logging, when the recorded and saved MIDI file of Pianoteq indicates that running status is used? (We would expect 1 note per 2/3 ms)</p><p>Is it possible that the data reduction (removing of redundant status bytes) takes place in the moment when the standard midi file is saved? (and not before?)</p>]]></content>
			<author>
				<name><![CDATA[groovy]]></name>
				<uri>https://forum.modartt.com/profile.php?id=1021</uri>
			</author>
			<updated>2023-03-11T17:23:48Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988719#p988719</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988718#p988718"/>
			<content type="html"><![CDATA[<div class="quotebox"><cite>groovy wrote:</cite><blockquote><p>PPS: And strong indication, that the Korg B2 is using (like the most DP?) what I called &quot;hybrid&quot; running status just for illustration. Pressing and releasing a chord I saw a running status for the Note-On Status byte and a running status for the explicit Note-Off Status Byte in the recorded MIDI file. New hypothesis: All MIDI keyboards that send explicit Note-Off velocities are using running status <i class="far fa-smile smiley"></i></p></blockquote></div><p>What I was trying to convey earlier is that this is just garden-variety running status - a status byte is sent only when the status changes, and the implementation of running status is indpendent of whether Note Offs are used or not.</p>]]></content>
			<author>
				<name><![CDATA[brundlefly]]></name>
				<uri>https://forum.modartt.com/profile.php?id=8366</uri>
			</author>
			<updated>2023-03-11T16:45:52Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988718#p988718</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988717#p988717"/>
			<content type="html"><![CDATA[<p>PS: Just found a strong indication, that the conversion of Note-On Vel 0 to Note-Off Vel 0 is just &quot;cosmetical&quot; in PTQ&#039;s&nbsp; midi monitor. I recorded the incoming chords in Pianoteq, saved the MIDI file (*.mid) and found with a hex-editor just a single Status Byte (0x90) and <strong>no</strong> Note-Off Status Byte (0x80) using the little Goldstar keyboard.</p><p>With my other Korg keyboard both Note-On and Note-Off Status Bytes are in the recorded MIDI file.</p><p>If the data were rewritten to standard Note-Off events by Pianoteq, I would have expected to see that in the recorded MIDI data.</p><p>PPS: And strong indication, that the Korg B2 is using (like the most DP?) what I called &quot;hybrid&quot; running status just for illustration. Pressing and releasing a chord I saw a running status for the Note-On Status byte and a running status for the explicit Note-Off Status Byte in the recorded MIDI file. New hypothesis: All MIDI keyboards that send explicit Note-Off velocities are using running status <i class="far fa-smile smiley"></i></p>]]></content>
			<author>
				<name><![CDATA[groovy]]></name>
				<uri>https://forum.modartt.com/profile.php?id=1021</uri>
			</author>
			<updated>2023-03-11T11:25:11Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988717#p988717</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988714#p988714"/>
			<content type="html"><![CDATA[<div class="quotebox"><cite>brundlefly wrote:</cite><blockquote><p>If you&#039;re going to implement Note Off velocity and still have the efficiency of running status, that&#039;s exactly what you would need to do.</p></blockquote></div><p>... it just wouldn&#039;t make much sense in a played MIDI keyboard, because every released key then has to generate a Note Off Status Byte in the first place. And then the following running status just survives until the next Note On Status Byte arrives. The running status would be steadily interrupted and &quot;decompressed&quot; by new played keys. - But maybe somewhere in the world a keyboard exists, that is doing this hybrid method, who knows?<br />(the shown Yamaha and Goldstar don&#039;t)<br />&nbsp; <br /></p><div class="quotebox"><blockquote><p>From the standpoint of efficiency, I think it&#039;s more likely that the monitor works in parallel to render the MIDI input to text while the engine renders the raw MIDI to sound. Presenting Note Ons as Note Offs is probably just to the user in distinguishing &quot;Off&quot;s from Ons at a glance.</p></blockquote></div><p>Yes, but a parallel logging and soundprocessing could also happen when the incoming MIDI event has been rewritten previously to real Note Off (and not just cosmetically) - Probably only Modartt knows the facts.</p>]]></content>
			<author>
				<name><![CDATA[groovy]]></name>
				<uri>https://forum.modartt.com/profile.php?id=1021</uri>
			</author>
			<updated>2023-03-11T08:37:02Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988714#p988714</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988707#p988707"/>
			<content type="html"><![CDATA[<div class="quotebox"><cite>groovy wrote:</cite><blockquote><p>Each additional Note-Off status byte would reduce that efficiency.</p></blockquote></div><p>Yes, but it&#039;s not &quot;Impossible&quot;&nbsp; to use both Note Offs and running status. If you&#039;re going to implement Note Off velocity and still have the efficiency of running status, that&#039;s exactly what you would need to do.</p><div class="quotebox"><blockquote><p>... thinking over it, it also could be more than just unprecise reporting in Pianoteq&#039;s monitor.<br />It is possible Pianoteq <strong>rewrites</strong> the incoming Note-On-velocity-0 events to Note-Off-velocity-0 events, sends them to the soundengine and presents this new MIDI event in the logger.</p><p>What do you think?</p></blockquote></div><p>From the standpoint of efficiency, I think it&#039;s more likely that the monitor works in parallel to render the MIDI input to text while the engine renders the raw MIDI to sound. Presenting Note Ons as Note Offs is probably just to the user in distinguishing &quot;Off&quot;s from Ons at a glance.</p>]]></content>
			<author>
				<name><![CDATA[brundlefly]]></name>
				<uri>https://forum.modartt.com/profile.php?id=8366</uri>
			</author>
			<updated>2023-03-11T00:21:32Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988707#p988707</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988699#p988699"/>
			<content type="html"><![CDATA[<p>Yes, of course Runnings Status is not limited to Note On/Off status bytes. I know that and just abbreviated and simplified it in one sentence for this thread about the polyphony of played MIDI notes.</p><p>When playing just MIDI notes on a keyboard one single Note-On status byte is sufficient to play eternally with the highest &quot;compression&quot; rate of ~2/3. Each additional Note-Off status byte would reduce that efficiency.</p><p>In the first post a Yamaha CLP-120 is mentioned. It seems to work like my Korean keyboard. The Yamaha cannot send Note-Off status bytes (8nH). It &quot;only&quot; sends Note-On status bytes with velocity 0 (9nH, v=0) and therefore probably is using Running Status:</p><p>Midi implementation chart CLP-120:<br /><span class="postimg"><img src="https://i.postimg.cc/P53Xbg6K/Yamaha-CLP-130-120-Velocity-MIDI-implementation-chart.png" alt="https://i.postimg.cc/P53Xbg6K/Yamaha-CLP-130-120-Velocity-MIDI-implementation-chart.png" title="https://i.postimg.cc/P53Xbg6K/Yamaha-CLP-130-120-Velocity-MIDI-implementation-chart.png"/></span><br />(the 2nd column)</p><div class="quotebox"><cite>brundlefly wrote:</cite><blockquote><p>That said, however, I confirmed CW [<em>Ann: Cakewalk</em>] is sending Note On with velocity 0 and Pianoteq&#039;s monitor is reporting it as &quot;Note Off&quot;.</p></blockquote></div><p>... thinking over it, it also could be more than just unprecise reporting in Pianoteq&#039;s monitor.<br />It is possible Pianoteq <strong>rewrites</strong> the incoming Note-On-velocity-0 events to Note-Off-velocity-0 events, sends them to the soundengine and presents this new MIDI event in the logger.</p><p>What do you think?</p>]]></content>
			<author>
				<name><![CDATA[groovy]]></name>
				<uri>https://forum.modartt.com/profile.php?id=1021</uri>
			</author>
			<updated>2023-03-10T19:20:45Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988699#p988699</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988697#p988697"/>
			<content type="html"><![CDATA[<div class="quotebox"><cite>groovy wrote:</cite><blockquote><div class="quotebox"><cite>brundlefly wrote:</cite><blockquote><p>Yes, Cakewalk uses running status and actual Note Offs, but Note Off velocity is fixed at 0.</p></blockquote></div><p>Are you sure?<br />That should be impossible. The principle of &quot;running status&quot; is that real note-off status bytes are omitted. Just note-on status bytes are used and the end of a note is simulated by <strong>note-on</strong> with velocity 0.</p></blockquote></div><p>I believe that&#039;s a misinterpretation. The purpose of running status is to send a status byte only when the status changes, and it is not limited to Note On/Off messages, In fact it&#039;s arguably more important for transmitting Continuous Controller messages which tend to have a higher density than Note messages. So in my test there would be is a series of Note Ons that require no change in status after the first, then a change to Note Off followed by a series of additional Note Offs that require no status byte.</p><p>That said, however, I confirmed CW is sending Note On with velocity 0 and Pianoteq&#039;s monitor is reporting it as &quot;Note Off&quot;.</p><p>In any case, My intent was primarily to show that both Pianoteq 7 and 8 are capturing note timings down to a resolution of 1ms, and neither is quantizing the closely-spaced notes of a chord to the same timestamp as suggested by the OP.</p>]]></content>
			<author>
				<name><![CDATA[brundlefly]]></name>
				<uri>https://forum.modartt.com/profile.php?id=8366</uri>
			</author>
			<updated>2023-03-10T16:12:39Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988697#p988697</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988685#p988685"/>
			<content type="html"><![CDATA[<p>... I installed <em>midisnoop</em>, that is showing &quot;Running status&quot; more clearly. MIDI source is an decades old korean keyboard with 49 keys and a 5-pin-DIN MIDI output, connected with an Edirol UM-1SX USB-MIDI-converter to my laptop.</p><p>Experiment was again to press 10 notes simultaneously (with the folding rule).<br />The first 10 events are the Note On events in a delta of 6ms.</p><p>Then I released the keys simultaneously and got 10 release events with <strong>Note On and Velocity 0</strong>. The time delta for all releases is 7 ms.</p><p>The &quot;Running status&quot; MIDI data reduction/compression of the keyboard controller had reduced the standard delta of 10 ms to 6-7 ms (a factor ~2/3).</p><p>Pianoteq <strong>interpretes</strong> the event &#039;Note On with Velocity 0&#039; semantically as Note Off Velocity 0 in its event logger, which is ok in my opinion.</p><p><span class="postimg"><img src="https://i.postimg.cc/QxSPQ6zx/Keyboard-with-Running-status-DIN-to-USB-MIDI-10-notes.png" alt="https://i.postimg.cc/QxSPQ6zx/Keyboard-with-Running-status-DIN-to-USB-MIDI-10-notes.png" title="https://i.postimg.cc/QxSPQ6zx/Keyboard-with-Running-status-DIN-to-USB-MIDI-10-notes.png"/></span></p>]]></content>
			<author>
				<name><![CDATA[groovy]]></name>
				<uri>https://forum.modartt.com/profile.php?id=1021</uri>
			</author>
			<updated>2023-03-09T18:34:48Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988685#p988685</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988650#p988650"/>
			<content type="html"><![CDATA[<div class="quotebox"><cite>brundlefly wrote:</cite><blockquote><p>Yes, Cakewalk uses running status and actual Note Offs, but Note Off velocity is fixed at 0.</p></blockquote></div><p>Are you sure?<br />That should be impossible. The principle of &quot;running status&quot; is that real note-off status bytes are omitted. Just note-on status bytes are used and the end of a note is simulated by <strong>note-on</strong> with velocity 0.</p>]]></content>
			<author>
				<name><![CDATA[groovy]]></name>
				<uri>https://forum.modartt.com/profile.php?id=1021</uri>
			</author>
			<updated>2023-03-08T18:43:41Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988650#p988650</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988649#p988649"/>
			<content type="html"><![CDATA[<div class="quotebox"><cite>brundlefly wrote:</cite><blockquote><p>I did the same with Pianoteq 7 and observed no differences in timestamping or sound.</p><p>Bottom line: Both Pianoteq 7 and 8 appear to processing MIDI Note Ons at the limit of MIDI 1.0 message transmission frequency.</p></blockquote></div><p>thank you! </p><p>I kinda guessed that.<br />The perception of these details on the sound depend on so many factors that we can easily dismiss if not used to these analyses...</p>]]></content>
			<author>
				<name><![CDATA[Antonio M]]></name>
				<uri>https://forum.modartt.com/profile.php?id=7288</uri>
			</author>
			<updated>2023-03-08T17:18:46Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988649#p988649</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988647#p988647"/>
			<content type="html"><![CDATA[<p>Yes, Cakewalk uses running status and actual Note Offs, but Note Off velocity is fixed at 0.</p>]]></content>
			<author>
				<name><![CDATA[brundlefly]]></name>
				<uri>https://forum.modartt.com/profile.php?id=8366</uri>
			</author>
			<updated>2023-03-08T16:24:01Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988647#p988647</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Keyboard sampling freq]]></title>
			<link rel="alternate" href="https://forum.modartt.com/viewtopic.php?pid=988639#p988639"/>
			<content type="html"><![CDATA[<div class="quotebox"><cite>brundlefly wrote:</cite><blockquote><p>Pianoteq pretty consistently time-stamped the 36 notes across a range of only 24 milliseconds with many notes on the same timestamp - call it 2/3 of a millisecond per message.</p></blockquote></div><p>Probably the Cakewalk MIDI sequencer is using a trick in the MIDI protocol, called &quot;Running Status&quot;:</p><p>&quot;Only if only grade values are transferred in faster succession and instead of the explicit note-off command a note-on command with a dynamic value 0 is used, the transmission of the status bytes can be dispensed with (running status). However, the amount of data to be transmitted for this block only drops by 1/3.&quot;</p><p>&quot;If a data byte comes instead of an expected status byte, the last status byte is considered repeated and the current data byte is one of its data (running status).&quot;</p><p>(Google translate of <a href="https://de.wikipedia.org/wiki/MIDI">https://de.wikipedia.org/wiki/MIDI</a> )</p><br /><p>Is cakewalk using note-on with velocity 0 instead of the usual note-off?</p>]]></content>
			<author>
				<name><![CDATA[groovy]]></name>
				<uri>https://forum.modartt.com/profile.php?id=1021</uri>
			</author>
			<updated>2023-03-08T08:52:22Z</updated>
			<id>https://forum.modartt.com/viewtopic.php?pid=988639#p988639</id>
		</entry>
</feed>
