Re: [LAD] A History of Audio on Linux somewhere?
I realise that the original thread may have been more of a focus on Kernel level audio software, rather then user space audio software, however the old school clunky XForms UI were classic from back in those days. Found some screen shots of the dynamic audio software : https://web.archive.org/web/20001028203345/http://www.cse.unsw.edu.au/~flatmax/dynamic/dynamicScreen.html On 2/2/22 08:14, Matt Flax wrote: Back in 1999 and just before it was the crossover between ALSA and OSS. I remember getting help from mailing lists as a newbie, just making your first sound using C/C++ was difficult back then ! I don't know if this is the type of thing you are after, but this was my developer focus back in those days I produced two software packages which were very experimental and not heavily used by others, you can see their original pages here (called projects jumbled and dynamic) : https://web.archive.org/web/19991104182532/http://www.cse.unsw.edu.au/~flatmax/dynamic/jumbled/jumbled.html https://web.archive.org/web/19991104155359/http://www.cse.unsw.edu.au/~flatmax/dynamic/dynamic.html Interestingly it may have been using OSS ? I can't quite remember. The original "jumbled" software was a real time CD to MIDI wavetable player. The big idea was to play your CDs streaming through the AWE 32's RAM wavetable synthesiser. You could apply MIDI hardware effects, you can actually still see the keyboard controls : https://web.archive.org/web/2416211019/http://www.cse.unsw.edu.au/~flatmax/dynamic/jumbled/jumbledCommands.html It worked quite nicely, except for the fact that the RAM front side bus was too slow to pipe 44100 Hz CD audio through the MIDI's RAM. This gave the system a looping effect, where the audio playback would loop a few times before being reloaded with the next block of audio from the CD. The looping gave it it's name "jumbled". You could trigger a few MIDI keys and get the CD's audio played back at different pitches and also overly the AWE 32's effects. The next project was "dynamic" it simplified things to playing CDs direct to the sound card. You can also see the sunsite.unc.edu listing, with a sample mp3 up there. Project dynamic was unique in that it had backwards blocking mode - where blocks of audio were read from CD backwards, and also a reverse mode, where the blocks of audio were reversed before being played. http://www.ibiblio.org/pub/Linux/apps/sound/cdrom/project.dynamic.lsm Matt On 25/1/22 19:09, Philip Rhoades wrote: People, I am just a regular user of Linux audio but I am interested in the history of how software was developed and what problems they were meant to solve on Linux eg OSS, ALSA, Jack etc and more recently PipeWire. Is there such a documented history already in existence on the web somewhere? (ie NOT a HOWTO) - that would be intelligible to non-audio professionals? I am interested in learning and understanding more about audio and perhaps making better use of my system (Fedora 34 + Wayland soon to be updated to 35). Thanks, Phil. ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org https://lists.linuxaudio.org/listinfo/linux-audio-dev
Re: [LAD] A History of Audio on Linux somewhere?
Back in 1999 and just before it was the crossover between ALSA and OSS. I remember getting help from mailing lists as a newbie, just making your first sound using C/C++ was difficult back then ! I don't know if this is the type of thing you are after, but this was my developer focus back in those days I produced two software packages which were very experimental and not heavily used by others, you can see their original pages here (called projects jumbled and dynamic) : https://web.archive.org/web/19991104182532/http://www.cse.unsw.edu.au/~flatmax/dynamic/jumbled/jumbled.html https://web.archive.org/web/19991104155359/http://www.cse.unsw.edu.au/~flatmax/dynamic/dynamic.html Interestingly it may have been using OSS ? I can't quite remember. The original "jumbled" software was a real time CD to MIDI wavetable player. The big idea was to play your CDs streaming through the AWE 32's RAM wavetable synthesiser. You could apply MIDI hardware effects, you can actually still see the keyboard controls : https://web.archive.org/web/2416211019/http://www.cse.unsw.edu.au/~flatmax/dynamic/jumbled/jumbledCommands.html It worked quite nicely, except for the fact that the RAM front side bus was too slow to pipe 44100 Hz CD audio through the MIDI's RAM. This gave the system a looping effect, where the audio playback would loop a few times before being reloaded with the next block of audio from the CD. The looping gave it it's name "jumbled". You could trigger a few MIDI keys and get the CD's audio played back at different pitches and also overly the AWE 32's effects. The next project was "dynamic" it simplified things to playing CDs direct to the sound card. You can also see the sunsite.unc.edu listing, with a sample mp3 up there. Project dynamic was unique in that it had backwards blocking mode - where blocks of audio were read from CD backwards, and also a reverse mode, where the blocks of audio were reversed before being played. http://www.ibiblio.org/pub/Linux/apps/sound/cdrom/project.dynamic.lsm Matt On 25/1/22 19:09, Philip Rhoades wrote: People, I am just a regular user of Linux audio but I am interested in the history of how software was developed and what problems they were meant to solve on Linux eg OSS, ALSA, Jack etc and more recently PipeWire. Is there such a documented history already in existence on the web somewhere? (ie NOT a HOWTO) - that would be intelligible to non-audio professionals? I am interested in learning and understanding more about audio and perhaps making better use of my system (Fedora 34 + Wayland soon to be updated to 35). Thanks, Phil. ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org https://lists.linuxaudio.org/listinfo/linux-audio-dev
Re: [LAD] A History of Audio on Linux somewhere?
On 1/25/22 9:18 AM, Len Ovens wrote: On Tue, 25 Jan 2022, Philip Rhoades wrote: I am just a regular user of Linux audio but I am interested in the history of how software was developed and what problems they were meant to solve on Linux eg OSS, ALSA, Jack etc and more recently PipeWire. Is there such a documented history already in existence on the web somewhere? (ie NOT a HOWTO) - that would be intelligible to non-audio professionals? Funny that. I started using Linux in the early 90s. I had no sound card at the time and did music on tape with one track with sync, giving me 7 audio tracks and 16 (well 32 if I wanted but 16 was enough to cover the few synths I had) tracks of midi. For that sequencing I used an Atari Mega. Sound cards were more than my small budget could afford and so I ignored OSS till I got one. I had just figgured OSS well enough to use a bit when ALSA showed up and so was annoyed that I had to figgure out a new audio server. However, my low memory, low speed mother boards of the time meant audio was more of a curiosity. By the time I got something I could actually do sound on (a P4 single core) Jack on top of alsa was the way to do things. All that to say, even though I have been using Linux from the roll your kernel monthly days, I can't really say much about audio history. -- Len Ovens www.ovenwerks.net Ditto. I saw most of it (started in Linux in '93 or '94), but that doesn't mean I understand much of it. OSS I don't think I got to work at all though I tried on my Sound Blaster 16, ALSA I did early but didn't have enough computing power to do much. Things started to get slightly practical for me with ZynAddSubFX and then Yoshimi, JACK to ALSA, in the early 2000's. Clearly OSS and ALSA were and are there in order that sound better than case-speaker beeps can occur :-) I still remember a few amazing efforts using that case speaker. APIs on top have been developed for app connection and timing, JACK obviously being the one with the essential goodies for anything except smooth playback and simple recording. But gradually, for very high quality playback, better buffering, and automatic friendly coexistence of many audio apps simultaneously, Pulse arrived, after it effectively replaced one or two (three?) predecessors of generally similar intent. Along with this came GStreamer, another layer which handles codecs and video synchronization, for quite a while with Pulse or direct to ALSA, direct to JACK having been developed too. In more recent years automatic coexistence of JACK and Pulse was worked out (at considerable effort...) in some distros and with certain tools; but with all of that we have several layers to juggle, separate server-level code for each, the whole being very not simple, and therefore relatively easy to break. Pipewire seems to be an effort to integrate and, to an extent, reimplement APIs at the ALSA/JACK/Pulse levels, and it is excellent for many purposes now, and getting better. One thing which Pipewire appears to be doing already with some surprising facility, if I understand what I have just heard, is to take the video sync capability of GStreamer and integrate it with the JACK API, and apparently fully automatically. That's probably all I think I know; corrections solicited :-) It does amuse me to have written the above given some of the folks whom I know are on this list :-) Many many thanks :-) J.E.B. ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org https://lists.linuxaudio.org/listinfo/linux-audio-dev
Re: [LAD] Pipewire help?
I had heard that the Pipewire people are working hard on video integration, it appears that you found it! :-) J.E.B. On 2/1/22 1:37 AM, John Murphy wrote: Hmm. I went to check something online and there was an embedded youtube video to see. I clicked on it and thought 'I know that tune!' :-) I had forgotten that I'd left jack-play (not) playing and linked to the playback. Paused the video and the music stopped. Un-pause and off it went again. All wires shown dotted in Helvium, while paused. Tried starting jack-play again with -t (jack transport aware). It said: jack-play: a48k.wav jack-play: seek request failed, 385225728 (That's beyond Eof) jack_transport controls work while the video is playing, but do nothing while the video is paused. ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org https://lists.linuxaudio.org/listinfo/linux-audio-dev
Re: [LAD] Any csound experts here ?
Hi Fons, Feb 1 2022, Fons Adriaensen has written: ... * run Csound with Jack, As robin said -+rtaudio=jack The buffer size needs to match though. If a JACK plugin is set up in ALSA you don't have to use a particular -+rtaudio option, though alsa will do and the buffer size issue is gone. * using Ninp input ports and Nout output ports, If you just mean specifying a particular number of input and output ports: nchnls = sets the number of both input and output, unless you also use: nchnls_i = which sets a different number of input ports. * not autoconnecting any ports, ... Within Csound you have at least two ways to use JACK. Either by -+rtaudio=jack and then using the normal input and output opcodes like out, in, outs, inch, ... Or you can use the Jacko opcodes which have their own setup. I believe they _HAVE_ to be connected inside the Csound orchestra header though. Here's the overview of those opcodes and more detail about the Jacko system: https://csound.com/docs/manual/JackoOpcodes.html HTH. Best wishes, Jeanette -- * Website: http://juliencoder.de - for summer is a state of sound * Youtube: https://www.youtube.com/channel/UCMS4rfGrTwz8W7jhC1Jnv7g * Audiobombs: https://www.audiobombs.com/users/jeanette_c * GitHub: https://github.com/jeanette-c She's so lucky, she's a star But she cry, cry, cries in her lonely heart... <3 (Britney Spears) ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org https://lists.linuxaudio.org/listinfo/linux-audio-dev
Re: [LAD] mididings Python woes; workaround or fix?
Thanks to Christopher Arndt, I appear to have made a functioning fork: https://github.com/ponderworthy/mididings I'm not positive I have the namespace altogether consistent -- some of the instances of 'Callable' are within a renamed collection, so I had to rename the rename, in two files under 'units'; but it does seem to work. Wiser Python heads may want to correct the error of my ways if I miswrote! Also, interestingly enough, there are apparently 37 forks of mididings right now :-) I forked mine off the latest to date. Happy to see that community. J.E.B. On 1/31/22 6:39 AM, Jonathan E. Brickman wrote: Mididings may be the only JACK-api MIDI router/filter tool around; if there is another I'd love to know about it. On the other hand t was working just dandy until, I think, some changes to both Python3 and legacy support for Python2. I was using its Python3 AUR adaptation (mididings-git) under Manjaro, but then after package upgrades, it began to fail at 'from mididings import *' (see below). I found similar failures in Ubuntu 20, and found different failures in both when I tried setting up to use Python2 (which obviously we would rather not be doing). The failure is similar to a number of failures reported starting with Python 3.10, so this may be related, but I was not able to figure out how to apply those workarounds to the mididings source, I tried several different variations, including a number of the different forks in github. Thoughts, anyone? I found Pigiron and Jamrouter and puredata, but none of these appear to do JACK. I'm using pipewire now, so I could theoretically revise the whole rig around ALSA MIDI, but all of the apps needing MIDI use JACK, and mididings is so elegant... J.E.B. |[jeb@newbnr ~]$ python Python 3.10.1 (main, Dec 18 2021, 23:53:45) [GCC 11.1.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from mididings import * Traceback (most recent call last): File "", line 1, in File "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10- linux-x86_64.egg/mididings/__init__.py", line 15, in from mididings.engine import run, process_file File "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/engine.py", line 15, in import mididings.patch as _patch File "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10- linux-x86_64.egg/mididings/patch.py", line 15, in import mididings.units as _units File "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/units/__init__.py", line 14, in from mididings.units.engine import * File "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/units/engine.py", line 55, in def SceneSwitch(number=_constants.EVENT_PROGRAM): File "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/unitrepr.py", line 46, in composed return arguments.accept(*constraints, **kwargs) (store(f)) File "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/arguments.py", line 49, in __init__ self.constraints = [_make_constraint(c) for c in constraints] File "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/arguments.py", line 49, in self.constraints = [_make_constraint(c) for c in constraints] File "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/arguments.py", line 160, in _make_constraint elif isinstance(c, collections.Callable): AttributeError: module 'collections' has no attribute 'Callable' >>>| ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org https://lists.linuxaudio.org/listinfo/linux-audio-dev
Re: [LAD] Any csound experts here ?
On 2/1/22 12:53, Fons Adriaensen wrote: > Hello all, Hi Fons, I'm not a csound expert, but I do know the answer to at least 2 of your questions: > * run Csound with Jack, -+rtaudio=jack > * using Ninp input ports and Nout output ports, I don't recall this being a parameter, but the `outch` and `nchnls` opcodes sets the number of output channels. I never tried this myself with more than 2 channels though. > * not autoconnecting any ports, -odac:null and -iadc:null -- robin OpenPGP_signature Description: OpenPGP digital signature ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org https://lists.linuxaudio.org/listinfo/linux-audio-dev
[LAD] Any csound experts here ?
Hello all, I'm trying to help someone (OSX user trying out Linux) use Csound with Jack. What I'd need to know is which are the Csound command line options to * run Csound with Jack, * using Ninp input ports and Nout output ports, * not autoconnecting any ports, if that is possible at all... TIA, -- FA ___ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org https://lists.linuxaudio.org/listinfo/linux-audio-dev