Here are the results of a polyphony test on my Macbook Pro M1 Max.
The specific model is the MacBook Pro (16-inch, 2021), M1 Max, 64GB RAM, 4TB SSD.
My audio interface is a Focusrite Scarlett 8i6.
These tests were performed through Logic Pro X 10.7.2, using the Hauptwerk AU bridge for MIDI and audio return. I was playing the notes live, not sequencing. I also had my normal audio FX chain running, which includes FabFilter Pro C2 (for compression), and FabFilter Pro R (for reverb). Logic and the FabFilter plugins were running in native mode. Only Hauptwerk and the AU bridge were running through Rosetta. Consider this a worse-case test.
I will test again later using an alternate config setup for direct MIDI and Audio, with no effects processing involved.
Base Settings:
Engine Sample Rate: 96Khz
Engine Processing Quality: Higher
Model Quality: Higher
Wind Supply Model: Enabled
Buffer 0128 X 1:
1750
Buffer 0128 X 2:
1750
Buffer 0256 X 1:
2000
Buffer 0256 X 1:
2000
Buffer 0256 X 2:
2000
Buffer 0512 X 1:
2125
Buffer 0512 X 2:
2125
Here's where it gets interesting.
Buffer 1024 X 1:
2000
Buffer 1024 X 2:
2125
Buffer 2048 X 1:
1000
Buffer 2048 X 2:
2125
Buffer 4096 X 1:
500
Buffer 4096 X 2:
2125
Increasing the buffer count did not increase polyphony for any given buffer size, so I only reported the results with 1 and 2 buffers.
Note that this is through Rosetta2, which does not support any AVX extensions, so the above results are achievable even without those vector optimizations.
I'll be really interested to see how this might change once Hauptwerk is running ARM-native, with Neon vector code.
Note that these results should also represent what is achievable on an M1 Pro CPU. The chief difference between the Pro and the Max is that the Max has double the memory bandwidth @ 400GB/s. However, the CPU is not able to saturate the memory bandwidth even on the Pro @ 200GB/s. The overhead is there for the use of the GPU, and Hauptwerk does not use the GPU.
NOTE: It just occurred to me that the above test is the result of a buffer interaction between Hauptwerk and Logic. My Logic buffer was set to 512 for all of the above tests. That would explain the weird results above 0512. It also invalidates the buffer size results lower than 512.
The specific model is the MacBook Pro (16-inch, 2021), M1 Max, 64GB RAM, 4TB SSD.
My audio interface is a Focusrite Scarlett 8i6.
These tests were performed through Logic Pro X 10.7.2, using the Hauptwerk AU bridge for MIDI and audio return. I was playing the notes live, not sequencing. I also had my normal audio FX chain running, which includes FabFilter Pro C2 (for compression), and FabFilter Pro R (for reverb). Logic and the FabFilter plugins were running in native mode. Only Hauptwerk and the AU bridge were running through Rosetta. Consider this a worse-case test.
I will test again later using an alternate config setup for direct MIDI and Audio, with no effects processing involved.
Base Settings:
Engine Sample Rate: 96Khz
Engine Processing Quality: Higher
Model Quality: Higher
Wind Supply Model: Enabled
Buffer 0128 X 1:
1750
Buffer 0128 X 2:
1750
Buffer 0256 X 1:
2000
Buffer 0256 X 1:
2000
Buffer 0256 X 2:
2000
Buffer 0512 X 1:
2125
Buffer 0512 X 2:
2125
Here's where it gets interesting.
Buffer 1024 X 1:
2000
Buffer 1024 X 2:
2125
Buffer 2048 X 1:
1000
Buffer 2048 X 2:
2125
Buffer 4096 X 1:
500
Buffer 4096 X 2:
2125
Increasing the buffer count did not increase polyphony for any given buffer size, so I only reported the results with 1 and 2 buffers.
Note that this is through Rosetta2, which does not support any AVX extensions, so the above results are achievable even without those vector optimizations.
I'll be really interested to see how this might change once Hauptwerk is running ARM-native, with Neon vector code.
Note that these results should also represent what is achievable on an M1 Pro CPU. The chief difference between the Pro and the Max is that the Max has double the memory bandwidth @ 400GB/s. However, the CPU is not able to saturate the memory bandwidth even on the Pro @ 200GB/s. The overhead is there for the use of the GPU, and Hauptwerk does not use the GPU.
NOTE: It just occurred to me that the above test is the result of a buffer interaction between Hauptwerk and Logic. My Logic buffer was set to 512 for all of the above tests. That would explain the weird results above 0512. It also invalidates the buffer size results lower than 512.
Last edited by mwdiers on Fri Jan 28, 2022 12:59 pm, edited 1 time in total.