mirror of
https://github.com/SlackBuildsOrg/slackbuilds
synced 2024-09-28 15:21:00 +02:00
audio/lmms: Updated for version 1.0.0.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
53fa5dba76
commit
a367a0fc66
5 changed files with 12 additions and 282 deletions
|
@ -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();
|
|
@ -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 );
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in a new issue