> -----Original Message-----
> From: Bob Ham [mailto:rah@bash.sh]
>
> On Wed, 2003-02-05 at 00:26, Josh Haberman wrote:
> > On Tue, 2003-02-04 at 13:41, Bob Ham wrote:
> > > On Tue, 2003-02-04 at 20:47, Josh Haberman wrote:
> > >
> > > > Imagine being able to write to an API as simple and
> well-designed as
> > > > this:
> <http://www.portaudio.com/docs/v19-doxydocs/portaudio_8h.html>
> > >
> > > Just out of interest, why are paNoDevice, paFloat32, etc, defines
> > > instead of const values?
> >
> > I don't really know. Isn't that kind of a six/half-dozen detail?
>
> Probably. I think it was Bjarne Stroustrup who said
> something along the
> lines of "Every use of a define is an instance of a programmer not
> programming correctly." But I was just wondering if it was some
> portability thing or something.
I think the basic idea is not to use preprocessor for programming...
erik
Kidding aside, this may prove to be so ubiquitous that it will quickly
overshadow all other implementations. It's the MAS audio server that is
going to be implemented into the X server itself and will be
network-transparent.
Slashdot just posted a news blurb on it:
http://slashdot.org/article.pl?sid=03/02/03/2137213
For more info see:
http://www.mediaapplicationserver.net/indexframes.html
Any ideas if this will be also good for pro-audio stuff?
Ivica Ico Bukvic, composer, multimedia sculptor,
programmer, webmaster & computer consultant
http://meowing.ccm.uc.edu/~ico
============================
"To be or not to be" - Shakespeare
"To be is to do" - Socrates
"To do is to be" - Sartre
"Do be do be do" - Sinatra
"2b || ! 2b" - ?
"I am" - God
Here's that PTAF document that Ohm Force brought to Anaheim:
http://freezope2.nipltd.net/ldesoras/files/ptaf-2003.01.23.pdf
I've read some parts of it, and browsed all of it, and here are some
initial reflections of mine:
* Three states; created, initialized and activated.
This may be useful if plugins have to be instantiated
for hosts to get info from them. Why not just provide
metadata through the factory API?
* Bypass mode seems to be a good idea for stereo->surround.
* Assuming that audio and sequencer stuff is in different
threads, and even have plugins deal with the sync sounds
like a *very* bad idea to me.
* GUI code in the same binaries is not even possible on
some platforms. (At least not with standard toolkits.)
* Using tokens for control arbitage sounds pointless. Why
not just pipe events through the host? That turns GUI/DSP
interaction into perfectly normal control routing.
* Why use C++ if you're actually writing C? If it won't
compile on a C compiler, it's *not* C.
* I think the VST style dispatcher idea is silly. A table
of function pointers, with a bunch of reserved NULLs
would be simpler, faster and just as extensible for all
practical matters.
* Is using exceptions internally in plugins safe and
portable?
* Specifying the maximum string length when asking for
strings seems nice in some ways...
* UTF-8, rather than ASCII or UNICODE.
* Hosts assume all plugins to be in-place broken. Why?
* No mix output mode; only replace. More overhead...
* Only mono buffers. (Good.)
* Buffers 16 byte aligned. Sufficient?
* Events are used for making connections. (But there's
also a function call for it...)
* Audio quality control. (Nice scalability feature.)
* Plugin input->output latency.
* Host process return->audible output latency.
* Tail size. (Can be unknown!)
* Process mode: Mixed/RT/Off-Line.
* Plugins send events specifically to the host...
* Events are delivered in arrays, just like in VST.
* "Clear buffers" call. Does not kill active notes...
* Timestamps are in audio frames.
* Events are always for the current block.
* Ramping API seems awkward...
* Ramping cannot run accross blocks.
* It is not specified whether ramping stops automatically
at the end value, although one would assume it should,
considering the design of the interface.
* Note IDs are just "random" values chosen by the sender,
which means synths must hash and/or search...
* Hz is not a good unit for pitch...
* Why both pitch and transpose?
* Why [0, 2] ranges for Velocity and Pressure?
* Note On/Off/End confuse note on/off with context
management.
* TimeChange: tempo, ts numerator, ts denominator.
* TransportJump: sample pos, beat, bar. (Why not just
ticks?)
* PlaybackChange: stopped/running
* Plugins (not hosts) maintain parameter sets/presets.
* Parameter sets for note default params? Performance
hack - is it really worth it?
* Why have normalized parameter values at all?
(Actual parameter values are [0, 1], like VST, but
then there are calls to convert back and forth.)
* The "save state chunk" call seems cool, but what's
the point, really?
* Just realized that plugin GUIs have to disconnect
or otherwise "detach" their outputs, so automation
knows when to override the recorded data and not.
Just grabbing a knob and hold it still counts as
automation override, even if the host can't see any
events coming... (PTAF uses tokens and assumes that
GUI and DSP parts have some connections "behind the
scenes", rather than implementing GUIs as out-of-
thread or out-of-process plugins.)
//David Olofson - Programmer, Composer, Open Source Advocate
.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`---------------------------> http://olofson.net/audiality -'
--- http://olofson.net --- http://www.reologica.se ---
OK, I've read the more thoroughly now.
On page 23 you have a list of properties (ie. metadata), some of these
should be per-port, and the generic ones (name, authors etc.) should
probably follow the qualified dublin core standard. http://dublincore.org/
It makes sense to me that versions should follow the library versioning
convention, so that hosts could do substitution where appropriate.
The denormal numbers stuff seems a bit low level, I'm not away of any
operations you can do on denormal numbers without incurring penalty (maybe
delay with no gain, but thats stetching it a bit). Also DC offset,
shouldn't the plugin be expected to kill its own DC offset if its desired?
There is a standard for describing this kind of structural metadata as
well as classifications, but I've gone on about it a lot before (and
implemnented support for LADSPA), so I'm not going to mention it here
again or the LAD regulars will lynch me :)
I wont talk about the VVID voice allocation scheme, because I think David
can describe it better.
Overall PTAF is supprisingly similar to XAP (which is encouraging), there
are just some differences in emphasis. Us LAD people tend to be simplecity
freaks. I think its one of the really good things about LADSPA.
- Steve
BLOP is a set of LADSPA plugins - after way too long, it's up to v0.2.6
Website: http://blop.sf.net
This release includes:
* Full RDF metadata, for use with liblrdf
* Bandlimited oscillators (no aliasing noise)
Sawtooth
Square
Variable width pulse
Variable slope triangle
Improved performance and quality (fixed some stupid
mistakes) over v0.2.5
4 Pole Moog-type resonant filter
Tuned, stable LADSPA version of this filter:
http://musicdsp.org/archive.php?classid=3#26
Two ADSRs
Single gate with variable threshold
Gate + Trigger variant (New since v0.2.5)
Analogue-Style Step Sequencer (New since v0.2.5)
Random wave generator, amplifier, 1V/Octave->Hz convertor ('fmod') and a
few other useful things.
Enjoy,
Mike
__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com
Hi
On loading MusE with the -R option I get this error after a few seconds
allan@littlewolf2 allan]$ muse -R
Loading required GL library /usr/X11R6/lib/libGL.so.1.2
no locale <muse_en_GB>/</usr/share/muse/locale>
ALSA port add: <MIDI 0-0>, 64:0 flags 3 0x7f
Track: unknown tag <record> at line 236
ReadEvent: warning: event not in part: 0 - 12288 -12288, discarded
WatchDog: fatal error, realtime task timeout
(12326,0-3) - stopping all services
Any suggestions? DO I just need to recompile a kernel without the
software watchdog or is it something else?
cheers
Allan Klinbail
Hi all,
No response to the beta testing request, so I'll have to subject you all
to a likely hairy release :) Arbitrary channels are the biggest thing.
Also, previous save files will no longer work as the save files use XML
now. Sorry, but it's better to change it now instead of later as
changing the xml format will create less of a disturbance.
* can now have arbitrary channel numbers. you can use any plugin that has
equal numbers of input and output channels where they divide exactly into
the number of rack channels. eg, you could have a 4 channel rack with 2
stereo plugins in one slot and 4 mono plugins in another. obviously, you
can also have mono racks now. use the -c command line option to specify
the number of channels on startup.
* now, when you lock a group of controls, only one widget will be shown.
click on a control while holding down the CTRL key to make it the one that
remains visible.
* the PID is now used in the jack client name by default. you can change it
to the previous behaviour (of using just "jack_rack") with the -n option.
* save files now use an XML format (which is incompatible with the previous
format, sorry)
* port connecting works now, -i to connect inputs, -o to connect outputs
* quite a bit of code factoring and cleanups and stuff
http://pkl.net/~node/jack-rack.html
Bob
--
If you're happy and you know it, bomb iraq
Hi all, a small question regarding getting this thing to work. I'd
appreciate any help I can get.
I am running MDK 9.0 and am trying to get Midisport 2x2 to hotplug. The
problem is that if I use the ezusbmidi script (obviously coupled with
the right firmware and hotplug stuff) the /var/log/messages definitely
notes its successful recognition of the device and announces the last
line echo that the firmware has been installed onto the device
/proc/bus/usb/002/021 (or whatever number it gets assigned), yet the
midisport remains dead.
I understand that the ezusbmidi script uses fxload to upload the
firmware, but according to the syntax of the ezusbmidi script it sends
the command in the following format:
Fxload -I /path/to/firmware
But this is not sufficient when you try just fxload by itself, it
complains that it is missing the destination device (-D flag).
So subsequently I am guessing that this is the stepping stone but then
how is everyone else getting this thing to work.
OTOH, when I try ezusb2131 it works flawlessly (manually) but there is
no automation script for it, so I know that everything loads properly,
it is just that my fxload for some reason is not working properly.
I tested my midi after using ezusb2131 and it does work (/dev/midi1).
Now, I hacked the script for the ezusbmidi and it does hotplug, but it
is an ugly hack and I am wondering what is wrong with this picture?
Any help is greatly appreciated!
Sincerely,
Ivica Ico Bukvic
Forgot to mention that I blacklisted usb-midi and audio drivers in the
/etc/hotplug/blacklist. The computer tried also to load snd-usb-audio
(why?), so I blacklisted that one as well.
Btw, using Alsa 9.0.rc5.
Finally, even though the /var/log/messages mentions creating two pairs
I/O ports (since it is Midisport 2x2) I only have one /dev/midi1 device
hooked up I guess to the first 16 channels. Where are the other 16?
Any help is appreciated!
Ico