Please join the remix-devel mailing list, linked from the homepage.
-libremix is maintained in Subversion with anonymous read access. You can
-check out the most current version of libremix from:
+libremix is maintained in Git at Github:
-svn co http://svn.metadecks.org/libremix/trunk libremix
+https://github.com/kfish/remix
A list of outstanding tasks is maintained in the TODO file of this source
distribution. When implementing anything listed in this file, please update
Copyrights
----------
-Copyright (C) 2000-2010 Conrad Parker <conrad@metadecks.org>
+Copyright (C) 2000-2011 Conrad Parker <conrad@metadecks.org>
Copyright (C) 2001, 2002 Commonwealth Scientific and Industrial Research
Organisation (CSIRO), Australia.
dnl Process this file with autoconf to produce a configure script.
AC_INIT(src/libremix/remix_base.c)
-AM_INIT_AUTOMAKE(remix, 0.2.3)
+AM_INIT_AUTOMAKE(remix, 0.2.4)
AM_CONFIG_HEADER(config.h)
+example_programs="noisedemo squaredemo"
+
+################################################################################
+# Set the shared versioning info, according to section 6.3 of the libtool info #
+# pages. CURRENT:REVISION:AGE must be updated immediately before each release: #
+# #
+# * If the library source code has changed at all since the last #
+# update, then increment REVISION (`C:R:A' becomes `C:r+1:A'). #
+# #
+# * If any interfaces have been added, removed, or changed since the #
+# last update, increment CURRENT, and set REVISION to 0. #
+# #
+# * If any interfaces have been added since the last public release, #
+# then increment AGE. #
+# #
+# * If any interfaces have been removed since the last public release, #
+# then set AGE to 0. #
+# #
+################################################################################
+SHARED_VERSION_INFO="1:0:1"
+SHLIB_VERSION_ARG=""
+
dnl Checks for programs.
AM_PROG_LIBTOOL
AC_PROG_INSTALL
dnl Detect libsndfile 1.0
dnl
+
PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.0,
HAVE_LIBSNDFILE1="yes", HAVE_LIBSNDFILE1="no")
-AC_SUBST(SNDFILE_LIBS)
-AC_SUBST(SNDFILE_CFLAGS)
-
if test "$HAVE_LIBSNDFILE1" = "yes" ; then
AC_DEFINE([HAVE_LIBSNDFILE1], [], [Define if libsndfile version 1 found])
AC_SUBST(SNDFILE_LIBS)
AC_SUBST(SNDFILE_CFLAGS)
+ example_programs="${example_programs} sndfiledemo"
else
AC_CHECK_LIB(sndfile, sf_open, HAVE_LIBSNDFILE1="maybe")
if test "$HAVE_LIBSNDFILE1" = "maybe" ; then
AC_HELP_STRING([--enable-gcc-werror], [enable -Werror in all Makefiles]))
dnl Use -Wall if we have gcc.
-
if test "x$ac_cv_prog_gcc" = xyes ; then
CFLAGS="$CFLAGS -Wall"
fi
+AC_SUBST(SHLIB_VERSION_ARG)
+AC_SUBST(SHARED_VERSION_INFO)
+
AC_OUTPUT([
Makefile
doc/Makefile
+libremix (0.2.4+slp2+build02) unstable; urgency=low
+
+ * Upload Package.
+ * Git: slp/pkgs/l/libremix
+ * Tag: libremix_0.2.4+slp2+build02
+
+ -- Hyoyoung Chang <hyoyoung.chang@samsung.com> Thu, 07 Jun 2012 15:08:59 +0900
+
+libremix (0.2.4-1slp2) unstable; urgency=low
+
+ * Upload Package.
+ * Git: slp/pkgs/l/libremix
+ * Tag: libremix_0.2.4-1slp2
+
+ -- Daniel Juyung Seo <juyung.seo@samsung.com> Wed, 09 May 2012 19:58:35 +0900
+
+libremix (0.2.4) unstable; urgency=low
+
+ * Merge with svn version 0.2.4 and whitespace removed.
+ * Git: slp/pkgs/l/libremix
+ * Tag: 0.2.4
+
+ -- Prince Kumar Dubey <prince.dubey@samsung.com> Thu, 19 Jan 2012 18:38:00 +0530
+
libremix (0.2.3) unstable; urgency=low
* Initial Version.
+ * Git: slp/pkgs/l/libremix
+ * Tag: 0.2.3
- -- Prince Kumar Dubey <prince.dubey@samsung.com> Govindaraju S M <govi.sm@samsung.com> Tue, 20 Sep 2011 15:00:00 +0900
\ No newline at end of file
+ -- Prince Kumar Dubey <prince.dubey@samsung.com> Govindaraju S M <govi.sm@samsung.com> Tue, 20 Sep 2011 15:00:00 +0900
Source: libremix
Section: libs
Priority: optional
-Uploaders: Prince Kumar Dubey<prince.dubey@samsung.com> Govindaraju S M<govi.sm@samsung.com>
-Maintainer: Conrad Parker <conrad@metadecks.org>
-Build-Depends: cdbs, libsndfile1-dev, pkg-config, libtool
-Standards-Version: 0.2.3
+Uploaders: Prince Kumar Dubey <prince.dubey@samsung.com>, Govindaraju S M <govi.sm@samsung.com>, Daniel Juyung Seo <juyung.seo@samsung.com>, Hyoyoung Chang <hyoyoung.chang>
+Maintainer: Prince Kumar Dubey <prince.dubey@samsung.com>
+Build-Depends: cdbs, libsndfile1-dev, libsndfile1, pkg-config, libtool
+Standards-Version: 0.2.4
Homepage: http://www.metadecks.org/software/remix/
Package: libremix
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, libsndfile1-dev
+Depends: ${shlibs:Depends}, ${misc:Depends}, libsndfile1
Suggests: libremix (= ${binary:Version})
Description: Various binaries for use with libremix.
Remix is an audio sequencing and mixing library that provides a multichannel,
Remix is an audio sequencing and mixing library that provides a multichannel,
sparse audio data container (streams), a structured mixing abstraction (decks),
and widely useful means of generating control data (via envelopes) and of
- caching audio data.
\ No newline at end of file
+ caching audio data.
EXTRA_DIST = Doxyfile.in
-doc_DATA = doxygen-build.stamp
+noinst_DATA = doxygen-build.stamp
if HAVE_DOXYGEN
doxygen-build.stamp: Doxyfile $(top_srcdir)/include/remix/*.h
if test -d libremix; then \
mkdir $(dist_docdir); \
for dir in libremix/*; do \
- if test -d $$dir; then \
- b=`basename $$dir`; \
- mkdir $(dist_docdir)/$$b; \
- for f in $$dir/*; do \
- cp -p $$f $(dist_docdir)/$$b; \
- done \
- fi \
- done \
+ b=`basename $$dir`; \
+ if test $$b != "CVS"; then \
+ if test -d $$dir; then \
+ mkdir $(dist_docdir)/$$b; \
+ for f in $$dir/*; do \
+ cp -p $$f $(dist_docdir)/$$b; \
+ done \
+ fi \
+ fi \
+ done \
fi
install-data-local: doxygen-build.stamp
- $(mkinstalldirs) $(docdir)
+ $(mkinstalldirs) $(DESTDIR)$(docdir)
if test -d libremix; then \
for dir in libremix/*; do \
if test -d $$dir; then \
b=`basename $$dir`; \
- $(mkinstalldirs) $(docdir)/$$b; \
+ $(mkinstalldirs) $(DESTDIR)$(docdir)/$$b; \
for f in $$dir/*; do \
- $(INSTALL_DATA) $$f $(docdir)/$$b; \
- done \
+ $(INSTALL_DATA) $$f $(DESTDIR)$(docdir)/$$b; \
+ done \
fi \
done \
fi
uninstall-local:
- rm -rf $(docdir)
+ rm -rf $(DESTDIR)$(docdir)
clean-local:
if test -d libremix; then rm -rf libremix; fi
CDSet * remix_set_channels (RemixEnv * env, CDSet * channelset);
CDSet * remix_get_channels (RemixEnv * env);
+#if 0
+ /* XXX */
+/* Sources: Plugins, Samples etc. */
+CDList * remix_open (SOUNDRENDER env, char * filename);
+void remix_close (SOUNDRENDER env, RemixPlugin plugin);
+#endif
+
/* Base objects */
RemixPlugin * remix_find_plugin (RemixEnv * env, char * identifier);
typedef struct _RemixChunk RemixChunk;
-typedef struct _Remix_Sound_Data Remix_Sound_Data;
-
#if defined (__REMIX__)
#include "remix_private.h"
#else
#define REMIX_COUNT_MIN LONG_MIN
#define REMIX_COUNT_INFINITE REMIX_COUNT_MAX
-//TODO xxx : Change this
-typedef struct _RemixOpaque RemixOpaque;
+typedef void RemixOpaque;
#if defined (__REMIX__)
typedef struct _RemixBase RemixBase;
typedef RemixOpaque RemixBase;
#endif
-//TODO xxx : Change this
-struct _RemixOpaque {
- void * instance_data;
-};
-
typedef CDScalar RemixParameter;
typedef int RemixFlags;
#define REMIX_HINT_LOG (1<<0)
#define REMIX_HINT_TIME (1<<1)
#define REMIX_HINT_FILENAME (1<<2)
-#define REMIX_HINT_CHANNEL (1<<3)
#define REMIX_CONSTRAINT_EMPTY ((RemixConstraint){NULL})
--- /dev/null
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>
--- /dev/null
+%define prefix /usr
+
+Name: libremix
+Summary: An audio sequencing and mixing library.
+Version: 0.2.4+slp2+build02
+Release: 1
+Group: Libraries/Sound
+License: LGPLv2.1
+URL: http://www.metadecks.org/software/remix/
+Source0: %{name}-%{version}.tar.gz
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+BuildRequires: libsndfile-devel
+
+%description
+Remix is a library for rendering audio data.
+
+%package devel
+Summary: Libraries, includes, etc to develop remix applications
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+Libraries, include files, etc you can use to develop remix applications.
+
+%prep
+%setup -q
+
+%build
+./autogen.sh
+./configure --prefix=%{prefix}
+make %{?jobs:-j%jobs}
+
+%install
+if [ -d %{buildroot} ]; then rm -rf %{buildroot}; fi
+make install DESTDIR=%{buildroot}
+mkdir -p %{buildroot}/usr/share/license
+cp %{_builddir}/%{buildsubdir}/COPYING %{buildroot}/usr/share/license/%{name}
+
+%clean
+if [ -d %{buildroot} ]; then rm -rf %{buildroot}; fi
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%doc AUTHORS COPYING ChangeLog INSTALL NEWS README TODO doc
+%{_libdir}/libremix.so.*
+%{_libdir}/libctxdata.so*
+/usr/share/license/%{name}
+%manifest %{name}.manifest
+
+%files devel
+%defattr(-,root,root,-)
+%{_libdir}/libremix.a
+%{_libdir}/libremix.la
+%{_libdir}/libremix.so
+%{_libdir}/libctxdata.a
+%{_libdir}/libctxdata.la
+%{_libdir}/libctxdata.so*
+%{_libdir}/pkgconfig/*.pc
+%{_libdir}/remix/libremix_ladspa*
+%{_libdir}/remix/libremix_noise*
+%{_includedir}/ctxdata.h
+%{_includedir}/remix/*.h
for (l = list; l; l = ln) {
ln = l->next;
-// destroy (ctx, l->data.s_pointer);
+ destroy (ctx, l->data.s_pointer);
cd_free (l);
}
INCLUDES = -I$(top_srcdir)/src/ctxdata -I$(top_srcdir)/include -I../ctxdata
if BUILD_MONITOR
-monitor_programs = noisedemo squaredemo mysquaredemo
+monitor_programs = noisedemo squaredemo
if HAVE_LIBSNDFILE1
-sndfile_programs = sndfiledemo simple_sndfiledemo
+sndfile_programs = sndfiledemo
endif
endif
squaredemo_SOURCES = squaredemo.c
squaredemo_LDADD = $(REMIX_LIBS)
-mysquaredemo_SOURCES = simple_squaredemo.c
-mysquaredemo_LDADD = $(REMIX_LIBS)
-
sndfiledemo_CFLAGS = -DSAMPLEDIR=\"$(srcdir)\"
sndfiledemo_SOURCES = sndfiledemo.c
sndfiledemo_LDADD = $(REMIX_LIBS) @SNDFILE_LIBS@
-
-simple_sndfiledemo_CFLAGS = -DSAMPLEDIR=\"$(srcdir)\"
-simple_sndfiledemo_SOURCES = simple_sndfiledemo.c
-simple_sndfiledemo_LDADD = $(REMIX_LIBS) @SNDFILE_LIBS@
remix_set_error (env, REMIX_ERROR_INVALID);
return -1;
}
-
- remix_get_meta_text (env, base);
-
n = _remix_process (env, base, count, input, output);
if (n > 0) base->offset += n;
return n;
world->plugins = cd_list_destroy_with (env, world->plugins, remix_plugin_destroy);
remix_plugin_defaults_unload (env);
-//need to analyse why its commented in svn version ???
+
//world->bases = cd_list_destroy_with (env, world->bases, remix_destroy);
remix_channelset_defaults_destroy (env);
void
remix_dprintf (const char * fmt, ...)
{
-#if 0
+#ifdef DEBUG
va_list ap;
char buf[4096];
int i, n;
remix_envelope_init (env, (RemixBase *)envelope);
envelope->type = type;
remix_envelope_debug (env, envelope);
-
return envelope;
}
/* XXX: remove these when dynamic! */
CDList * __gain_init (RemixEnv * env);
CDList * __sndfile_init (RemixEnv * env);
-CDList * __ogg_init (RemixEnv * env);
#endif /* defined(__REMIX__) */
SF_INFO info;
float * pcm;
sf_count_t pcm_n;
- CDSet * channels;
};
REMIX_HINT_FILENAME,
};
-
-static struct _RemixParameterScheme channels_scheme = {
- "channels",
- "Channel List to play file",
- REMIX_TYPE_BOOL,
- REMIX_CONSTRAINT_TYPE_NONE,
- REMIX_CONSTRAINT_EMPTY,
- REMIX_HINT_CHANNEL,
-};
-
-
#if 0
static RemixNamedParameter types[] = {
REMIX_NAMED_PARAMETER ("WAV", CD_INT(SF_FORMAT_WAV)),
#define __REMIX__
#include "remix.h"
-typedef struct _RemixSquareToneChannelData RemixSquareToneChannelData;
+typedef struct _RemixSquareToneChannel RemixSquareToneChannel;
typedef struct _RemixSquareTone RemixSquareTone;
-struct _RemixSquareToneChannelData {
+struct _RemixSquareToneChannel {
RemixCount _cycle_offset;
};
struct _RemixSquareTone {
RemixBase base;
float frequency;
- CDSet * channel_data;
CDSet * channels;
};
static RemixSquareTone *
remix_squaretone_replace_channels (RemixEnv * env, RemixSquareTone * squaretone)
{
- RemixSquareToneChannelData * sqch;
+ RemixSquareToneChannel * sqch;
CDSet * s, * channels = remix_get_channels (env);
RemixCount offset = remix_tell (env, (RemixBase *)squaretone);
- cd_set_free_all (env, squaretone->channel_data);
+ cd_set_free_all (env, squaretone->channels);
for (s = channels; s; s = s->next) {
remix_dprintf ("[remix_squaretone_replace_channels] %p replacing channel %d\n",
squaretone, s->key);
- sqch = (RemixSquareToneChannelData *)
- remix_malloc (sizeof (struct _RemixSquareToneChannelData));
+ sqch = (RemixSquareToneChannel *)
+ remix_malloc (sizeof (struct _RemixSquareToneChannel));
sqch->_cycle_offset = 0;
- squaretone->channel_data =
- cd_set_insert (env, squaretone->channel_data, s->key, CD_POINTER(sqch));
+ squaretone->channels =
+ cd_set_insert (env, squaretone->channels, s->key, CD_POINTER(sqch));
}
if (offset > 0) remix_seek (env, (RemixBase *)squaretone, offset, SEEK_SET);
remix_squaretone_init (RemixEnv * env, RemixBase * base)
{
RemixSquareTone * squaretone = (RemixSquareTone *)base;
- squaretone->channel_data = NULL;
+ squaretone->channels = NULL;
remix_squaretone_replace_channels (env, squaretone);
remix_squaretone_optimise (env, squaretone);
return base;
return squaretone->frequency;
}
-void
-remix_squaretone_add_channel (RemixEnv * env, RemixBase * base, RemixChannelName channel )
-{
- RemixSquareTone * squaretone = (RemixSquareTone *)base;
- squaretone->channels = cd_set_replace (env, squaretone->channels, channel, CD_POINTER(NULL));;
-}
-
-void
-remix_squaretone_remove_channel (RemixEnv * env, RemixBase * base, RemixChannelName channel )
-{
- RemixSquareTone * squaretone = (RemixSquareTone *)base;
- squaretone->channels = cd_set_remove(env, squaretone->channels, channel );
-}
-
-CDSet *
-remix_squaretone_get_channels (RemixEnv * env, RemixBase * base )
-{
- RemixSquareTone * squaretone = (RemixSquareTone *)base;
- return squaretone->channels;
-}
-
-
/* An RemixChunkFunc for creating squaretone data */
static RemixCount
remix_squaretone_write_chunk (RemixEnv * env, RemixChunk * chunk,
int channelname, void * data)
{
RemixSquareTone * squaretone = (RemixSquareTone *)data;
- RemixSquareToneChannelData * sqch;
+ RemixSquareToneChannel * sqch;
RemixCount remaining = count, written = 0, n;
RemixCount wavelength;
RemixPCM * d, value;
CDScalar k;
- int channel_enabled = 0;
remix_dprintf ("[remix_squaretone_write_chunk] (+%ld) @ %ld\n",
count, offset);
- k = cd_set_find (env, squaretone->channel_data, channelname);
+ k = cd_set_find (env, squaretone->channels, channelname);
sqch = k.s_pointer;
- channel_enabled = cd_set_contains (env, squaretone->channels, channelname);
-
if (sqch == RemixNone) {
remix_dprintf ("[remix_squaretone_write_chunk] channel %d not found\n",
channelname);
value = -1.0;
}
- if(!channel_enabled ) value = 0;
-
d = &chunk->data[offset];
_remix_pcm_set (d, value, n);
remaining -= n; written += n; offset += n;
RemixCount wavelength;
CDSet * s;
RemixCount cycle_offset;
- RemixSquareToneChannelData * sqch;
+ RemixSquareToneChannel * sqch;
wavelength = (RemixCount)(remix_get_samplerate (env) / squaretone->frequency);
cycle_offset = offset % wavelength;
- for (s = squaretone->channel_data; s; s = s->next) {
- sqch = (RemixSquareToneChannelData *)s->data.s_pointer;
+ for (s = squaretone->channels; s; s = s->next) {
+ sqch = (RemixSquareToneChannel *)s->data.s_pointer;
sqch->_cycle_offset = cycle_offset;
}