Eurorack-blocks: an open-source project to design your very own Eurorack module

Thanks for the report!

$ erbb configure
Traceback (most recent call last):
...
ModuleNotFoundError: No module named ‘soundfile’

So the Python package soundfile is not installed.
Could you please run:

$ erbb setup

And tell me what it returns?

mkdir Release didn’t return anything visibly in the git bash console

Ah sorry this was just the first expected line of log of erbb build simulator. It most likely created a folder Release inside your max/reverb folder, but that shouldn’t create any problem.

Thanks!

This is what came back!

 MINGW64 ~/eurorack-blocks/max/reverb (main)
$ erbb setup
Chocolatey v1.1.0
Installing the following packages:
gcc-arm-embedded;libsndfile
By installing, you accept licenses for the packages.
gcc-arm-embedded v10.2.1 already installed.
 Use --force to reinstall, specify a version to install, or try upgrade.
libsndfile v1.0.31 already installed.
 Use --force to reinstall, specify a version to install, or try upgrade.

Chocolatey installed 0/2 packages.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Warnings:
 - gcc-arm-embedded - gcc-arm-embedded v10.2.1 already installed.
 Use --force to reinstall, specify a version to install, or try upgrade.
 - libsndfile - libsndfile v1.0.31 already installed.
 Use --force to reinstall, specify a version to install, or try upgrade.
Chocolatey v1.1.0
Installing the following packages:
kicad
By installing, you accept licenses for the packages.
kicad v5.1.12.1 already installed.
 Use --force to reinstall, specify a version to install, or try upgrade.

Chocolatey installed 0/1 packages.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Warnings:
 - kicad - kicad v5.1.12.1 already installed.
 Use --force to reinstall, specify a version to install, or try upgrade.
/c/Users/Jonas/.bash_profile: line 3: source: C:/Users/Jonas: is a directory
warning: base-devel-2022.01-2 is up to date -- skipping
warning: mingw-w64-x86_64-binutils-2.38-2 is up to date -- skipping
warning: mingw-w64-x86_64-crt-git-10.0.0.r0.gaa08f56da-1 is up to date -- skipping
warning: mingw-w64-x86_64-gcc-11.3.0-1 is up to date -- skipping
warning: mingw-w64-x86_64-gcc-ada-11.3.0-1 is up to date -- skipping
warning: mingw-w64-x86_64-gcc-fortran-11.3.0-1 is up to date -- skipping
warning: mingw-w64-x86_64-gcc-libgfortran-11.3.0-1 is up to date -- skipping
warning: mingw-w64-x86_64-gcc-libs-11.3.0-1 is up to date -- skipping
warning: mingw-w64-x86_64-gcc-objc-11.3.0-1 is up to date -- skipping
warning: mingw-w64-x86_64-gdb-11.2-2 is up to date -- skipping
warning: mingw-w64-x86_64-gdb-multiarch-11.2-2 is up to date -- skipping
warning: mingw-w64-x86_64-headers-git-10.0.0.r0.gaa08f56da-1 is up to date -- skipping
warning: mingw-w64-x86_64-libgccjit-11.3.0-1 is up to date -- skipping
warning: mingw-w64-x86_64-libmangle-git-10.0.0.r0.gaa08f56da-1 is up to date -- skipping
warning: mingw-w64-x86_64-libwinpthread-git-10.0.0.r0.gaa08f56da-1 is up to date -- skipping
warning: mingw-w64-x86_64-make-4.3-1 is up to date -- skipping
warning: mingw-w64-x86_64-pkgconf-1.8.0-2 is up to date -- skipping
warning: mingw-w64-x86_64-tools-git-10.0.0.r0.gaa08f56da-1 is up to date -- skipping
warning: mingw-w64-x86_64-winpthreads-git-10.0.0.r0.gaa08f56da-1 is up to date -- skipping
warning: mingw-w64-x86_64-winstorecompat-git-10.0.0.r0.gaa08f56da-1 is up to date -- skipping
warning: mingw-w64-x86_64-cairo-1.17.6-2 is up to date -- skipping
 there is nothing to do
Requirement already satisfied: cairocffi in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from -r requirements/build-system.txt (line 5)) (1.3.0)
Requirement already satisfied: cairosvg in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from -r requirements/build-system.txt (line 6)) (2.5.2)
Requirement already satisfied: ezdxf in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from -r requirements/build-system.txt (line 10)) (0.17.2)
Requirement already satisfied: soundfile in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from -r requirements/build-system.txt (line 14)) (0.10.3.post1)
Requirement already satisfied: numpy in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from -r requirements/build-system.txt (line 15)) (1.22.3)
Requirement already satisfied: coverage in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from -r requirements/build-system.txt (line 19)) (6.3.2)
Requirement already satisfied: cffi>=1.1.0 in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from cairocffi->-r requirements/build-system.txt (line 5)) (1.15.0)
Requirement already satisfied: tinycss2 in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from cairosvg->-r requirements/build-system.txt (line 6)) (1.1.1)
Requirement already satisfied: pillow in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from cairosvg->-r requirements/build-system.txt (line 6)) (9.1.0)
Requirement already satisfied: defusedxml in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from cairosvg->-r requirements/build-system.txt (line 6)) (0.7.1)
Requirement already satisfied: cssselect2 in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from cairosvg->-r requirements/build-system.txt (line 6)) (0.6.0)
Requirement already satisfied: typing-extensions in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from ezdxf->-r requirements/build-system.txt (line 10)) (4.2.0)
Requirement already satisfied: pyparsing>=2.0.1 in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from ezdxf->-r requirements/build-system.txt (line 10)) (3.0.8)
Requirement already satisfied: pycparser in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from cffi>=1.1.0->cairocffi->-r requirements/build-system.txt (line 5)) (2.21)
Requirement already satisfied: webencodings in c:\users\jonas\appdata\local\programs\python\python39\lib\site-packages (from cssselect2->cairosvg->-r requirements/build-system.txt (line 6)) (0.5.1)

Ok, so soundfile seems installed.

Could you please execute now the following?

python3
import sys
print (sys.path)
import soundfile
print (soundfile.__file__)
exit ()

Below is what I have when executing the commands upper. I don’t expect them to all run smoothly on your installation. What do you have?

$ python3
Python 3.8.1 (v3.8.1:1b293b6006, Dec 18 2019, 14:08:53) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print (sys.path)
['', '/Users/raf/dev/eurorack-blocks/max/reverb', '/Library/Frameworks/Python.framework/Versions/3.8/lib/python38.zip', '/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8', '/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages']
>>> import soundfile
>>> print (soundfile.__file__)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/soundfile.py
>>> exit ()

Thanks!

This came back:

MINGW64 ~/eurorack-blocks/max/reverb (main)
$ python3
Python 3.9.11 (main, Mar 18 2022, 16:54:01) [GCC 11.2.0 64 bit (AMD64)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.

import sys
print (sys.path)
[‘’, ‘C:/msys64/mingw64/lib/python39.zip’, ‘C:/msys64/mingw64/lib/python3.9’, ‘C:/msys64/mingw64/lib/python3.9/lib-dynload’, ‘C:/Users/Jonas/eurorack-blocks/max/reverb’, ‘C:/msys64/mingw64/lib/python3.9/site-packages’]
import soundfile
Traceback (most recent call last):
File “”, line 1, in
ModuleNotFoundError: No module named ‘soundfile’
print (soundfile.file)
Traceback (most recent call last):
File “”, line 1, in
NameError: name ‘soundfile’ is not defined
exit()

Ok, I have the impression for some reason that python3 comes from MinGW, but your install of the python package manager is not from MinGW.

To verify this claim, could you please execute the following commands and tell me what it gives?

$ which python3
$ which pip3
$ python3 -m pip list
$ pip3 list

Thanks!

ok! now this:

JFK@JFK-C940 MINGW64 ~
$ which python3
/c/msys64/mingw64/bin/python3

JFK@JFK-C940 MINGW64 ~
$ which pip3
/c/Users/Jonas/AppData/Local/Programs/Python/Python39/Scripts/pip3

JFK@JFK-C940 MINGW64 ~
$ python3 -m pip list
C:/msys64/mingw64/bin/python3.exe: No module named pip

JFK@JFK-C940 MINGW64 ~
$ pip3 list
Package Version


cairocffi 1.3.0
CairoSVG 2.5.2
cffi 1.15.0
coverage 6.3.2
cssselect2 0.6.0
defusedxml 0.7.1
ezdxf 0.17.2
numpy 1.22.3
Pillow 9.1.0
pip 22.0.4
pycparser 2.21
pyparsing 3.0.8
setuptools 58.1.0
SoundFile 0.10.3.post1
tinycss2 1.1.1
typing_extensions 4.2.0
webencodings 0.5.1

Ok so that’s what I thought. The MSYS version of python is taking over your installation of Python, and it seems to not to have the standard installation by default (which somehow makes sense, as people could want a different package manager than pip, but is not quite convenient)

If you do:

$ echo $PATH

I guess /c/msys64/mingw64/bin/ will come before /c/Users/Jonas/AppData/Local/Programs/Python/Python39/Scripts/. Am I right?

From there I guess there are 2 options:

  • Either install pip for MSYS
  • Or change the PATH order so that your standard install of Python comes before the MSYS one

On CI on some projects, I’ve seen even people deleting the python3 MSYS, so I guess the second option is better. (but don’t delete the MSYS python3.exe!)

The CI we are using (through GitHub), is supposed to have a properly installation of every tools, and I guess they took great care to have a cohesive environment.

I’ll add some line to describe the environment we are working with on GitHub, since this is our reference one, and it is tested every single time I make a change to the project (so if something breaks, I know early rather than too late).

I’ll do this soon and come back with the environment description.

Does this all make sense? :grimacing:

Thanks!

Well it makes sense enough for me to try the second option :p. Only thing - how do you exactly change the path order of the python install?

Edit: And yeah you are completely right toing echo $PATH returned a string where “…mingw64/bin…” where before “…Local/Programs/Python…” so on!

Yeah so actually on CI mingw comes also before the python install, so I need to investigate it more. Maybe python is not installed for mingw

For reference, python doesn’t seem to be installed for mingw:

It’s still very unclear why, and what to do. I’m trying to understand why Python was installed in the first place, and what to do about it.

1 Like

Hey Raf, any news on this or anything I can help with to troubleshoot? Anxious to try out blocks ^^ don’t have a Mac unfortunately otherwise I’d just have tried that for sure :s

Ah yeah, so I thought maybe the second option, with MSYS might be better.
In your case Python was installed for some reason, so if you remove it, I have no idea if it would break something somewhere else.

So you could do:

pacman -S python3-pip
python3 -m pip install --upgrade pip

Then, from the eurorack-blocks directory:

python3 -m pip install -r requirements.txt

What does it give?

Great!

Ok, but now it says: “pacman: command not found”

I guess I don’t have that installed as part of the other installation packages in the setup guide?

Ah yeah sorry, this is for msys, so:

c:/msys64/usr/bin/bash -lc "pacman -S python3-pip"

That didn’t go well :s I tried three different inputs too just in case…

[user] MINGW64 ~
$ c:/msys64/usr/bin/bash
      0 [main] bash (7576) C:\msys64\usr\bin\bash.exe: *** fatal error - cygheap base mismatch detected - 0x18034B408/0x180349408.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.

[user] MINGW64 ~
$ c:/msys64/usr/bin/bash -lc "pacman -S python3-pip"
      0 [main] bash (8912) C:\msys64\usr\bin\bash.exe: *** fatal error - cygheap base mismatch detected - 0x18034B408/0x180349408.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.

[user] MINGW64 ~
$  c:/msys64/usr/bin/bash -lc
      0 [main] bash (2768) C:\msys64\usr\bin\bash.exe: *** fatal error - cygheap base mismatch detected - 0x18034B408/0x180349408.
This problem is probably due to using incompatible versions of the cygwin DLL.
Search for cygwin1.dll using the Windows Start->Find/Search facility
and delete all but the most recent version.  The most recent version *should*
reside in x:\cygwin\bin, where 'x' is the drive on which you have
installed the cygwin distribution.  Rebooting is also suggested if you
are unable to find another cygwin DLL.

edit: And I have tried rebooting to no avail

Edit:edit: I have also tried disabling ALSR (ForceRelocateImage) by writing in Powershell (admin):

Get-Item -Path "C:\Program Files\Git\usr\bin\*.exe" | %{ Set-ProcessMitigation -Name $_.Name -Disable ForceRelocateImages }
Get-Item -Path "C:\Program Files\Git\bin\*.exe" | %{ Set-ProcessMitigation -Name $_.Name -Disable ForceRelocateImages }
Get-Item -Path "C:\Program Files\Git\*.exe" | %{ Set-ProcessMitigation -Name $_.Name -Disable ForceRelocateImages }

Those errors are coming from the bash shell program itself, not the build process. It looks like you have multiple, incompatible versions of cygwin installed?

Regards,
John

Well first time I’m using bash and for eurorack-blocks exclusively by following the setup instructions on the wiki site. I tried searching for cygwin on windows (both win+s and in “this pc”-folder) but it found no results. I don’t think any is installed at all…?.
I also searched stackoverflow for different solutions but none worked.

I think John is right, there might be a Cygwin installation somewhere for something else.

However for that, you can solve it by launching the MINGW console, I think you need to explicitly select the 64-bit version from the start menu. Then pacman is available for MSYS as it is their package manager, and then you can type:

pacman -S python3-pip

But damn, open-source software is so painful on Windows. Anyone knows about some sort of way to remedy to that? I’m thinking I should install all binaries myself and put them in the ERB installation and just shortcut any dynamic library loading by making sure they are loaded first.

Anyone knows how to do that?

I thought in the past about using Docker for that, but I think there will be more issues when we need to communicate with the PC hardware eg. downloading using DFU

Okay now we got to this, after opening Mingw64-console as suggested:

JFK@JFK-C940 MINGW64 ~
# pacman -S python3-pip
resolving dependencies...
looking for conflicting packages...

Packages (4) mpdecimal-2.5.0-1  python-3.9.9-2  python-setuptools-52.0.0-1
             python-pip-21.1.1-1

Total Download Size:    18.66 MiB
Total Installed Size:  126.17 MiB

:: Proceed with installation? [Y/n] Y
:: Retrieving packages...
 mpdecimal-2.5.0-...   104.8 KiB   180 KiB/s 00:01 [#####################] 100%
 python-setuptool...   698.0 KiB   568 KiB/s 00:01 [#####################] 100%
 python-pip-21.1....  1797.0 KiB  1341 KiB/s 00:01 [#####################] 100%
 python-3.9.9-2-x...    16.1 MiB  10.2 MiB/s 00:02 [#####################] 100%
 Total (4/4)            18.7 MiB  8.85 MiB/s 00:02 [#####################] 100%
(4/4) checking keys in keyring                     [#####################] 100%
(4/4) checking package integrity                     [###########################] 100%
(4/4) loading package files                          [###########################] 100%
(4/4) checking for file conflicts                    [###########################] 100%
(4/4) checking available disk space                  [###########################] 100%
:: Processing package changes...
(1/4) installing mpdecimal                           [###########################] 100%
(2/4) installing python                              [###########################] 100%
(3/4) installing python-setuptools                   [###########################] 100%
(4/4) installing python-pip                          [###########################] 100%

JFK@JFK-C940 MINGW64 ~
# python3 -m pip install --upgrade pip
C:/msys64/mingw64/bin/python3.exe: No module named pip

and then I tried in git bash:

JFK@JFK-C940 MINGW64 ~
$ python3 -m pip install --upgrade pip
C:/msys64/mingw64/bin/python3.exe: No module named pip

JFK@JFK-C940 MINGW64 ~
$ cd eurorack-blocks

JFK@JFK-C940 MINGW64 ~/eurorack-blocks (main)
$ python3 -m pip install -r requirements.txt
C:/msys64/mingw64/bin/python3.exe: No module named pip

Use MSYS2 with MinGW-64 with their make and other tools from the MinGW 64 bash console.
WSL2 is th other alternative now it support USB proxy from the there, more info here