diff options
-rw-r--r-- | audio/lmms/01-fix_piano_roll_resize.patch | 13 | ||||
-rw-r--r-- | audio/lmms/02-stutter_audio.patch | 253 | ||||
-rw-r--r-- | audio/lmms/README | 2 | ||||
-rw-r--r-- | audio/lmms/lmms.SlackBuild | 18 | ||||
-rw-r--r-- | audio/lmms/lmms.info | 8 |
5 files changed, 12 insertions, 282 deletions
diff --git a/audio/lmms/01-fix_piano_roll_resize.patch b/audio/lmms/01-fix_piano_roll_resize.patch deleted file mode 100644 index 51be39beeb..0000000000 --- a/audio/lmms/01-fix_piano_roll_resize.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/gui/piano_roll.cpp b/src/gui/piano_roll.cpp -index e94c022..eec83fe 100644 ---- a/src/gui/piano_roll.cpp -+++ b/src/gui/piano_roll.cpp -@@ -599,7 +599,7 @@ pianoRoll::pianoRoll() : - if( engine::mainWindow()->workspace() ) - { - engine::mainWindow()->workspace()->addSubWindow( this ); -- parentWidget()->setMinimumWidth( tb_layout->minimumSize().width()+10 ); -+ parentWidget()->setMinimumSize( tb_layout->minimumSize().width()+10, 200 ); - parentWidget()->resize( tb_layout->minimumSize().width()+10, - INITIAL_PIANOROLL_HEIGHT ); - parentWidget()->hide(); diff --git a/audio/lmms/02-stutter_audio.patch b/audio/lmms/02-stutter_audio.patch deleted file mode 100644 index f5862d3ac0..0000000000 --- a/audio/lmms/02-stutter_audio.patch +++ /dev/null @@ -1,253 +0,0 @@ -diff -Nur lmms-0.4.15/include/sample_buffer.h lmms-0.4.15.new/include/sample_buffer.h ---- lmms-0.4.15/include/sample_buffer.h 2013-07-02 13:44:59.699599386 +0000 -+++ lmms-0.4.15.new/include/sample_buffer.h 2013-07-02 02:13:32.000000000 +0000 -@@ -51,6 +51,15 @@ - public: - handleState( bool _varying_pitch = false ); - virtual ~handleState(); -+ inline const f_cnt_t frameIndex() const -+ { -+ return m_frameIndex; -+ } -+ -+ inline void setFrameIndex( f_cnt_t _index ) -+ { -+ m_frameIndex = _index; -+ } - - - private: -diff -Nur lmms-0.4.15/plugins/audio_file_processor/audio_file_processor.cpp lmms-0.4.15.new/plugins/audio_file_processor/audio_file_processor.cpp ---- lmms-0.4.15/plugins/audio_file_processor/audio_file_processor.cpp 2013-07-02 13:44:59.686266104 +0000 -+++ lmms-0.4.15.new/plugins/audio_file_processor/audio_file_processor.cpp 2013-07-02 02:13:40.000000000 +0000 -@@ -75,7 +75,9 @@ - m_startPointModel( 0, 0, 1, 0.0000001f, this, tr( "Start of sample") ), - m_endPointModel( 1, 0, 1, 0.0000001f, this, tr( "End of sample" ) ), - m_reverseModel( false, this, tr( "Reverse sample" ) ), -- m_loopModel( false, this, tr( "Loop") ) -+ m_loopModel( false, this, tr( "Loop") ), -+ m_stutterModel( false, this, tr( "Stutter" ) ), -+ m_nextPlayStartPoint( 0 ) - { - connect( &m_reverseModel, SIGNAL( dataChanged() ), - this, SLOT( reverseModelChanged() ) ); -@@ -85,6 +87,8 @@ - this, SLOT( loopPointChanged() ) ); - connect( &m_endPointModel, SIGNAL( dataChanged() ), - this, SLOT( loopPointChanged() ) ); -+ connect( &m_stutterModel, SIGNAL( dataChanged() ), -+ this, SLOT( stutterModelChanged() ) ); - } - - -@@ -102,10 +106,27 @@ - { - const fpp_t frames = _n->framesLeftForCurrentPeriod(); - -+ // Magic key - a frequency < 20 (say, the bottom piano note if using -+ // a A4 base tuning) restarts the start point. The note is not actually -+ // played. -+ if( m_stutterModel.value() == true && _n->frequency() < 20.0 ) -+ { -+ m_nextPlayStartPoint = m_sampleBuffer.startFrame(); -+ return; -+ } -+ - if( !_n->m_pluginData ) - { -+ if( m_stutterModel.value() == true && m_nextPlayStartPoint >= m_sampleBuffer.endFrame() ) -+ { -+ // Restart playing the note if in stutter mode, not in loop mode, -+ // and we're at the end of the sample. -+ m_nextPlayStartPoint = m_sampleBuffer.startFrame(); -+ } - _n->m_pluginData = new handleState( _n->hasDetuningInfo() ); -+ ((handleState *)_n->m_pluginData)->setFrameIndex(m_nextPlayStartPoint); - } -+ - - if( m_sampleBuffer.play( _working_buffer, - (handleState *)_n->m_pluginData, -@@ -115,12 +136,25 @@ - applyRelease( _working_buffer, _n ); - instrumentTrack()->processAudioBuffer( _working_buffer, - frames,_n ); -- emit isPlaying( _n->totalFramesPlayed() * _n->frequency() / m_sampleBuffer.frequency() ); -+ int framesPosition; -+ if( m_stutterModel.value() == true ) -+ { -+ framesPosition = m_nextPlayStartPoint; -+ } -+ else -+ { -+ framesPosition = _n->totalFramesPlayed() * _n->frequency() / m_sampleBuffer.frequency(); -+ } -+ emit isPlaying( framesPosition ); - } - else - { - emit isPlaying( 0 ); - } -+ if( m_stutterModel.value() == true ) -+ { -+ m_nextPlayStartPoint = ((handleState *)_n->m_pluginData)->frameIndex(); -+ } - } - - -@@ -249,6 +283,10 @@ - } - - -+void audioFileProcessor::stutterModelChanged() -+{ -+ m_nextPlayStartPoint = m_sampleBuffer.startFrame(); -+} - - - void audioFileProcessor::loopPointChanged( void ) -@@ -257,6 +295,7 @@ - ( m_sampleBuffer.frames()-1 ) ); - const f_cnt_t f2 = static_cast<f_cnt_t>( m_endPointModel.value() * - ( m_sampleBuffer.frames()-1 ) ); -+ m_nextPlayStartPoint = f1; - m_sampleBuffer.setStartFrame( qMin<f_cnt_t>( f1, f2 ) ); - m_sampleBuffer.setEndFrame( qMax<f_cnt_t>( f1, f2 ) ); - emit dataChanged(); -@@ -298,7 +337,7 @@ - - m_reverseButton = new pixmapButton( this ); - m_reverseButton->setCheckable( TRUE ); -- m_reverseButton->move( 184, 124 ); -+ m_reverseButton->move( 176, 124 ); // 184 - m_reverseButton->setActiveGraphic( PLUGIN_NAME::getIconPixmap( - "reverse_on" ) ); - m_reverseButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( -@@ -311,7 +350,7 @@ - - m_loopButton = new pixmapButton( this ); - m_loopButton->setCheckable( TRUE ); -- m_loopButton->move( 220, 124 ); -+ m_loopButton->move( 202, 124 ); // 220 - m_loopButton->setActiveGraphic( PLUGIN_NAME::getIconPixmap( - "loop_on" ) ); - m_loopButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( -@@ -325,6 +364,23 @@ - "This is useful for things like string and choir " - "samples." ) ); - -+ m_stutterButton = new pixmapButton( this ); -+ m_stutterButton->setCheckable( true ); -+ m_stutterButton->move( 228, 124 ); -+ m_stutterButton->setActiveGraphic( PLUGIN_NAME::getIconPixmap( -+ "stutter_on" ) ); -+ m_stutterButton->setInactiveGraphic( PLUGIN_NAME::getIconPixmap( -+ "stutter_off" ) ); -+ toolTip::add( m_stutterButton, -+ tr( "Continue sample playback across notes" ) ); -+ m_stutterButton->setWhatsThis( -+ tr( "Enabling this option makes the sample continue playing " -+ "across different notes - if you change pitch, or the note " -+ "length stops before the end of the sample, then the next " -+ "note played will continue where it left off. To reset the " -+ "playback to the start of the sample, insert a note at the bottom " -+ "of the keyboard (< 20 Hz)") ); -+ - m_ampKnob = new knob( knobStyled, this ); - m_ampKnob->setVolumeKnob( TRUE ); - m_ampKnob->move( 17, 108 ); -@@ -504,6 +560,7 @@ - m_endKnob->setModel( &a->m_endPointModel ); - m_reverseButton->setModel( &a->m_reverseModel ); - m_loopButton->setModel( &a->m_loopModel ); -+ m_stutterButton->setModel( &a->m_stutterModel ); - sampleUpdated(); - } - -@@ -522,8 +579,7 @@ - m_endKnob( 0 ), - m_isDragging( false ), - m_reversed( false ), -- m_framesPlayed( 0 ), -- m_animation(configManager::inst()->value("ui", "animateafp").toInt()) -+ m_framesPlayed( 0 ) - { - setFixedSize( _w, _h ); - setMouseTracking( true ); -@@ -546,11 +602,13 @@ - const f_cnt_t nb_frames = m_sampleBuffer.endFrame() - m_sampleBuffer.startFrame(); - if( nb_frames < 1 ) - { -+/* MCA */printf("reset framesPlayed to 0\n"); - m_framesPlayed = 0; - } - else - { - m_framesPlayed = _frames_played % nb_frames; -+/* MCA */printf("isPlaying: framesPlayed = %d\n", m_framesPlayed); - } - update(); - } -@@ -702,7 +760,7 @@ - QColor( 255, 255, 0, 70 ) - ); - -- if( m_framesPlayed && m_animation) -+ if( m_framesPlayed ) - { - const int played_width_px = m_framesPlayed - / double( m_sampleBuffer.endFrame() - m_sampleBuffer.startFrame() ) -@@ -933,12 +991,8 @@ - return; - } - const double v = double( _frames ) / m_sampleBuffer.frames(); -- if(m_startKnob) { -- m_startKnob->slideBy( v, false ); -- } -- if(m_endKnob) { -- m_endKnob->slideBy( v, false ); -- } -+ m_startKnob->slideBy( v, false ); -+ m_endKnob->slideBy( v, false ); - } - - -diff -Nur lmms-0.4.15/plugins/audio_file_processor/audio_file_processor.h lmms-0.4.15.new/plugins/audio_file_processor/audio_file_processor.h ---- lmms-0.4.15/plugins/audio_file_processor/audio_file_processor.h 2013-07-02 13:44:59.686266104 +0000 -+++ lmms-0.4.15.new/plugins/audio_file_processor/audio_file_processor.h 2013-07-02 02:13:44.000000000 +0000 -@@ -74,6 +74,7 @@ - void reverseModelChanged(); - void ampModelChanged(); - void loopPointChanged(); -+ void stutterModelChanged(); - - - signals: -@@ -90,6 +91,10 @@ - FloatModel m_endPointModel; - BoolModel m_reverseModel; - BoolModel m_loopModel; -+ BoolModel m_stutterModel; -+ -+ f_cnt_t m_nextPlayStartPoint; -+ - - friend class AudioFileProcessorView; - -@@ -131,6 +136,7 @@ - pixmapButton * m_openAudioFileButton; - pixmapButton * m_reverseButton; - pixmapButton * m_loopButton; -+ pixmapButton * m_stutterButton; - - } ; - -@@ -234,7 +240,7 @@ - draggingType m_draggingType; - bool m_reversed; - f_cnt_t m_framesPlayed; -- bool m_animation; -+ - - public: - AudioFileProcessorWaveView( QWidget * _parent, int _w, int _h, sampleBuffer & _buf ); diff --git a/audio/lmms/README b/audio/lmms/README index da5f156ac9..e688bfe51e 100644 --- a/audio/lmms/README +++ b/audio/lmms/README @@ -5,4 +5,4 @@ arranging of samples. You can have fun with your MIDI-keyboard and much more; all in a user-friendly and modern interface. jack-audio-connection-kit, fluidsynth + fluid-soundfont are optional (but -are highly recommended) - portaudio, pulseaudio also are optional. +are highly recommended) - stk, portaudio, pulseaudio also are optional. diff --git a/audio/lmms/lmms.SlackBuild b/audio/lmms/lmms.SlackBuild index 07736e17db..92362c8d8d 100644 --- a/audio/lmms/lmms.SlackBuild +++ b/audio/lmms/lmms.SlackBuild @@ -5,8 +5,8 @@ # Written by Zbigniew Baniewski, <Zbigniew.Baniewski@gmail.com> PRGNAM=lmms -VERSION=${VERSION:-0.4.15} -BUILD=${BUILD:-4} +VERSION=${VERSION:-1.0.0} +BUILD=${BUILD:-1} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -42,18 +42,14 @@ rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION -tar jxvf $CWD/${PRGNAM}-${VERSION}.tar.bz2 +tar jxvf $CWD/${PRGNAM}-${VERSION}-src.tar.bz2 cd $PRGNAM-$VERSION chown -R root:root . find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \ - -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ - -exec chmod 644 {} \; - -patch -p1 < $CWD/01-fix_piano_roll_resize.patch -patch -p1 < $CWD/02-stutter_audio.patch -cp $CWD/new_buttons/*.png plugins/audio_file_processor + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; mkdir build cd build diff --git a/audio/lmms/lmms.info b/audio/lmms/lmms.info index 26edd4bd1e..fdef8b6aad 100644 --- a/audio/lmms/lmms.info +++ b/audio/lmms/lmms.info @@ -1,10 +1,10 @@ PRGNAM="lmms" -VERSION="0.4.15" +VERSION="1.0.0" HOMEPAGE="http://lmms.sourceforge.net/" -DOWNLOAD="http://downloads.sourceforge.net/lmms/lmms-0.4.15.tar.bz2" -MD5SUM="0c754480ded76b7c081a99d7a884549c" +DOWNLOAD="http://downloads.sourceforge.net/lmms/lmms-1.0.0-src.tar.bz2" +MD5SUM="72260dd6e29bf018875fd751c1d43465" DOWNLOAD_x86_64="" MD5SUM_x86_64="" -REQUIRES="" +REQUIRES="fltk" MAINTAINER="Zbigniew Baniewski" EMAIL="Zbigniew.Baniewski@gmail.com" |