Difference between revisions of "Pianotec on Odroid-N2"

(Benchmark by Marcos Daniel)
(What the code does - description by Marcos Daniel)
Line 21: Line 21:
 
==== What the code does - description by Marcos Daniel ====
 
==== What the code does - description by Marcos Daniel ====
 
<pre>
 
<pre>
It is a stress test, the program generates a MIDI file with ten glissandi from the lowest A to the top C, (on white keys).
+
It is a stress test, the program generates a MIDI file with ten glissandi  
 +
from the lowest A to the top C, (on white keys).
 
The damper pedal is down during each glissandi.
 
The damper pedal is down during each glissandi.
In the first try, every note takes is played 100ms after the previous one. The program asks if there was an error in the playback,  
+
In the first try, every note takes is played 100ms after the previous one.  
if there is not overload, you press "y" and it will generate another MIDI file, this time with 50ms between notes.
+
The program asks if there was an error in the playback, if there is not  
So the sequence of notes duration is (geometric progression) 100ms, 50ms, 25ms, 12.5ms, 6.25 ms, and so on.
+
overload, you press "y" and it will generate another MIDI file, this time  
When the computing power is not enough, an overload will occur, let's suppose it happens whith 12.5ms of delay, then the  
+
with 50ms between notes.
next delay will be the average of 12.5ms and 25ms (the lowest time without overload) = 18.75ms, if there is not error, next  
+
So the sequence of notes duration is (geometric progression) 100ms, 50ms,  
duration will be average between this last value and the maximum time with error, i.e. (18.75 + 12.5)/2 = 15.625ms.
+
25ms, 12.5ms, 6.25 ms, and so on.
By doing this, quiclky one obtains a final result (10 or 12 tries), and when asked pressing key "t" (for terminate) the program exits.
+
When the computing power is not enough, an overload will occur, let's suppose  
 +
it happens whith 12.5ms of delay, then the next delay will be the average of  
 +
12.5ms and 25ms (the lowest time without overload) = 18.75ms, if there is  
 +
not error, next duration will be average between this last value and the  
 +
maximum time with error, i.e. (18.75 + 12.5)/2 = 15.625ms.
 +
By doing this, quiclky one obtains a final result (10 or 12 tries), and when  
 +
asked pressing key "t" (for terminate) the program exits.
 
Any run can be skipped by ctrl+c.
 
Any run can be skipped by ctrl+c.
 
The program is "as is", and in Spanish.
 
The program is "as is", and in Spanish.
At last, but not least, on odroid XU4, it run more consistentlyif you run Pianoteq (or this test) from big cores excluding small ones,  
+
At last, but not least, on odroid XU4, it run more consistentlyif you run  
this can be done by taskset command, in case of XU4, big cores are numbered from 4 to 7, so the command would be  
+
Pianoteq (or this test) from big cores excluding small ones, this can be  
taskset 0xF0 [command]. There is some improvement if you use less niceness, for instance I ran most testst this way:
+
done by taskset command, in case of XU4, big cores are numbered from  
 +
4 to 7, so the command would be  
 +
taskset 0xF0 [command]. There is some improvement if you use less niceness,  
 +
for instance I ran most testst this way:
 
nice -10 taskset 0xF0 ./ptq_bench
 
nice -10 taskset 0xF0 ./ptq_bench
Pianoteq executable file must be in the same folder and version removed, simply named "Pianoteq".
+
Pianoteq executable file must be in the same folder and version removed,  
 +
simply named "Pianoteq".
 
</pre>
 
</pre>
 
  
 
==== Results ====
 
==== Results ====

Revision as of 15:22, 24 May 2020

> Main Page > Piano Expander based on Pianotec and Odroid-N2


ARM 32 vs. AARCH64

Pianotec 6 Stage Installation on Odroid

  • coming soon

Some pictures

First-Test-Setup-2.jpg First-Test-Setup-1.jpg

Piano-Expander-Bechstein.jpg Piano-Expander-MK2.jpg

CPU Performance Benchmarks

Benchmark by Marcos Daniel

What the code does - description by Marcos Daniel

It is a stress test, the program generates a MIDI file with ten glissandi 
from the lowest A to the top C, (on white keys).
The damper pedal is down during each glissandi.
In the first try, every note takes is played 100ms after the previous one. 
The program asks if there was an error in the playback, if there is not 
overload, you press "y" and it will generate another MIDI file, this time 
with 50ms between notes.
So the sequence of notes duration is (geometric progression) 100ms, 50ms, 
25ms, 12.5ms, 6.25 ms, and so on.
When the computing power is not enough, an overload will occur, let's suppose 
it happens whith 12.5ms of delay, then the next delay will be the average of 
12.5ms and 25ms (the lowest time without overload) = 18.75ms, if there is 
not error, next duration will be average between this last value and the 
maximum time with error, i.e. (18.75 + 12.5)/2 = 15.625ms.
By doing this, quiclky one obtains a final result (10 or 12 tries), and when 
asked pressing key "t" (for terminate) the program exits.
Any run can be skipped by ctrl+c.
The program is "as is", and in Spanish.
At last, but not least, on odroid XU4, it run more consistentlyif you run 
Pianoteq (or this test) from big cores excluding small ones, this can be 
done by taskset command, in case of XU4, big cores are numbered from 
4 to 7, so the command would be 
taskset 0xF0 [command]. There is some improvement if you use less niceness, 
for instance I ran most testst this way:
nice -10 taskset 0xF0 ./ptq_bench
Pianoteq executable file must be in the same folder and version removed, 
simply named "Pianoteq".

Results

  • coming soon

> Main Page > Piano Expander based on Pianotec and Odroid-N2