16 bit
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 1354
bit 0.4.1
bit is a C++ library for manipulating buffers containing data fields that are not octet (byte) aligned. more>>
bit is a C++ library for manipulating buffers containing data fields that are not octet (byte) aligned.
Binary data formats containing fields that are not octet aligned are still common. One need look no further than the IP header that is present in every packet of data transmitted on the Internet.
Additionally many embedded devices and sensors still communicate via binary formats, and it was for the latter (robotic sensors) that this library was initially developed.
The bit library allows data formats to be specified at run-time through class methods or loaded from XML files at run-time (including any combinations thereof).
A companion library, bitgtk, provides a set of Gtkmm widgets for display of bit buffer representations.
<<lessBinary data formats containing fields that are not octet aligned are still common. One need look no further than the IP header that is present in every packet of data transmitted on the Internet.
Additionally many embedded devices and sensors still communicate via binary formats, and it was for the latter (robotic sensors) that this library was initially developed.
The bit library allows data formats to be specified at run-time through class methods or loaded from XML files at run-time (including any combinations thereof).
A companion library, bitgtk, provides a set of Gtkmm widgets for display of bit buffer representations.
Download (MB)
Added: 2007-03-15 License: LGPL (GNU Lesser General Public License) Price:
955 downloads
Bit::Vector 6.4
Bit::Vector is an efficient bit vector, set of integers and big int math library. more>>
Bit::Vector is an efficient bit vector, set of integers and "big int" math library.
CLASS METHODS
Version
$version = Bit::Vector->Version();
Word_Bits
$bits = Bit::Vector->Word_Bits(); # bits in a machine word
Long_Bits
$bits = Bit::Vector->Long_Bits(); # bits in an unsigned long
new
$vector = Bit::Vector->new($bits); # bit vector constructor
@veclist = Bit::Vector->new($bits,$count);
new_Hex
$vector = Bit::Vector->new_Hex($bits,$string);
new_Bin
$vector = Bit::Vector->new_Bin($bits,$string);
new_Dec
$vector = Bit::Vector->new_Dec($bits,$string);
new_Enum
$vector = Bit::Vector->new_Enum($bits,$string);
Concat_List
$vector = Bit::Vector->Concat_List(@vectors);
OBJECT METHODS
new
$vec2 = $vec1->new($bits); # alternative call of constructor
@veclist = $vec->new($bits,$count);
Shadow
$vec2 = $vec1->Shadow(); # new vector, same size but empty
Clone
$vec2 = $vec1->Clone(); # new vector, exact duplicate
Concat
$vector = $vec1->Concat($vec2);
Concat_List
$vector = $vec1->Concat_List($vec2,$vec3,...);
Size
$bits = $vector->Size();
Resize
$vector->Resize($bits);
$vector->Resize($vector->Size()+5);
$vector->Resize($vector->Size()-5);
Copy
$vec2->Copy($vec1);
Empty
$vector->Empty();
Fill
$vector->Fill();
Flip
$vector->Flip();
Primes
$vector->Primes(); # Sieve of Erathostenes
Reverse
$vec2->Reverse($vec1);
Interval_Empty
$vector->Interval_Empty($min,$max);
Interval_Fill
$vector->Interval_Fill($min,$max);
Interval_Flip
$vector->Interval_Flip($min,$max);
Interval_Reverse
$vector->Interval_Reverse($min,$max);
Interval_Scan_inc
if (($min,$max) = $vector->Interval_Scan_inc($start))
Interval_Scan_dec
if (($min,$max) = $vector->Interval_Scan_dec($start))
Interval_Copy
$vec2->Interval_Copy($vec1,$offset2,$offset1,$length);
Interval_Substitute
$vec2->Interval_Substitute($vec1,$off2,$len2,$off1,$len1);
is_empty
if ($vector->is_empty())
is_full
if ($vector->is_full())
equal
if ($vec1->equal($vec2))
Lexicompare (unsigned)
if ($vec1->Lexicompare($vec2) == 0)
if ($vec1->Lexicompare($vec2) != 0)
if ($vec1->Lexicompare($vec2) < 0)
if ($vec1->Lexicompare($vec2) Lexicompare($vec2) > 0)
if ($vec1->Lexicompare($vec2) >= 0)
Compare (signed)
if ($vec1->Compare($vec2) == 0)
if ($vec1->Compare($vec2) != 0)
if ($vec1->Compare($vec2) < 0)
if ($vec1->Compare($vec2) Compare($vec2) > 0)
if ($vec1->Compare($vec2) >= 0)
to_Hex
$string = $vector->to_Hex();
from_Hex
$vector->from_Hex($string);
to_Bin
$string = $vector->to_Bin();
from_Bin
$vector->from_Bin($string);
to_Dec
$string = $vector->to_Dec();
from_Dec
$vector->from_Dec($string);
to_Enum
$string = $vector->to_Enum(); # e.g. "2,3,5-7,11,13-19"
from_Enum
$vector->from_Enum($string);
Bit_Off
$vector->Bit_Off($index);
Bit_On
$vector->Bit_On($index);
bit_flip
$bit = $vector->bit_flip($index);
bit_test
contains
$bit = $vector->bit_test($index);
$bit = $vector->contains($index);
if ($vector->bit_test($index))
if ($vector->contains($index))
Bit_Copy
$vector->Bit_Copy($index,$bit);
LSB (least significant bit)
$vector->LSB($bit);
MSB (most significant bit)
$vector->MSB($bit);
lsb (least significant bit)
$bit = $vector->lsb();
msb (most significant bit)
$bit = $vector->msb();
rotate_left
$carry = $vector->rotate_left();
rotate_right
$carry = $vector->rotate_right();
shift_left
$carry = $vector->shift_left($carry);
shift_right
$carry = $vector->shift_right($carry);
Move_Left
$vector->Move_Left($bits); # shift left "$bits" positions
Move_Right
$vector->Move_Right($bits); # shift right "$bits" positions
Insert
$vector->Insert($offset,$bits);
Delete
$vector->Delete($offset,$bits);
increment
$carry = $vector->increment();
decrement
$carry = $vector->decrement();
inc
$overflow = $vec2->inc($vec1);
dec
$overflow = $vec2->dec($vec1);
add
$carry = $vec3->add($vec1,$vec2,$carry);
($carry,$overflow) = $vec3->add($vec1,$vec2,$carry);
subtract
$carry = $vec3->subtract($vec1,$vec2,$carry);
($carry,$overflow) = $vec3->subtract($vec1,$vec2,$carry);
Neg
Negate
$vec2->Neg($vec1);
$vec2->Negate($vec1);
Abs
Absolute
$vec2->Abs($vec1);
$vec2->Absolute($vec1);
Sign
if ($vector->Sign() == 0)
if ($vector->Sign() != 0)
if ($vector->Sign() < 0)
if ($vector->Sign() Sign() > 0)
if ($vector->Sign() >= 0)
Multiply
$vec3->Multiply($vec1,$vec2);
Divide
$quot->Divide($vec1,$vec2,$rest);
GCD (Greatest Common Divisor)
$vecgcd->GCD($veca,$vecb);
$vecgcd->GCD($vecx,$vecy,$veca,$vecb);
Power
$vec3->Power($vec1,$vec2);
Block_Store
$vector->Block_Store($buffer);
Block_Read
$buffer = $vector->Block_Read();
Word_Size
$size = $vector->Word_Size(); # number of words in "$vector"
Word_Store
$vector->Word_Store($offset,$word);
Word_Read
$word = $vector->Word_Read($offset);
Word_List_Store
$vector->Word_List_Store(@words);
Word_List_Read
@words = $vector->Word_List_Read();
Word_Insert
$vector->Word_Insert($offset,$count);
Word_Delete
$vector->Word_Delete($offset,$count);
Chunk_Store
$vector->Chunk_Store($chunksize,$offset,$chunk);
Chunk_Read
$chunk = $vector->Chunk_Read($chunksize,$offset);
Chunk_List_Store
$vector->Chunk_List_Store($chunksize,@chunks);
Chunk_List_Read
@chunks = $vector->Chunk_List_Read($chunksize);
Index_List_Remove
$vector->Index_List_Remove(@indices);
Index_List_Store
$vector->Index_List_Store(@indices);
Index_List_Read
@indices = $vector->Index_List_Read();
Or
Union
$vec3->Or($vec1,$vec2);
$set3->Union($set1,$set2);
And
Intersection
$vec3->And($vec1,$vec2);
$set3->Intersection($set1,$set2);
AndNot
Difference
$vec3->AndNot($vec1,$vec2);
$set3->Difference($set1,$set2);
Xor
ExclusiveOr
$vec3->Xor($vec1,$vec2);
$set3->ExclusiveOr($set1,$set2);
Not
Complement
$vec2->Not($vec1);
$set2->Complement($set1);
subset
if ($set1->subset($set2)) # true if $set1 is subset of $set2
Norm
$norm = $set->Norm();
$norm = $set->Norm2();
$norm = $set->Norm3();
Min
$min = $set->Min();
Max
$max = $set->Max();
Multiplication
$matrix3->Multiplication($rows3,$cols3,
$matrix1,$rows1,$cols1,
$matrix2,$rows2,$cols2);
Product
$matrix3->Product($rows3,$cols3,
$matrix1,$rows1,$cols1,
$matrix2,$rows2,$cols2);
Closure
$matrix->Closure($rows,$cols);
Transpose
$matrix2->Transpose($rows2,$cols2,$matrix1,$rows1,$cols1);
<<lessCLASS METHODS
Version
$version = Bit::Vector->Version();
Word_Bits
$bits = Bit::Vector->Word_Bits(); # bits in a machine word
Long_Bits
$bits = Bit::Vector->Long_Bits(); # bits in an unsigned long
new
$vector = Bit::Vector->new($bits); # bit vector constructor
@veclist = Bit::Vector->new($bits,$count);
new_Hex
$vector = Bit::Vector->new_Hex($bits,$string);
new_Bin
$vector = Bit::Vector->new_Bin($bits,$string);
new_Dec
$vector = Bit::Vector->new_Dec($bits,$string);
new_Enum
$vector = Bit::Vector->new_Enum($bits,$string);
Concat_List
$vector = Bit::Vector->Concat_List(@vectors);
OBJECT METHODS
new
$vec2 = $vec1->new($bits); # alternative call of constructor
@veclist = $vec->new($bits,$count);
Shadow
$vec2 = $vec1->Shadow(); # new vector, same size but empty
Clone
$vec2 = $vec1->Clone(); # new vector, exact duplicate
Concat
$vector = $vec1->Concat($vec2);
Concat_List
$vector = $vec1->Concat_List($vec2,$vec3,...);
Size
$bits = $vector->Size();
Resize
$vector->Resize($bits);
$vector->Resize($vector->Size()+5);
$vector->Resize($vector->Size()-5);
Copy
$vec2->Copy($vec1);
Empty
$vector->Empty();
Fill
$vector->Fill();
Flip
$vector->Flip();
Primes
$vector->Primes(); # Sieve of Erathostenes
Reverse
$vec2->Reverse($vec1);
Interval_Empty
$vector->Interval_Empty($min,$max);
Interval_Fill
$vector->Interval_Fill($min,$max);
Interval_Flip
$vector->Interval_Flip($min,$max);
Interval_Reverse
$vector->Interval_Reverse($min,$max);
Interval_Scan_inc
if (($min,$max) = $vector->Interval_Scan_inc($start))
Interval_Scan_dec
if (($min,$max) = $vector->Interval_Scan_dec($start))
Interval_Copy
$vec2->Interval_Copy($vec1,$offset2,$offset1,$length);
Interval_Substitute
$vec2->Interval_Substitute($vec1,$off2,$len2,$off1,$len1);
is_empty
if ($vector->is_empty())
is_full
if ($vector->is_full())
equal
if ($vec1->equal($vec2))
Lexicompare (unsigned)
if ($vec1->Lexicompare($vec2) == 0)
if ($vec1->Lexicompare($vec2) != 0)
if ($vec1->Lexicompare($vec2) < 0)
if ($vec1->Lexicompare($vec2) Lexicompare($vec2) > 0)
if ($vec1->Lexicompare($vec2) >= 0)
Compare (signed)
if ($vec1->Compare($vec2) == 0)
if ($vec1->Compare($vec2) != 0)
if ($vec1->Compare($vec2) < 0)
if ($vec1->Compare($vec2) Compare($vec2) > 0)
if ($vec1->Compare($vec2) >= 0)
to_Hex
$string = $vector->to_Hex();
from_Hex
$vector->from_Hex($string);
to_Bin
$string = $vector->to_Bin();
from_Bin
$vector->from_Bin($string);
to_Dec
$string = $vector->to_Dec();
from_Dec
$vector->from_Dec($string);
to_Enum
$string = $vector->to_Enum(); # e.g. "2,3,5-7,11,13-19"
from_Enum
$vector->from_Enum($string);
Bit_Off
$vector->Bit_Off($index);
Bit_On
$vector->Bit_On($index);
bit_flip
$bit = $vector->bit_flip($index);
bit_test
contains
$bit = $vector->bit_test($index);
$bit = $vector->contains($index);
if ($vector->bit_test($index))
if ($vector->contains($index))
Bit_Copy
$vector->Bit_Copy($index,$bit);
LSB (least significant bit)
$vector->LSB($bit);
MSB (most significant bit)
$vector->MSB($bit);
lsb (least significant bit)
$bit = $vector->lsb();
msb (most significant bit)
$bit = $vector->msb();
rotate_left
$carry = $vector->rotate_left();
rotate_right
$carry = $vector->rotate_right();
shift_left
$carry = $vector->shift_left($carry);
shift_right
$carry = $vector->shift_right($carry);
Move_Left
$vector->Move_Left($bits); # shift left "$bits" positions
Move_Right
$vector->Move_Right($bits); # shift right "$bits" positions
Insert
$vector->Insert($offset,$bits);
Delete
$vector->Delete($offset,$bits);
increment
$carry = $vector->increment();
decrement
$carry = $vector->decrement();
inc
$overflow = $vec2->inc($vec1);
dec
$overflow = $vec2->dec($vec1);
add
$carry = $vec3->add($vec1,$vec2,$carry);
($carry,$overflow) = $vec3->add($vec1,$vec2,$carry);
subtract
$carry = $vec3->subtract($vec1,$vec2,$carry);
($carry,$overflow) = $vec3->subtract($vec1,$vec2,$carry);
Neg
Negate
$vec2->Neg($vec1);
$vec2->Negate($vec1);
Abs
Absolute
$vec2->Abs($vec1);
$vec2->Absolute($vec1);
Sign
if ($vector->Sign() == 0)
if ($vector->Sign() != 0)
if ($vector->Sign() < 0)
if ($vector->Sign() Sign() > 0)
if ($vector->Sign() >= 0)
Multiply
$vec3->Multiply($vec1,$vec2);
Divide
$quot->Divide($vec1,$vec2,$rest);
GCD (Greatest Common Divisor)
$vecgcd->GCD($veca,$vecb);
$vecgcd->GCD($vecx,$vecy,$veca,$vecb);
Power
$vec3->Power($vec1,$vec2);
Block_Store
$vector->Block_Store($buffer);
Block_Read
$buffer = $vector->Block_Read();
Word_Size
$size = $vector->Word_Size(); # number of words in "$vector"
Word_Store
$vector->Word_Store($offset,$word);
Word_Read
$word = $vector->Word_Read($offset);
Word_List_Store
$vector->Word_List_Store(@words);
Word_List_Read
@words = $vector->Word_List_Read();
Word_Insert
$vector->Word_Insert($offset,$count);
Word_Delete
$vector->Word_Delete($offset,$count);
Chunk_Store
$vector->Chunk_Store($chunksize,$offset,$chunk);
Chunk_Read
$chunk = $vector->Chunk_Read($chunksize,$offset);
Chunk_List_Store
$vector->Chunk_List_Store($chunksize,@chunks);
Chunk_List_Read
@chunks = $vector->Chunk_List_Read($chunksize);
Index_List_Remove
$vector->Index_List_Remove(@indices);
Index_List_Store
$vector->Index_List_Store(@indices);
Index_List_Read
@indices = $vector->Index_List_Read();
Or
Union
$vec3->Or($vec1,$vec2);
$set3->Union($set1,$set2);
And
Intersection
$vec3->And($vec1,$vec2);
$set3->Intersection($set1,$set2);
AndNot
Difference
$vec3->AndNot($vec1,$vec2);
$set3->Difference($set1,$set2);
Xor
ExclusiveOr
$vec3->Xor($vec1,$vec2);
$set3->ExclusiveOr($set1,$set2);
Not
Complement
$vec2->Not($vec1);
$set2->Complement($set1);
subset
if ($set1->subset($set2)) # true if $set1 is subset of $set2
Norm
$norm = $set->Norm();
$norm = $set->Norm2();
$norm = $set->Norm3();
Min
$min = $set->Min();
Max
$max = $set->Max();
Multiplication
$matrix3->Multiplication($rows3,$cols3,
$matrix1,$rows1,$cols1,
$matrix2,$rows2,$cols2);
Product
$matrix3->Product($rows3,$cols3,
$matrix1,$rows1,$cols1,
$matrix2,$rows2,$cols2);
Closure
$matrix->Closure($rows,$cols);
Transpose
$matrix2->Transpose($rows2,$cols2,$matrix1,$rows1,$cols1);
Download (0.13MB)
Added: 2007-05-17 License: Perl Artistic License Price:
890 downloads
RakNet 3.0 Beta
RakNet project is a reliable UDP networking API. more>>
RakNet project is a reliable UDP networking API.
RakNet is a networking API that is a wrapper for reliable UDP and higher level functionality on Windows, Linux, and Unix.
It allows any application to communicate with other applications on the same computer, over a LAN, or over the internet.
Although it could be used for any networked application, it was developed specifically for rapid development of online games and the addition of multiplayer to single player games.
Main features:
- Secure connections
- With one line of code Raknet will automatically use SHA1, AES128, SYN Cookies, and RSA to prevent connection spoofing, replay attacks, data eavesdropping, packet tampering, and MitM attacks. Overhead averages 12 bytes per datagram.
- Voice communication
- Using Speex for encoding / decoding, 16 bit audio can be transmitted using approximately 1000 bytes per second.
- Remote terminal
- Using either Telnet or secure RakNet, you can remotely administrate your applications. The system has built-in commands for most RakNet functions and is designed for users to extend for their own purposes. Example capabilities include application resets, password management, and logging.
- Application directory server
- The application directory server allows servers to list themselves for clients to find and connect to. The system uses a key / value system. Listing your server and posting new rules are both done with a single line of code.
- Autopatcher
- Update your users with database driven binary delta patches, or use a simpler version for updates such as user skins or maps.
- Object replication system
- RakNets object and memory replication system provides a framework from which you can synchronize your program state. It requires no changes to your program architecture and there is no unneeded overhead. Memory is replicated through a single function call, with support for callbacks for serialization of complex types such as pointers.
- Network traffic compression
- The BitStream class allows compressed writes of vectors, matrices, quaternions, and real numbers between -1 and 1. It also supports delta compression, by which unchanged values only use a single bit.
- Remote function calls
- While you can send and interpret your own bit streams, remote function calls make this process easier as you now deal with functions rather than raw data. Remote function calls only take 1-2 bytes of overhead and allow both static C function calls and class member function calls. Return values are also supported.
- Routing and multicasting
- RakNet supports automatically updated connection graphs, which are used for routing and multicasting via a minimum spanning tree. You could, for example, use RakNet for highly efficient distributed peer-to-peer file sharing. Simpler applications include directed messages between clients and efficient broadcasts.
- Robust communication layer
- Flow control, message ordering on different channels, message coalescence, and splitting and reassembly of packets larger than the MTU are transparently handled for you.
<<lessRakNet is a networking API that is a wrapper for reliable UDP and higher level functionality on Windows, Linux, and Unix.
It allows any application to communicate with other applications on the same computer, over a LAN, or over the internet.
Although it could be used for any networked application, it was developed specifically for rapid development of online games and the addition of multiplayer to single player games.
Main features:
- Secure connections
- With one line of code Raknet will automatically use SHA1, AES128, SYN Cookies, and RSA to prevent connection spoofing, replay attacks, data eavesdropping, packet tampering, and MitM attacks. Overhead averages 12 bytes per datagram.
- Voice communication
- Using Speex for encoding / decoding, 16 bit audio can be transmitted using approximately 1000 bytes per second.
- Remote terminal
- Using either Telnet or secure RakNet, you can remotely administrate your applications. The system has built-in commands for most RakNet functions and is designed for users to extend for their own purposes. Example capabilities include application resets, password management, and logging.
- Application directory server
- The application directory server allows servers to list themselves for clients to find and connect to. The system uses a key / value system. Listing your server and posting new rules are both done with a single line of code.
- Autopatcher
- Update your users with database driven binary delta patches, or use a simpler version for updates such as user skins or maps.
- Object replication system
- RakNets object and memory replication system provides a framework from which you can synchronize your program state. It requires no changes to your program architecture and there is no unneeded overhead. Memory is replicated through a single function call, with support for callbacks for serialization of complex types such as pointers.
- Network traffic compression
- The BitStream class allows compressed writes of vectors, matrices, quaternions, and real numbers between -1 and 1. It also supports delta compression, by which unchanged values only use a single bit.
- Remote function calls
- While you can send and interpret your own bit streams, remote function calls make this process easier as you now deal with functions rather than raw data. Remote function calls only take 1-2 bytes of overhead and allow both static C function calls and class member function calls. Return values are also supported.
- Routing and multicasting
- RakNet supports automatically updated connection graphs, which are used for routing and multicasting via a minimum spanning tree. You could, for example, use RakNet for highly efficient distributed peer-to-peer file sharing. Simpler applications include directed messages between clients and efficient broadcasts.
- Robust communication layer
- Flow control, message ordering on different channels, message coalescence, and splitting and reassembly of packets larger than the MTU are transparently handled for you.
Download (5.7MB)
Added: 2006-11-11 License: Other/Proprietary License with Source Price:
627 downloads
Ogg Vorbis 1.2.0
Ogg Vorbis is a fully open, non-proprietary, general-purpose compressed audio format. more>>
Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit, polyphonic) audio and music at fixed and variable bitrates from 16 to 128 kbps/channel.
This places Vorbis in the same competitive class as audio representations such as MPEG-4 (AAC), and similar to, but higher performance than MPEG-1/2 audio layer 3, MPEG-4 audio (TwinVQ), WMA and PAC.
Vorbis is the first of a planned family of Ogg multimedia coding formats being developed as part of Xiph.orgs Ogg multimedia project.
libVorbis is the core Ogg stream / Vorbis engine.
<<lessThis places Vorbis in the same competitive class as audio representations such as MPEG-4 (AAC), and similar to, but higher performance than MPEG-1/2 audio layer 3, MPEG-4 audio (TwinVQ), WMA and PAC.
Vorbis is the first of a planned family of Ogg multimedia coding formats being developed as part of Xiph.orgs Ogg multimedia project.
libVorbis is the core Ogg stream / Vorbis engine.
Download (1.4MB)
Added: 2007-07-26 License: GPL (GNU General Public License) Price:
832 downloads
Class::Bits 0.05
Class::Bits is a Perl module with class wrappers around bit vectors. more>>
Class::Bits is a Perl module with class wrappers around bit vectors.
SYNOPSIS
package MyClass;
use Class::Bits;
make_bits( a => 4, # 0..15
b => 1, # 0..1
c => 1, # 0..1
d => 2, # 0..3
e => s4 # -8..7
f => s1 # -1..0
);
package;
$o=MyClass->new(a=>12, d=>2);
print "o->b is ", $o->b, "n";
print "bit vector is ", unpack("h*", $$o), "n";
$o2=$o->new();
$o3=MyClass->new($string);
ABSTRACT
Class::Bits creates class wrappers around bit vectors.
Class::Bits defines classes using bit vectors as storage.
Object attributes are stored in bit fields inside the bit vector. Bit field sizes have to be powers of 2 (1, 2, 4, 8, 16 or 32).
There is a class constructor subroutine:
make_bits( field1 => size1, field2 => size2, ...)
exports in the calling package a ctor, accessor methods, some utility methods and some constants:
Sizes can be prefixed by s or u to define signedness of the field. Default is unsigned.
$class->new()
creates a new object with all zeros.
$class->new($bitvector)
creates a new object over $bitvector.
$class->new(%fields)
creates a new object and initializes its fields with the values in %fields.
$obj->new()
clones an object.
$obj->$field()
$obj->$field($value)
gets or sets the value of the bit field $field inside the bit vector.
$class->length
$obj->lenght
returns the size in bits of the bit vector used for storage.
$class->keys
$obj->keys
returns an array with the names of the object attributes
$obj->as_hash
returns a flatten hash with the object attributes, i.e.:
my %values=$obj->as_hash;
%INDEX
hash with offsets as used by vec perl operator (to get an offset in bits, the value has to be multiplied by the corresponding bit field size).
%SIZES
hash with bit field sizes in bits.
%SIGNED
hash with signedness of the fields
Bit fields are packed in the bit vector in the order specified as arguments to make_bits.
Bit fields are padded inside the bit vector, i.e. a class created like
make_bits(A=>1, B=>2, C=>1, D=>4, E=>8, F=>16);
will have the layout
AxBBCxxx DDDDxxxx EEEEEEEE xxxxxxxx FFFFFFFF FFFFFFFF
<<lessSYNOPSIS
package MyClass;
use Class::Bits;
make_bits( a => 4, # 0..15
b => 1, # 0..1
c => 1, # 0..1
d => 2, # 0..3
e => s4 # -8..7
f => s1 # -1..0
);
package;
$o=MyClass->new(a=>12, d=>2);
print "o->b is ", $o->b, "n";
print "bit vector is ", unpack("h*", $$o), "n";
$o2=$o->new();
$o3=MyClass->new($string);
ABSTRACT
Class::Bits creates class wrappers around bit vectors.
Class::Bits defines classes using bit vectors as storage.
Object attributes are stored in bit fields inside the bit vector. Bit field sizes have to be powers of 2 (1, 2, 4, 8, 16 or 32).
There is a class constructor subroutine:
make_bits( field1 => size1, field2 => size2, ...)
exports in the calling package a ctor, accessor methods, some utility methods and some constants:
Sizes can be prefixed by s or u to define signedness of the field. Default is unsigned.
$class->new()
creates a new object with all zeros.
$class->new($bitvector)
creates a new object over $bitvector.
$class->new(%fields)
creates a new object and initializes its fields with the values in %fields.
$obj->new()
clones an object.
$obj->$field()
$obj->$field($value)
gets or sets the value of the bit field $field inside the bit vector.
$class->length
$obj->lenght
returns the size in bits of the bit vector used for storage.
$class->keys
$obj->keys
returns an array with the names of the object attributes
$obj->as_hash
returns a flatten hash with the object attributes, i.e.:
my %values=$obj->as_hash;
%INDEX
hash with offsets as used by vec perl operator (to get an offset in bits, the value has to be multiplied by the corresponding bit field size).
%SIZES
hash with bit field sizes in bits.
%SIGNED
hash with signedness of the fields
Bit fields are packed in the bit vector in the order specified as arguments to make_bits.
Bit fields are padded inside the bit vector, i.e. a class created like
make_bits(A=>1, B=>2, C=>1, D=>4, E=>8, F=>16);
will have the layout
AxBBCxxx DDDDxxxx EEEEEEEE xxxxxxxx FFFFFFFF FFFFFFFF
Download (0.004MB)
Added: 2007-07-30 License: Perl Artistic License Price:
816 downloads
MCP2510 Bit Timing Calculator 1.0
MCP2510 Bit Timing Calculator project is a bit timing calculator for the MCP2510. more>>
MCP2510 Bit Timing Calculator project is a bit timing calculator for the MCP2510.
It is a bit timing calculator which is very easy to use.
All you have to do is to choose the baudrate and the oscilator-frequency.
Sure you can edit and change all setting. You will see a graphical bit timing diagram which show you your current options.
At the end you will get a detailed report of your choosen options. See an example here: mcp2510btn
HowTo
On the first step you have to choose your wished baudrate and the oscilator-frequency.
Second you will get a great table with all avaible baudrate for you oscilator-frequency. The are already choosen some baudrates if your baudrate equals with some on the table. Otherwise you have to select them manually, but you will get deviations to you choosen baudrate. You will the the deviation in percent at the right table.
When you are ready you can go forward to step three.
Here you have first to select your wanted Nominal Bit Time Screenshot 2 [Step 3]and then you can edit/change to values for the single segments of a bit timing.
<<lessIt is a bit timing calculator which is very easy to use.
All you have to do is to choose the baudrate and the oscilator-frequency.
Sure you can edit and change all setting. You will see a graphical bit timing diagram which show you your current options.
At the end you will get a detailed report of your choosen options. See an example here: mcp2510btn
HowTo
On the first step you have to choose your wished baudrate and the oscilator-frequency.
Second you will get a great table with all avaible baudrate for you oscilator-frequency. The are already choosen some baudrates if your baudrate equals with some on the table. Otherwise you have to select them manually, but you will get deviations to you choosen baudrate. You will the the deviation in percent at the right table.
When you are ready you can go forward to step three.
Here you have first to select your wanted Nominal Bit Time Screenshot 2 [Step 3]and then you can edit/change to values for the single segments of a bit timing.
Download (0.017MB)
Added: 2006-11-03 License: GPL (GNU General Public License) Price:
640 downloads
The 64 bit Virtual CPU Project 0.0.23
The 64 bit Virtual CPU Project is a project to create 64-bit virtual CPU. more>>
This is a project to create 64-bit virtual CPU, create a 64 bit assembler for the CPU and then port C to it, and then create scripts to port GNU/Linux to it.
The aim is to run 64-bit Linux on common 8/16/32 bit CPUs in applications where speed is not an issue.
Enhancements:
- Added C code intended tor a PIC Preliminary documentation More updates to Gambas program
<<lessThe aim is to run 64-bit Linux on common 8/16/32 bit CPUs in applications where speed is not an issue.
Enhancements:
- Added C code intended tor a PIC Preliminary documentation More updates to Gambas program
Download (0.67MB)
Added: 2005-07-06 License: GPL (GNU General Public License) Price:
1600 downloads

3Delight for 32-bit Linux 7.0
3Delight is a renderer to produce photo-realistic images on 32-bit linux. more>> 3Delight is a fast, high quality, RenderMan-compliant renderer designed to produce photo-realistic images in demanding production environments. The renderer was introduced to the public in the year 2000 after being used for more than a year as the sole renderer in a sister production company. It is now widely used and earning a reputation as a benchmark in rendering technology.
Some of its features include ray tracing, global illumination (including photon mapping, final gathering and high dynamic range lighting and rendering), realistic motion blur, depth of field, complete geometry support (including efficient rendering of hair and fur), programmable shaders, quality antialiasing and antialiased shadow maps. Advanced features include Ri filtering, network caching and highly customizable workflow.
Follows a summary of 3Delights features.
-RenderMan Compliant
-RenderMan Shading Language Support
-Rendering Features
-Geometry Support
-Fast and Efficient Rendering
-Extensible Display Drivers
-Multi-platform Support with Specific Code Optimization<<less
Download (11.4MB)
Added: 2009-04-11 License: Freeware Price: Free
195 downloads

3Delight for 64-bit Linux 7.0
3Delight is a renderer to produce photo-realistic images on 64-bit linux. more>> 3Delight is a fast, high quality, RenderMan-compliant renderer designed to produce photo-realistic images in demanding production environments. The renderer was introduced to the public in the year 2000 after being used for more than a year as the sole renderer in a sister production company. It is now widely used and earning a reputation as a benchmark in rendering technology.
Some of its features include ray tracing, global illumination (including photon mapping, final gathering and high dynamic range lighting and rendering), realistic motion blur, depth of field, complete geometry support (including efficient rendering of hair and fur), programmable shaders, quality antialiasing and antialiased shadow maps. Advanced features include Ri filtering, network caching and highly customizable workflow.
Follows a summary of 3Delights features.
-RenderMan Compliant
-RenderMan Shading Language Support
-Rendering Features
-Geometry Support
-Fast and Efficient Rendering
-Extensible Display Drivers
-Multi-platform Support with Specific Code Optimization<<less
Download (10.1MB)
Added: 2009-04-12 License: Freeware Price: Free
194 downloads
File::Stat::Bits 1.00
File::Stat::Bits - stat bit mask constants. more>>
File::Stat::Bits - stat bit mask constants.
SYNOPSIS:
use File::stat;
use File::Stat::Bits;
my $st = stat($file) or die "Cant stat $file: $!";
if ( S_ISCHR($st->mode) ) {
my ($major, $minor) = dev_split( $st->rdev );
print "$file is character device $major:$minorn";
}
printf "Permissions are %04on", $st->mode & ALLPERMS;
(Too many S_IF* constants to example)
Lots of Perl modules use the Unix file permissions and type bits directly in binary form with risk of non-portability for some exotic bits. Note that the POSIX module does not provides all needed constants and I cant wait when the POSIX module will be updated.
This separate module provides file type/mode bit and more constants from sys/stat.ph and sys/sysmacros.ph without pollution callers namespace by other unneeded symbols from these headers. Most of these constants exported by this module are Constant Functions (see perlsub).
Since some of Perl builds does not include these converted headers, the build procedure will generate it for itself in the its own lib directory.
This module also should concentrate all portability and compatibility issues.
CONSTANTS
File type bit masks (for the st_mode field):
S_IFMT bitmask for the file type bitfields
S_IFDIR directory
S_IFCHR character device
S_IFBLK block device
S_IFREG regular file
S_IFIFO fifo (named pipe)
S_IFLNK symbolic link
S_IFSOCK socket
=cut
sub S_IFMT () { File::Stat::Bits::dirty::S_IFMT () }
sub S_IFDIR () { File::Stat::Bits::dirty::S_IFDIR () }
sub S_IFCHR () { File::Stat::Bits::dirty::S_IFCHR () }
sub S_IFBLK () { File::Stat::Bits::dirty::S_IFBLK () }
sub S_IFREG () { File::Stat::Bits::dirty::S_IFREG () }
sub S_IFIFO () { File::Stat::Bits::dirty::S_IFIFO () }
sub S_IFLNK () { File::Stat::Bits::dirty::S_IFLNK () }
sub S_IFSOCK() { File::Stat::Bits::dirty::S_IFSOCK() }
File access permission bit masks (for the st_mode field):
S_IRWXU mask for file owner permissions
S_IRUSR owner has read permission
S_IWUSR owner has write permission
S_IXUSR owner has execute permission
S_ISUID set UID bit
S_IRWXG mask for group permissions
S_IRGRP group has read permission
S_IWGRP group has write permission
S_IXGRP group has execute permission
S_ISGID set GID bit
S_IRWXO mask for permissions for others
S_IROTH others have read permission
S_IWOTH others have write permisson
S_IXOTH others have execute permission
S_ISVTX sticky bit
Common mode bit masks:
ACCESSPERMS 0777
ALLPERMS 07777
DEFFILEMODE 0666
=cut
sub S_IRWXU() { File::Stat::Bits::dirty::S_IRWXU() }
sub S_IRUSR() { File::Stat::Bits::dirty::S_IRUSR() }
sub S_IWUSR() { File::Stat::Bits::dirty::S_IWUSR() }
sub S_IXUSR() { File::Stat::Bits::dirty::S_IXUSR() }
sub S_ISUID() { File::Stat::Bits::dirty::S_ISUID() }
sub S_IRWXG() { File::Stat::Bits::dirty::S_IRWXG() }
sub S_IRGRP() { File::Stat::Bits::dirty::S_IRGRP() }
sub S_IWGRP() { File::Stat::Bits::dirty::S_IWGRP() }
sub S_IXGRP() { File::Stat::Bits::dirty::S_IXGRP() }
sub S_ISGID() { File::Stat::Bits::dirty::S_ISGID() }
sub S_IRWXO() { File::Stat::Bits::dirty::S_IRWXO() }
sub S_IROTH() { File::Stat::Bits::dirty::S_IROTH() }
sub S_IWOTH() { File::Stat::Bits::dirty::S_IWOTH() }
sub S_IXOTH() { File::Stat::Bits::dirty::S_IXOTH() }
sub S_ISVTX() { File::Stat::Bits::dirty::S_ISVTX() }
sub ACCESSPERMS() { S_IRWXU|S_IRWXG|S_IRWXO }
sub ALLPERMS() { S_ISUID|S_ISGID|S_ISVTX|ACCESSPERMS }
sub DEFFILEMODE() { S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH }
FUNCTIONS
File type test macros (for the st_mode field):
S_ISDIR ( mode ) directory?
S_ISCHR ( mode ) character device?
S_ISBLK ( mode ) block device?
S_ISREG ( mode ) regular file?
S_ISFIFO( mode ) fifo (named pipe)?
S_ISLNK ( mode ) is it a symbolic link?
S_ISSOCK( mode ) socket?
All returns boolean value.
$major = major( $st_rdev )
Returns major device number of st_rdev
$minor = minor( $st_rdev )
Returns minor device number of st_rdev
($major, $minor) = dev_split( $st_rdev )
Splits st_rdev to major and minor device numbers
$st_rdev = dev_join( $major, $minor )
Makes st_rdev from major and minor device numbers (makedev())
<<lessSYNOPSIS:
use File::stat;
use File::Stat::Bits;
my $st = stat($file) or die "Cant stat $file: $!";
if ( S_ISCHR($st->mode) ) {
my ($major, $minor) = dev_split( $st->rdev );
print "$file is character device $major:$minorn";
}
printf "Permissions are %04on", $st->mode & ALLPERMS;
(Too many S_IF* constants to example)
Lots of Perl modules use the Unix file permissions and type bits directly in binary form with risk of non-portability for some exotic bits. Note that the POSIX module does not provides all needed constants and I cant wait when the POSIX module will be updated.
This separate module provides file type/mode bit and more constants from sys/stat.ph and sys/sysmacros.ph without pollution callers namespace by other unneeded symbols from these headers. Most of these constants exported by this module are Constant Functions (see perlsub).
Since some of Perl builds does not include these converted headers, the build procedure will generate it for itself in the its own lib directory.
This module also should concentrate all portability and compatibility issues.
CONSTANTS
File type bit masks (for the st_mode field):
S_IFMT bitmask for the file type bitfields
S_IFDIR directory
S_IFCHR character device
S_IFBLK block device
S_IFREG regular file
S_IFIFO fifo (named pipe)
S_IFLNK symbolic link
S_IFSOCK socket
=cut
sub S_IFMT () { File::Stat::Bits::dirty::S_IFMT () }
sub S_IFDIR () { File::Stat::Bits::dirty::S_IFDIR () }
sub S_IFCHR () { File::Stat::Bits::dirty::S_IFCHR () }
sub S_IFBLK () { File::Stat::Bits::dirty::S_IFBLK () }
sub S_IFREG () { File::Stat::Bits::dirty::S_IFREG () }
sub S_IFIFO () { File::Stat::Bits::dirty::S_IFIFO () }
sub S_IFLNK () { File::Stat::Bits::dirty::S_IFLNK () }
sub S_IFSOCK() { File::Stat::Bits::dirty::S_IFSOCK() }
File access permission bit masks (for the st_mode field):
S_IRWXU mask for file owner permissions
S_IRUSR owner has read permission
S_IWUSR owner has write permission
S_IXUSR owner has execute permission
S_ISUID set UID bit
S_IRWXG mask for group permissions
S_IRGRP group has read permission
S_IWGRP group has write permission
S_IXGRP group has execute permission
S_ISGID set GID bit
S_IRWXO mask for permissions for others
S_IROTH others have read permission
S_IWOTH others have write permisson
S_IXOTH others have execute permission
S_ISVTX sticky bit
Common mode bit masks:
ACCESSPERMS 0777
ALLPERMS 07777
DEFFILEMODE 0666
=cut
sub S_IRWXU() { File::Stat::Bits::dirty::S_IRWXU() }
sub S_IRUSR() { File::Stat::Bits::dirty::S_IRUSR() }
sub S_IWUSR() { File::Stat::Bits::dirty::S_IWUSR() }
sub S_IXUSR() { File::Stat::Bits::dirty::S_IXUSR() }
sub S_ISUID() { File::Stat::Bits::dirty::S_ISUID() }
sub S_IRWXG() { File::Stat::Bits::dirty::S_IRWXG() }
sub S_IRGRP() { File::Stat::Bits::dirty::S_IRGRP() }
sub S_IWGRP() { File::Stat::Bits::dirty::S_IWGRP() }
sub S_IXGRP() { File::Stat::Bits::dirty::S_IXGRP() }
sub S_ISGID() { File::Stat::Bits::dirty::S_ISGID() }
sub S_IRWXO() { File::Stat::Bits::dirty::S_IRWXO() }
sub S_IROTH() { File::Stat::Bits::dirty::S_IROTH() }
sub S_IWOTH() { File::Stat::Bits::dirty::S_IWOTH() }
sub S_IXOTH() { File::Stat::Bits::dirty::S_IXOTH() }
sub S_ISVTX() { File::Stat::Bits::dirty::S_ISVTX() }
sub ACCESSPERMS() { S_IRWXU|S_IRWXG|S_IRWXO }
sub ALLPERMS() { S_ISUID|S_ISGID|S_ISVTX|ACCESSPERMS }
sub DEFFILEMODE() { S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH }
FUNCTIONS
File type test macros (for the st_mode field):
S_ISDIR ( mode ) directory?
S_ISCHR ( mode ) character device?
S_ISBLK ( mode ) block device?
S_ISREG ( mode ) regular file?
S_ISFIFO( mode ) fifo (named pipe)?
S_ISLNK ( mode ) is it a symbolic link?
S_ISSOCK( mode ) socket?
All returns boolean value.
$major = major( $st_rdev )
Returns major device number of st_rdev
$minor = minor( $st_rdev )
Returns minor device number of st_rdev
($major, $minor) = dev_split( $st_rdev )
Splits st_rdev to major and minor device numbers
$st_rdev = dev_join( $major, $minor )
Makes st_rdev from major and minor device numbers (makedev())
Download (0.009MB)
Added: 2006-05-30 License: Perl Artistic License Price:
1242 downloads
Borealis 0.9a
Borealis provides a better feel through use of the subtle aural notifications. more>>
Borealis provides a "better feel" through use of the subtle aural notifications.
The goal of this sound theme is to provide "better feel" through use of the subtle aural notifications. The test I always have in my mind while designing the desktop sounds is to imagine having half-dozen (or more) computer stations in the same office or studio and consider whether their simultaneous use (and resulting desktop sounds) would pose as distraction on users and their productivity. Therefore, in order to minimize the "distraction factor" this theme associates many of the common desktop events with brief, mostly non-pitched, but nonetheless pleasing sound sources (a.k.a. effects).
All of the sounds included have been composed (if applicable), recorded, and mastered by me (although a few of them bear resemblance to other OSs sounds). Some of them are leftovers from my previous compositional and production endeavors, while others are entirely new creations.
All sounds are designed and mixed at CD-quality (stereo, 16-bit, 44.1KHz). Ogg version is distributed as 192Kbit stereo files.
Main features:
- Includes sounds for:
- KDE WM
- KDE System Notifications
- Kdevelop
- Kopete
- KDE Sysguard
- KMail
- Konsole
- Proxy configuration
- K3b (missing 1 sound)
- 4 startup sounds
- 2 exit sounds
- Automated installer and uninstaller
Enhancements:
- Couple improvements to the install and uninstall scripts (thanks to Kirk Strauser for the heads-up!)
<<lessThe goal of this sound theme is to provide "better feel" through use of the subtle aural notifications. The test I always have in my mind while designing the desktop sounds is to imagine having half-dozen (or more) computer stations in the same office or studio and consider whether their simultaneous use (and resulting desktop sounds) would pose as distraction on users and their productivity. Therefore, in order to minimize the "distraction factor" this theme associates many of the common desktop events with brief, mostly non-pitched, but nonetheless pleasing sound sources (a.k.a. effects).
All of the sounds included have been composed (if applicable), recorded, and mastered by me (although a few of them bear resemblance to other OSs sounds). Some of them are leftovers from my previous compositional and production endeavors, while others are entirely new creations.
All sounds are designed and mixed at CD-quality (stereo, 16-bit, 44.1KHz). Ogg version is distributed as 192Kbit stereo files.
Main features:
- Includes sounds for:
- KDE WM
- KDE System Notifications
- Kdevelop
- Kopete
- KDE Sysguard
- KMail
- Konsole
- Proxy configuration
- K3b (missing 1 sound)
- 4 startup sounds
- 2 exit sounds
- Automated installer and uninstaller
Enhancements:
- Couple improvements to the install and uninstall scripts (thanks to Kirk Strauser for the heads-up!)
Download (MB)
Added: 2007-03-02 License: Artistic License Price:
967 downloads
QARecord 0.0.9b
QARecord is a simple multithreaded stereo recording tool. more>>
QARecord is a simple multithreaded stereo recording tool. QARecord project can record both 16 bit and 32 bit WAVs.
By using a large ringbuffer for the captured data, buffer overruns are avoided. QARecord can also be used as JACK client.
<<lessBy using a large ringbuffer for the captured data, buffer overruns are avoided. QARecord can also be used as JACK client.
Download (0.016MB)
Added: 2006-02-10 License: GPL (GNU General Public License) Price:
1354 downloads
Simple Multitrack 0.6.5
Simple Multitrack contains a set of programs that allows the simultaneous recording of an audio track. more>>
Simple Multitrack contains a set of programs that allows the simultaneous recording of an audio track while listening to a monitor mix of other tracks.
This software uses the OSS audio drivers found in the Linux kernel or the
CoreAudio API on Mac OS X. It has been tested on
Linux 2.4.20 on a Pentium III 1.4GHz with a SBLive soundcard, and
Linux 2.4.20 on a Pentium I 120MHz laptop with a Crystal soundcard.
Mac OS 10.3.3 on a PowerBook G4.
Both Linux machines are running Slackware, so please tell me about your successes or problems on other distros.
Please read the BUGS section of this document. If you have bug reports, bug fixes, questions, comments, criticism, improvements, or documentation corrections please e-mail me.
OVERVIEW:
./build
cd bin;
source shellsetup;
This will compile the programs and put them in your path.
It will also make your shell prompt shorter, so you have room.
It will also define a little function that is explained below.
to record initial track:
srp < /dev/zero > my_file
to listen to a track:
mix 2 1 1 1 my_file | srp > /dev/null
to listen to one track while recording a new track:
mix 2 1 1 1 file_1 | srp > file_2
to listen to two tracks while recording a new track:
mix 2 1 .5 .5 file_1 .5 .5 file_2 | srp > file_3
Simple Multitrack is basically two programs. They were designed to be used together, but they might be useful on their own. I will describe each program separately before discussing them together.
mix is a command line program. It mixes one or more monophonic audio files into a single output stream. The output stream can have any number of channels: mono, stereo, quad, whatever you like. The output stream is written to standard out.
The input files are specified as command line arguments, as are the gain settings for each input. Invocation goes like this (in stereo mode):
mix nocs mgain l_gain_1 r_gain_1 file_1 l_gain_2 r_gain_2 file_2 ...
where nocs is the number of output channels, and mgain is the master gain.
Command line arguments to mix after the nocs and mgain arguments are the channels. For N output channels, you will have N gain arguments and then the name of the file. Therefore, the arguments after nocs and mgain must appear in (nocs+1)-tuples.
mix will continue to pump out an endless stream of silence after the end of the input files is reached. This behavior is different from most UNIX command line programs, which exit at the end of their input data, which closes their stdout.
mix can be exited with the keyboard interrupt, ctrl-c. The input files must be 16-bit 44100 samples/sec monophonic raw signed word files. The output stream is in 16-bit 44100 samples/sec stereo raw signed word format. (Thank God, its in word format!) The program sox can be used to convert from most audio formats to and from most other audio formats.
EXAMPLES:
mix 2 1 0 1 my_file
This pans my_file completely to the right.
mix 2 1 1 1 my_file
This centers my_file.
mix 2 .5 1 0 flute 0 1 viola
This puts the flute completely to the left and viola completely to the right.
The master_gain is set to .5 to reduce the overall level of the mix by 3dB.
mix 2 .5 1 .3 flute .2 .9 viola
This is similar but gentler.
mix 2 .5 2 .6 flute .2 .9 viola
This is the same but the flute is louder.
mix 2 1 2 .6 flute .2 .9 viola .3 .3 violin
The violin is added in the center.
Note: If you get clipping errors when using mix, you can lower the mgain factor instead of adjusting all of the individual channel gains, although that works too.
srp is a command line program. It enables simultaneous recording and playback of audio using a sound card. It will only work if your sound card and its driver support full-duplex operation correctly.
srp reads a stream of stereo 16-bit 44100 samples/sec raw signed word data on standard in and plays that stream out on the soundcard. Meanwhile, it reads from the left channel of the soundcard and writes a mono 16-bit 44100 samp/sec stream on standard out.
<<lessThis software uses the OSS audio drivers found in the Linux kernel or the
CoreAudio API on Mac OS X. It has been tested on
Linux 2.4.20 on a Pentium III 1.4GHz with a SBLive soundcard, and
Linux 2.4.20 on a Pentium I 120MHz laptop with a Crystal soundcard.
Mac OS 10.3.3 on a PowerBook G4.
Both Linux machines are running Slackware, so please tell me about your successes or problems on other distros.
Please read the BUGS section of this document. If you have bug reports, bug fixes, questions, comments, criticism, improvements, or documentation corrections please e-mail me.
OVERVIEW:
./build
cd bin;
source shellsetup;
This will compile the programs and put them in your path.
It will also make your shell prompt shorter, so you have room.
It will also define a little function that is explained below.
to record initial track:
srp < /dev/zero > my_file
to listen to a track:
mix 2 1 1 1 my_file | srp > /dev/null
to listen to one track while recording a new track:
mix 2 1 1 1 file_1 | srp > file_2
to listen to two tracks while recording a new track:
mix 2 1 .5 .5 file_1 .5 .5 file_2 | srp > file_3
Simple Multitrack is basically two programs. They were designed to be used together, but they might be useful on their own. I will describe each program separately before discussing them together.
mix is a command line program. It mixes one or more monophonic audio files into a single output stream. The output stream can have any number of channels: mono, stereo, quad, whatever you like. The output stream is written to standard out.
The input files are specified as command line arguments, as are the gain settings for each input. Invocation goes like this (in stereo mode):
mix nocs mgain l_gain_1 r_gain_1 file_1 l_gain_2 r_gain_2 file_2 ...
where nocs is the number of output channels, and mgain is the master gain.
Command line arguments to mix after the nocs and mgain arguments are the channels. For N output channels, you will have N gain arguments and then the name of the file. Therefore, the arguments after nocs and mgain must appear in (nocs+1)-tuples.
mix will continue to pump out an endless stream of silence after the end of the input files is reached. This behavior is different from most UNIX command line programs, which exit at the end of their input data, which closes their stdout.
mix can be exited with the keyboard interrupt, ctrl-c. The input files must be 16-bit 44100 samples/sec monophonic raw signed word files. The output stream is in 16-bit 44100 samples/sec stereo raw signed word format. (Thank God, its in word format!) The program sox can be used to convert from most audio formats to and from most other audio formats.
EXAMPLES:
mix 2 1 0 1 my_file
This pans my_file completely to the right.
mix 2 1 1 1 my_file
This centers my_file.
mix 2 .5 1 0 flute 0 1 viola
This puts the flute completely to the left and viola completely to the right.
The master_gain is set to .5 to reduce the overall level of the mix by 3dB.
mix 2 .5 1 .3 flute .2 .9 viola
This is similar but gentler.
mix 2 .5 2 .6 flute .2 .9 viola
This is the same but the flute is louder.
mix 2 1 2 .6 flute .2 .9 viola .3 .3 violin
The violin is added in the center.
Note: If you get clipping errors when using mix, you can lower the mgain factor instead of adjusting all of the individual channel gains, although that works too.
srp is a command line program. It enables simultaneous recording and playback of audio using a sound card. It will only work if your sound card and its driver support full-duplex operation correctly.
srp reads a stream of stereo 16-bit 44100 samples/sec raw signed word data on standard in and plays that stream out on the soundcard. Meanwhile, it reads from the left channel of the soundcard and writes a mono 16-bit 44100 samp/sec stream on standard out.
Download (0.029MB)
Added: 2006-12-20 License: GPL (GNU General Public License) Price:
1040 downloads
FreeBASIC Compiler 0.16 / 0.18.1b
FreeBASIC Compiler is an open-source, free, 32-bit, MS-QuickBASICs syntax-compatible compiler. more>>
FreeBASIC - as the name suggests - is a free, open-source, 32-bit, MS-QuickBASICs syntax-compatible compiler, that adds new features such as pointers, unsigned data types, inline-assembly and many others.
Main features:
- syntax compatible with Microsofts QBASIC/QuickBASIC/PDS/VBDOS interpreters/compilers
- clean syntax
- great number of variables types, like BYTE/SHORT/INTEGER, SINGLE/DOUBLE and STRING
- user defined types (UDTs)
- enums (Enumerations)
- arrays
- pointers
- optional function arguments (numeric only)
- inline assembly
- pre-processor
- creates OBJs, LIBs, DLLs/Shared Libs, console and GUI EXEs
- as a 32-bit application
- optimized code generation
- completely *FREE*
- portability
<<lessMain features:
- syntax compatible with Microsofts QBASIC/QuickBASIC/PDS/VBDOS interpreters/compilers
- clean syntax
- great number of variables types, like BYTE/SHORT/INTEGER, SINGLE/DOUBLE and STRING
- user defined types (UDTs)
- enums (Enumerations)
- arrays
- pointers
- optional function arguments (numeric only)
- inline assembly
- pre-processor
- creates OBJs, LIBs, DLLs/Shared Libs, console and GUI EXEs
- as a 32-bit application
- optimized code generation
- completely *FREE*
- portability
Download (3.1MB)
Added: 2007-08-16 License: GPL (GNU General Public License) Price:
803 downloads
BW ACCT 2.10.4
BW Acct is a bandwidth accounting and reporting application. more>>
BW Acct is a bandwidth accounting and reporting application. It is implemented as a C daemon which manages accounting rules in an iptables/netfilter firewall on the Linux 2.4 kernel.
Support for multiple RDBMS is included, and a plugin architecture is provided for extending BW Acct to support other databases. BW Acct can provide accurate accounting of just about any firewall rule.
BW Acct runs in the background and monitors a database for updates. Based on these updates it manages the firewall rules. Rules are inserted before any other rules in the standard netfilter chains. This allows accounting data to be processed before any other rules take effect. For example, this allows you to account all ICMP traffic received by the system, even if a later rule drops some of this traffic.
Extract the bwacct tarball
read the README in the source directory
make
After building bwacct, youll want to build either the sqlite or mysql database plugin. Either make sqlite or make mysql
Quick setup. (for sqlite)
mkdir /bwacct
mkdir /bwacct/db
chmod 770 /bwacct/db
chgrp nobody /bwacct/db
cp accounting.db /bwacct/db
chmod 660 /bwacct/db/accounting.db
chgrp nobody /bwacct/db/accounting.db
cp bwacct match_*.so target_*.so bwacct.conf sql_*.so /bwacct
chmod 755 /bwacct/bwacct
Edit /bwacct/bwacct.conf. To start you only need to modify the path for accounting.db. "db/accounting.db"
cd /bwacct
./bwacct -f bwacct.conf
Enhancements:
- A signed 16-bit integer overflow on table id has been fixed.
<<lessSupport for multiple RDBMS is included, and a plugin architecture is provided for extending BW Acct to support other databases. BW Acct can provide accurate accounting of just about any firewall rule.
BW Acct runs in the background and monitors a database for updates. Based on these updates it manages the firewall rules. Rules are inserted before any other rules in the standard netfilter chains. This allows accounting data to be processed before any other rules take effect. For example, this allows you to account all ICMP traffic received by the system, even if a later rule drops some of this traffic.
Extract the bwacct tarball
read the README in the source directory
make
After building bwacct, youll want to build either the sqlite or mysql database plugin. Either make sqlite or make mysql
Quick setup. (for sqlite)
mkdir /bwacct
mkdir /bwacct/db
chmod 770 /bwacct/db
chgrp nobody /bwacct/db
cp accounting.db /bwacct/db
chmod 660 /bwacct/db/accounting.db
chgrp nobody /bwacct/db/accounting.db
cp bwacct match_*.so target_*.so bwacct.conf sql_*.so /bwacct
chmod 755 /bwacct/bwacct
Edit /bwacct/bwacct.conf. To start you only need to modify the path for accounting.db. "db/accounting.db"
cd /bwacct
./bwacct -f bwacct.conf
Enhancements:
- A signed 16-bit integer overflow on table id has been fixed.
Download (0.80MB)
Added: 2007-01-05 License: GPL (GNU General Public License) Price:
1025 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above 16 bit search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed