Re: [LAD] A History of Audio on Linux somewhere?

2022-02-01 Thread Matt Flax
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?

2022-02-01 Thread Matt Flax

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?

2022-02-01 Thread Jonathan E. Brickman

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?

2022-02-01 Thread Jonathan E. Brickman
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 ?

2022-02-01 Thread Jeanette C.

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?

2022-02-01 Thread Jonathan E. Brickman

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 ?

2022-02-01 Thread Robin Gareus
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 ?

2022-02-01 Thread Fons Adriaensen
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