Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Paul

Pages: [1] 2 3 ... 172
Other Support / Re: SoundEngine loop stream sound
« on: June 21, 2017, 08:15:41 AM »
No problem with uploading modified code.. the license is basically a "do whatever you want" license (only restriction really is that if you happen to give me attribution, be sure to mention the website here).

Other Support / Re: SoundEngine loop stream sound
« on: June 19, 2017, 11:05:21 PM »
Do you know what specifically is null when that exception is thrown?  If lucky, a null check might fix the problem.  Besides a thread issue, possibly other causes might be an empty buffer or index out of bounds problem (i.e. some corner case in the read process).  Maybe try updating JOrbis if there is a more recent version.

If you can't solve it, setting end of stream should be fine I think.

@fzurita, I have set up an account in cPanel, but my host has some weird security restrictions so can't connect with it yet.  I opened up a ticket and will let you know what to do to connect.

Sure, I can give you FTP access to that folder.  Sorry for not getting to these updates..

Other Support / Re: SoundEngine loop stream sound
« on: May 23, 2017, 12:27:07 PM »
Thanks, I''ll look into this when I get a chance.

Yes, you can increase the number of streaming channels using something like:

Code: [Select]
SoundSystemConfig.setNumberStreamingChannels( 11 );
SoundSystemConfig.setNumberNormalChannels( 21 );

Just have the total number add up to 32.  You'll need to do this before you instantiate the SoundSystem.  The logic for streaming channels has to be a bit more responsive than for normal channels, so depending on the speed of your system and what all else you have going on, you might start hearing gaps in the streams if it can't keep up with the number of channels you have set.

Other Support / Re: SoundEngine loop stream sound
« on: May 22, 2017, 12:28:54 PM »
Do you have some sample code for the simplest test case you can simulate the behavior?  In particular playing() returning false when the source is actually playing.

Off hand I'm thinking one issue might be the library running out of available channels.  Typically the sum of streaming and normal channels adds up to 32.  By default I think 4 are reserved for streaming channels and the rest for normal channels if I recall correctly.  If you play more sources than the limit, it will stop a playing channel and replace the source that was playing on it with the newest source.  The old one would show playing() false and the new one true.

Sounds like there may be other issues though, since you mentioned playing() returning false for 1-4 seconds, which is much higher than I have experienced.  Maybe something is broken in newer Java versions (the library is quite out dated at this point).

Paul's Projects / 32bit Docker on Tiny Core Linux
« on: May 21, 2017, 08:51:32 PM »
One of the system requirements listed for running Docker is a 64bit host.  I decided to conduct an experiment this weekend to see if I could build a 32bit version of Docker and have it run on 32bit Tiny Core Linux.  If it works, this could in theory be combined with an x86 emulator like QEMU to run docker containers from your Android phone..

The first step was to build a 32bit version of Docker Daemon and Docker Client.  I found a nice recipe for doing this HERE.  I had to tweak it a bit (require checking out tag 17.04.0-ce, and using this revision of the Dockerfile).

Then I installed Tiny Core Linux 8.0 x86 in Virtual Box, and after a lot of tinkering, came up with the following recipe to get the Docker Daemon to run without crashing:

Code: [Select]
tce-load -wi bash git procps xz ca-certificates iptables net-bridging-4.8.17-tinycore

sudo ln -s /usr/local/etc/ssl /etc/ssl

sudo addgroup docker
sudo addgroup tc docker

sudo mkdir /mnt/sda1/docker
sudo mkdir /mnt/sda1/docker/run
sudo mkdir /mnt/sda1/docker/lib
sudo chown -R root:docker /mnt/sda1/docker
sudo chmod -R 770 /mnt/sda1/docker
sudo ln -s /mnt/sda1/docker/run /var/run/docker
sudo ln -s /mnt/sda1/docker/lib /var/lib/docker

echo "etc/passwd" >> /opt/.filetool.lst
echo "etc/group" >> /opt/.filetool.lst
echo "etc/shadow" >> /opt/.filetool.lst
echo "etc/gshadow" >> /opt/.filetool.lst
echo "etc/profile.d" >> /opt/.filetool.lst
echo "etc/ssl" >> /opt/.filetool.lst
echo "etc/os-release" >> /opt/.filetool.lst
echo "var/lib/docker" >> /opt/.filetool.lst
echo "var/run/docker" >> /opt/.filetool.lst

echo "#!/bin/bash" >> /etc/profile.d/
echo "export PATH=\$PATH:/home/tc/dockerd:/home/tc/docker" >> /etc/profile.d/
chmod 755 /etc/profile.d/

sudo touch /etc/os-release
sudo chown root:staff /etc/os-release
sudo chmod 664 /etc/os-release
echo "NAME=\"Tiny Core Linux\"" >> /etc/os-release
echo "ID=tinycore" >> /etc/os-release
echo "VERSION_ID=\"8.0\"" >> /etc/os-release
echo "PRETTY_NAME=\"Tiny Core Linux v8.0 x86\"" >> /etc/os-release
echo "HOME_URL=\"\"" >> /etc/os-release
echo "BUG_REPORT_URL=\"\"" >> /etc/os-release

cd ~
mkdir dockerd
mkdir docker

cd ~/dockerd

chmod 755 cgroupfs-mount

cd ~/docker

Then after a reboot:
Code: [Select]
sudo su
export DOCKER_RAMDISK=true
ulimit -Hn 65535
ulimit -Sn 65535

However, when I ran a test of Docker Client, it failed with an error message about insufficient disk space.  This was related to a message from the Docker Daemon complaining that the kernel didn't support the "overlay" filesystem.  I ended up having to rebuild the Tiny Core kernel, setting flags "CONFIG_OVERLAY_FS" and "CONFIG_CFS_BANDWIDTH"
Code: [Select]
tar -xvf linux-4.8.17-patched.txz
cp config-4.8.17-tinycore linux-4.8.17/.config
cd linux-4.8.17

gedit .config

make bzImage

Then I put the generated bzImage into the boot directory at /mnt/sda1/tce/boot, and and updated the bootloader:
Code: [Select]
LABEL core
KERNEL /tce/boot/vmlinuz
INITRD /tce/boot/core.gz
APPEND quiet  waitusb=5:UUID="fee3c2ac-3bf2-4aa1-ae8e-73fa95f4ea2c" tce=UUID="fee3c2ac-3bf2-4aa1-ae8e-73fa95f4ea2c"
LABEL bzim
KERNEL /tce/boot/bzImage
INITRD /tce/boot/core.gz
APPEND quiet  waitusb=5:UUID="fee3c2ac-3bf2-4aa1-ae8e-73fa95f4ea2c" tce=UUID="fee3c2ac-3bf2-4aa1-ae8e-73fa95f4ea2c"

Finally, after a reboot, I am able to successfully run Docker containers in 32bit  8)

Other Support / Re: SoundEngine loop stream sound
« on: May 16, 2017, 09:06:51 PM »
The issue with "playing()" method not returning true immediately, that is code I wrote.  This came as a result of the "command queue" framework which defers commands to a separate thread rather than blocking the current thread.  I believe my thought there was that the source isn't actually playing until the command thread executes the play command.  This gives you the opportunity to potentially poll and determine when the source actually starts playing.

I'm not sure this is the best behavior though.  In your opinion, would you rather this function return "true" immediately after calling one of the play functions?  Maybe a callback would be a better solution for anyone interested in when the play command actually gets executed.  Note that I was new to Java when I wrote the SoundSystem library (there are several things I might have done differently if I were to rewrite it) :)

Other Support / Re: SoundEngine loop stream sound
« on: May 15, 2017, 07:23:55 AM »
No problem.  Sorry for the delayed response.  I have been busy with work and didn't get a chance to look into it yet.

On a side note, I have started teaching my son programming, and we are writing a simple Java game.  As a result, I'll probably get back to updating elements of the SoundSystem library that have become outdated.

Other Support / Re: SoundEngine loop stream sound
« on: May 03, 2017, 08:25:28 AM »
Thanks, got it.  Which library and codec plugins are you using?

Other Support / Re: SoundEngine loop stream sound
« on: May 02, 2017, 09:24:15 PM »
I can take a look to see if there is a bug.  Is the audio file available somewhere for download?

Mini Projects / Re: HTM.js
« on: May 02, 2017, 11:54:42 AM »
I implemented the basic logic for Temporal Pooling, and add a demo which shows it in action.  For anyone interested in the concepts behind temporal pooling, Numenta has written an overview of the theory.

As described by Jeff Hawkins in his recent HTM Chat with Matt Taylor, temporal pooling is one of the key components of sensory-motor integration theory, so implementing this is an important step forward in development of the seed AI for ARTUR.

Mini Projects / Re: HTM.js
« on: April 19, 2017, 04:59:35 PM »
I added a demo for visualizing the temporal memory process.  This is useful for debugging problems with the logic (and also a good way to get a better feel for how TM works behind the scenes).

Mini Projects / HTM.js
« on: April 17, 2017, 01:26:29 PM »
I have decided to start cleaning up my javascript implementation of HTM and publish it on GitHub in case anyone finds it useful.  This is a lightweight implementation of HTM which can be run client side in the browser (useful for quick demos to explore and discuss various HTM-related concepts and theories).

I have committed the refactored code for spatial pooling and temporal memory, and added "HTM Piano" as an example of how to use it.  It is now up on GitHub

I'll be adding the code for sensory motor integration and reinforcement learning next, and I'll be including the source code for all of my future demos that use HTM.js as well.

Latest revision of master will also be deployed on the server.  This will provide easy access to the latest demos.

Theory and Discussion / Re: What is ARTUR?
« on: April 04, 2017, 04:27:44 PM »
I have decided on a target level of intelligence that I want to achieve, which will be used to seed the transmutation routine.  I will start with an AI that is capable of playing the first level of Super Mario Bros.  It doesn't necessarily have to play well, but should demonstrate that it is in fact learning from its experiences and improving at the game.  The AI obviously will not be written specifically to play Super Mario Bros (that would be too easy), and it will not start out with any knowledge about the game.  In other words, Super Mario Bros. is just the environment for testing the AI, but it could just as well operate in other simple NES games without modification.

Pages: [1] 2 3 ... 172