Page 1 of 4

Shuriken Beat Slicer

Posted: Sun Jul 20, 2014 8:22 pm
by RockHopper
Shuriken is an open source beat slicer which harnesses the power of aubio's onset detection algorithms and Rubber Band's time stretching capabilities. A simple Qt4 interface makes it easy to slice up drum loops, assign individual drum hits to MIDI keys, and change the tempo of loops in real-time. JUCE takes care of handling audio and MIDI behind the scenes.

https://github.com/rock-hopper/shuriken ... s/tag/v0.2

Main features:
  • onset, beat-of-the-bar, and BPM detection (via aubio)
  • time stretching in offline or real-time mode (via rubberband)
  • sync BPM of a drum loop to JACK transport
  • slice and move waveform sections around
  • each waveform section automatically assigned to its own MIDI key
  • join and split waveform sections
  • apply gain, gain ramp, normalise, and reverse
  • ALSA and JACK MIDI
  • LADISH L1 session management (also compatible with NSM via nsm-proxy)
  • zoom waveform in and out (waveform drawing routine does need some work but its perfectly usable - just not so pretty atm!)
  • import a wide range of audio file formats (via libsndfile/libav and the built-in sndlib library)
  • export audio slices in WAV, AIFF, AU, FLAC, Ogg, Hydrogen Drumkit, or SFZ format
Shuriken requires the latest version of the aubio library (>=0.4.1). Packages are available for Ubuntu Precise and Trusty, and AVLinux 6:

https://github.com/rock-hopper/shuriken ... eat-slicer

Please feel free to leave feedback, e.g. anything about the program which you feel could be improved or additional features you'd like to see in a future release.

Re: Shuriken Beat Slicer

Posted: Mon Jul 21, 2014 2:08 am
by motosega
looks great,

is there a deb of the latest aubio somewhere?

can't wait to try it out! since freecycle died theres nothing like this on linux.

Re: Shuriken Beat Slicer

Posted: Mon Jul 21, 2014 10:54 am
by tripomatic
motosega wrote:looks great,

is there a deb of the latest aubio somewhere?

can't wait to try it out! since freecycle died theres nothing like this on linux.
Debian has aubio 0.4.1 in the testing/unstable repositories. don't know about stable.
I presume that ubuntu has it also since releases are twice a year.

Re: Shuriken Beat Slicer

Posted: Mon Jul 21, 2014 3:31 pm
by RockHopper
motosega wrote: is there a deb of the latest aubio somewhere?
I'm currently packaging aubio 0.4.1 for Ubuntu Precise, Raring, and Saucy, I'll share a link to my PPA once it's all done. Trusty already has 0.4.0 and the upcoming Utopic has 0.4.1

If you're using AVLinux you can grab a deb from here:

http://www.bandshed.net/avlinux6-debs/s ... 6_i386.deb
http://www.bandshed.net/avlinux6-debs/s ... 6_i386.deb

Re: Shuriken Beat Slicer

Posted: Mon Jul 21, 2014 9:55 pm
by motosega
ok, installed the aubio and shuriken debs.

unfortunatly it fills up the whole screen and i can't get to the menus to do anything.

my computer is a netbook with only a 1024x600 screen.

it seems like eveybody else in the world has a huge imax screeen attatched to their computer

Re: Shuriken Beat Slicer

Posted: Tue Jul 22, 2014 9:10 pm
by RockHopper
OK, the PPA is set up and packages built for Precise, Trusty, and Utopic:

https://launchpad.net/~rock-hopper/+arc ... audiotools

For anyone still using Raring or Saucy, unfortunately launchpad won't accept uploads for these distros any longer.
motosega wrote: it fills up the whole screen and i can't get to the menus to do anything.

my computer is a netbook with only a 1024x600 screen.
Sorry to hear that, I'll work on a fix to allow Shuriken to work properly on smaller screens.

Re: Shuriken Beat Slicer

Posted: Tue Jul 22, 2014 11:14 pm
by stanlea

Re: Shuriken Beat Slicer

Posted: Mon Jul 28, 2014 6:29 pm
by bunyi
Hi everyone!
Great program with cool workflow, but I can't find a way to export my slices to separate files. Menu item "Export" is greyed out :( Is this feature planned but not implemented yet? I would like to use shuriken to cut my recordings.

Re: Shuriken Beat Slicer

Posted: Tue Jul 29, 2014 4:40 pm
by RockHopper
bunyi wrote: Menu item "Export" is greyed out :( Is this feature planned but not implemented yet?
Yes, this will be implemented in the next release. There will be the ability to export slices in wav, aiff, flac, ogg, hydrogen drumkit, or sfz format.

Re: Shuriken Beat Slicer

Posted: Tue Jul 29, 2014 8:34 pm
by headwar
Hi RockHopper,

Great project ! And just in time for me as I was just looking for such a tool !
BUT I cannot import any sound. I've tried wav and aiff but in the import window, clicking "Open" after selecting a file freezes the program (the background "main" window is grayed out and the "Import audio file" stays on screen).

I'm on Ubuntu 14.04, and have installed Shuriken through the PPA, plus I've apt-get'd aubio-tools.

What am I missing ?

Thanks in advance,
Hw

Edit : in the console, it shows a message : "AUBIO ERROR: Not implemented, _seek(0) file /home/headwar/Bass_Em.wav", for every kind of file I tried (wav, aiff, mp3...).

Re: Shuriken Beat Slicer

Posted: Tue Jul 29, 2014 8:46 pm
by headwar
PS By the way, if you need a french translator, I'm in ;)

Re: Shuriken Beat Slicer

Posted: Wed Jul 30, 2014 9:04 pm
by RockHopper
headwar wrote: I've tried wav and aiff but in the import window, clicking "Open" after selecting a file freezes the program (the background "main" window is grayed out and the "Import audio file" stays on screen).
OK, that's not good! What version of aubio are you using? I'll need to install Trusty to suss out what's going on as this bug never cropped up when testing on AVLinux or Precise.
headwar wrote:PS By the way, if you need a french translator, I'm in ;)
A very kind offer, I'll get back to you on that one!

Re: Shuriken Beat Slicer

Posted: Thu Jul 31, 2014 2:29 am
by tatch
I can't install for saucy. sh doesn't work so I do bash ./build and it poops out here:

Code: Select all

g++ -c -pipe -msse -msse2 -O2 -Wall -W -D_REENTRANT -DLINUX=1 -DNDEBUG=1 -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -Isrc -Isrc/SndLibShuriken -Isrc/JuceLibraryCode -Irelease/.moc -Irelease/.ui -o release/.obj/audiofilehandler.o src/audiofilehandler.cpp
src/audiofilehandler.cpp: In member function ‘SharedSampleHeader AudioFileHandler::getSampleHeader(QString)’:
src/audiofilehandler.cpp:89:5: error: ‘aubio_source_t’ was not declared in this scope
     aubio_source_t* aubioSource = new_aubio_source( const_cast<char*>(path), 0, 4096 );
     ^
src/audiofilehandler.cpp:89:21: error: ‘aubioSource’ was not declared in this scope
     aubio_source_t* aubioSource = new_aubio_source( const_cast<char*>(path), 0, 4096 );
                     ^
src/audiofilehandler.cpp:89:86: error: ‘new_aubio_source’ was not declared in this scope
     aubio_source_t* aubioSource = new_aubio_source( const_cast<char*>(path), 0, 4096 );
                                                                                      ^
src/audiofilehandler.cpp:95:77: error: ‘aubio_source_get_samplerate’ was not declared in this scope
         sampleHeader->sampleRate = aubio_source_get_samplerate( aubioSource );
                                                                             ^
src/audiofilehandler.cpp:96:73: error: ‘aubio_source_get_channels’ was not declared in this scope
         sampleHeader->numChans = aubio_source_get_channels( aubioSource );
                                                                         ^
src/audiofilehandler.cpp:98:39: error: ‘del_aubio_source’ was not declared in this scope
         del_aubio_source( aubioSource );
                                       ^
src/audiofilehandler.cpp: In static member function ‘static SharedSampleBuffer AudioFileHandler::aubioLoadFile(const char*, uint_t, uint_t)’:
src/audiofilehandler.cpp:382:5: error: ‘aubio_source_t’ was not declared in this scope
     aubio_source_t* aubioSource = new_aubio_source( const_cast<char*>(filePath), sampleRate, hopSize );
     ^
src/audiofilehandler.cpp:382:21: error: ‘aubioSource’ was not declared in this scope
     aubio_source_t* aubioSource = new_aubio_source( const_cast<char*>(filePath), sampleRate, hopSize );
                     ^
src/audiofilehandler.cpp:382:102: error: ‘new_aubio_source’ was not declared in this scope
     aubio_source_t* aubioSource = new_aubio_source( const_cast<char*>(filePath), sampleRate, hopSize );
                                                                                                      ^
src/audiofilehandler.cpp:383:5: error: ‘fmat_t’ was not declared in this scope
     fmat_t* sampleData = NULL;
     ^
src/audiofilehandler.cpp:383:13: error: ‘sampleData’ was not declared in this scope
     fmat_t* sampleData = NULL;
             ^
src/audiofilehandler.cpp:389:63: error: ‘aubio_source_get_samplerate’ was not declared in this scope
         sampleRate = aubio_source_get_samplerate( aubioSource );
                                                               ^
src/audiofilehandler.cpp:390:59: error: ‘aubio_source_get_channels’ was not declared in this scope
         numChans = aubio_source_get_channels( aubioSource );
                                                           ^
src/audiofilehandler.cpp:398:54: error: ‘new_fmat’ was not declared in this scope
             sampleData = new_fmat( numChans, hopSize );
                                                      ^
src/audiofilehandler.cpp:412:88: error: ‘aubio_source_do_multi’ was not declared in this scope
                         aubio_source_do_multi( aubioSource, sampleData, &numFramesRead );
                                                                                        ^
src/audiofilehandler.cpp:417:55: error: ‘aubio_source_seek’ was not declared in this scope
                     aubio_source_seek( aubioSource, 0 );
                                                       ^
src/audiofilehandler.cpp:422:64: error: ‘aubio_source_seek’ was not declared in this scope
                     aubio_source_seek( aubioSource, startFrame );
                                                                ^
src/audiofilehandler.cpp:427:40: error: ‘fmat_zeros’ was not declared in this scope
                 fmat_zeros( sampleData );
                                        ^
src/audiofilehandler.cpp:436:88: error: ‘aubio_source_do_multi’ was not declared in this scope
                         aubio_source_do_multi( aubioSource, sampleData, &numFramesRead );
                                                                                        ^
src/audiofilehandler.cpp:456:38: error: ‘del_fmat’ was not declared in this scope
                 del_fmat( sampleData );
                                      ^
src/audiofilehandler.cpp:459:39: error: ‘del_aubio_source’ was not declared in this scope
         del_aubio_source( aubioSource );
                                       ^
make: *** [release/.obj/audiofilehandler.o] Error 1
make: Leaving directory `/media/Data/code/shuriken-git'

Re: Shuriken Beat Slicer

Posted: Thu Jul 31, 2014 8:48 am
by RockHopper
tatch wrote:I can't install for saucy
Saucy has version 0.3.2 of aubio which is likely why you're seeing all those aubio-related build errors. I did try to build 0.4.1 for Saucy but launchpad won't allow uploads for Saucy or Raring any longer :( I'm afraid you'll either have to build and install aubio 0.4.1 yourself or wait for FalkTX to package it for the KX repos.

Re: Shuriken Beat Slicer

Posted: Thu Jul 31, 2014 7:17 pm
by headwar
Hi, and thanks for the quick answer,

According to Synaptic, my versions are 0.4.0-1 for :
python-aubio
aubio-tools
libaubio4
libaubio-dev

Should be OK ?

Regards,
HW