Samplecat

SampleCat is a program for cataloguing and auditioning audio samples.

samplecat screenshot

SampleCat is available under the GNU General Public License and runs mainly on GNU/Linux systems. It is written in C and uses the GTK graphics library. MySql and Sqlite can be used for the database.

Currently, essential functionality is all working, and the application is slowly being polished to bring it to a v1.0 release.

news

20121212: The Inspector layout has been tidied up. The EBUR display format had to be changed to accommodate this so you will have to Refresh samples for them to display correctly.

20120426: Version 0.2.3. Added new tarball. This should be used in preference to the github source for the time being. This version is mostly the work of Robin Gareus. Many thanks to him. A script is available to migrate an existing config file.

20111108: Version 0.1.2. Bugfix related to the notes editor.

Many thanks to people for pointing out some problems with the 0.1.2 tarball. It has now been modified.

20110303: Version 0.1.1.
Added support for the Ayyi Auditioner service and deprecated local audio playback. The main immediate advantage of this is resampling.
Added 'Play All' menu item.
Auditioning of filemanager items is now possible.
Added "Add dir to database" menu item to FileManager directory tree.

20100610: Version 0.1.0. Added spectrogram display using the code from libsndfile. Added peak_level property to backends and Inspector.

20100421: Version 0.0.9. Still incomplete Tracker backend updated to use the Tracker 0.9 API. Bugfixes. Thanks to Philipp.

features

  • catalogues 'offline' (eg cdrom), as well as 'online' sample files.
  • supported filetypes are wav, flac, aiff, sd2, etc, via libsndfile.
  • metadata stored: filename, path, samplerate, channels, mimetype, peak level, and a small waveform overview.
  • freeform tagging.
  • browsing is done by directory, and filtering is on name, path or tag.
  • spectrogram display.
  • auditioning of samples is possible via JACK.
  • samples can be renamed, moved and copied to other directories.

installation

  • download source (or use the gentoo ebuild, or arch package)
  • untar, configure, make, make install.
  • dependencies: ayyi_auditioner, gtk+2.4, jack, libsndfile, dbus.
  • optional dependencies: mysqlclient, sqlite, tracker-0.9, fftw, gtkglext.

usage

  • import files or directories using drag and drop.
  • if a file is currently mounted, an icon will be shown in the main table. Select Update on the context menu to refresh its status.
  • set tags by 1) selecting Edit Tags on the context menu, 2) double clicking the tag area, 3) enter text in the Edit box at the top of the window and hit the "Set Category" button.
  • to move a file in the filesystem, drag it from the main list to a directory in the directory tree on the left.
  • to rename a file in the filesystem, select it, then click on the name.
  • auditioning is started by clicking in the waveform view. Jack ports are not created until auditioning is started for the first time. Once a sample has been loaded into the Auditioner it can be triggered via MIDI at different pitches.
  • import files into your audio editor using dragndrop.
  • apply colour coding by dragging from the colour bar. Right click on the colour bar to change the colour palette.

limitations

  • currently, auditioning is stereo only. Files with more than 2 channels cannot be auditioned.

Comments

I'm using Ubuntu 13.10. I

I'm using Ubuntu 13.10. I think I have all the required libraries and -dev packages installed, but on running make, I get this:
...
make[3]: Entering directory `/home/downloads/software/samplecat-0.2.3/src'
/bin/bash ../libtool --tag=CXX --mode=link g++ -g -Wall -O2 -DPACKAGE_DATA_DIR=\""/usr/local/share"\" -DPACKAGE_LOCALE_DIR=\""/usr/local//locale"\" -DIMAGES_DIR=\"\" -I../lib -I../lib/file_manager -I../xdgmime -I./dir_tree -I./gimp -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/harfbuzz -g -O2 -DNDEBUG -pipe -fmessage-length=139 -fdiagnostics-show-location=every-line -L/usr/lib/mysql -o samplecat main.o application.o window.o listmodel.o progress_dialog.o listview.o inspector.o player_control.o sample.o overview.o dh_link.o dh_tree.o cellrenderer_hypertext.o colour_box.o dnd.o observer.o support.o console_view.o icon_theme.o spectrogram.o sndfile_window.o peak.o waveform.o ebur128.o ebu_r128_proc.o ad_plugin.o ad_soundfile.o ad_flac.o ad_ffmpeg.o mysql.o sqlite.o spectrogram_widget.o gplayer.o jack_player.o ladspa_proc.o ../lib/utils/libutils.a ../lib/file_manager/libfilemanager.a ../lib/xdgmime/libxdgmime.a ../lib/dir_tree/libdirtree.a gimp/libgimpwidgets.a -lsqlite3 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lglib-2.0 -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -ldl -ljack -lsndfile -lsamplerate -pthread -lgthread-2.0 -lglib-2.0 -lfftw3 -lz -lavformat -lavcodec -lavutil
libtool: link: g++ -g -Wall -O2 -DPACKAGE_DATA_DIR=\"/usr/local/share\" -DPACKAGE_LOCALE_DIR=\"/usr/local//locale\" -DIMAGES_DIR=\"\" -I../lib -I../lib/file_manager -I../xdgmime -I./dir_tree -I./gimp -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/harfbuzz -g -O2 -DNDEBUG -pipe -fmessage-length=139 -fdiagnostics-show-location=every-line -o samplecat main.o application.o window.o listmodel.o progress_dialog.o listview.o inspector.o player_control.o sample.o overview.o dh_link.o dh_tree.o cellrenderer_hypertext.o colour_box.o dnd.o observer.o support.o console_view.o icon_theme.o spectrogram.o sndfile_window.o peak.o waveform.o ebur128.o ebu_r128_proc.o ad_plugin.o ad_soundfile.o ad_flac.o ad_ffmpeg.o mysql.o sqlite.o spectrogram_widget.o gplayer.o jack_player.o ladspa_proc.o -pthread -L/usr/lib/mysql ../lib/utils/libutils.a ../lib/file_manager/libfilemanager.a ../lib/xdgmime/libxdgmime.a ../lib/dir_tree/libdirtree.a gimp/libgimpwidgets.a /usr/lib/x86_64-linux-gnu/libsqlite3.so -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 /usr/lib/x86_64-linux-gnu/libcairo.so -lpango-1.0 /usr/lib/x86_64-linux-gnu/libfreetype.so -lfontconfig -lgobject-2.0 -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lm -ldl -ljack -lsndfile -lsamplerate -lgthread-2.0 -lglib-2.0 -lfftw3 -lz -lavformat -lavcodec -lavutil -pthread
/usr/bin/ld: ../lib/file_manager/libfilemanager.a(file_manager.o): undefined reference to symbol 'g_module_symbol'
/usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[3]: *** [samplecat] Error 1
make[3]: Leaving directory `/home/downloads/software/samplecat-0.2.3/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/downloads/software/samplecat-0.2.3/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/downloads/software/samplecat-0.2.3'
make: *** [all] Error 2

Any ideas?

Used the git version, and it

Used the git version, and it said No package 'gtkglext-1.0' found, and after installing libgtkglext1-dev, and then updating the waveform lib ( cd lib/waveform; git checkout master; cd -), I got it to make successfully, but it still wouldn't make install properly:

....
Making install in shaders
make[5]: Entering directory `/home/downloads/software/samplecat/lib/waveform/agl/shaders'
make[5]: *** No rule to make target `install'. Stop.
make[5]: Leaving directory `/home/downloads/software/samplecat/lib/waveform/agl/shaders'
make[4]: *** [install-recursive] Error 1
make[4]: Leaving directory `/home/downloads/software/samplecat/lib/waveform/agl'
make[3]: *** [install] Error 2
make[3]: Leaving directory `/home/downloads/software/samplecat/lib/waveform/agl'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory `/home/downloads/software/samplecat/lib/waveform'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/downloads/software/samplecat/lib'
make: *** [install-recursive] Error 1

Before going much further

Before going much further will this install on ubuntu Studio 10.04?
I positively have Jack and Dbus installed... I'm hesitant to go re-configuring stuff as this system is working great as is...
That said, I'm getting the following after ./configure within the untar'd folder:

....
checking for _FILE_OFFSET_BITS value needed for large files... no
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
checking for mysql... --with-mysql not specified
checking for mysql_init in -lmysqlclient... no
Package gnome-vfs-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gnome-vfs-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gnome-vfs-2.0' found
Package libart-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libart-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libart-2.0' found
Package libart-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libart-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libart-2.0' found
Package jack was not found in the pkg-config search path.
Perhaps you should add the directory containing `jack.pc'
to the PKG_CONFIG_PATH environment variable
No package 'jack' found
Package sndfile was not found in the pkg-config search path.
Perhaps you should add the directory containing `sndfile.pc'
to the PKG_CONFIG_PATH environment variable
No package 'sndfile' found
checking FLAC/all.h usability... no
checking FLAC/all.h presence... no
checking for FLAC/all.h... no
checking for dbus_g_bus_get in -ldbus-glib-1... no
*** dbus not found!
configure: error: Dbus was configured as the comms system but was not found on your machine.

Hi, could it be that you

Hi, could it be that you don't have the dev packages installed?

Hi, I'm trying to compile

Hi, I'm trying to compile 0.1.2 but I get this error when I run "make" (I tried using the "Send feedback" form but I got an error that the mail couldn't be sent, so I'm posting here):

$ make
make all-recursive
make[1]: Entering directory `/home/renato/src/samplecat/src/samplecat-0.1.2'
Making all in ayyi
make[2]: Entering directory `/home/renato/src/samplecat/src/samplecat-0.1.2/ayyi'
make all-am
make[3]: Entering directory `/home/renato/src/samplecat/src/samplecat-0.1.2/ayyi'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/home/renato/src/samplecat/src/samplecat-0.1.2/ayyi'
make[2]: Leaving directory `/home/renato/src/samplecat/src/samplecat-0.1.2/ayyi'
Making all in src
make[2]: Entering directory `/home/renato/src/samplecat/src/samplecat-0.1.2/src'
Making all in file_manager
make[3]: Entering directory `/home/renato/src/samplecat/src/samplecat-0.1.2/src/file_manager'
make all-recursive
make[4]: Entering directory `/home/renato/src/samplecat/src/samplecat-0.1.2/src/file_manager'
Making all in filetypes
make[5]: Entering directory `/home/renato/src/samplecat/src/samplecat-0.1.2/src/file_manager/filetypes'
/bin/sh ../../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../src -I../../../libs -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -O0 -g -DDEBUG -pipe -fmessage-length=139 -fdiagnostics-show-location=every-line -MT libsf2_la-soundfont.lo -MD -MP -MF .deps/libsf2_la-soundfont.Tpo -c -o libsf2_la-soundfont.lo `test -f 'soundfont.c' || echo './'`soundfont.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../src -I../../../libs -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -O0 -g -DDEBUG -pipe -fmessage-length=139 -fdiagnostics-show-location=every-line -MT libsf2_la-soundfont.lo -MD -MP -MF .deps/libsf2_la-soundfont.Tpo -c soundfont.c -fPIC -DPIC -o .libs/libsf2_la-soundfont.o
In file included from soundfont.c:22:0:
../file_manager.h:10:52: fatal error: file_manager/filetypes/filetype_plugin.h: No such file or directory
compilation terminated.
make[5]: *** [libsf2_la-soundfont.lo] Error 1
make[5]: Leaving directory `/home/renato/src/samplecat/src/samplecat-0.1.2/src/file_manager/filetypes'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/renato/src/samplecat/src/samplecat-0.1.2/src/file_manager'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/renato/src/samplecat/src/samplecat-0.1.2/src/file_manager'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/renato/src/samplecat/src/samplecat-0.1.2/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/renato/src/samplecat/src/samplecat-0.1.2'
make: *** [all] Error 2

Hi. The 0.1.2 tarball has now

Hi. The 0.1.2 tarball has now been updated to include the missing file. Sorry for the mistake! I also need to fix the broken site Feedback function caused by the hosts new email security policy. Regards.

Hi, sorry for long delay, I

Hi, sorry for long delay, I had unfortunately completely forgotten about samplecat until today ;) Now it compiles fine, but I'm getting this error when I try to run it:
http://pastebin.com/H4ACQsBt
BTW a similar problem seems to also affect Captain_Sandwich on this page:
http://aur.archlinux.org/packages.php?ID=33263
we both user Archlinux and that's the page of the samplecat build scripts for Arch.

Thanks for the backtrace but

Thanks for the backtrace but unfortunately I am not able
to get much information from it as samplecat appears to be built
without debugging symbols. This is strange actually because by
default it is built with debug symbols. Perhaps Arch strips them out?

Your best bet is to try the pre-release version:
(you will need git and gdb installed)

git clone git://github.com/ayyi/Samplecat.git
cd Samplecat
./autogen.sh && ./configure
make
gdb src/samplecat
run -v 1

When it crashes, type 'backtrace'.

If you are able to do the above please let me know how it goes.
It would also be useful to see the output of 'configure'.

Thanks

Thank you, the git version

Thank you, the git version compiles and runs fine! Since I had allready pastebinned it, here's the output of configure:
http://pastebin.com/Bq68rVvz

BTW if you read the Arch link I posted before, you'll see that the user "speps" says he doesn't get the error I got with the tarball.... so maybe it wasn't specific to Arch? who knows

cheers

send feedback