Version 1.1 of libsmf can be downloaded from:
http://pin.if.uz.zgora.pl/~trasz/libsmf/libsmf-1.1.tar.gz
Libsmf is a library for loading and writing Standard MIDI Files, i.e.
files with the ".mid" extension. The only dependancy is glib. It was
tested under Linux, FreeBSD and Solaris.
Please note that, by default, libsmf is built with lots of asserts,
which make it slower; for example, inside smf_save, there is some code
that loads the newly saved file and compares it with what it was
supposed to save. If some operation takes noticeable amount of time,
try to recompile libsmf with -DNDEBUG to disable asserts.
http://pin.if.uz.zgora.pl/~trasz/libsmf/
API documentation is here:
http://pin.if.uz.zgora.pl/~trasz/libsmf/doc/
--
If you cut off my head, what would I say? Me and my head, or me and my body?
Hello list,
later that summer I will have the chance to record some impulse
responses of some ancient technical gear like radios, grammophones etc.
The question is, where to start with the recording chain:
e.g an IR from the "Volksempfaenger"-Radio: does it make sense to play
the sweep into an transmitter (of the very same period) and record the
output with the microphone near the speaker of the radio? Or would one
prefer to play the sweep diretly to the amplifier of the radio?
How do I get a meaningful IR from a grammophone: start with the needle?
try to find a vinyl record with a sweep on it?
I am quite curious about your opinions on that subject, or any hint to
some literature, I have not found yet....
Cheers,
Michael
Hello,
DRC 3.0.0 is out and available at the usual place:
http://drc-fir.sourceforge.net/
Here are the change notes:
A new method for the computation of an optimized psychoacoustic target
response, based on the spectral envelope of the corrected impulse response,
has been introduced.
Bye,
--
Denis Sbragion
InfoTecna
Tel: +39 0362 805396, Fax: +39 0362 805404
URL: http://www.infotecna.it
Sorry, my last reply was meant for the list, not just
Fons.
On Sat, Jun 14, 2008 at 6:56 AM, AlgoMantra <algomantra(a)gmail.com> wrote:
> FYI:
>
> http://www.linuxjournal.com/article/3836
>
> I was looking for this sort of thing.
>
Hi,
While trying to compile jack-rack on a fresh Debian 'etch' installation,
I ran into this problem:
jack_rack-ui.o: In function `ui_init_gui':
/usr/local/src/jack-rack-1.4.7/src/ui.c:249: undefined reference to
`gtk_tool_item_set_tooltip_text'
I eventually realised that this function isn't implemented in the
libgtk2.0-dev package in this Debian release (GTK+ v2.8.20). The
offending changes in CVS are here:
http://jack-rack.cvs.sourceforge.net/jack-rack/jack-rack/src/ui.c?r1=1.27&r…
The revision log shows that this change was introduced 1.4.7, and 1.4.6
builds fine, as expected.
jack-rack's 'configure' script only checks for GTK+ >= 2.0.0. According
to the documentation, the missing function didn't exist until 2.12:
http://library.gnome.org/devel/gtk/stable/GtkToolItem.html#gtk-tool-item-se…
Debian packages jack-rack anyway, and anyone compiling latest jack-rack
from source shouldn't mind installing newer GTK libs. But I thought I'd
mention it in case anyone else runs into this problem.
I imagine 'configure.ac' ought to be updated to reflect the dependency
on GTK+ >= 2.12.0 instead of 2.0.0 as previously.
Regards,
--
Steven Chamberlain
steven(a)pyro.eu.org
Hi there,
I have written a MIDI step sequencer that uses the JACK MIDI APIs, and
i'm just about ready to unleash it on the world.
However, i'm no expert on packaging for Linux - i use Ubuntu personally,
and can probably get an ubuntu .deb together easily enough, but am
wondering what people do to get their apps packaged and supported on
other distros?
If anyone is interested - http://qtribe.sourceforge.net/
If you want help compiling,installing or using it, just drop me an email.
-Pete
Hi everyone!
(this was first posted on Linux-Audio-Users, but is probably really more
suited to this list.)
I just compiled a sound generator, which can be controlled vai MIDI, it uses
simpe raw-midi and jack as output, via bio2jack.
Now I have horrible latency 0.2-0.5sec (rough estimate). Where should I start
looking in my setupt. I know others had the software running without problems.
Sorry for being so abstract, but I'm not allowed to mention the software. :-(
I already tried setting internal audio-buffer to 128 samples and reducing
message queues for the tonegenerator and MIDI. Still it's much too much
latency. Does bio2jack have some settings for reducing latency? Does bio2jack
do samplerate conversion, is it costly? The sound-engines samplerate is set to
44100 or 22050 and my JACKd runs at 48000.
But I could post parts of the source if necessary.
My setup is:
Debian Lenny with custom built kernel 2.6.24-rt1
JACK subversion 0.109.0
jack-commandline:
jackd --timeout 4500 -R -d alsa -d hw:1 -r 48000 -p 128 -H -M -z shaped
ALSA version 1.0.15
Any idea where to optimise?
Kindest regards
Julien
--------
Music was my first love and it will be my last (John Miles)
======== FIND MY WEB-PROJECT AT: ========
http://ltsb.sourceforge.net
the Linux TextBased Studio guide
======= AND MY PERSONAL PAGES AT: =======
http://www.juliencoder.de
Hello,
First of all I want to announce that the next version of NASPRO will
shift to LV2 as its internal model, which means that it will contain a
collection of bridges from other APIs to LV2 and viceversa
In order to accomplish such a thing (writing wrappers for LV2), a
special extension is needed to make the host call some function in a
shared object file to generate a new manifest.ttl-like file (possibly
using tmpfile() or similar). The host will call this function and read
the file to know about bridged plugins.
Now, I wrote something (taking "inspiration" from other extensions,
etc.), but since I'm a total beginner with RDF and LV2, please someone
check whether the following stuff is correct.
lv2_dyn_manifest.ttl:
@prefix : <http://naspro.atheme.org/ext/dyn-manifest#> .
@prefix lv2: <http://lv2plug.in/ns/lv2core#> .
@prefix dman: <http://naspro.atheme.org/ext/dyn-manifest#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix doap: <http://usefulinc.com/ns/doap#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
<http://naspro.atheme.org/ext/dyn-manifest#> a lv2:Specification ;
doap:license <http://usefulinc.com/doap/licenses/bsd> ;
doap:name "LV2 Dynamic Manifest" ;
rdfs:comment "" ;
doap:mainainer [
a foaf:Person ;
foaf:name "Stefano D'Angelo" ;
foaf:homepage <http://zanga.netsons.org/>
] .
:DynManifest a rdfs:Class ;
rdfs:label "Dynamic Manifest" ;
rdfs:comment """
The class which represents a dynamic generator of a manifest.ttl-like file.
""" .
lv2_dyn_manifest.h:
#ifndef LV2_DYN_MANIFEST_H_INCLUDED
#define LV2_DYN_MANIFEST_H_INCLUDED
#include <stdio.h>
/* This function shall create a temporary file containing the dynamically
* generated manifest.ttl-like file and return a FILE pointer or NULL in case
* of failure.
*
* The generated file must not implement DynManifest classes. */
FILE * lv2_dyn_manifest();
#endif /* LV2_DYN_MANIFEST_H_INCLUDED */
I hope this is enough since I'm guessing that manifest.ttl can also
contain plugin-related information (the LV2 wiki suggests using
separate files, but maybe it's possible/valid nonetheless).
Then, some kind of API property could be associated to a plugin class
to indicate the original plugin API (needs an extensions or
something?).
In the end, I'm using FILE * because of file locking + standard C
library. If anyone is against that, please say so (with motivations).
Thanks in advance,
Stefano
hey,
when i request a lot of parameters in one function:
get_channel_setup_settings(void)
{
pmesg(100, "midi get_channel_setup_settings()\n");
int i;
for (i = 367; i <= 415; i++)
{
param_request(i);
}
for (i = 512; i <= 639; i++)
{
param_request(i);
usleep(100000);
}
}
(param_request just sends a sysex message for the requested
parameter)
then i discover some weirdness:
midi get_channel_setup_settings()
midi param_request()
midi nibble(367, 1)
midi sysex_delivery()
midi midi_callback() ENTERING
midi unibble(111, 2)
midi unibble(4, 0)
midi midi_callback() got param: 367, value: 4
midi param_request()
midi nibble(368, 1)
midi sysex_delivery()
midi param_request()
midi nibble(369, 1)
midi sysex_delivery()
midi param_request()
....
parameter requests only, until the last parameter:
...
midi param_request()
midi nibble(639, 1)
midi sysex_delivery()
midi set_spinbutton() <- rest of midi_callback() from above
midi midi_callback() ENTERING
midi unibble(112, 2)
midi unibble(0, 0)
midi midi_callback() got param: 368, value: 0
...
(midi_callback is catching the received answers. its
running in another thread)
...
midi unibble(51, 4)
midi unibble(51, 0)
midi midi_callback() got param: 563, value: 51
midi set_spinbutton()
.
now there are two things i dont understand:
first: why is the midi_callback() thread being called once
at the beginning, right after the very first parameter
request and then never again until the very last request?
second: why does the midi_callback() thread only receive
the parameters up to 563 where the last request was for
parameter 639? i am missing the remaining parameters! :-)
about the second weirdness: this can only be a problem on
the receivers side (alsa) as i gave the device i am sending
to more than enough time to answer before its "message
receive buffer" could ever be filled (see the usleeps after
every request). i would guess that some alsa side buffer is
filled up and alsa just drops the rest.
solutions would be:
1. call the midi_callback() thread more often
2. resize the alsa midi input buffer to something more big.
how would i do any of this, preferably 1.?
thank you,
Jan
Hi there,
In my quest to compile and package qTribe, i thought i'd use my iBook to
see how much of a pain it will be to run it under OS X.
(I know Jack OS X doesnt support CoreMIDI port-bridging yet so it won't
be too useful on OS X)
I can compile it quite happily with the Qt I downloaded from Trolltech,
but when it comes to linking against the Jack Framework provided by
JackOSX 0.77 I get this:
g++ -o ../bin/qtribe qtribe.o main.o jackIO.o sequencerCore.o
stepSequence.o stepsequencerwidget.o stepsequencerwidgetbase.o
moc_qtribe.o moc_stepsequencerwidget.o moc_stepsequencerwidgetbase.o
-L/Developer/qt/lib -ljack -lqt-mt -lm -lpthread
/usr/bin/ld: /usr/local/lib/libjack.dylib load command 4 unknown cmd field
collect2: ld returned 1 exit status
make[1]: *** [../bin/qtribe] Error 1
Now, i'm guessing that JackOSX was compiled on leopard using whatever
fancy shiz apple bundle with 10.5 and this is not backwards compatible
by default.
But, is there any way around this issue? I can try downloading XCode 2.5
(on 2.2 here) but that 900MB of stuff just to link JACK. the previous
version of JACK i had installed (which put a dylib directly in
/usr/local/lib instead of a symlink to a Framework) links fine, but
doesn't include JACK MIDI so it fails there.
Can I recompile Jack with my older gcc etc.? Will upgrading to XCode 2.5
definitely fix the problem? Is there a compiler flag I can use to make
the error disappear?
Any help appreciated,
-Pete