TL;DR:
- Raspi4 on bcm2711
- RTOS Poky (Yocto Project Reference Distro) 4.0.14
- factory 2048 sample IR profiles on a device which support 4096
The firmwares are found here
https://www.dimehead.de/firmware/Also i keep the copy of these
public files on a public read-only gdrive here
https://drive.google.com/drive/folders/1F81oPMX4k2fl2DXVtQYwa5-lTl9WUFlB and sync them time to time.
The actual list is
7ef44c7b9e5ff138e65d443f8989377ce97dacc9334bc4f2e7a769b5ca5b6985 NAMplayer0.9.1.zip
7818dfd1e2b30d8cf569845275d00f2226fc2c60de63605eefb25b1df87ecf32 NAMplayer0.9.2.zip
02f03d9d47211432cd780fd0df37d612efd57c0527b86711428f2e072419c7ad NAMplayer0.9.3.zip
6e893881e9d5f2181c33362e0d095026c5fe70d641298c53ed619d68677164c1 NAMplayer0.9.4.zip
ae692e02f6048523d624b5064d9e7cd3d4f072e0692d1fc35c608e95048f5ddd NAMplayer0.9.5.zip
8dfdd8b967b6b96f241edddbd1668dee05c5f79e0cc4f4a2176436cdcd238512 NAMplayer0.9.6.zip
33ef011390faad61066a56e9a8253cc91e222eccce42794b3946c19f489249ec NAMplayer0.9.7.zip
5924bb6d456643371d5389fecf23b7dfd164e95e99cdb34409f6a0cb7e27f459 NAMplayer0.9.8.zip
6a35e2dcfb92739312659217083c7173804e04dfc61cd6886e579479eb03c3d4 NAMplayer0.9.9.1.zip
025fe6d581243e6c0145835096401bc340acc8258e6d6e78a8456c06f3e5fac3 NAMplayer0.9.9.zip
90660fee56bb0085edb2a227d6a633fbb03b92fd52eb8c5aa391ea26659d2814 NAMplayer1.0.1.zip
332b3c1bfc2252ed22a77e2b53b0ac55cb76cae2f2a14cb72f7df55e7f6ac24a NAMplayer1.1.0.zip
aa26048499bc00c3d63e10b43722610109cdfd7f4a0d75e14afbcbe35abafaa7 NAMplayer1.1.2.zip
Let's take the lastone and open it, the `NAMplayer1.1.2.zip`. Inside you have 3 files:
861d6d7b9ea22a3443e0958a856f59d6bad0a0d6d2aa2731a144aad768b39bc7 boot.img
1e1761ce8942c56ed15d81cd8ca794261475ffd78070c6a3de452fa078100e32 boot.sig
38804695d9d544e2a176723f19ec4f60af4ac9193f082165b3c6d7c96d37fede namplayer.fw
we're interrested by `boot.img` & `namplayer.fw`.
I run a debian, so all happens under debian.
mkdir bootimg
mount -o loop boot.img bootimg
and boot.img is mounted in bootimg folder which is freshly created.
inside we have
d4eb975d2155940879fea0e9e524d128f0789745e19ea57f0b83d776154eebaa bcm2711-rpi-cm4.dtb
1110b7fa27e7d1097c798b9d13affef44a0cb201b2ffbadbbc37521b67553697 cmdline.txt
f42bdc49b1edea55ed7835b8dbd1fc1e6a8243c199b36048baee8fe0df8f5b98 config.txt
8165504ba4c161f31ce22af614b29a1edaf044ee43658b493496a8dcba5704b5 fixup4cd.dat
a19c4005fb581e5a23aec90e056905434c00eb7b50ef2a4a4cee193d1e9f668a Image.bin
1478b85147164bda554825ec9d5818bfe56fa60bd113910031e90fbf5ab5bf90 image-updater.cpio.gz
8e86f2f8d3cb8d5f9db4ab0decd13d8e704b1a01273c0b5d54a169be08c03849 start4cd.elf
`bcm2711-rpi-cm4.dtb` contain hw list of devices. What can i see is they run 4 core BCM2711 ARM CPU on a BCM2835 chipset. That whole setup is based on `Raspberry Pi Compute Module 4` and comparing power consumption 4.5W from website it matching 4.5W of raspi4, boot args are `coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=0 spidev.bufsiz=12288`.
If you want to know more you have to run `dtc -I dtb -O dts bcm2711-rpi-cm4.dtb` and browser a huge output.
config.txt is basic they enable uart & otg modes, in cmd line they isolate cores 2 & 3 from kernel, so kernel can use only 2 cores from 4. 1st CPU optimisation.
`Image.bin`, `fixup4cd.dat` & `start4cd.elf` are standard files for raspi. You can check them always btw. Latest originals are usually here
https://github.com/raspberrypi/firmware/tree/master/boot .
We're interrested by `image-updater.cpio.gz`:
1.1M bin
4.0K boot
4.0K dev
708K etc
8.0K home
4.0K init
5.4M lib
4.0K log_lock.pid
4.0K media
4.0K mnt
4.0K proc
4.0K run
2.6M sbin
4.0K sys
4.0K tmp
20M usr
52K var
`/etc/issue` tells us "Poky (Yocto Project Reference Distro) 4.0.14", the Yocto Linux from Yocto Peoject or the RTOS they are spoke about. Good point!
So here we see RTOS on Raspi4

But where is the rest? Well the rest is in handmade scripts & `namplayer.fw` file
There are few, we need `/usr/sbin/decrypt.sh` and the line #37. Idk if passphase is changed everytime, so i will write in general:
open console in the folder w/ `namplayer.fw` & replace `IDONTBANPEOPLE` with their actual passphrase
mkdir firmware
gpg -qd --passphrase "IDONTBANPEOPLE" --batch namplayer.fw | tar x -C firmware
if you did all well and there are no surprise you will get the files inside `firmware` folder
696ac55e01d907e966f356c440f95715cd2f6aeed0bfbabd6a7526aa4f6c6332 boot.img
3879c9bcd5a9c8e516f7cd064e686e92698e694d983c7ff1016b06047c9c818e boot.sig
317771d33750f5bc6954e905c5dd04ca3f1259bb679bb478c83af3fd6b9193a2 rootfs.tar.lz4
77123b8e4bdbd54505bf6e8021527ac60281602a06fe307564532c4dba39dbca version.txt
Yeah! We have to mount again boot.img
mkdir bootimg
mount -o loop boot.img bootimg
and we'll get the files
d4eb975d2155940879fea0e9e524d128f0789745e19ea57f0b83d776154eebaa bcm2711-rpi-cm4.dtb
b7ab18ce4680306c869343d565c69f13577728e5d91f99565d84ee84a7f5fb13 cmdline.txt
cb3b769e44cc12e92bbc06f7d5ecd87efbe4d6023f4ad0fc77ab42332f49dbce config.txt
8165504ba4c161f31ce22af614b29a1edaf044ee43658b493496a8dcba5704b5 fixup4cd.dat
7c1f87cedb77df7cf3804ac40ff94010c2aeed96c36978e9ffc795fd03724ac3 Image.bin
8e86f2f8d3cb8d5f9db4ab0decd13d8e704b1a01273c0b5d54a169be08c03849 start4cd.elf

here we see 2nd optimisation, after all is installed `isolcpus=1,2,3`, mean only 1 core from 4 is used by kernel now and 3/4 are by the software part (cause it have to run nam module and RT emulations!)
The stuff we need is in `rootfs.tar.lz4`. Lets unpack it `lz4 -d rootfs.tar.lz4 | tar xvf -` and get list of files:
740K bin
19M boot
52M data
4.0K dev
396K etc
8.0K home
3.9M lib
20K licenses
4.0K media
4.0K mnt
4.0K proc
8.0K run
1.3M sbin
4.0K sys
0 tmp
5.0M usr
36K var
4.0K version.txt
What we did since? We few basic tools we have in our linux on this linux. The opensource OS. Great!
They are aren't agree and i will tell you why:

`/data/Factory` contain their factory presets (.nam / .ir / .reverb).
Website says:
> The NAM player features a powerful Impulse Response (IR) loader that supports IRs up to 4096 samples in length, providing incredibly detailed and accurate cabinet simulations.
> The impulse response cab simulation supports wav files of a length up to 4096 samples at 48 kHz sample rate (will be resampled automatically). There is also a reverb effect, which can load impulse responses of up to 60 seconds.
In a may'2024 they had also (
webarchive link ):
> IR: Add a a speaker impulse response (up to 4096 samples @ 48 kHz = 85 ms)
which is disappeared.
Having this in TOS:
> 2.1. The display of products in the online shop is to be equated with an invitation to place an order and not a legally binding offer. Service descriptions included in catalogues or on the vendor’s websites are not to be equated with either a promise or a guarantee.
Doesn't assure me.
So i took their file `1x12closed_EVM12_E906.ir` and imported as a RAW file in Audacity.

and i see 43ms

which is value for 2048 sample IR.
So i asked them why did they put 2048 files on a device which support 4096? And they are banned me.
From my point of view:
* support != use
I wanted to know if namplayer use IRs as is or downsampling them.. for these purposes i have to disassemble `/usr/sbin/namplayer` file but it will be the only closed-source part of the system. So i won't touch it and it will economy my time. FIY Namplayer use NE10 which is under BSD-3, DRWAV under MIT and it call also SOXR under LGPL-2.1.
From my personal points i love, truly love:
- Possible to load public NAMs & IRs via file transfers
- Firmware aren't weird proprietary and it's linux based so to we can mod it and make better
- Suppose to be custom version of Raspi motherboard w/ 1Gig or ram
- We can open device and mod the PCB
- Well drew UI
- Smart idea w/ reverb (it's a sound pattern which the app mix w/ your sound in realtime, guess)
- Core isolation to run whole setup on 3 full cores
And sure, this idea: examine the market, pickup the best ideas, make a commercial product and add personal touch. I like & respect it.
But their reaction makes me sad and i know that i won't buy this device

Actually they are in silence mode. I don't see on website any updates.
They must at least add:
- specify DAC/ADC bit/kHz
- specify THDs
- specify in clear english that device load the NAM profiles as is and use them without modifications
- specify in clear english that device load IR profiles upto 4096 samples at 48kHz and use them as it without downscaling samples and the only modification they do could be sample rate adjustement via soxr to match 48kHz if profile aren't match 48kHz.
And, sure, remove:
2.1. The display of products in the online shop is to be equated with an invitation to place an order and not a legally binding offer. Service descriptions included in catalogues or on the vendor’s websites are not to be equated with either a promise or a guarantee.
Honestly "Service descriptions" or maybe "Product"? Or whatever they wanted to say confuse me a lot. But the phrase in english which is pretty clear is "descriptions included in catalogues or on the vendor’s websites are not to be equated with either a promise or a guarantee." is pretty clear for me and unacceptable for commercial goods.