initial import of audio/lmms

LMMS is a music production program.  This includes the creation of
melodies and beats, the synthesis and mixing of sounds, and arrangement
of samples.  You can have fun with your MIDI keyboard and much more.

Features:

* Song Editor for composing songs
* A Beat+Bassline Editor for creating beats and basslines
* An easy to use Piano Roll for editing patterns and melodies
* An FX mixer with 64 FX channels and arbitrary number of effects
  allow unlimited mixing possibilities
* Many powerful instrument and effects plugins out of the box
* Full user defined track based automation and computer controlled
  automation sources
* Compatible with many standards such as SoundFont2, LADSPA, and full
  MIDI support
* Import of MIDI and FLP (Frootyloops Project) files

import requested by armani@, some midi bits improved by ratchov@,
reviewed by ratchov@ and stsp@ "why isn't that imported yet" from
several
This commit is contained in:
jakemsr 2010-10-28 22:33:41 +00:00
parent f9882dbcf5
commit 2a227085fc
16 changed files with 2962 additions and 0 deletions

62
audio/lmms/Makefile Normal file
View File

@ -0,0 +1,62 @@
# $OpenBSD: Makefile,v 1.1.1.1 2010/10/28 22:33:41 jakemsr Exp $
SHARED_ONLY = Yes
COMMENT = music studio with tracking, sampling and MIDI
DISTNAME = lmms-0.4.8
CATEGORIES = audio
HOMEPAGE = http://lmms.sourceforge.net/
MAINTAINER = Jacob Meuser <jakemsr@openbsd.org>
# GPLv2
PERMIT_PACKAGE_CDROM = Yes
PERMIT_PACKAGE_FTP = Yes
PERMIT_DISTFILES_CDROM = Yes
PERMIT_DISTFILES_FTP = Yes
WANTLIB = ICE SM QtGui QtXml X11 Xext Xft Xinerama c fltk jack \
fftw3f fluidsynth fontconfig freetype m ncurses ogg \
pthread readline samplerate sndfile sndio vorbis \
vorbisenc vorbisfile z
MASTER_SITES = ${MASTER_SITE_SOURCEFORGE:=lmms/}
EXTRACT_SUFX = .tar.bz2
MODULES = x11/qt4 devel/cmake gcc4
MODGCC4_ARCHES = *
MODGCC4_LANGS = c c++
RUN_DEPENDS = :desktop-file-utils-*:devel/desktop-file-utils \
:shared-mime-info-*:misc/shared-mime-info
LIB_DEPENDS = ::x11/qt4 \
::audio/jack \
::math/fftw3,float \
::audio/fluidsynth \
::audio/libsamplerate \
::audio/libvorbis \
::x11/fltk
USE_X11 = Yes
CONFIGURE_ENV = CFLAGS="${CFLAGS} -I${X11BASE}/include" \
CXXFLAGS="${CXXFLAGS} -I${X11BASE}/include" \
LDFLAGS="${LDFLAGS} -L${X11BASE}/lib"
CONFIGURE_ARGS = -DWANT_OSS=OFF -DWANT_SDL=OFF
# these are all available as separate ports
CONFIGURE_ARGS += -DWANT_CALF=OFF -DWANT_CAPS=OFF -DWANT_CMT=OFF \
-DWANT_SWH=OFF -DWANT_TAP=OFF
MAKE_FLAGS += VERBOSE=1
NO_REGRESS = Yes
post-patch:
cp ${FILESDIR}/FindSndio.cmake ${WRKSRC}/cmake/modules/
cp ${FILESDIR}/{Audio,Midi}Sndio.h ${WRKSRC}/include/
cp ${FILESDIR}/AudioSndio.cpp ${WRKSRC}/src/core/audio/
cp ${FILESDIR}/MidiSndio.cpp ${WRKSRC}/src/core/midi/
.include <bsd.port.mk>

5
audio/lmms/distinfo Normal file
View File

@ -0,0 +1,5 @@
MD5 (lmms-0.4.8.tar.bz2) = hXO4N2gIx3wFjMo6V6NtjQ==
RMD160 (lmms-0.4.8.tar.bz2) = gxlme3xl3EsUAi6+LXaznhFwPx8=
SHA1 (lmms-0.4.8.tar.bz2) = hRAhJwFX0+2hXGttropxq0fbJM0=
SHA256 (lmms-0.4.8.tar.bz2) = lqU9tfGqmnjSfnt2uIVRK2h1Z+tEd2exi9Qp5HM5SUw=
SIZE (lmms-0.4.8.tar.bz2) = 12682364

View File

@ -0,0 +1,207 @@
#ifndef SINGLE_SOURCE_COMPILE
/* license */
#include "AudioSndio.h"
#ifdef LMMS_HAVE_SNDIO
#include <QtCore/QFileInfo>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include "endian_handling.h"
#include "lcd_spinbox.h"
#include "engine.h"
#include "gui_templates.h"
#include "templates.h"
#ifdef LMMS_HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef LMMS_HAVE_STDLIB_H
#include <stdlib.h>
#endif
#include "config_mgr.h"
AudioSndio::AudioSndio(bool & _success_ful, mixer * _mixer) :
AudioDevice( tLimit<ch_cnt_t>(
configManager::inst()->value( "audiosndio", "channels" ).toInt(),
DEFAULT_CHANNELS, SURROUND_CHANNELS ), _mixer )
{
_success_ful = FALSE;
QString dev = configManager::inst()->value( "audiosndio", "device" );
if (dev == "")
{
m_hdl = sio_open( NULL, SIO_PLAY, 0 );
}
else
{
m_hdl = sio_open( dev.toAscii().data(), SIO_PLAY, 0 );
}
if( m_hdl == NULL )
{
printf( "sndio: failed opening audio-device\n" );
return;
}
sio_initpar(&m_par);
m_par.pchan = channels();
m_par.bits = 16;
m_par.le = SIO_LE_NATIVE;
m_par.rate = sampleRate();
m_par.round = getMixer()->framesPerPeriod();
m_par.appbufsz = m_par.round * 2;
struct sio_par reqpar = m_par;
if (!sio_setpar(m_hdl, &m_par))
{
printf( "sndio: sio_setpar failed\n" );
return;
}
if (!sio_getpar(m_hdl, &m_par))
{
printf( "sndio: sio_getpar failed\n" );
return;
}
if (reqpar.pchan != m_par.pchan ||
reqpar.bits != m_par.bits ||
reqpar.le != m_par.le ||
(abs(reqpar.rate - m_par.rate) * 100)/reqpar.rate > 2)
{
printf( "sndio: returned params not as requested\n" );
return;
}
if (!sio_start(m_hdl))
{
printf( "sndio: sio_start failed\n" );
return;
}
_success_ful = TRUE;
}
AudioSndio::~AudioSndio()
{
stopProcessing();
if (m_hdl != NULL)
{
sio_close( m_hdl );
m_hdl = NULL;
}
}
void AudioSndio::startProcessing( void )
{
if( !isRunning() )
{
start( QThread::HighPriority );
}
}
void AudioSndio::stopProcessing( void )
{
if( isRunning() )
{
wait( 1000 );
terminate();
}
}
void AudioSndio::applyQualitySettings( void )
{
if( hqAudio() )
{
setSampleRate( engine::getMixer()->processingSampleRate() );
/* change sample rate to sampleRate() */
}
AudioDevice::applyQualitySettings();
}
void AudioSndio::run( void )
{
surroundSampleFrame * temp =
new surroundSampleFrame[getMixer()->framesPerPeriod()];
int_sample_t * outbuf =
new int_sample_t[getMixer()->framesPerPeriod() * channels()];
while( TRUE )
{
const fpp_t frames = getNextBuffer( temp );
if( !frames )
{
break;
}
uint bytes = convertToS16( temp, frames,
getMixer()->masterGain(), outbuf, FALSE );
if( sio_write( m_hdl, outbuf, bytes ) != bytes )
{
break;
}
}
delete[] temp;
delete[] outbuf;
}
AudioSndio::setupWidget::setupWidget( QWidget * _parent ) :
AudioDevice::setupWidget( AudioSndio::name(), _parent )
{
m_device = new QLineEdit( "", this );
m_device->setGeometry( 10, 20, 160, 20 );
QLabel * dev_lbl = new QLabel( tr( "DEVICE" ), this );
dev_lbl->setFont( pointSize<6>( dev_lbl->font() ) );
dev_lbl->setGeometry( 10, 40, 160, 10 );
lcdSpinBoxModel * m = new lcdSpinBoxModel( /* this */ );
m->setRange( DEFAULT_CHANNELS, SURROUND_CHANNELS );
m->setStep( 2 );
m->setValue( configManager::inst()->value( "audiosndio",
"channels" ).toInt() );
m_channels = new lcdSpinBox( 1, this );
m_channels->setModel( m );
m_channels->setLabel( tr( "CHANNELS" ) );
m_channels->move( 180, 20 );
}
AudioSndio::setupWidget::~setupWidget()
{
}
void AudioSndio::setupWidget::saveSettings( void )
{
configManager::inst()->setValue( "audiosndio", "device",
m_device->text() );
configManager::inst()->setValue( "audiosndio", "channels",
QString::number( m_channels->value<int>() ) );
}
#endif /* LMMS_HAVE_SNDIO */
#endif /* SINGLE_SOURCE_COMPILE */

View File

@ -0,0 +1,53 @@
#ifndef _AUDIO_SNDIO_H
#define _AUDIO_SNDIO_H
#include "lmmsconfig.h"
#ifdef LMMS_HAVE_SNDIO
#include <sndio.h>
#include "AudioDevice.h"
class lcdSpinBox;
class QLineEdit;
class AudioSndio : public AudioDevice, public QThread
{
public:
AudioSndio( bool & _success_ful, mixer * _mixer );
virtual ~AudioSndio();
inline static QString name( void )
{
return( QT_TRANSLATE_NOOP( "setupWidget", "sndio" ) );
}
class setupWidget : public AudioDevice::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();
virtual void saveSettings( void );
private:
QLineEdit * m_device;
lcdSpinBox * m_channels;
} ;
private:
virtual void startProcessing( void );
virtual void stopProcessing( void );
virtual void applyQualitySettings( void );
virtual void run( void );
struct sio_hdl *m_hdl;
struct sio_par m_par;
} ;
#endif /* LMMS_HAVE_SNDIO */
#endif /* _AUDIO_SNDIO_H */

View File

@ -0,0 +1,32 @@
# sndio check, based on FindAlsa.cmake
#
# Copyright (c) 2006, David Faure, <faure@kde.org>
# Copyright (c) 2007, Matthias Kretz <kretz@kde.org>
# Copyright (c) 2009, Jacob Meuser <jakemsr@sdf.lonestar.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
include(CheckIncludeFiles)
include(CheckIncludeFileCXX)
include(CheckLibraryExists)
# Already done by toplevel
find_library(SNDIO_LIBRARY sndio)
set(SNDIO_LIBRARY_DIR "")
if(SNDIO_LIBRARY)
get_filename_component(SNDIO_LIBRARY_DIR ${SNDIO_LIBRARY} PATH)
endif(SNDIO_LIBRARY)
check_library_exists(sndio sio_open "${SNDIO_LIBRARY_DIR}" HAVE_SNDIO)
if(HAVE_SNDIO)
message(STATUS "Found sndio: ${SNDIO_LIBRARY}")
else(HAVE_SNDIO)
message(STATUS "sndio not found")
endif(HAVE_SNDIO)
set(SNDIO_FOUND ${HAVE_SNDIO})
find_path(SNDIO_INCLUDES sndio.h)
mark_as_advanced(SNDIO_INCLUDES SNDIO_LIBRARY)

View File

@ -0,0 +1,125 @@
#ifndef SINGLE_SOURCE_COMPILE
/* license */
#include "MidiSndio.h"
#ifdef LMMS_HAVE_SNDIO
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#ifdef LMMS_HAVE_STDLIB_H
#include <stdlib.h>
#endif
#include <poll.h>
#include "config_mgr.h"
#include "gui_templates.h"
MidiSndio::MidiSndio( void ) :
MidiClientRaw(),
m_quit( FALSE )
{
QString dev = probeDevice();
if (dev == "")
{
m_hdl = mio_open( NULL, MIO_IN | MIO_OUT, 0 );
}
else
{
m_hdl = mio_open( dev.toAscii().data(), MIO_IN | MIO_OUT, 0 );
}
if( m_hdl == NULL )
{
printf( "sndio: failed opening sndio midi device\n" );
return;
}
start( QThread::LowPriority );
}
MidiSndio::~MidiSndio()
{
if( isRunning() )
{
m_quit = TRUE;
wait( 1000 );
terminate();
}
}
QString MidiSndio::probeDevice( void )
{
QString dev = configManager::inst()->value( "midisndio", "device" );
return( dev );
}
void MidiSndio::sendByte( const Uint8 _c )
{
mio_write( m_hdl, &_c, 1 );
}
void MidiSndio::run( void )
{
struct pollfd pfd;
nfds_t nfds;
char buf[0x100], *p;
size_t n;
int ret;
while( m_quit == FALSE && m_hdl )
{
nfds = mio_pollfd( m_hdl, &pfd, POLLIN );
ret = poll( &pfd, nfds, 100 );
if ( ret < 0 )
break;
if ( !ret || !( mio_revents( m_hdl, &pfd ) & POLLIN ) )
continue;
n = mio_read( m_hdl, buf, sizeof(buf) );
if ( !n )
{
break;
}
for (p = buf; n > 0; n--, p++)
{
parseData( *p );
}
}
}
MidiSndio::setupWidget::setupWidget( QWidget * _parent ) :
MidiClientRaw::setupWidget( MidiSndio::name(), _parent )
{
m_device = new QLineEdit( MidiSndio::probeDevice(), this );
m_device->setGeometry( 10, 20, 160, 20 );
QLabel * dev_lbl = new QLabel( tr( "DEVICE" ), this );
dev_lbl->setFont( pointSize<6>( dev_lbl->font() ) );
dev_lbl->setGeometry( 10, 40, 160, 10 );
}
MidiSndio::setupWidget::~setupWidget()
{
}
void MidiSndio::setupWidget::saveSettings( void )
{
configManager::inst()->setValue( "midisndio", "device",
m_device->text() );
}
#endif /* LMMS_HAVE_SNDIO */
#endif /* SINGLE_SOURCE_COMPILE */

View File

@ -0,0 +1,54 @@
#ifndef _MIDI_SNDIO_H
#define _MIDI_SNDIO_H
#include "lmmsconfig.h"
#ifdef LMMS_HAVE_SNDIO
#include <QtCore/QThread>
#include <QtCore/QFile>
#include <sndio.h>
#include "MidiClient.h"
class QLineEdit;
class MidiSndio : public MidiClientRaw, public QThread
{
public:
MidiSndio( void );
virtual ~MidiSndio();
static QString probeDevice(void);
inline static QString name(void)
{
return(QT_TRANSLATE_NOOP("setupWidget", "sndio MIDI"));
}
class setupWidget : public MidiClientRaw::setupWidget
{
public:
setupWidget(QWidget * _parent);
virtual ~setupWidget();
virtual void saveSettings(void);
private:
QLineEdit * m_device;
} ;
protected:
virtual void sendByte(const Uint8 _c);
virtual void run(void);
private:
struct mio_hdl *m_hdl;
volatile bool m_quit;
} ;
#endif /* LMMS_HAVE_SNDIO */
#endif /* _MIDI_SNDIO_H */

View File

@ -0,0 +1,157 @@
$OpenBSD: patch-CMakeLists_txt,v 1.1.1.1 2010/10/28 22:33:41 jakemsr Exp $
--- CMakeLists.txt.orig Thu Sep 2 15:27:37 2010
+++ CMakeLists.txt Sun Oct 24 08:11:32 2010
@@ -32,7 +32,9 @@ OPTION(WANT_CAPS "Include C* Audio Plugin Suite (LADSP
OPTION(WANT_CMT "Include Computer Music Toolkit LADSPA plugins" ON)
OPTION(WANT_FFTW3F "Include SpectrumAnalyzer and ZynAddSubFX plugin" ON)
OPTION(WANT_JACK "Include JACK (Jack Audio Connection Kit) support" ON)
+OPTION(WANT_SNDIO "Include sndio support" ON)
OPTION(WANT_OGGVORBIS "Include OGG/Vorbis support" ON)
+OPTION(WANT_OSS "Include OSS (Open Sound System) support" ON)
OPTION(WANT_PULSEAUDIO "Include PulseAudio support" ON)
#OPTION(WANT_PORTAUDIO "Include PortAudio support" ON) # TODO: fix PortAudio support
OPTION(WANT_SDL "Include SDL (Simple DirectMedia Layer) support" ON)
@@ -48,12 +50,16 @@ OPTION(WANT_WINMM "Include WinMM MIDI support" OFF)
IF(LMMS_BUILD_WIN32)
SET(WANT_ALSA OFF)
SET(WANT_JACK OFF)
+ SET(WANT_OSS OFF)
+ SET(WANT_SNDIO OFF)
SET(WANT_PULSEAUDIO OFF)
SET(WANT_SYSTEM_SR OFF)
SET(WANT_WINMM ON)
SET(LMMS_HAVE_WINMM TRUE)
SET(STATUS_ALSA "<not supported on this platform>")
SET(STATUS_JACK "<not supported on this platform>")
+ SET(STATUS_OSS "<not supported on this platform>")
+ SET(STATUS_SNDIO "<not supported on this platform>")
SET(STATUS_PULSEAUDIO "<not supported on this platform>")
SET(STATUS_WINMM "OK")
ELSE(LMMS_BUILD_WIN32)
@@ -68,16 +74,19 @@ CHECK_INCLUDE_FILES(pthread.h LMMS_HAVE_PTHREAD_H)
CHECK_INCLUDE_FILES(semaphore.h LMMS_HAVE_SEMAPHORE_H)
CHECK_INCLUDE_FILES(unistd.h LMMS_HAVE_UNISTD_H)
CHECK_INCLUDE_FILES(sys/types.h LMMS_HAVE_SYS_TYPES_H)
-CHECK_INCLUDE_FILES(sys/ipc.h LMMS_HAVE_SYS_IPC_H)
-CHECK_INCLUDE_FILES(sys/shm.h LMMS_HAVE_SYS_SHM_H)
+IF(LMMS_HAVE_SYS_TYPES_H)
+ CHECK_INCLUDE_FILES("sys/types.h;sys/ipc.h" LMMS_HAVE_SYS_IPC_H)
+ CHECK_INCLUDE_FILES("sys/types.h;sys/shm.h" LMMS_HAVE_SYS_SHM_H)
+ELSE(LMMS_HAVE_SYS_TYPES_H)
+ CHECK_INCLUDE_FILES(sys/ipc.h LMMS_HAVE_SYS_IPC_H)
+ CHECK_INCLUDE_FILES(sys/shm.h LMMS_HAVE_SYS_SHM_H)
+ENDIF(LMMS_HAVE_SYS_TYPES_H)
CHECK_INCLUDE_FILES(sys/time.h LMMS_HAVE_SYS_TIME_H)
CHECK_INCLUDE_FILES(sys/wait.h LMMS_HAVE_SYS_WAIT_H)
CHECK_INCLUDE_FILES(sys/select.h LMMS_HAVE_SYS_SELECT_H)
CHECK_INCLUDE_FILES(stdarg.h LMMS_HAVE_STDARG_H)
CHECK_INCLUDE_FILES(signal.h LMMS_HAVE_SIGNAL_H)
CHECK_INCLUDE_FILES(sched.h LMMS_HAVE_SCHED_H)
-CHECK_INCLUDE_FILES(sys/soundcard.h LMMS_HAVE_SYS_SOUNDCARD_H)
-CHECK_INCLUDE_FILES(soundcard.h LMMS_HAVE_SOUNDCARD_H)
CHECK_INCLUDE_FILES(fcntl.h LMMS_HAVE_FCNTL_H)
CHECK_INCLUDE_FILES(sys/ioctl.h LMMS_HAVE_SYS_IOCTL_H)
CHECK_INCLUDE_FILES(ctype.h LMMS_HAVE_CTYPE_H)
@@ -232,12 +241,18 @@ ENDIF(WANT_OGGVORBIS)
# check whether to enable OSS-support
-IF(LMMS_HAVE_SOUNDCARD_H OR LMMS_HAVE_SYS_SOUNDCARD_H)
- SET(LMMS_HAVE_OSS TRUE)
- SET(STATUS_OSS "OK")
-ELSE(LMMS_HAVE_SOUNDCARD_H OR LMMS_HAVE_SYS_SOUNDCARD_H)
- SET(STATUS_OSS "<not found or not supported on this platform>")
-ENDIF(LMMS_HAVE_SOUNDCARD_H OR LMMS_HAVE_SYS_SOUNDCARD_H)
+IF(WANT_OSS)
+ CHECK_INCLUDE_FILES(sys/soundcard.h LMMS_HAVE_SYS_SOUNDCARD_H)
+ CHECK_INCLUDE_FILES(soundcard.h LMMS_HAVE_SOUNDCARD_H)
+ IF(LMMS_HAVE_SOUNDCARD_H OR LMMS_HAVE_SYS_SOUNDCARD_H)
+ SET(LMMS_HAVE_OSS TRUE)
+ SET(STATUS_OSS "OK")
+ ELSE(LMMS_HAVE_SOUNDCARD_H OR LMMS_HAVE_SYS_SOUNDCARD_H)
+ SET(STATUS_OSS "<not found or not supported on this platform>")
+ ENDIF(LMMS_HAVE_SOUNDCARD_H OR LMMS_HAVE_SYS_SOUNDCARD_H)
+ELSE(WANT_OSS)
+ SET(STATUS_OSS "disabled")
+ENDIF(WANT_OSS)
# check for ALSA
@@ -269,6 +284,18 @@ IF(WANT_JACK)
ENDIF(WANT_JACK)
+# check for SNDIO
+IF(WANT_SNDIO)
+ FIND_PACKAGE(Sndio)
+ IF(SNDIO_FOUND)
+ SET(LMMS_HAVE_SNDIO TRUE)
+ SET(STATUS_SNDIO "OK")
+ ELSE(SNDIO_FOUND)
+ SET(STATUS_SNDIO "not found")
+ ENDIF(SNDIO_FOUND)
+ENDIF(WANT_SNDIO)
+
+
# check for FFTW3F-library
IF(WANT_FFTW3F)
PKG_CHECK_MODULES(FFTW3F fftw3f>=3.0.0)
@@ -364,8 +391,8 @@ CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/plugins/zynaddsubfx
# set compiler flags
#SET(CMAKE_BUILD_TYPE relwithdebug)
-SET(CMAKE_C_FLAGS "-O2 -g -Wall ${CMAKE_C_FLAGS}")
-SET(CMAKE_CXX_FLAGS "-O2 -g -fno-exceptions -Wall ${CMAKE_CXX_FLAGS}")
+SET(CMAKE_C_FLAGS "-g -Wall ${CMAKE_C_FLAGS}")
+SET(CMAKE_CXX_FLAGS "-g -fno-exceptions -Wall ${CMAKE_CXX_FLAGS}")
#SET(CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_C_FLAGS}")
#SET(CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_CXX_FLAGS}")
@@ -381,7 +408,8 @@ SET(lmms_MOC ${lmms_INCLUDES})
SET(lmms_EMBEDDED_RESOURCES ${CMAKE_SOURCE_DIR}/AUTHORS ${CMAKE_SOURCE_DIR}/COPYING)
-QT4_WRAP_CPP(lmms_MOC_out ${lmms_MOC} OPTIONS -nw)
+#QT4_WRAP_CPP(lmms_MOC_out ${lmms_MOC} OPTIONS -nw)
+QT4_WRAP_CPP(lmms_MOC_out ${lmms_MOC})
QT4_WRAP_UI(lmms_UI_out ${lmms_UI})
@@ -428,9 +456,9 @@ ADD_SUBDIRECTORY(data)
#
ADD_DEFINITIONS(-D'LIB_DIR="${CMAKE_INSTALL_PREFIX}/${LIB_DIR}/"' -D'PLUGIN_DIR="${CMAKE_INSTALL_PREFIX}/${LIB_DIR}/lmms/"' ${PULSEAUDIO_DEFINITIONS} ${PORTAUDIO_DEFINITIONS})
-INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/include ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/include ${SDL_INCLUDE_DIR} ${PORTAUDIO_INCLUDE_DIR} ${PULSEAUDIO_INCLUDE_DIR} ${JACK_INCLUDE_DIRS} ${OGGVORBIS_INCLUDE_DIR} ${SAMPLERATE_INCLUDE_DIRS} ${SNDFILE_INCLUDE_DIRS})
-LINK_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/lib ${ASOUND_LIBRARY_DIR} ${JACK_LIBRARY_DIRS} ${SAMPLERATE_LIBRARY_DIRS} ${SNDFILE_LIBRARY_DIRS})
-LINK_LIBRARIES(${CMAKE_THREAD_LIBS_INIT} ${QT_LIBRARIES} ${ASOUND_LIBRARY} ${SDL_LIBRARY} ${PORTAUDIO_LIBRARIES} ${PULSEAUDIO_LIBRARIES} ${JACK_LIBRARIES} ${OGGVORBIS_LIBRARIES} ${SAMPLERATE_LIBRARIES} ${SNDFILE_LIBRARIES})
+INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/include ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/include ${SDL_INCLUDE_DIR} ${PORTAUDIO_INCLUDE_DIR} ${PULSEAUDIO_INCLUDE_DIR} ${SNDIO_INCLUDE_DIRS} ${JACK_INCLUDE_DIRS} ${OGGVORBIS_INCLUDE_DIR} ${SAMPLERATE_INCLUDE_DIRS} ${SNDFILE_INCLUDE_DIRS})
+LINK_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/lib ${ASOUND_LIBRARY_DIR} ${SNDIO_LIBRARY_DIRS} ${JACK_LIBRARY_DIRS} ${SAMPLERATE_LIBRARY_DIRS} ${SNDFILE_LIBRARY_DIRS})
+LINK_LIBRARIES(${CMAKE_THREAD_LIBS_INIT} ${QT_LIBRARIES} ${ASOUND_LIBRARY} ${SDL_LIBRARY} ${PORTAUDIO_LIBRARIES} ${PULSEAUDIO_LIBRARIES} ${SNDIO_LIBRARY} ${JACK_LIBRARIES} ${OGGVORBIS_LIBRARIES} ${SAMPLERATE_LIBRARIES} ${SNDFILE_LIBRARIES})
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_BINARY_DIR}/lmms.1.gz COMMAND gzip -c ${CMAKE_SOURCE_DIR}/lmms.1 > ${CMAKE_BINARY_DIR}/lmms.1.gz DEPENDS ${CMAKE_SOURCE_DIR}/lmms.1 COMMENT "Generating lmms.1.gz")
@@ -466,7 +494,7 @@ ELSE(LMMS_BUILD_WIN32)
ENDIF(NOT LMMS_BUILD_APPLE)
INSTALL(TARGETS lmms RUNTIME DESTINATION bin)
- INSTALL(FILES ${CMAKE_BINARY_DIR}/lmms.1.gz DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man1/ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)
+ INSTALL(FILES ${CMAKE_BINARY_DIR}/lmms.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man1/ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ)
ENDIF(LMMS_BUILD_WIN32)
@@ -590,6 +618,7 @@ MESSAGE(
"--------------------------\n"
"* ALSA : ${STATUS_ALSA}\n"
"* JACK : ${STATUS_JACK}\n"
+"* SNDIO : ${STATUS_SNDIO}\n"
"* OSS : ${STATUS_OSS}\n"
#"* PortAudio : ${STATUS_PORTAUDIO}\n"
"* PulseAudio : ${STATUS_PULSEAUDIO}\n"
@@ -601,6 +630,7 @@ MESSAGE(
"-------------------------\n"
"* ALSA : ${STATUS_ALSA}\n"
"* OSS : ${STATUS_OSS}\n"
+"* SNDIO : ${STATUS_SNDIO}\n"
"* WinMM : ${STATUS_WINMM}\n"
)

View File

@ -0,0 +1,23 @@
$OpenBSD: patch-include_RemotePlugin_h,v 1.1.1.1 2010/10/28 22:33:41 jakemsr Exp $
--- include/RemotePlugin.h.orig Tue Aug 11 09:52:17 2009
+++ include/RemotePlugin.h Wed Dec 23 23:41:15 2009
@@ -61,6 +61,10 @@
#else /* USE_QT_SEMAPHORES */
+#ifdef LMMS_HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
#ifdef LMMS_HAVE_SYS_IPC_H
#include <sys/ipc.h>
#endif
@@ -68,6 +72,8 @@
#ifdef LMMS_HAVE_SEMAPHORE_H
#include <semaphore.h>
#endif
+
+#include <unistd.h>
#endif

View File

@ -0,0 +1,11 @@
$OpenBSD: patch-lmmsconfig_h_in,v 1.1.1.1 2010/10/28 22:33:41 jakemsr Exp $
--- lmmsconfig.h.in.orig Mon Feb 23 14:34:25 2009
+++ lmmsconfig.h.in Wed Dec 23 17:30:47 2009
@@ -12,6 +12,7 @@
#cmakedefine LMMS_HAVE_JACK
#cmakedefine LMMS_HAVE_OGGVORBIS
#cmakedefine LMMS_HAVE_OSS
+#cmakedefine LMMS_HAVE_SNDIO
#cmakedefine LMMS_HAVE_PORTAUDIO
#cmakedefine LMMS_HAVE_PULSEAUDIO
#cmakedefine LMMS_HAVE_SDL

View File

@ -0,0 +1,59 @@
$OpenBSD: patch-plugins_zynaddsubfx_CMakeLists_txt,v 1.1.1.1 2010/10/28 22:33:41 jakemsr Exp $
--- plugins/zynaddsubfx/CMakeLists.txt.orig Thu Sep 2 15:27:44 2010
+++ plugins/zynaddsubfx/CMakeLists.txt Sun Oct 24 09:53:54 2010
@@ -40,14 +40,15 @@ IF(LMMS_HOST_X86 OR LMMS_HOST_X86_64)
ENDIF(LMMS_HOST_X86 OR LMMS_HOST_X86_64)
# build ZynAddSubFX with full optimizations
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wno-write-strings -Wno-deprecated-declarations")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-write-strings -Wno-deprecated-declarations")
# link system-libraries when on win32
IF(LMMS_BUILD_WIN32)
ADD_DEFINITIONS(-DPTW32_STATIC_LIB)
ENDIF(LMMS_BUILD_WIN32)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/fltk/ ${CMAKE_CURRENT_SOURCE_DIR} ${FFTW3F_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR} )
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} ${FFTW3F_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR} )
+LINK_DIRECTORIES(${FFTW3F_LIBRARY_DIRS})
set(ZASF_CORE_LIBS
zynaddsubfx_input
@@ -75,7 +76,7 @@ add_subdirectory(src/DSP)
add_subdirectory(src/Samples)
ADD_LIBRARY(ZynAddSubFxCore SHARED LocalZynAddSubFx.cpp)
-TARGET_LINK_LIBRARIES(ZynAddSubFxCore ${ZASF_CORE_LIBS} ${FFTW3F_LIBRARIES} ${QT_LIBRARIES} -lz -lpthread)
+TARGET_LINK_LIBRARIES(ZynAddSubFxCore ${ZASF_CORE_LIBS} ${FFTW3F_LIBRARIES} ${QT_LIBRARIES} -lz)
IF(LMMS_BUILD_WIN32)
TARGET_LINK_LIBRARIES(ZynAddSubFxCore -lws2_32)
INSTALL(TARGETS ZynAddSubFxCore DESTINATION ${PLUGIN_DIR})
@@ -100,7 +101,7 @@ SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${PLU
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
ADD_EXECUTABLE(RemoteZynAddSubFx RemoteZynAddSubFx.cpp ${ZYN_SRC_GUI} ${WINRC})
INSTALL(TARGETS RemoteZynAddSubFx RUNTIME DESTINATION ${PLUGIN_DIR})
-TARGET_LINK_LIBRARIES(RemoteZynAddSubFx -lpthread -L${CMAKE_CURRENT_BINARY_DIR} -lZynAddSubFxCore ${CMAKE_CURRENT_BINARY_DIR}/fltk/lib/libfltk.a)
+TARGET_LINK_LIBRARIES(RemoteZynAddSubFx -L${CMAKE_CURRENT_BINARY_DIR} -lZynAddSubFxCore -lfltk -pthread)
ADD_DEPENDENCIES(RemoteZynAddSubFx ZynAddSubFxCore)
# link system libraries when on win32
@@ -112,7 +113,7 @@ ENDIF(LMMS_BUILD_WIN32)
IF(LMMS_BUILD_LINUX)
FIND_PACKAGE(X11)
FIND_PACKAGE(Freetype)
- TARGET_LINK_LIBRARIES(RemoteZynAddSubFx -ldl ${X11_LIBRARIES} ${X11_Xft_LIB} ${X11_Xinerama_LIB} ${FREETYPE_LIBRARY} -lfontconfig)
+ TARGET_LINK_LIBRARIES(RemoteZynAddSubFx ${X11_LIBRARIES} ${X11_Xft_LIB} ${X11_Xinerama_LIB} ${FREETYPE_LIBRARY} -lfontconfig)
ENDIF(LMMS_BUILD_LINUX)
@@ -126,8 +127,8 @@ IF(LMMS_BUILD_WIN64)
ELSEIF(LMMS_BUILD_WIN32)
SET(FLTK_EXTRA_FLAGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_SOURCE_DIR}/cmake/modules/Win32Toolchain.cmake")
ENDIF(LMMS_BUILD_WIN64)
-ADD_CUSTOM_TARGET(libfltk COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/fltk && cd ${CMAKE_CURRENT_BINARY_DIR}/fltk && ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}/fltk ${FLTK_EXTRA_FLAGS} -DCMAKE_MODULE_PATH=${CMAKE_SOURCE_DIR}/cmake/modules/ -DFLTK_USE_SYSTEM_ZLIB:BOOL=ON -DFLTK_USE_SYSTEM_JPEG:BOOL=ON -DFLTK_USE_SYSTEM_PNG:BOOL=ON -DOPTION_BUILD_EXAMPLES:BOOL=OFF -DCMAKE_BUILD_TYPE=release && ${CMAKE_BUILD_TOOL})
+#ADD_CUSTOM_TARGET(libfltk COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/fltk && cd ${CMAKE_CURRENT_BINARY_DIR}/fltk && ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}/fltk ${FLTK_EXTRA_FLAGS} -DCMAKE_MODULE_PATH=${CMAKE_SOURCE_DIR}/cmake/modules/ -DFLTK_USE_SYSTEM_ZLIB:BOOL=ON -DFLTK_USE_SYSTEM_JPEG:BOOL=ON -DFLTK_USE_SYSTEM_PNG:BOOL=ON -DOPTION_BUILD_EXAMPLES:BOOL=OFF -DCMAKE_BUILD_TYPE=release && ${CMAKE_BUILD_TOOL})
-ADD_DEPENDENCIES(RemoteZynAddSubFx libfltk)
+#ADD_DEPENDENCIES(RemoteZynAddSubFx libfltk)
ENDIF(LMMS_HAVE_FFTW3F)

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-src_core_main_cpp,v 1.1.1.1 2010/10/28 22:33:41 jakemsr Exp $
--- src/core/main.cpp.orig Tue Aug 11 09:52:18 2009
+++ src/core/main.cpp Thu Dec 24 00:01:42 2009
@@ -52,6 +52,8 @@
#include <unistd.h>
#endif
+#include <unistd.h>
+
#include "config_mgr.h"
#include "embed.h"
#include "engine.h"

View File

@ -0,0 +1,60 @@
$OpenBSD: patch-src_core_mixer_cpp,v 1.1.1.1 2010/10/28 22:33:41 jakemsr Exp $
--- src/core/mixer.cpp.orig Thu Sep 2 15:27:46 2010
+++ src/core/mixer.cpp Sun Oct 24 08:05:47 2010
@@ -47,6 +47,7 @@
#include "AudioPortAudio.h"
#include "AudioPulseAudio.h"
#include "AudioSdl.h"
+#include "AudioSndio.h"
#include "AudioDummy.h"
// platform-specific midi-interface-classes
@@ -54,6 +55,7 @@
#include "MidiAlsaSeq.h"
#include "MidiOss.h"
#include "MidiWinMM.h"
+#include "MidiSndio.h"
#include "MidiDummy.h"
@@ -1027,6 +1029,20 @@ AudioDevice * mixer::tryAudioDevices()
#endif
+#ifdef LMMS_HAVE_SNDIO
+ if( dev_name == AudioSndio::name() || dev_name == "" )
+ {
+ dev = new AudioSndio( success_ful, this );
+ if( success_ful )
+ {
+ m_audioDevName = AudioSndio::name();
+ return dev;
+ }
+ delete dev;
+ }
+#endif
+
+
#ifdef LMMS_HAVE_JACK
if( dev_name == AudioJack::name() || dev_name == "" )
{
@@ -1113,6 +1129,19 @@ MidiClient * mixer::tryMidiClients()
return moss;
}
delete moss;
+ }
+#endif
+
+#ifdef LMMS_HAVE_SNDIO
+ if( client_name == MidiSndio::name() || client_name == "" )
+ {
+ MidiSndio * msndio = new MidiSndio;
+ if( msndio->isRunning() )
+ {
+ m_midiClientName = MidiSndio::name();
+ return msndio;
+ }
+ delete msndio;
}
#endif

View File

@ -0,0 +1,44 @@
$OpenBSD: patch-src_gui_setup_dialog_cpp,v 1.1.1.1 2010/10/28 22:33:41 jakemsr Exp $
--- src/gui/setup_dialog.cpp.orig Thu Dec 24 15:49:25 2009
+++ src/gui/setup_dialog.cpp Wed Dec 30 00:25:23 2009
@@ -55,6 +55,7 @@
#include "AudioPortAudio.h"
#include "AudioPulseAudio.h"
#include "AudioSdl.h"
+#include "AudioSndio.h"
#include "AudioDummy.h"
// platform-specific midi-interface-classes
@@ -62,6 +63,7 @@
#include "MidiAlsaSeq.h"
#include "MidiOss.h"
#include "MidiWinMM.h"
+#include "MidiSndio.h"
#include "MidiDummy.h"
@@ -529,6 +531,12 @@ setupDialog::setupDialog( ConfigTabs _tab_to_open ) :
m_audioIfaceSetupWidgets[AudioOss::name()] =
new AudioOss::setupWidget( asw );
#endif
+
+#ifdef LMMS_HAVE_SNDIO
+ m_audioIfaceSetupWidgets[AudioSndio::name()] =
+ new AudioSndio::setupWidget( asw );
+#endif
+
m_audioIfaceSetupWidgets[AudioDummy::name()] =
new AudioDummy::setupWidget( asw );
@@ -607,6 +615,11 @@ setupDialog::setupDialog( ConfigTabs _tab_to_open ) :
#ifdef LMMS_BUILD_WIN32
m_midiIfaceSetupWidgets[MidiWinMM::name()] =
new MidiWinMM::setupWidget( msw );
+#endif
+
+#ifdef LMMS_HAVE_SNDIO
+ m_midiIfaceSetupWidgets[MidiSndio::name()] =
+ new MidiSndio::setupWidget( msw );
#endif
m_midiIfaceSetupWidgets[MidiDummy::name()] =

17
audio/lmms/pkg/DESCR Normal file
View File

@ -0,0 +1,17 @@
LMMS is a music production program. This includes the creation of
melodies and beats, the synthesis and mixing of sounds, and arrangement
of samples. You can have fun with your MIDI keyboard and much more.
Features:
* Song Editor for composing songs
* A Beat+Bassline Editor for creating beats and basslines
* An easy to use Piano Roll for editing patterns and melodies
* An FX mixer with 64 FX channels and arbitrary number of effects
allow unlimited mixing possibilities
* Many powerful instrument and effects plugins out of the box
* Full user defined track based automation and computer controlled
automation sources
* Compatible with many standards such as SoundFont2, LADSPA, and full
MIDI support
* Import of MIDI and FLP (Frootyloops Project) files

2041
audio/lmms/pkg/PLIST Normal file

File diff suppressed because it is too large Load Diff