Goldwave 5.x on Linux WINE

You will need a 32-bit winearch. Typically your default .wine directory is 64-bit. Let’s leave that alone and create a new 32-bit wineprefix and setup Goldwave 5. (Goldwave 6 is not WINE compatible as of WINE 1.6).

Download Goldwave 5 to your ~/Downloads directory.

Then, from Terminal,

WINEPREFIX=~/.wine32 WINEARCH=win32 winetricks wmp10

WINEPREFIX=~/.wine32 wine ~/Downloads/gwave5*.exe

Once you’ve installed Goldwave 5, press the F11 key to open Control Properties, then select the System tab, and click the “Use DirectSound AP” radio button. You can test your setup by clicking the Device tab, and the Test playback button, you should hear a brief test tone. Click OK to save this setting.

You should be able to create new/save/play sound files (this gives Goldwave 5 a WINE Silver rating I think)

————————-

At this time, Goldwave 6 is not compatible with WINE that I know of. I get the following errors from Goldwave 6 after installing and trying to run Goldwave 6 in a 64-bit Windows 7 wineprefix:

err:module:import_dll Library BTHPROPS (which is needed by L"C:\\Program Files\\GoldWave\\GoldWave.exe") not found

err:module:import_dll Library BLUETOOTHAPIS (which is needed by L"C:\\Program Files\\GoldWave\\GoldWave.exe") not found

err:module:LdrInitializeThunk Main exe initialization for L"C:\\Program Files\\GoldWave\\GoldWave.exe" failed, status c0000135

Compiling OpenCV3 with extra contributed modules

This procedure is for OpenCV3 beta.
Some of the functions you might want like cv2.createBackgroundSubtractorGMG are not in the standard OpenCV 3 package at this time. The newer functions by design go into the opencv_contrib repository.

If you’re comfortable with the previous procedure, you might be ready to try adding these packages.

CRITICAL POINT: you must have the space between -D OPENCV_EXTRA_MODULES_PATH= for this to work, or it will silently ignore the opencv_contrib modules.

I will assume you have the prereqs installed already.

After the cmake command, scroll back up and check that you see something like (for example, look for bgsegm, that’s one of the opencv_contrib modules)

OpenCV modules:
 -- To be built: core imgproc imgcodecs videoio highgui xobjdetect adas video bgsegm bioinspired flann ml features2d calib3d ccalib face text datasets line_descriptor objdetect optflow photo reg rgbd saliency shape xfeatures2d stitching superres surface_matching videostab ximgproc xphoto python2 tracking ts
 -- Disabled: java world
 -- Disabled by dependency: -
 -- Unavailable: androidcamera cuda cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaoptflow cudastereo cudawarping cudev python3 viz cvv matlab

cd /tmp

git clone --branch 3.0.0-beta --depth 1 https://github.com/Itseez/opencv.git

git clone --branch 3.0.0-beta --depth 1 https://github.com/itseez/opencv_contrib

cd /tmp/opencv

mkdir release
cd release

cmake -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules/ -DBUILD_TIFF=ON -DBUILD_opencv_java=OFF -DWITH_CUDA=OFF -DENABLE_AVX=ON -DWITH_OPENGL=ON -DWITH_OPENCL=ON -DWITH_IPP=ON -DWITH_TBB=ON -DWITH_EIGEN=ON -DWITH_V4L=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") -DPYTHON_EXECUTABLE=$(which python3) -DPYTHON_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") -DPYTHON_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") ..
# the -j6 is for compilation only, to use up to 6 threads. It has no effect on the compiled opencv code execution
make -j6
make install

Once installed, you should be able to from within Python type:


import cv2
x = cv2.bgsegm.createBackgroundSubtractorGMG()

Python OpenCV2 vs. OpenCV3 API compatibility

The OpenCV2 API in Python is a vast improvement over the non-Numpy cumbersomeness of OpenCV1. Moving to OpenCV3 in Python, some slight changes were made to the API, that so far I have found some easy workarounds for.

Not so easy was the removal of “legacy” functions from OpenCV3, such as cv.CalcOpticalFlowHS. I don’t plan to find a workaround for those at this time.

Here are some example workarounds that allow the same Python code to work in OpenCV2 in Python 2.7 and OpenCV3 in Python 3.4.

FourCC and SimpleBlobDetector:

try:
    from cv2 import cv
    from cv import FOURCC as fourcc
    from cv2 import SimpleBlobDetector as SimpleBlobDetector
except ImportError:
    from cv2 import VideoWriter_fourcc as fourcc
    from cv2 import SimpleBlobDetector_create as SimpleBlobDetector

drawKeypoints

In OpenCV3, you must pass the outImage argument, and OpenCV2 is happy with this as well.

calcOpticalFlowFarneback

The third argument must be specified as flow= to be OpenCV2/3 compatible.

Anaconda Python: OpenCV3

I wanted to have access to OpenCV3 in Python3, so I compiled OpenCV3 for Anaconda Python3 as follows, using this reference.

I have not tried it, but I think that this would work for Python 2.7 as well by changing the python3 references to python2.

BE SURE when you type in Terminal
python3 that it’s the anaconda python you get. If not, make an alias in ~/.bash_aliases
alias python3="$HOME/anaconda3/bin/python3"


sudo apt-get install libjpeg-dev libpng-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev pkg-config cmake libgtk2.0-dev libeigen3-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev sphinx-common libtbb-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenexr-dev libgstreamer-plugins-base1.0-dev

cd /tmp
git clone –branch 3.0.0-beta –depth 1 https://github.com/Itseez/opencv.git
cd /tmp/opencv

mkdir release
cd release

cmake -DBUILD_TIFF=ON -DBUILD_opencv_java=OFF -DWITH_CUDA=OFF -DENABLE_AVX=ON -DWITH_OPENGL=ON -DWITH_OPENCL=ON -DWITH_IPP=ON -DWITH_TBB=ON -DWITH_EIGEN=ON -DWITH_V4L=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=$(python3 -c “import sys; print(sys.prefix)”) -DPYTHON_EXECUTABLE=$(which python3) -DPYTHON_INCLUDE_DIR=$(python3 -c “from distutils.sysconfig import get_python_inc; print(get_python_inc())”) -DPYTHON_PACKAGES_PATH=$(python3 -c “from distutils.sysconfig import get_python_lib; print(get_python_lib())”) ..

# make -j6 applies up to 6 threads to compilation only, makes no difference to running opencv code

make -j6
make install

NOTE: I assume you’re using an Ubuntu 14.04 system, within Anaconda Python 3.4 installed to ~/anaconda3/

Note: I have disabled Cuda via “-DWITH_CUDA=OFF”, assuming you don’t have a GPU to use. Because Cuda takes so much longer to compile, even if you have the GPU, maybe first try without CUDA, to see if OpenCV3 is going to work for you, then recompile with CUDA.

Note: To avoid the libopencv_imgcodecs.so.3.0.0: undefined reference to `TIFFOpen@LIBTIFF_4.0′ type errors, I added the -DBUILD_TIFF=ON option

Note: If you get the error like
lib/libm.so.6: version `GLIBC_2.15′ not found (required by /usr/lib/x86_64-linux-gnu/libx264.so.142)

then try


cd ~/anaconda3/lib
mv libm.so.6 libm.so.6.bak

Disable Fast Boot on Windows 10

Particularly for those dual-booting Windows 10, it’s useful to disable Fast Boot so that you can access the Windows 10 partition from another operating system (Windows or Linux).  On my Intel NUC, I didn’t notice more than a few additional seconds due to disabling fast boot.

As shown below, uncheck the Turn on fast startup under

Control Panel>Power Options>System Settings

which you can get to by going to Control Panel, Power Options, then on the left click “Choose what the power buttons do”

disable fast boot