This is just for fun - and just because ffmpeg allows us to do it.
At the moment it's a very simple visualization engine. But the more recent ffmpeg releases allows more sophisticated solutions by combining several modes into one visual 'show'. I will include more of these when we get there, but for now, a basic coding-structure is in place.
The visualization presets found in the menu is defined in the file /usr/local/pmusic/txt_visualization, and contains 2 columns: Name and Command.
It maybe looks complex, but a closer look shows that only the last part of the command is unique. For line 2 that is; showwaves=mode=line
Wave 1|amovie=/root/.pmusic/tmp/pmusic.sdp, asplit [a][out1]; [a] showwaves [out0]
Wave 2|amovie=/root/.pmusic/tmp/pmusic.sdp, asplit [a][out1]; [a] showwaves=mode=line [out0]
Waves 1|amovie=/root/.pmusic/tmp/pmusic.sdp, asplit [a][out1]; [a] showwaves=mode=p2p:split_channels=1 [out0]
Waves 2|amovie=/root/.pmusic/tmp/pmusic.sdp, asplit [a][out1]; [a] showwaves=mode=cline:split_channels=1 [out0]
This will NOT make pMusic depend on a newer ffmpeg as extended visualization is optional. I plan to stick with 1.2. But, ffmpeg is evolving fast, so we have to keep an eye of what we 'need' in the future.
ffmpeg - the multimedia hub
pMusic - FFmpeg monitor
No comments - Edit - Delete
pMusic is a showcase of what gtkdialog is capable to do, and is probably the most complex gtkdialog code out there- It includes solutions of many gtkdialog challenges. Examples are:
- Take advantage of vector graphics and advanced text layout
- Conditional actions to avoid heavy cpu-usage when idle
- Alignments and scaling
- Extended gtk theming
- Different ways for a flexible gui without re-rendering.
But there is no reason for a showcase without making it transparent for the users/testers. Sharing knowledge is what moves us forward. pMusic includes the attribute 'pmusic --dump-gtk' to show the generated gtkdialog code of the main gui. Else, most code is sent to temporary files in $HOME/.pmusic/tmp/
pMusic is also a playground to test ffmpeg as an advanced audio backend. For the next major release (5.1.0), it will use more of the ffmpeg features. I will come back to this later, but today we'll talk about transparency.
For years, there has been a plugin (Backend info) to show what's going on in the background. As the use of ffmpeg extends, I find it important to share the backend-codes. Not only to enlighten others, but also to make you offer improved code back to pMusic. It is a win-win situation. When 5.1.0 is shipped, it will include the improved plugin with more ffmpeg knowledge:
- The ffmpeg log
- The play command
- The export (convert) command
- The visualization command
It gives a wider insight of the ffmpeg possibilities, and how pMusic uses them.
No comments - Edit - Delete
With the enormous aid of zigbert and technosaurus I have been able to develop an freedesktop compliant (mostly) icon theme that can be used in any Linux or other Unix (if the specification is supported).
It is light as a feather. As a comprehensive theme it weighs in at 53KB (xz compressed ~ 200KB gzip compressed). That is very little in terms of an ISO image and it can totally replace all the PNG Rox Filer icons (MIME). Not only is it compatible with Rox but all freedesktop compliant file managers whether they use the GTK, FLTK or QT (or other) UI toolkits (any version).
So where is it?
I have created a github repo with the icon source. It's very simple to build and package. Take a look here and enjoy!
2 Comments - Edit - Delete
Recent Woof-CE based puppies have a new tool which is rather obscure and thus often overlooked.
The tool in question is "sandbox". This is a tool that enables the user to run "puppy within puppy". When you run sandbox, you get a fresh environment that resembles the puppy you're running on, except that anything you do inside sandbox will not change anything outside it (with some exceptions ...). It's ideal for testing some nasty pets that like to change your system files without you knowing it - if a pet breaks your installation, well it only does it within sandbox. Your main system continues oblivious to whatever happens in sandbox. And when you leave sandbox, everything you do inside it, is gone.
If you want to setup an alternate environment (with a different savefile), you can do that too. The standard sandbox will lose its contents when you leave, but rw-sandbox will keep it --- the content is gone when you leave the sandbox, but when you re-enter, it will be restored. Just like a savefile.
How to run it? Sandbox and its brother rw-sandbox only runs from terminal. So launch a terminal, and type "sandbox.sh". Choose the layers you want to use, and you will enter the sandbox. Type "exit" to leave the sandbox. Inside the sandbox, you can also launch GUI programs like geany or seamonkey, if you wish to. Just make sure that you kill all of them before leaving sandbox.
To start rw-sandbox, do the same but instead type "rw-sandbox.sh". You will be asked where to create a new savefile (or load an existing one if it already exists). The rest it the same.
Sandbox was originally a feature of Fatdog64, which was backported to Woof-CE last year by request of forum member "eowens". To see what can and cannot be done with sandbox, please see its original documentation page: http://distro.ibiblio.org/fatdog/web/faqs/sandbox.html. Note: Puppy Linux does not have lxc-sandbox, because right now it does not support lxc. Also, the full-desktop emulation is not working on Puppy yet, because it lacks certain tools needed for that. But everything else will work.
And if your copy of Puppy doesn't come with sandbox, pester your favorite developer to rebuild it from Woof-CE. Building fresh from Woof-CE will include sandbox as well as many other updates, such as zigbert's excellent pthemes.
1 Comment - Edit - Delete
I am pleased to announce the release of X-Slacko-4.0
X-Slacko is a Puppy Linux derivative based on 01micko's Slacko Puppy with the Xfce desktop environment and is Slackware compatible.
Please see the Puppy Forum page for more information and download links.
No comments - Edit - Delete
LxPupSc is a somewhat different pup....
As default, the desktop environment is LXDE (openbox, lxpanel, pcmanfm) rather than the more usual puppy jwm and rox (although these are still part of the build and there is a desktop switcher to activate them if you prefer).
LxPupSc is a 100% woof-ce 32-bit build but it does have a unique characteristic in that it is built from multiple sources as follows:
- Slackware base components come from Slackware-14.2 (a.k.a Slackware-Current)
- LXDE components come from Arch Linux
- Puppy pets are a mixture of Slacko-14.2 plus specific pet-builds when recompilation is needed for Slackware-Current library compatibility
Plus there are also a bunch of fix-pets, packages-templates, woof-ce patches etc. to get it all to hang together. (What properly goes where is still a bit of a black-art for me and I suspect some rationalisation could be done here!)
The kernel is a woof-ce kernel-kit build.
Thanks are due to many people whose more original work has been plagiarised ruthlessly:
- Jejy69 for the original LxPup way back in 2013 and particularly the menu configuration
- 01Micko for the Slacko-6.3 configuration used as a starting point and for much advice along the way and the pet-build system
- Stemsee for the kernel config
- Iguleder, 01Micko, and pemasu for the kernel-kit
- Mavrothal for testing and fixes (particularly the ppm/dependencies fix) and woof-ce advice and help
- Marv, Billtoo, ETP, radky, rcrsn51, gcmartin and many others for testing and helpful suggestions on the forum thread (apologies to anybody not mentioned)
- Smokey01 for the repository
Along the way, testing has identified some things that have found their way back into woof-ce for the benefit of future puppies (e.g. the sns/firewall-ng fixes).
In using woof-ce I have got a list of "enhancements" that I'd like to see:
- better support for incremental builds (1download to produce a list of changed packages downloaded; 2createpackages to loop to build that list)
- better integration of rootfs-packages and DISTRO_PKGS_SPECS- so that you don't have to tick choices in 3builddidtro-Z (e.g. have yes/no/woof as options)
(an interim change would be to make all rootfs-package chosen by default so you only have to unselect unwanted ones....)
- 3builddistro-Z to have better unattended operation - replace terminal questions scattered through script with a config file so you can start the build and go away and forget about it
The version of LxPupSc at the time of writing is 16.08.1 (hosted on SourceForge)
The forum thread
No comments - Edit - Delete