Subject: Work towards UADE 2.00 progressing

From: shd
Date: Sat Jul 9 15:27:58 2005

To: UADE-Developer-discussion
I have been hacking uade for a few days to reimplement core audio systems. The design goals have been:

 - make uade more easily embeddable to other applications
 - take out all the audio drivers from the simulator
 - take out almost everything but the necessary from the simulator
 - there is always a client tool that commands the simulator. it's a master-slave system basically.
 - the client tool does all the complex and ugly stuff (file format detection etc)
 - remove all decompressing support (time to depack all those old files)
 - Some C99 and some modern UNIX features are required. Older platforms can use UADE 1.0x.

Interested developers may grab the latest stuff from CVS. The cvs module is: /uade

The directory src/frontends/trivial/ has a proof-of-concept player. It uses libao as an audio driver. I was just able to play fc13.Defjam-CCS-ACC1 :-) *wow*

There is lots of work left:

 - write a decent command line player
 - rewrite relevant parts of xmms/beepmp plugins
 - documentation ???
 - support finer points of song playing (subsong switching, song meta data acquiring, ...)
 - create a separate decompressing tool for people to migrate away from legacy crap
 - make the debugger work again

The stable UADE 1.x is now frozen. We will only release bug fixes and small feature enhancements to it.

---

From: shd
Date: Sun Jul 10 20:07:03 2005

To: UADE-Developer-discussion
More progress. I've been playing around with IO stuff between the client and the UADE process.

I'm implementing a simple command line tool for testing the infra. Next I should start implementing XMMS, BeepMP and other client plugins, but I'm not sure how to proceed.

Should we change current UADE configuration files in someway? Currently we have the hackish 'uadeformats' file which can't be used to express anything else but simple name extensions. It could be benefitial to give format specific hints for UADE in that file (for example song end certain or uncertain).

Also, now that I'm rewriting stuff, what should we do differently?

---

From: mld/uade team
Date: Mon Jul 11 15:01:27 2005

To: UADE-Developer-discussion
hmmh, not sure if we should extend... uadeformats just a basic guide to relate a player to an extension.

I'd rather like to extend the db stuff to something like a STIL file (read configuration on file basis, looping not looping, maybe even overriding Title,  Author etc... :)

concerning amifilemagic icensing. (L)GPL and pd is fine with me... 

michael

---

From: mld/uade team
Date: Mon Jul 11 15:04:12 2005

To: UADE-Developer-discussion
On second thought about uadeformats... 

we could add alternatives to the replay... E.g. if one replayer refuses to play
a certain musicfile try the next one in the list (e.g.)

mod modplayer,adscplayer,ustplayer

---

From: shd
Date: Mon Jul 11 15:09:48 2005

To: UADE-Developer-discussion
[quote:6ede3cc8fb="mld/uade team"]
we could add alternatives to the replay... E.g. if one replayer refuses to play
a certain musicfile try the next one in the list (e.g.)

mod modplayer,adscplayer,ustplayer[/quote:6ede3cc8fb]

A nice idea. Is that example valid? Are there formats where we need this feature?

---

From: Guest
Date: Mon Jul 11 17:35:52 2005

To: UADE-Developer-discussion
[quote:973045dd27="shd"][quote:973045dd27="mld/uade team"]
we could add alternatives to the replay... E.g. if one replayer refuses to play
a certain musicfile try the next one in the list (e.g.)

mod modplayer,adscplayer,ustplayer[/quote:973045dd27]

A nice idea. Is that example valid? Are there formats where we need this feature?[/quote:973045dd27]

By heart I'd say: Tiny Williams &lt;-&gt; Sonix 

some songs of both formats come with the TINY prefix.
For others I have to look

---

From: shd
Date: Mon Jul 11 23:38:43 2005

UADE 2.00 progress..

2005-07-11  Heikki Orsila &lt;[email-masked]&gt;
        - Improved the command line frontend in src/frontends/trivial/, and now it is called uade123.
          It can now do fileformat detection by content, and load proper
          players from their installation place. Also, it can play multiple
          songs in a sequence if one switches to next song with ctrl-c before the song actually ends. If the song ends by itself, the system will crash ;)
        - Found a bug in amifilemagic by accident. chk_id_offset() function
          tested patterns of length sizeof(patterns[i]) which is totally
          wrong. It was corrected to strlen(patterns[i]).

---

From: shd
Date: Tue Jul 12 12:22:26 2005

To: UADE-Developer-discussion
[quote:bf860980f0="mld/uade team"]
I'd rather like to extend the db stuff to something like a STIL file (read configuration on file basis, looping not looping, maybe even overriding Title,  Author etc... :)
michael[/quote:bf860980f0]

STIL is not good as it is. We should not try to create a centralized database of songs, but one based on hashes like MD5. Otherwise the info in STIL is good. However, I would reformat it so that it is easier to parse from scripts and low-level programming languages.

---

From: shd
Date: Thu Jul 14 21:48:13 2005

To: UADE-Developer-discussion
Work is progressing. The command line tool is getting better feature by feature =)

Found a possible bug that may have haunted UADE 1.x users. With some formats songs would play differently on some runs, and the possible problem is uade_prerun/uade_reset. We do:

1. clear state
2. load next song
3. if failure, go to number 2

Number 3 is a problematic because number 2 changes state. So number 3 should jump to number 1. duh..

---

From: shd
Date: Fri Jul 15 12:39:12 2005

To: UADE-Developer-discussion
A snapshot of the current uade 2.x devel version. Do NOT try this version unless you intend to work on the source code..

http://uade.ton.tut.fi/uade/pre/uade-1.50-pre1.tar.bz2

2005-07-15  Heikki Orsila &lt;[email-masked]&gt;
        * UADE 1.50-pre1 (developer release)
        - Lots of changes into uade123
        - This is just a preview of the new system. There are no interesting
          features over uade 1.0x versions. This release doesn't even have
          xmms / beepmp plugins.
        - Short instructions for testing:
           $ ./configure &amp;&amp; make
           $ make test
           $ make install
          Will install everything to $(HOME)/.uade2/. Then
          $(HOME)/.uade2/uade123 is the player you can use. This version
          uses libao for audio output.

---

From: amadeus
Date: Sat Jul 16 23:11:42 2005

To: UADE-Developer-discussion
I think it is an excellent job you are doing! Can't wait to do some serious beta testing :)

[quote:62df6d60e0="shd"]Also, now that I'm rewriting stuff, what should we do differently?[/quote:62df6d60e0]

The only thing I could think of would be to change to getopt, so "-sub" becomes "--sub" and etc. for uade123  :D

---

From: shd
Date: Sat Jul 16 23:24:37 2005

To: UADE-Developer-discussion
[quote:654e9c77f9="amadeus"]
The only thing I could think of would be to change to getopt, so "-sub" becomes "--sub" and etc. for uade123  :D[/quote:654e9c77f9]

Currently in CVS it is -s or --subsong. I agree that getopt() would be better. I'll switch to it for consistency with other tools.

---

From: amadeus
Date: Sun Jul 17 09:02:27 2005

To: UADE-Developer-discussion
[quote:96e03e2628="shd"]Currently in CVS it is -s or --subsong. I agree that getopt() would be better. I'll switch to it for consistency with other tools.[/quote:96e03e2628]

Thanks :)

I can't really think of anything else :)

---

From: shd
Date: Sun Jul 17 11:22:16 2005

To: UADE-Developer-discussion
[quote:33b69ed23b="amadeus"]
The only thing I could think of would be to change to getopt, so "-sub" becomes "--sub" and etc. for uade123  :D[/quote:33b69ed23b]

Now the CVS version support getopt(). Also, using libao one can choose between raw and wav file output.

---

From: shd
Date: Sun Jul 17 19:30:12 2005

To: UADE-Developer-discussion
More changes, including the first audible feature improvement over UADE 1.0x.

        - The sound core now reports to the simulator when audio output should
          start. Traditionally the simulator has produced audio output from
          the reboot of the amiga even if it is only useful to output audio
          after all the lengthy player initializations have been made in
          the sound core. For example, AHX.Cruisin now has 0.96 seconds less
          zero samples in the beginning.
        - Cleaned up sound core a bit. Removed some unused definitions
          of messages between sound core and the simulator. Removed unused
          code that was designed to be used when running sound core under a
          _real_ AmigaOS.
        - Made uade123 less verbose. Use -v option to get more details.
        - Renamed uade-trivial.c to 'uade123.c' in src/frontends/uade123
        - Renamed directory 'trivial' to 'uade123' in src/frontends/

---

From: shd
Date: Mon Jul 18 00:32:53 2005

To: UADE-Developer-discussion
More advances in uade123.

 - uade123 now has eagleplayer fileformat check ignoring feature (-i), panning (-p), song timeout (-t), and subsong timeouts (-w)

Eagleplayer fileformat check ignoring means that if the eagleplayer says it doesn't recognize a specific module, this switch tells it to accept the module anyway.

Panning means mixing left and right audio channels together. Panning value zero is normal playing, panning value 1.0 is mono, and panning value 2.0 is inverse stereo. I prefer panning value 0.7 personally..

Song timeout is the total time to play one song, and then switch to a next song. Subsong timeout is the total time to play one subsong, and then switch to a next subsong, if any.

Silence timeout is still missing, but here's the latest tar ball:

 http://uade.ton.tut.fi/uade/pre/uade-1.50-pre2.tar.bz2

The frontend is now more or less comparable to ogg123.

---

From: shd
Date: Thu Jul 21 22:20:46 2005

To: UADE-Developer-discussion
More advances in uade123. You can leech latest products from:

 http://uade.ton.tut.fi/uade2/devel/

You should especially note the new uade.conf file which can be used to customize the command line player for personal needs. That is probably setting proper timeout values and panning. Here is the template file:

[code:1:9eeaf26161]
# Configuration file for uade123 and possibly other frontends.

# Format of the file by example. Logical values are either zero &#40;false&#41; or
# one &#40;true&#41;. Lines beginning with # character are obviously comment lines.
# A timeout value of -1 means infinite timeout.

#ignore_player_check
#one_subsong_per_file
#panning                0.7
#random_play
#recursive_mode
#silence_timeout        20
#subsong_timeout        512
#timeout                -1
[/code:1:9eeaf26161]

And here are the relevant change log entries:

2005-07-22  Heikki Orsila &lt;[email-masked]&gt;
        * UADE 1.50-pre3 (developer release)
        - Added a -j to skip x seconds of audio from the beginning. Note that
          this does not affect timeout parameters in any way. If timeout is
          1 minute and skip is 2 minutes, the song will just end before
          anything is played.

2005-07-21  Heikki Orsila &lt;[email-masked]&gt;
        - Added silence timeout
        - Wrote a config file parser for uade123. Look at uade.conf file
          for instructions. uade123 tries to load following files in order on
          startup: BASEDIR/uade.conf and $(HOME)/.uade2/uade.conf. Command
          line options can override config file parameters. Users of uade123
          might want to configure timeout, panning and such values as
          personal defaults. This is a very important feature important over
          uade 1.0x command line tool.
        - Restructured uade123 code into different code modules to make
          maintaining and code reuse easier.
        
2005-07-18  Heikki Orsila &lt;[email-masked]&gt;
        - Fixed a bug in uade123 that prevented it from playing the last
          subsong of a song.
[/code]

---

From: shd
Date: Sat Jul 23 16:35:49 2005

To: UADE-Developer-discussion
Hello, more features into uade123.

http://uade.ton.tut.fi/uade2/devel/uade-1.50-pre4.tar.bz2

2005-07-23  Heikki Orsila &lt;[email-masked]&gt;
        - Added shell interaction keys into UADE123. The keys can be enabled
          with -k switch, or adding line "action_keys" into uade.conf.
          The keys are (mimiking XMMS):
            z     - Previous subsong
            c     - Pause
            b     - Next subsong
            n     - Next song
            .     - Skip 10 seconds forward
            ENTER - Next song
            SPACE - Next subsong
          Does someone want these configurable into uade.conf? Please email me.

---

From: amadeus
Date: Sat Jul 23 21:45:42 2005

To: UADE-Developer-discussion
If I "configure --with-alsa &amp;&amp; make" I get:

[code:1:8cf660bfa0]gcc -Wall -I../../include    -g -c audio.c
gcc -Wall -I../../include    -g -c config.c
gcc -Wall -I../../include    -g -c terminal.c
gcc -Wall -I../../include    -g  -o uade123 uade123.o strlrep.o unixatomic.o uadecontrol.o amifilemagic.o chrarray.o playlist.o uadeformats.o unixwalkdir.o effects.o playloop.o audio.o config.o terminal.o
audio.o&#40;.text+0x19&#41;&#58; In function `audio_close'&#58;
/home/maj/bdownload/uade-1.50-pre4/src/frontends/uade123/audio.c&#58;19&#58; undefined reference to `ao_close'
audio.o&#40;.text+0x29&#41;&#58; In function `audio_init'&#58;
/home/maj/bdownload/uade-1.50-pre4/src/frontends/uade123/audio.c&#58;28&#58; undefined reference to `ao_initialize'
audio.o&#40;.text+0xa3&#41;&#58;/home/maj/bdownload/uade-1.50-pre4/src/frontends/uade123/audio.c&#58;39&#58; undefined reference to `ao_driver_id'
audio.o&#40;.text+0xe7&#41;&#58;/home/maj/bdownload/uade-1.50-pre4/src/frontends/uade123/audio.c&#58;44&#58; undefined reference to `ao_open_file'
audio.o&#40;.text+0xf6&#41;&#58;/home/maj/bdownload/uade-1.50-pre4/src/frontends/uade123/audio.c&#58;46&#58; undefined reference to `ao_default_driver_id'
audio.o&#40;.text+0x10a&#41;&#58;/home/maj/bdownload/uade-1.50-pre4/src/frontends/uade123/audio.c&#58;47&#58; undefined reference to `ao_open_live'
audio.o&#40;.text+0x16b&#41;&#58; In function `audio_play'&#58;
/home/maj/bdownload/uade-1.50-pre4/src/frontends/uade123/audio.c&#58;60&#58; undefined reference to `ao_play'
collect2&#58; ld returned 1 exit status
gmake&#91;1&#93;&#58; *** &#91;uade123&#93; Error 1
gmake&#91;1&#93;&#58; Leaving directory `/home/maj/bdownload/uade-1.50-pre4/src/frontends/uade123'
make&#58; *** &#91;uade123&#93; Error 2
~/bdownload/uade-1.50-pre4$
[/code:1:8cf660bfa0]

I am using libao-0.8.6 and the output from configure is:
[code:1:8cf660bfa0]~/bdownload/uade-1.50-pre4$ ./configure --with-alsa
which&#58; no xmms-config in &#40;/opt/jre1.5.0_03/bin&#58;/usr/java/j2sdk1.4.1_02/bin&#58;/opt/jre1.5.0_03/bin&#58;/usr/kerberos/bin&#58;/usr/local/bin&#58;/usr/bin&#58;/bin&#58;/usr/X11R6/bin&#58;/home/maj/.bin&#41;
Couldn't find xmms-config =&gt; not compiling xmms-plugin!
Forcing sound output to be ALSA
which&#58; no ginstall in &#40;/opt/jre1.5.0_03/bin&#58;/usr/java/j2sdk1.4.1_02/bin&#58;/opt/jre1.5.0_03/bin&#58;/usr/kerberos/bin&#58;/usr/local/bin&#58;/usr/bin&#58;/bin&#58;/usr/X11R6/bin&#58;/home/maj/.bin&#41;
UADE and frontends will be installed to &#58; /home/maj/.uade2
Data directory will be                  &#58; /home/maj/.uade2
Documentation directory will be         &#58; /home/maj/.uade2/uade-1.50
Man directory will be                   &#58; /home/maj/.uade2/man/man1
Installer that will be used             &#58; /usr/bin/install
Make that will be used during the build &#58; /usr/bin/gmake
Sound output with                       &#58; ALSA

Package ao was not found in the pkg-config search path.
Perhaps you should add the directory containing `ao.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ao' found
Package ao was not found in the pkg-config search path.
Perhaps you should add the directory containing `ao.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ao' found
~/bdownload/uade-1.50-pre4$

[/code:1:8cf660bfa0]

---

From: shd
Date: Sun Jul 24 00:20:07 2005

To: UADE-Developer-discussion
[quote:835bab04d5="amadeus"]If I "configure --with-alsa &amp;&amp; make" I get:
[/quote:835bab04d5]

Oh, that is not support yet in UADE2. --with-alsa doesn't work. You must have libao installed with pkg-config or otherwise uade123 doesn't play anything. /usr/lib/pkgconfig/ao.pc must exist.

I haven't fixed the configure script yet because this is only a developer release. Sorry for not telling it. The workaround is:

$ export CFLAGS=-lao
$ ./configure
$ make
$ make install (will install to ~/.uade2/ directory)

---

From: amadeus
Date: Sun Jul 24 11:20:46 2005

To: UADE-Developer-discussion
[quote:747f8fbebd="shd"]
$ export CFLAGS=-lao
$ ./configure
$ make
$ make install (will install to ~/.uade2/ directory)[/quote:747f8fbebd]

Now it works =)

Thanks.

---

From: shd
Date: Sun Jul 24 11:41:15 2005

[quote:0d00cfe79c="shd"]
[/quote:0d00cfe79c]

New key binds, and other stuff.

2005-07-24  Heikki Orsila &lt;[email-masked]&gt;
        - New keys for interactive mode:
           [0-9]  - Select subsong in range [0, 9]
           q      - Quit player
           s      - Switch between normal and shuffle mode
           x      - Restart current subsong
        - Added -&lt;A3&gt; or --no-song-end switches. Song just keeps playing even if
          the amiga player says it has ended. Dude! You can get pretty weird
          sounds with this, and sometimes the sound core crashes, and should
          crash. Fortunately that doesn't kill the simulator :)
        - Made help print (-h) prettier by aligning tex columns

---

From: shd
Date: Sun Jul 24 21:11:24 2005

To: UADE-Developer-discussion
I've disabled UADE 1.0x xmms and beepmp plugins from my workstations for good. I'm not suggesting you to do the same, yet ;) I hope this will advance the schedule of writing UADE2 xmms and beepmp plugins =)

---

From: amadeus
Date: Sun Jul 24 21:20:11 2005

[quote:ea3938c627="shd"]
[/quote:ea3938c627]

Using the latest and most advanced in "Monkey see, Monkey do"-technology =)

---

From: amadeus
Date: Sun Jul 24 21:21:40 2005

To: UADE-Developer-discussion
[quote:952b3fc1a7="shd"]I've disabled UADE 1.0x xmms and beepmp plugins from my workstations for good. I'm not suggesting you to do the same, yet ;) I hope this will advance the schedule of writing UADE2 xmms and beepmp plugins =)[/quote:952b3fc1a7]

What? Are you using a GUI? What's wrong with a for-loop ?=)

---

From: Guest
Date: Mon Jul 25 13:39:47 2005

To: UADE-Developer-discussion
[quote:db0444a48e="amadeus"][quote:db0444a48e="shd"]I've disabled UADE 1.0x xmms and beepmp plugins from my workstations for good. I'm not suggesting you to do the same, yet ;) I hope this will advance the schedule of writing UADE2 xmms and beepmp plugins =)[/quote:db0444a48e]

What? Are you using a GUI? What's wrong with a for-loop ?=)[/quote:db0444a48e]

hej folks,

back from DK. I already miss danske øl og røde pølser... hehe, Martin, how do you Danes manage to drive by car? the fuel is even more expensive than ours ;)

anyway, getting on-topic. I'm not sure if we should make the effort and work on an updated bmp plugin. It seems the beep folks want to drop plugin support soon and exchange it with a gstreamer backend...

Michael

---

From: shd
Date: Mon Jul 25 14:16:33 2005

To: UADE-Developer-discussion
[quote:70bcd33048="Anonymous"]
Martin, how do you Danes manage to drive by car? the fuel is even more expensive than ours ;)
[/quote:70bcd33048]

Speaking of fuel. This blog is interesting and sometimes funny:

http://jameshowardkunstler.typepad.com/

[quote:70bcd33048]
[/quote:70bcd33048]

When would this gstreamer infra be ready?

---

From: amadeus
Date: Tue Jul 26 12:37:56 2005

To: UADE-Developer-discussion
[quote:bd34ea506f="Anonymous"]back from DK. I already miss danske øl og røde pølser... hehe, Martin, how do you Danes manage to drive by car? the fuel is even more expensive than ours ;)
[/quote:bd34ea506f]

Hehe. Where in DK were you this time? =)

I too can't beleive the high fuel prices =( They have boomed the couple of weeks to the highest ever. The 25% vet we have on everything doesn't make it any better.

I am looking forward for the Hydrogen car to take on the marked =)

---

From: shd
Date: Thu Jul 28 10:00:17 2005

To: UADE-Developer-discussion
More changes -&gt; UADE 1.50-pre5:

 http://uade.ton.tut.fi/uade2/devel/uade-1.50-pre5.tar.bz2

2005-07-25  Heikki Orsila &lt;[email-masked]&gt;
        - It seems ALSA lib could fork and consequently terminate a process
          when used through libao, and we must not consider it an error in
          our signal handler that catches all dead children. The signal
          handler assumed that the only child that could die is uade. (shd)

2005-07-24  Heikki Orsila &lt;[email-masked]&gt;
        - New keys for interactive mode:
           [0-9]  - Select subsong in range [0, 9]
           q      - Quit player
           s      - Switch between normal and shuffle mode
           x      - Restart current subsong
        - Added -£ or --no-song-end switches. Song just keeps playing even if
          the amiga player says it has ended. Dude! You can get pretty weird
          sounds with this, and sometimes the sound core crashes, and should
          crash. Fortunately that doesn't kill the simulator :)
        - Made help print (-h) prettier by aligning tex columns
        - Added -K or --no-keys to disable action keys (this can be used to
          override the uade.conf if it enables actions by default).