In this tutorial we show you how to do text-to-speech under Linux with the Festival application.
First you need to install it on your system . On my Fedora 12 I used this:
#yum install festival
Try this command to see if it will allow you to use festival:
$which festival
/usr/bin/festival
Now you can use "festival" to synthesis it into speech. Try this example:
$echo "This is a test " | festival --tts
Another beautiful software is "text2wave". You can save text like a sound file.
$echo "This is a test " | text2wave -o test.wav
Both commands has more options, you can see this by using the "man" command.
Tags: Linux Posted: 2010-03-09 12:17:23 Write by: Catalin
The Irrlicht Engine is an open source 3D engine. This engine is written and usable in C++ and also available for .NET. The engine is completely cross-platform using D3D and OpenGL.
Download the irrlicht from http://irrlicht.sourceforge.net. I will show how this working on Linux. I use Fedora 12. In this tutorial I will show how to used Irrlicht 1.6 . The new version - irrlicht 1.7 is used in same manner. First i install libs of OpenGL and g++. See bellow , i used yum command in super user mode:
#yum install ghc-OpenGL-devel.i686
Loaded plugins: presto, refresh-packagekit
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ghc-OpenGL-devel.i686 0:2.2.1.1-1.fc12 set to be updated
--> Processing Dependency: ghc = 6.10.4 for package: ghc-OpenGL-devel-2.2.1.1-1.fc12.i686
--> Processing Dependency: ghc = 6.10.4 for package: ghc-OpenGL-devel-2.2.1.1-1.fc12.i686
--> Processing Dependency: mesa-libGL-devel for package: ghc-OpenGL-devel-2.2.1.1-1.fc12.i686
--> Processing Dependency: mesa-libGLU-devel for package: ghc-OpenGL-devel-2.2.1.1-1.fc12.i686
--> Running transaction check
---> Package ghc.i686 0:6.10.4-2.fc12 set to be updated
--> Processing Dependency: gmp-devel for package: ghc-6.10.4-2.fc12.i686
---> Package mesa-libGL-devel.i686 0:7.6-0.13.fc12 set to be updated
--> Processing Dependency: pkgconfig(libdrm) >= 2.4.3 for package: mesa-libGL-devel-7.6-0.13.fc12.i686
--> Processing Dependency: pkgconfig(xdamage) for package: mesa-libGL-devel-7.6-0.13.fc12.i686
--> Processing Dependency: pkgconfig(xxf86vm) for package: mesa-libGL-devel-7.6-0.13.fc12.i686
---> Package mesa-libGLU-devel.i686 0:7.6-0.13.fc12 set to be updated
--> Running transaction check
---> Package gmp-devel.i686 0:4.3.1-5.fc12 set to be updated
---> Package libXdamage-devel.i686 0:1.1.2-1.fc12 set to be updated
---> Package libXxf86vm-devel.i686 0:1.1.0-1.fc12 set to be updated
---> Package libdrm-devel.i686 0:2.4.15-8.fc12 set to be updated
--> Processing Dependency: libdrm = 2.4.15-8.fc12 for package: libdrm-devel-2.4.15-8.fc12.i686
--> Running transaction check
---> Package libdrm.i686 0:2.4.15-8.fc12 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
===================================================================================================================================
Package Arch Version Repository Size
===================================================================================================================================
Installing:
ghc-OpenGL-devel i686 2.2.1.1-1.fc12 fedora 1.2 M
Installing for dependencies:
ghc i686 6.10.4-2.fc12 fedora 23 M
gmp-devel i686 4.3.1-5.fc12 fedora 168 k
libXdamage-devel i686 1.1.2-1.fc12 fedora 8.7 k
libXxf86vm-devel i686 1.1.0-1.fc12 fedora 17 k
libdrm-devel i686 2.4.15-8.fc12 updates 71 k
mesa-libGL-devel i686 7.6-0.13.fc12 fedora 459 k
mesa-libGLU-devel i686 7.6-0.13.fc12 fedora 108 k
Updating for dependencies:
libdrm i686 2.4.15-8.fc12 updates 60 k
Transaction Summary
====================================================================================================================================
Install 8 Package(s)
Upgrade 1 Package(s)
Total download size: 25 M
Is this ok [y/N]: y
Downloading Packages:
Setting up and reading Presto delta metadata
Processing delta metadata
Download delta size: 20 k
libdrm-2.4.15-4.fc12_2.4.15-8.fc12.i686.drpm | 20 kB 00:00
Finishing rebuild of rpms, from deltarpms | 60 kB 00:01
Presto reduced the update size by 66% (from 60 k to 20 k).
Package(s) data still to download: 25 M
(1/8): ghc-6.10.4-2.fc12.i686.rpm | 23 MB 00:05
(2/8): ghc-OpenGL-devel-2.2.1.1-1.fc12.i686.rpm | 1.2 MB 00:00
(3/8): gmp-devel-4.3.1-5.fc12.i686.rpm | 168 kB 00:00
(4/8): libXdamage-devel-1.1.2-1.fc12.i686.rpm | 8.7 kB 00:00
(5/8): libXxf86vm-devel-1.1.0-1.fc12.i686.rpm | 17 kB 00:00
(6/8): libdrm-devel-2.4.15-8.fc12.i686.rpm | 71 kB 00:00
(7/8): mesa-libGL-devel-7.6-0.13.fc12.i686.rpm | 459 kB 00:00
(8/8): mesa-libGLU-devel-7.6-0.13.fc12.i686.rpm | 108 kB 00:00
--------------------------------------------------------------------------------------------------------------
Total 4.0 MB/s | 25 MB 00:06
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libXdamage-devel-1.1.2-1.fc12.i686 1/10
Installing : gmp-devel-4.3.1-5.fc12.i686 2/10
Installing : libXxf86vm-devel-1.1.0-1.fc12.i686 3/10
Updating : libdrm-2.4.15-8.fc12.i686 4/10
Installing : ghc-6.10.4-2.fc12.i686 5/10
Installing : libdrm-devel-2.4.15-8.fc12.i686 6/10
Installing : mesa-libGL-devel-7.6-0.13.fc12.i686 7/10
Installing : mesa-libGLU-devel-7.6-0.13.fc12.i686 8/10
Installing : ghc-OpenGL-devel-2.2.1.1-1.fc12.i686 9/10
Cleanup : libdrm-2.4.15-4.fc12.i686 10/10
Installed:
ghc-OpenGL-devel.i686 0:2.2.1.1-1.fc12
Dependency Installed:
ghc.i686 0:6.10.4-2.fc12 gmp-devel.i686 0:4.3.1-5.fc12 libXdamage-devel.i686 0:1.1.2-1.fc12
libXxf86vm-devel.i686 0:1.1.0-1.fc12
libdrm-devel.i686 0:2.4.15-8.fc12 mesa-libGL-devel.i686 0:7.6-0.13.fc12 mesa-libGLU-devel.i686 0:7.6-0.13.fc12
Dependency Updated:
libdrm.i686 0:2.4.15-8.fc12
Complete!
Now in same manner,you will install g++:
#yum -y install gcc-c++
First, i downloaded both arhives of irrlicht--1.6.1 and irrlicht--1.7.1, see this command:
$ls irr*
irrlicht-1.6.1:
bin changes.txt doc examples include lib media readme.txt source tools
irrlicht-1.7.1:
bin changes.txt doc examples include lib media readme.txt source tools
Now, go and write on console this commands :
$cd irrlicht-1.6.1/
$cd source/
$cd Irrlicht/
$make
You will see something like this:
g++ -I../../include -Izlib -Ijpeglib -Ilibpng -DIRRLICHT_EXPORTS=1 -MM -MF CGUITreeView.d CGUITreeView.cpp
g++ -I../../include -Izlib -Ijpeglib -Ilibpng -DIRRLICHT_EXPORTS=1 -MM -MF CGUIImageList.d CGUIImageList.cpp
g++ -I../../include -Izlib -Ijpeglib -Ilibpng -DIRRLICHT_EXPORTS=1 -MM -MF CGUISpriteBank.d CGUISpriteBank.cpp
This will take a time...
$cd ..
$cd ..
$ls
bin changes.txt doc examples include lib media readme.txt source tools
$cd examples/
$ls
01.HelloWorld 09.Meshviewer 17.HelloWorld_Mobile BuildAllExamples_v8.sln
02.Quake3Map 10.Shaders 18.SplitScreen BuildAllExamples_v9.sln
03.CustomSceneNode 11.PerPixelLighting 19.MouseAndJoystick BuildAllExamples.workspace
04.Movement 12.TerrainRendering 20.ManagedLights Demo
05.UserInterface 13.RenderToTexture 21.Quake3Explorer Makefile
06.2DGraphics 14.Win32Window BuildAllExamples.MacOSX whereAreTheBinaries.txt
07.Collision 15.LoadIrrFile buildAllExamples.sh
08.SpecialFX 16.Quake3MapShader BuildAllExamples_v7.sln
$sh buildAllExamples.sh
Building 01.HelloWorld
~/irrlicht-1.6.1/examples/01.HelloWorld ~/irrlicht-1.6.1/examples
Makefile:51: Cleaning...
Makefile:47: Building...
g++ -I../../include -I/usr/X11R6/include -O3 -ffast-math main.cpp -o ../../bin/Linux/01.HelloWorld -L../../lib/Linux
-lIrrlicht -L/usr/X11R6/lib -lGL -lXxf86vm -lXext -lX11
As you see , this will build all examples. Finally you see some errors , don't worry.
...
CDemo.cpp: In member function 'void CDemo::startIrrKlang()':
CDemo.cpp:772: error: 'irrKlang' was not declared in this scope
CDemo.cpp:772: error: 'irrklang' has not been declared
CDemo.cpp:779: error: 'irrklang' has not been declared
CDemo.cpp:779: error: 'snd' was not declared in this scope
CDemo.cpp:791: error: 'ballSound' was not declared in this scope
CDemo.cpp:792: error: 'impactSound' was not declared in this scope
make: *** [CDemo.o] Error 1
~/irrlicht-1.6.1/examples
In this moment you can run all examples (see /irrlicht-1.6.1/bin/Linux/). Let's try one:
$cd ..
$cd bin
$cd Linux/
$./01.HelloWorld
Irrlicht Engine version 1.6.1
Linux 2.6.31.12-174.2.19.fc12.i686 #1 SMP Thu Feb 11 07:39:11 UTC 2010 i686
Creating X window...
Using plain X visual
Visual chosen: : 33
Loaded mesh: ../../media/sydney.md2
...
If you will try to run all examples and you have a old graphic card not all will run properly.
Some examples run only on console because you need to select driver. You will see this message :
Please select the driver you want for this example
The Irrlicht has some tools to helps users. The directories from tools folder is :
$tree -d
|-- tools
|-- GUIEditor
|-- irrEdit
|-- IrrFontTool
| |-- newFontTool
| |-- oldFontTool
|-- MeshConverter
|-- Meshviewer
Only GUIEditor, newFontTool and MeshConverter works on Linux.
When you compiling GUIEditor you see some errors:
CGUIEditWorkspace.cpp:565: warning: enumeration value 'EGET_TAB_CHANGED' not handled in switch
CGUIEditWorkspace.cpp:565: warning: enumeration value 'EGET_COMBO_BOX_CHANGED' not handled in switch
But, GUIEditor running well.
./GUIEditor
Please select the driver you want for this example:
(a) Direct3D 9.0c
(b) Direct3D 8.1
(c) OpenGL 1.5
(d) Software Renderer
(e) Burning's Software Renderer
(f) NullDevice
(otherKey) exit
c
Irrlicht Engine version 1.6.1
Linux 2.6.31.12-174.2.19.fc12.i686 #1 SMP Thu Feb 11 07:39:11 UTC 2010 i686
Creating X window...
Visual chosen: : 39
Using renderer: OpenGL 2.1.2
GeForce FX 5200/AGP/SSE/3DNOW!: NVIDIA Corporation
OpenGL driver version is 1.2 or better.
GLSL version: 1.2
...
$cd newFontTool/
$make
Makefile:29: Building...
g++ -I../../../include -I/usr/X11R6/include -I/usr/include/freetype2/ -O3 -ffast-math CFontTool.cpp main.cpp
-o ../../../bin/Linux/FontTool -L/usr/X11R6/lib -L../../../lib/Linux -lIrrlicht -lGL -lGLU -lXxf86vm -lXext -lX11 -lXft
main.cpp:74: warning: deprecated conversion from string constant to 'wchar_t*'
main.cpp:82: warning: deprecated conversion from string constant to 'wchar_t*'
The output file is Fontool on /bin/Linux/
$cd MeshConverter/
$make
Makefile:29: Building...
g++ -I../../include -I/usr/X11R6/include -O3 -ffast-math -Wall main.cpp -o ../../bin/Linux/MeshConverter -L/usr/X11R6/lib
-L../../lib/Linux -lIrrlicht -lGL -lGLU -lXxf86vm -lXext -lX11
The output file is MeshConverter on /bin/Linux/
$./MeshConverter
Usage: ./MeshConverter [options] <srcFile> <destFile>
where options are
--createTangents: convert to tangents mesh is possible.
--format=[irrmesh|collada|stl|obj|ply]: Choose target format
The Irrlicht 1.7.1 will be installed in the same way. I tried that.
Tags: 3D Engine Posted: 2010-02-24 14:11:58 Write by: Catalin
What is Loki software ?
If you having several computers work together can greatly decrease the total time needed.
Loki Render is a cross-platform job queue manager for rendering 3D frames.
Loki Render distributes the rendering of Blender 3D images named frames across several computer.
How to install the software ?
You can download this software from : sourceforge.net/projects/loki-render .
Extract the zip file.
How to set Loki software ?
I try this software with a blend file created with blender 2.49.
I use two computers .First is server on Fedora 12 and second is on XP .
On File -> Preferences ( Ctr+P ) you can set the role of rendering . I set "Master and Grunt" on Fedora 12
and "Grunt" on XP. You can set the limit of memory space .
On second tab "local grunt" you need to set the PATH of blender ( on Fedora is /usr/bin/blender.bin) .
The same settings must be set in Windows XP. The other settings are for advanced users.

How to add job on Loki software ?
First click on "Jobs" - > "New" ( Ctr + N keys) . This will be open a new window.

Press "Browser" button to add your blend file. The result will be on "Output Directory".
You can set "First Frame" and "Last Frame". The result will be set of images from first on last frame.
This is a screenshot of Loki software running:

The official site : loki-render.berlios.de/index.php/download
Tags: Blender Posted: 2010-02-12 20:28:15 Write by: Catalin
Sometimes it is necessary to resize the images. The PIL module is used for image processing.The glob module takes a wildcard and returns the full path of all files and directories matching the wildcard. Here are two scripts that I made. The first is a simple example using a resize after some dimensions. In this case we used size 300x300.
from PIL import Image
import glob, os
size_file = 300,300
for f in glob.glob("*.png"):
file, ext = os.path.splitext(f)
img = Image.open(f)
img.thumbnail(size_file, Image.ANTIALIAS)
img.save("thumb_" + file, "JPEG"
In the second case I tried to do a resize with proportion preservation.
import glob
import PIL
from PIL import Image
for f in glob.glob("*.jpg"):
img = Image.open(f)
dim_percent=(100/float(img.size[0]))
dim_size=int((float(img.size[1])*float(dim_percent)))
img = img.resize((100,dim_size),PIL.Image.ANTIALIAS)
if f[0:2] != "trumb_":
img.save("trumb_" + f, "JPEG")
In both cases we use a renaming of files by adding the name of "thumb_". Ambele scripturi pot fi modificate asa cum vreti. Aceste scripturi demonstreaza cum sa folosim celor doua module "PIL" si "globe".
Tags: python Posted: 2010-01-30 17:09:05 Write by: Catalin
On console, you use command ./blender or blender.exe (if you use windows OS).
This is need to see the output of script.
Split your window on two . Click right on bar and select Split Area like on next image.

As we see in the image below, you need to create a new file .

You can use COPY and PASTE to copy some python scripts. You can create NEW scripts, SAVE or EXECUTE SCRIPT.

I create a simple script :
import Blender
import sys
obj = Blender.Object.Get()
print str(obj)
sys.stdout.flush()
Use keys "ALT+P" to run this script .The result should be this :

This output is from my scene ,because has Camera and Lamp objects.
You can use python script with "Controllers" . You must activate the "Enable Script Links"

This is just a simple tutorial how to use python script with Blender 3D.
You can create more complex scripts.
For example to process topographic data or features of Blender 3D.
Tags: Blender,Python Posted: 2010-01-09 16:54:55 Write by: Catalin
As we see in the image below, Geany uses regular expressions to modify the source code.
I used regular expression: ["\# >>>"]*(.*) to replace the # >>> with nothing.

More about regular expresions on >Wikipedia
Tags: Editor Posted: 2010-01-09 12:55:50 Write by: Catalin
The best way to start learning a programming language is by writing a program.
How edit and compile the program ?
That depends on the compiler you are using.
First of all you should write a simple program using C language.
This is a simple program:
#include <gtk/gtk.h>
#include <string.h>
int main( int argc,
char *argv[] )
{
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
Now about the compilers:
gcc is the "GNU" C Compiler
g++ is the "GNU C++ compiler
cc is the "Sun" C Compiler
CC is the "Sun" C++ compiler
I will use gcc because is a C program.
When it contains Xlib graphics routines the command is :
gcc myprogramc -o myprogram -lX11
( see -l = link and X11 is Xlib).
What is pkg-config ?
This is a helper tool .
It helps you insert the correct compiler options on the command line.
Your application can use something like this :
gcc -o test test.c `pkg-config --libs --cflags glib-2.0`.
How it works ?
When a library is installed a .pc file should be included.
This file tells us that libraries can be found in /usr/local/lib and headers in /usr/local/include.
But first of all you must install the libs .
On my example i need this gtk2-devel.i686, so i use :
yum search gtk2-devel
Loaded plugins: presto, refresh-packagekit
============= Matched: gtk2-devel =================
gtk2-devel.i686 : Development files for GTK+
And i compile with this :
$gcc `pkg-config --cflags --libs gtk+-2.0` -o app app.c
And result is:

Tags: GTK Posted: 2010-01-09 11:57:04 Write by: Catalin
For this we need two softwares Blender 3d and Makehuman.
The first step will open "makehuman" determines his character and settings (see image below):

Then saves the object collada. In this case "name_of_file":

The next step will load the object through the blender scripts. More specifically through File -> Import -> COLLADA 1.4.

The script will run and we will select these settings:

We will choose the path where we makehuman saved file (see "mesh.dae") and the result will be:

The script automatically insert more scenes.

Select the row to see where is our character.
We will remove this scene with this button.

And rename with "CG_Girl" like on this image:

Now, we set the object so that we more easily.
First we separate the object depending on the materials.

Select all object from collada with key "A" and use key "Tab" to select "Edit Mode".
Now select all with see this :

Use key "P" ( on "Edit Mode") and you see Separate feature. Select "By Material" .
If you change on from "3D View" to "Outliner" will see this :

We apply a few small settings for the object to look better and easier to handle.
Use key "Tab" to change it on "Object Mode". Than use key "A" to select all object:
Use this settings "Set Smoth" and "Double Sided" like on this images.


The result is much better.

Because our subject has a skeletal. We move in different layer.
On "Object Mode" select the head mesh. Now use the key "M" and select the layer.

We will do the same for others meshs.



Now select layer where we moved and we find that our model has no eyes. 
If you move on the second layer you will see the result:
You have to put the teeth, tongue and skeletal in a Vertex Group.
In Object Mode select them all using the key combination of keys Shift.Use Ctr + J to create a single object. See next picture.

We call this selection "skelet", see picture.

Outliner show the new name "skelet".

To create an animation should take the following steps:
1. Rename each bone;
2. To give the same names for each Vertex Group of each bone. If the head bone is called "head" then Vertex Group will be called "head";
3. Armature to assign to the object;
4. To establish the character moves.
How make this ? Follow the next steps.
1. Rename each bone with your options .
Select "Armature" and use Edit Mode to select each bone. Select bone of skull .

Rename this on Armature Bones tabs (see BO:head from image):

We will do the same for each bone.
2. We will do the same for each bone.
It will be called "head". Select one vertex with right click in Edit Mode and then press Alt + L. In the next picture you can see the result of selection.
Select the entire head with skull, tongue, eye.

In the tab "Link and Materials" create a new Vertex Group called "head" and click Assign.
We will do the same for the neck and other parts of the body.

See the tab on the right "Modifiers" but this is the next step .

3. Armature to assign to the object;
The next picture shows us how to add modifier. Write on Ob: the name of armature . In this case "Armature"

Tags: Blender Posted: 2009-11-09 17:22:06 Write by: Catalin

The concept of DOF (depth-of-field) is to use information about Z values, and use it to blur objects.
The more out of depth they are, the more they are blurred. This is a simple example :
I used a cube. Then I multiplied by the modifier array.
It can use other objects. I selected "Node Editor.
I enabled "Composite Node", see image below:

Add and these "converter-> Color Ramp.
Then add the Add-> Filter-> Blur "and" Add-> Vector-> Map Value ".
Then connect them this way.
I marked in red areas to be modified with numbers from 1 to 3.
Change the numbers 1 and 2 so you get a result of the final image (see 3).
As you can see "Color Ramp" is directly linked with the "Composite".

Do it again , but like the picture below:

The result will be that:
Tags: Blender Posted: 2009-10-11 15:07:52 Write by: Catalin
Sometimes the use of copy and paste results in loading the document with a "heading" inappropriate.
We have two way solving this problem. We may use the button in the image below:

It opens the following window. Use right click and have two options:

Now , use "Modify..." . The next frame is :

I change the font from "Liberation Sans " in "URW Chancery L". See old "Paragraph Style: Heading 3":

Now the entire document will change automatically. It is useful when we want to reduce the size of a document.

Another method is to use right click on the text and then modify its properties:

Now the settings window will appear "Paragraph Style: Heading 3".
Please make all changes and click "ok" button .
Tags: openoffice Posted: 2009-10-09 15:09:24 Write by: Catalin
Create default template and edit old template
First you need to have OpenOffice. To create a default template should follow the following steps:






Tags: openoffice Posted: 2009-09-02 15:22:03 Write by: Catalin
Yumex - best GUI to install packages on Fedora
You need to use this commands to start "yumex":
[mypc@home ~]$ su
Password:
[root@home mypc]# yumex
On this image you see Yumex GUI and how install packages

Tags: Linux Posted: 2009-07-30 15:15:01 Write by: Catalin
Setting special keys on linux !
I use "Fedora 9". Use "System" -> "Preferences" -> "Personal" -> "Keyboard Shortcuts" .

You will see this dialog :

You have this options:
"Sound", "Desktop", "Window Manager"
I select "Desktop" for example :

How configure one key ?
Use left click mouse button on old key from right .
See on next picture "New shortcut..." and now press the key you want to assign.

This is all i want to show !
Tags: Linux Posted: 2009-07-24 14:17:45 Write by: Catalin
The official site www.python.org say :
Python is a dynamic object-oriented programming language that can be used for many kinds of software development.
It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days.
Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code. http://www.python.org/
How is python ?
Next you see some few python script code:
import os
import sys
from os import *
print "Hello !"
The output is :
Hello
Is pretty simple .
More usefull scriptyou see on this site: python-catalin.blogspot.com .
On this site pygame-catalin.blogspot.com you see some many scrips with pygme module. Now the python logo is this:
![]()
Tags: python Posted: 2009-07-23 15:16:27 Write by: Catalin