Re: [LAD] Writing a library?
Julien Claassen [EMAIL PROTECTED] writes: Hi! Yes the autotools are good. cmake might be better, but it is not as well known and often used as autotools and scons. As I heard scons should be enough for a lot of things. Even for multi platform stuff. Csound uses it and seems fine with it and a couple more linux (multiplatform) applications like ardour. my choice would always be between autoconf/automake/et al. and scons. For both learning is necessary. For scons it's python and for the autotools it's the macro-language. Both seems to have nice reference docs... I'd sugeest you waf, takes goods sides of autotools (separate configure stage), scons (python) and cmake (nice progress indication). And even has good features that are unique. Like. waf being part of source tree, thus multiple developers cannot end with having different versions of the build tool. -- Nedko Arnaudov GnuPG KeyID: DE1716B0 pgpXmrgodW6UA.pgp Description: PGP signature ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] Writing a library?
2008/7/23 Nedko Arnaudov [EMAIL PROTECTED]: I'd sugeest you waf, takes goods sides of autotools (separate configure stage), scons (python) and cmake (nice progress indication). And even has good features that are unique. Like. waf being part of source tree, thus multiple developers cannot end with having different versions of the build tool. the link: http://code.google.com/p/waf/ ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
[LAD] Searching for USB Sound-Chip
Hello *, I am developing a new Hardware and I am searching for an Ausio/Soundchip which support natively USB. And of course, it should be supported by ALSA and posible OSS (for embedded systems). All I need is to capture the ouput of a GSM-Chip and of course, output Sound/Voice to the GSM-Input. Volume control and muting is neccesary too. Can anyone recommend a Low-Cost chip which is suitable? The chip can be any SMD/QFN/DFN package since I have SMS and Infra-Red Welding Systems available Thanks, Greetings and nice Day/Evening Michelle Konzack Systemadministrator 24V Electronic Engineer Tamay Dogan Network Debian GNU/Linux Consultant -- Linux-User #280138 with the Linux Counter, http://counter.li.org/ # Debian GNU/Linux Consultant # Michelle Konzack Apt. 917 ICQ #328449886 +49/177/935194750, rue de Soultz MSN LinuxMichi +33/6/61925193 67100 Strasbourg/France IRC #Debian (irc.icq.com) signature.pgp Description: Digital signature ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] Writing a library?
On Jul 22, 2008, at 10:26 PM, Darren Landrum wrote: I've been looking around for a library to read and write SFZ files, which is an open sampler format released by Cakewalk: http://www.cakewalk.com/DevXchange/sfz.asp Finding none, I thought I might try my hand at writing a library for this myself, as there is no embedded wave information like with Gig files. SFZ is simply a text file to be parsed. Now, I know about writing a good header file, and its associated class, and all that, but I have no knowledge of how to write it as a dynamic library. Google searches on every possible permutation have been worthless to me as well. I would prefer to write it in C++, as that's what I know, and even then, not too well, hence why I thought I'd start with something simple like parsing a text file. If anyone has any advice, recommendations, or ideas, I'll happily listen and learn. I have yet to think too much about how the data will be stored in the class, and what methods to make available to access it, so if anyone knows any best practices there, I'd really like to know. Consider this a feeler post. I'd strongly suggest you consider learning C if you want to maximize other people using your library. If you write the library in C++ it will be hard for anyone but C++ users to use it. If you write it in straight C, or at least expose a plain C interface, it will be trivial to use for C users, C++ users, Objective C users, Python users, Smalltalk users and some scheme and lisp users, and I'm sure I'm missing other languages that can interface with C easily. Also, I suggest that you learn how to use a lex program like Flex. You could also possibly use a parser generator, something like yacc/ bison on top of that. The time spent learning flex will be time very well spent and the time spent learning it will probably pay itself back immediately as your write your tokenizer. There are quite a few good free lex and/or yacc guides available, often on university web sites. ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] Writing a library?
On Wed, 2008-07-23 at 08:41 -0400, Joshua Boyd wrote: I'd strongly suggest you consider learning C if you want to maximize other people using your library. If you write the library in C++ it will be hard for anyone but C++ users to use it. If you write it in straight C, or at least expose a plain C interface, it will be trivial to use for C users, C++ users, Objective C users, Python users, Smalltalk users and some scheme and lisp users, and I'm sure I'm missing other languages that can interface with C easily. good advice. Also, I suggest that you learn how to use a lex program like Flex. You could also possibly use a parser generator, something like yacc/ bison on top of that. The time spent learning flex will be time very well spent and the time spent learning it will probably pay itself back immediately as your write your tokenizer. There are quite a few good free lex and/or yacc guides available, often on university web sites. in my experience, not so good advice. lexer+parser generators are great for certain kinds of things, actually more like indispensable. but for parsing audio files, they really are not very well suited for the task. these are binary files with no real semantic structure other than chunks. i have no doubt that you could use them, but erik de castro lopo didn't for libsndfile and thats good enough for me :) --p ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] embedded high end audio
I have an Echo Indigo IO that I had working in linux. It's a 2 in, 2 out Cardbus device. As I recall, I had to build a kernel because whatever distro I was using didn't include the driver, but it was part of the standard ALSA distribution. There is also a 4x4 version called the Indigo DJ that is very similar and probably also compatible. On Jul 21, 2008, at 7:31 PM, porl sheean wrote: [...] if i was wanting to develop a small (up to around 20cm square) device using an embedded linux setup, is there any high end (pro quality jack compatible) audio devices that are easily attainable? basically something like a high end adc/dac for minipci or something similar i suppose. [...] ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] Writing a library?
On Wed, 2008-07-23 at 09:02 -0400, Paul Davis wrote: in my experience, not so good advice. lexer+parser generators are great for certain kinds of things, actually more like indispensable. but for parsing audio files, they really are not very well suited for the task. these are binary files with no real semantic structure other than chunks. i have no doubt that you could use them, but erik de castro lopo didn't for libsndfile and thats good enough for me :) i've been informed that i am ignorant and should keep my mouth closed about things like SFZ that i don't know much about :) (in the nicest possible way of course!) so ignore me .. --p ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] Writing a library?
On Wed, Jul 23, 2008 at 03:25:47PM +0200, Julien Claassen wrote: Hi! Paul: As I understood the sfz format is text-based. I didn't take a look. But depending on what it looks like, a parser generator might be good advice. If the SFZ is an xml variant libxml might be better suited. I looked at the page and it is not XML. ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] Writing a library?
On Wed, Jul 23, 2008 at 03:25:47PM +0200, Julien Claassen wrote: Hi! Paul: As I understood the sfz format is text-based. I didn't take a look. But depending on what it looks like, a parser generator might be good advice. If the SFZ is an xml variant libxml might be better suited. Kindest regards Julien It's not XML, it's a sort of flat-text-ish thing with various keywords for setting keys, keygroups, mutegroups and so on. Having briefly skimmed the spec over lunch, I'm not in much of a position to say how good it is, but it looks right. Essentially an SFZ file is a text file describing what to do with a bunch of .wav or .ogg files. It's almost worryingly clueful. Gordon ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] [OT] CD-R masters, block error rate and dvd-r mystery...
Jörn Nettingsmeier wrote: * how on earth can the same content burned via cdrdao to a CD-R on a cdrw drive (Plextor) and a dvdrw drive (LG) differ in several hundred thousand bytes when read back in with cdparanoia? hmm. again, here's what i did: i burned the same disk-at-once session four times, using the following command: cdrdao write /dev/device mytoc.toc twice i wrote to /dev/cdrw, and twice to /dev/dvdrw. all four disks were read back in using cdparanoia, to four different directories: cdrw1, cdrw2, dvdr1, dvdr2. when i cmp the files in cdrw[12], no diff. when i cmp the files in dvdr[12], no diff. when i cmp cdrwN to dvdrN, pooof! several thousand bytes differ. wtf? please tell me it's really obvious and i'm doing something unspeakably stupid. regards, jörn -- jörn nettingsmeier home://germany/45128 essen/lortzingstr. 11/ http://spunk.dnsalias.org phone://+49/201/491621 Kurt is up in Heaven now. ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] Writing a library?
[EMAIL PROTECTED] wrote: It's not XML, it's a sort of flat-text-ish thing with various keywords for setting keys, keygroups, mutegroups and so on. Having briefly skimmed the spec over lunch, I'm not in much of a position to say how good it is, but it looks right. Essentially an SFZ file is a text file describing what to do with a bunch of .wav or .ogg files. It's almost worryingly clueful. It wasn't actually created by Cakewalk, but by a small company that Cakewalk had bought, and rather than closing up or quelching SFZ, they decided to keep it open. That's the story best as I was able to divine it, anyway. And now with the news that Tascam is discontinuing all Gigastudio-related development (http://www.filmmusicmag.com/?p=1738 and confirmed on the Legacy section of Tascam's web site: http://www.tascam.com/legacy;37,7.html) it's possible that SFZ might become a new standard for sample libraries to use. Garritan is apparently releasing, or getting set to release, their libraries in SFZ now. My issue now, though, is I clearly do not have the skills to create a good, usable library. Nor do I want to; I'd rather spend that time creating a working application, even if it's a monolithic one. I'm here because I'm broke and scratching my own itch. If I had the money, I'd go off and buy NI Komplete and be happy actually making music. It can be argued that learning programming and DSP is making me a better person, but it certainly isn't making me a happier one. So now I'm working out a plan for a code framework for making software synths and samplers, likely directed graph based. I might release that framework separately, but no one will likely get a library out of me. I can only do what I can do with the tools I have, and scratching my own itch comes first. Maybe someone with those skills would like to jump in and help? I realize that code says more on this forum than talk, but surely I can try to gather a team together for a larger project. Right? Maybe? -- Darren Landrum ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] Writing a library?
Julien Claassen wrote: Hi Darren! I'd still suggest on going linuxsampler. There's a basic framework already. I'm not the skillful programmer myself, otherwise I'd like to help. But reasons for my point: 1. LS has already MIDI and audio drivers working. 2. LS offers a clear structure and an API to go by. 3. LS is in use already. 4. It already has two GUIs and is probably getting more. 5. MY OWN HERE: It's useable for blind people as well with relative ease. 6. I think the people there are a helpful and nice crowd. So six nice reasons to go that way. Perhaps you can also rely on code already written, like take a look and produce similar code in parts and there are people who know the framework and the matter. and it won't be another standalone app to maintain and adapt to every novation in the audio-world, like audio/MIDI driver APIs changing etc... One of the delicate remarks: If you don't get along well with LinuxSampler's license, you could make your engine a seperate package and say it's LGPL. Is tht correct? Some backup. No licensing discussion just a true or false statement. PLEASE! :-) Kindest regards Julien I'm not a CS person, I'm a math and engineering person. I truly and honestly believe that it will be easier for me to start from scratch than to try to wrap my head around someone else's codebase. That being said, I mentioned starting with a code framework that would allow the creation of any kind of synth or sampler, not just the one I have in mind (which is inspired by the upcoming Omnisphere more than anything else). I may not be a CS guy, but I do understand the value of planning in advance. Nevertheless, anyone who quotes John Miles in his sig must be a cool person, so I'll certainly wait a bit for other ideas and advice before barreling off on my own. Thank you for the reply. -- Darren Landrum ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] Writing a library?
On Wed, Jul 23, 2008 at 16:41, Darren Landrum [EMAIL PROTECTED] wrote: [EMAIL PROTECTED] wrote: It's not XML, it's a sort of flat-text-ish thing with various keywords for setting keys, keygroups, mutegroups and so on. Having briefly skimmed the spec over lunch, I'm not in much of a position to say how good it is, but it looks right. Essentially an SFZ file is a text file describing what to do with a bunch of .wav or .ogg files. It's almost worryingly clueful. It wasn't actually created by Cakewalk, but by a small company that Cakewalk had bought, and rather than closing up or quelching SFZ, they decided to keep it open. That's the story best as I was able to divine it, anyway. And now with the news that Tascam is discontinuing all Gigastudio-related development (http://www.filmmusicmag.com/?p=1738 and confirmed on the Legacy section of Tascam's web site: http://www.tascam.com/legacy;37,7.html) it's possible that SFZ might become a new standard for sample libraries to use. Garritan is apparently releasing, or getting set to release, their libraries in SFZ now. Hi Darren! :-) Note that Garritan/Plogue are using a later version of the SFZ format with additional and sometimes custom opcodes in their ARIA player. (See e.g. http://www.northernsounds.com/forum/showthread.php?t=60929 ) Here's a simple tokenizer for SFZ I wrote once upon a time in Python. Not sure if I got it completely right. [BEGIN PYTHON] import sys def find_delimiter(string, delimiter): Find all occurences of delimiter. start, i, ndx = 0, 0, [] while True: i = string.find(delimiter, start) if i != -1: start = i + 1 ndx.append((i, delimiter)) else: break return ndx def find_all_delimiters(string, delimiters): Find all delimiters. ndx = [] for delimiter in delimiters: ndx.extend(find_delimiter(string, delimiter)) return ndx def tokenize_sfz(string): Tokenize SFZ string. delimiters = [ # comments '\n', '//', # headers 'region', 'group', # sample definition 'sample=', # input controls 'lochan=', 'hichan=', 'lokey=', 'hikey=', 'key=', 'lovel=', 'hivel=', 'lobend=', 'hibend=', 'locahnaft=', 'hichanaft=', 'lopolyaft=', 'hiplyaft=', 'lorand=', 'hirand=', 'lobpm=', 'hibmp=', 'seq_length=', 'seq_position=', 'sw_lokey=', 'sw_hikey=', 'sw_last=', 'sw_down=', 'sw_up=', 'sw_previous=', 'sw_vel=', 'trigger=', 'group=', 'off_by=', 'off_mode=', ] + [ 'on_locc%d=' % cc for cc in range(128) ] + [ 'on_locc%d=' % cc for cc in range(128) ] + [ # performance parameters 'delay=', 'delay_random=', ] + [ 'delay_cc%d=' % cc for cc in range(128) ] + [ 'offset=', 'offset_random=', ] + [ 'offset_cc%d=' % cc for cc in range(128) ] + [ 'end=', 'count=', 'loop_mode=', 'loop_start=', 'loop_end=', 'sync_beats=', 'sync_offset=', # pitch 'transpose=', 'tune=', 'pitch_keycenter=', 'pitch_keytrack=', 'pitch_veltrack=', 'pitch_random=', 'bend_up=', 'bend_down=', 'bend_step=', # pitch eg 'pitcheg_delay=', 'pitcheg_start=', 'pitcheg_attack=', 'pitcheg_hold=', 'pitcheg_decay=', 'pitcheg_sustain=', 'pitcheg_release=', 'pitcheg_depth=', 'pitcheg_vel2delay=', 'pitcheg_vel2attack=', 'pitcheg_vel2hold=', 'pitcheg_vel2decay=', 'pitcheg_vel2sustain=', 'pitcheg_vel2realease=', 'pitcheg_vel2depth=', # pitch lfo 'pitchlfo_delay=', 'pitchlfo_fade=', 'pitchlfo_freq=', 'pitchlfo_depth=', ] + [ 'pitchlfo_depthcc%d=' % cc for cc in range(128) ] + [ 'pitchlfo_depthchanaft=', 'pitchlfo_depthpolyaft=', ] + [ 'pitchlfo_freqcc%d=' % cc for cc in range(128) ] + [ 'pitchlfo_freqchanaft=', 'pitchlfo_freqpolyaft=', # filter 'fil_type=', 'cutoff=', ] + [ 'cutoff_cc%d=' % cc for cc in range(128) ] + [ 'cutoff_chanaft=', 'cutoff_polyaft=', 'resonance=', 'fil_keytrack=', 'fil_keycenter=', 'fil_veltrack=', 'fil_random=', # filter eg 'fileg_delay=', 'fileg_start=', 'fileg_attack=', 'fileg_hold=', 'fileg_decay=', 'fileg_sustain=', 'fileg_release=', 'fileg_depth=', 'fileg_vel2delay=', 'fileg_vel2attack=', 'fileg_vel2hold=', 'fileg_vel2decay=', 'fileg_vel2sustain=', 'fileg_vel2realease=', 'fileg_vel2depth=', # filter lfo 'fillfo_delay=', 'fillfo_fade=',
Re: [LAD] Writing a library?
On Wed, Jul 23, 2008 at 15:25, Julien Claassen [EMAIL PROTECTED] wrote: Hi! Paul: As I understood the sfz format is text-based. I didn't take a look. But depending on what it looks like, a parser generator might be good advice. If the SFZ is an xml variant libxml might be better suited. Kindest regards Julien Here's what a snippet from a SFZ file looks like: [BEGIN SFZ] / // Region Name: NOTE E_ region sample=E_1.wav key=52 lovel=111 hivel=127 region sample=E_2.wav key=52 lovel=86 hivel=110 region sample=E_3.wav key=52 lovel=71 hivel=85 region sample=E_4.wav key=52 lovel=0 hivel=70 / // Region Name: NOTE F_ region sample=F_1.wav key=53 lovel=111 hivel=127 region sample=F_2.wav key=53 lovel=86 hivel=110 region sample=F_3.wav key=53 lovel=71 hivel=85 region sample=F_4.wav key=53 lovel=0 hivel=70 [END SFZ] -- Anders Dahnielson [EMAIL PROTECTED] ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] Writing a library?
Anders Dahnielson [EMAIL PROTECTED] writes: Here's a simple tokenizer for SFZ I wrote once upon a time in Python. Not sure if I got it completely right. *snip* I was just about to suggest checking out the sampler/synth/sequencer/tracker engine libzzub, that happens to include Python bindings: http://trac.zeitherrschaft.org/zzub/ http://trac.zeitherrschaft.org/aldrin I haven't looked much at it myself yet, but Aldrin works very well (built on top of libzzub) and it seems like a good design, supporting different types of plugins and audio outputs and handling sequencing and the directed graph of plugins. -- /Pelle ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] Linux Plumbers Conference CFP Extended!
On Wed, 23.07.08 16:28, Pieter Palmers ([EMAIL PROTECTED]) wrote: Heya! The Call For Papers for the Linux Plumbers Conference has been extended until *July 31st*! Anyone doing (audio) infrastructure work on Linux? If so, please make sure to join us at the Linux Plumbers Conference in Portland/Oregon in September. I will be doing a track about Audio there and would like to make sure that everyone who does audio infrastructure work will submit a paper, or at least attend, or maybe just knows about this conference! It's a conference about the kernel-userspace interfacing, about the lower levels in our software stack. I guess you could include FFADO as audio infrastructure on Linux, although done in userspace. But unfortunately traveling overseas to Portland is not really an option due to the cost. To say this explicitly: the conference is about infrastructure on both the kernel and the userspace side of the medal. It's about all that stuff in the kernel that needs to interface directly with userspace, but even more about all the userspace stuff that interfaces directly with the kernel. FFADO seems to do the latter. Hence, FFADO fits *perfectly* into what Plumber's is about I would say. There's always the Linux Foundation Travel Fund. Since the Linux Foundation is backing this conference I am pretty sure we can find some funding for you (off list). Lennart -- Lennart PoetteringRed Hat, Inc. lennart [at] poettering [dot] net ICQ# 11060553 http://0pointer.net/lennart/ GnuPG 0x1A015CC4 ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] [OT] CD-R masters, block error rate and dvd-r mystery...
On Wed, Jul 23, 2008 at 04:18:57PM +0200, Joern Nettingsmeier wrote: when i cmp cdrwN to dvdrN, pooof! several thousand bytes differ. Any obvious pattern in the differences and/or their position ? -- FA Laboratorio di Acustica ed Elettroacustica Parma, Italia O tu, che porte, correndo si ? E guerra e morte ! ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev
Re: [LAD] [OT] CD-R masters, block error rate and dvd-r mystery...
hi anthony! thanks for your reply. i'm cc:ing the list so that others can benefit from it as well... Anthony Kozar wrote: Hi Joern, This is just a shot in the dark, but most audio CD tracks have a lead-in time of 2 or more seconds. CD players will typically count down using negative numbers for this time and the track is considered to begin after the lead-in. Perhaps one of your drives (the DVD drive?) is reading the lead-in as part of the track? (2 seconds x 44100 samples/sec. x 2 channels x 2 bytes/sample = 352,000 bytes) i can rule this out, because although i used both a dvdr and cdr drive for burning, both cds were read back in using the cdr drive. any differences must have occured during burning. but since i used the same toc file and disk-at-once mode, it's unlikely that the lead-in got interpreted differently in both drives... but you are right, this being a live cd, i used pre-gaps and non-silent gaps extensively - i'll investigate some more along those lines. best, jörn -- jörn nettingsmeier home://germany/45128 essen/lortzingstr. 11/ http://spunk.dnsalias.org phone://+49/201/491621 Kurt is up in Heaven now. ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev