TweetFollow Us on Twitter

December 93 - SOMEWHERE IN QUICKTIME

SOMEWHERE IN QUICKTIME

WHAT'S NEW WITH SOUND MANAGER 3.0

JIM REEKES

[IMAGE 034-038_QuickTime_column1.GIF]

Sound Manager 3.0, a vastly improved call-for-call replacement for the Sound Manager in System 7, provides QuickTime and other sound clients with a set of new and improved features, including higher frame rates and better quality sound. Sound Manager 3.0 is an extension that entirely replaces the older Sound Manager; the extension is included along with a new Sound control panel on this issue's CD. We released it as an extension without changing the API so that you won't have to recode your existing applications. With Sound Manager 3.0 installed in your system, your applications will transparently take advantage of the Sound Manager's greater dependability, speed, and other new features.

The soon-to-be-available Inside Macintosh: Sound(or Inside Macintosh Volume VI, Chapter 22) is the main source of Sound Manager documentation. This column will discuss some of the new features of Sound Manager 3.0 and describe how to use them.

OVERVIEW OF MAJOR NEW FEATURES
Sound Manager 3.0 provides four major new features:

  • support for 16-bit audio samples
  • support for third-party audio hardware
  • support for plug-in audio codecs
  • better performance and quality

Previous versions of the Sound Manager could only support stereo 8-bit audio samples with sample rates up to 22 kHz. Sound Manager 3.0 removes this limitation by allowing stereo 16-bit audio samples with sample rates up to 65 kHz, providing CD-quality audio in QuickTime movies and other audio applications. Sound Manager 3.0 will also automatically convert 16-bit sounds into 8-bit sounds on Macintosh computers that don't have 16-bit audio hardware.

Third-party sound cards can be installed in your Macintosh to allow playback and recording of CD- quality audio. Sound Manager 3.0 makes this possible by providing a driver mechanism and a new Sound control panel that allows the user to redirect sound to any available audio device. Audio card developers can license the Sound Manager 3.0 extension and bundle it for distribution with their product.

The Sound Manager previously supported only MACE audio compression at ratios of 3:1 and 6:1. Sound Manager 3.0 goes beyond MACE to support any compressed audio format with the use of plug-in audio compression/decompression software (codecs). These are simply extension files that the Sound Manager recognizes and uses when it needs to play a compressed sound. In this way, applications can play compressed sounds seamlessly without being aware of the compressed format.

Sound Manager 3.0 is much faster -- in many cases two to three times more efficient than previous versions. This means that your application can do more while sound is playing. Sound Manager 3.0 isalso more robust: many bugs have been fixed and a number of commonly requested features have been added.

SYSTEM REQUIREMENTS AND INSTALLATION
Sound Manager 3.0 requires the Component Manager, so you must have either System 7 with QuickTime or System 7.1. (The Component Manager comes with QuickTime and is built into System 7.1.) Sound Manager 3.0 supports all Macintosh models except for the "classic"-style hardware such as the Macintosh Plus, SE, and Classic.

Installing Sound Manager 3.0 consists of dragging the Sound Manager extension and the new Sound control panel to your System Folder (where they will be placed in the appropriate folders) and rebooting. You should see Sound Manager 3.0's icon during startup.

WHAT'S NEW AND IMPROVED
Here are some more details about new and improved features in Sound Manager 3.0.

Speed optimizations. While Sound Manager 3.0 can play virtually any type of sound, it has been optimized for maximum playback efficiency with a number of common sound formats. So if you're worried about performance and want to minimize Sound Manager overhead, use one of these sound formats:

  • 8-bit, mono, 22.254 kHz, full volume
  • 8-bit, mono, 11.127 kHz, full volume

Increased efficiency is a major improvement in Sound Manager 3.0. In many cases, the Sound Manager will be two to three times more efficient, which allows applications to play more simultaneous sounds and do other work while sound is playing.

For example, you can now play four channels of sound on a Macintosh LC, whereas in the past the Sound Manager would not allow this. QuickTime applications benefit from Sound Manager 3.0 by gaining an increase in the movie playback frame rate. The premiere multimedia platform is now QuickTime 1.6 and Sound Manager 3.0 on a Macintosh!

Sound quality. Sound Manager 3.0 uses a fast linear interpolation for 11 kHz to 22 kHz sample rate conversion, which makes audio sampled at 11 kHz sound much better. This improves the sound quality of many QuickTime movies without sacrificing performance.

16-bit sound. Sound Manager 3.0 includes full support for 16-bit audio samples, including rate conversion, mixing, and decompression. It will automatically convert between 16-bit and 8-bit samples, so you never have to worry about the hardware you're running on. If your system has a 16- bit sound output device, you'll notice an increase in sound quality.

Until now, the value of the sampleSize field of the extended or compressed sound header has been 8 to denote the number of bits per sample. To play 16-bit sounds, specify the value 16 for the sampleSize field in the header, and the Sound Manager will treat the sound data as 16 bits per sample. 16-bit sounds are always in two's complement (signed) representation while 8-bit sounds are always in offset binary (unsigned) representation. For an example of how to fill out the extended sound header so that you can play 16-bit sounds, see Play16BitSound on this issue's CD.

Playing compressed sounds. With Sound Manager 3.0, you can play sounds compressed with any algorithm when you use the CmpSoundHeader data structure. The CmpSoundHeader's old futureUse1 field is now the format field, which you can use to specify a 4-character OSType that identifies the compression algorithm. If the compressionID field of the CmpSoundHeader is set to the constant fixedCompression, the Sound Manager uses the OSType in the format field to find a codec that can decompress this type of audio. The example named PlayCompressedSound on the CD shows how to fill out the compressed sound header so that you can play compressed sounds.

The SndPlayDoubleBuffer call has a similar interface. It accepts a new SndDoubleBufferHeader data structure that's identical to the previous one with the addition of a format field at the end. If thedbhCompressionID field is set to the constant fixedCompression, the format field is used to determine the codec to use to decompress the sound. Otherwise it will work as before.

Multiple sound channels. The overall sound volume (amplitude) has been improved when multiple sound channels are being mixed. In the past the Sound Manager would average the amplitudes for all playing channels. With Sound Manager 3.0, this averaging does not occur, which gives you better individual volume control. One possible disadvantage to this is that clipping can occur when many sounds of high amplitude are used.

For those of you trying to synchronize multiple channels, syncCmd could never synchronize at a fine enough level. With Sound Manager 3.0, syncCmd synchronizes multiple channels so that independent sounds can be triggered at exactly the same time. The technique to synchronize multiple channels remains the same as before. See the PlayTwoSoundsSynched example on the CD.

Finding the sound header in a 'snd ' resource. The 'snd ' resource is a cumbersome structure to parse. The old routine SetupSndHeader can be used to create this resource. A new routine, GetSoundHeaderOffset, has been created to locate the embedded sound header, which is used with the soundCmd or bufferCmd. The resulting offset is the number of bytes into the handle to the starting point of the sound header. The handle doesn't have to be locked to get this offset. See the PlaySndHandle example on the CD.

Volume control. Two new sound commands, volumeCmd and getVolumeCmd, allow better control of a channel's output volume. You can use volumeCmd to set the volume. The param2 portion of the command contains a two-word value (four bytes) that represents a pair of volume levels; the high word is the level for the right output signal and the low word is the level for the left. A value of 0x0100 is full volume and 0x0080 is half volume. For an example of setting the volume, see ChangeVolume on the CD.

You can overdrive the volume if you want to amplify low signals. A value of 0x0200 would be twice full volume. Furthermore, you can independently control the right and left volumes. The value 0x01000000 would send the output signal to the right, and 0x00000100 would send it left. The value 0x00800100 would play out the right side at half volume and the left at full volume.

The getVolumeCmd command returns the current volume. The param2 field should be a pointer to a long, similar to getAmpCmd.

There are two new routines for controlling the volume of system beep sounds: GetSysBeepVolume and SetSysBeepVolume.

pascal OSErr GetSysBeepVolume(long *level)
    = {0x203C,0x0224,0x0018,0xA800};
pascal OSErr SetSysBeepVolume(long level)
    = {0x203C,0x0228,0x0018,0xA800};

SysBeep will create a sound channel adjusted to the volume level last set by SetSysBeepVolume. This allows for system beep sounds to play back at a lower level than the rest of the machine, so you can hear a QuickTime movie running at full volume but hear alert beeps at a softer level.

The older routines GetSoundVol and SetSoundVol were implemented as a Control call to the Sound Driver. Although we've made every effort to continue supporting them, they do not have the amount of accuracy that's available with two new Sound Manager routines GetDefaultOutputVolume and SetDefaultOutputVolume:

pascal OSErr GetDefaultOutputVolume(long *level)
    = {0x203C,0x022C,0x0018,0xA800};
pascal OSErr SetDefaultOutputVolume(long level)
    = {0x203C,0x0230,0x0018,0xA800};
The older routines used a 0-7 value range whereas the new Sound Manager has a 0-0x0100 range. These new routines use the right/left volume pair as described above for volumeCmd. Each device has its own volume level. If the user changes the selected default device from the Sound control panel, that new device will use its own volume level, originally set by a previous call to SetDefaultOutputVolume.

Better stereo support. Previous versions of the Sound Manager would drop the right channel of a stereo sound when playing on monophonic hardware, such as a Macintosh LC. Sound Manager 3.0 will automatically convert stereo sounds to mono on these machines without dropping the right channel, so you can hear what you've been missing. Certain older Macintosh models are also mono out of the internal speaker, but stereo if headphones are plugged in. Sound Manager 3.0 will automatically sense if a headphone is plugged in and do the correct conversion so that both the right and left channels of a stereo sound will always be heard. The only exception is the Macintosh IIfx, which requires you to manually select stereo or mono in the new Sound control panel.

Default output device. Sound Manager 3.0 includes the concept of a default output device, set by the user in the new Sound control panel using the Sound Out panel. All sounds will be sent to this device unless an optional device was specified with SndNewChannel. The default device is generally the built-in sound hardware. The user can choose a new device (such as a sound card the user installed), and all sounds will then be routed to the chosen device. Adjusting the volume with either the control panel or the older call to SetSoundVol adjusts the volume of the default device.

Integration with QuickTime. QuickTime 1.6 is aware of Sound Manager 3.0 and will take advantage of its new features if it's installed.

  • Option-clicking the volume control in QuickTime's movie controller allows you to overdrive the volume of the movie, giving a boost to low signals.
  • The track balance of an audio track can now be proportionally panned left and right, instead of just full left or full right.
  • QuickTime will query Sound Manager 3.0 for information on new compression types, allowing it to play compressed audio of any type. It will send 16-bit audio data directly to the Sound Manager, so QuickTime movies can play CD-quality audio.
  • QuickTime will use the Sound Manager to do rate conversion and mix multiple sound tracks into one sound for export as an AIFF file or 'snd ' resource.

Sound Driver compatibility. The old Sound Driver, including the use of SoundBase, still works with Sound Manager 3.0, but we don't know how much longer this will be true. This depends entirely on changes in the hardware, not on the Sound Manager. If you're currently using the Sound Driver, Apple strongly encourages you to use the Sound Manager instead. Future changes in the sound architecture will be transparent to your application if you use the Sound Manager; they won't be if you continue to use the Sound Driver.

CPU loading. The Sound Manager released with system software versions 6.0.7 and later contained support for CPU loading. This approach was found not to be very accurate, and is not supported in Sound Manager 3.0. Sound Manager 3.0 will return the constant 7% for any channel, no matter how it was created and initialized. The number 7% was chosen because some applications were expecting a nonzero value, and 7% is about right for a Macintosh LC playing a single 11 kHz mono sound. Since the Sound Manager doesn't have true CPU loading checks, it's possible to run out of real time and thus overload the machine. Sound will then break up or even hang the system. This problem will be addressed in a future version of the Sound Manager.

Synth modes. Previously the Sound Manager enforced a single synthesizer type to be allocated. Even if a given synthesizer type allowed for multiple channels, you still couldn't mix the types. For example, you couldn't use the wave table mode while any other mode was operating. This limitation has been eliminated. Any and all three types of channels (square, wave table, and sampled sound) can be opened and used at the same time.

Square wave sounds. Unknown to most, the square wave synthesizer never produced true square waves. It was more like a modified sine wave. This has been corrected. As a result you'll notice that the Simple Beep sounds different. It can now be heard as it was originally designed to sound.

BUG FIXES AND FEATURE ENHANCEMENTS
The following is a brief summary of bugs that have been fixed in Sound Manager 3.0. This is not a complete list. Its intention is to point out major areas of improvement that might affect a large number of applications.

Play from disk

  • Some asynchronous file I/O problems while operating under the asynchronous SCSI Manager have been fixed.
  • Incorrect calculation of the audio selection for anything other than noncompressed 8-bit sounds has been fixed. This makes MACE and 16-bit data work with selections.
  • SndStartFilePlay can now handle 16-bit sounds and any compressed format.

Sound Input Manager

  • Sample rates greater than 32 kHz, which used to create overflows of the Fixed type and produce negative results, are now allowed.
  • Record to disk works better with large file system caches. Previously, during long disk writes to flush the file system's cache, incoming sound data would occasionally be lost.
  • When opening a sound input driver, the Sound Input Manager now checks for errors returned from the driver.

Sound Output Manager

  • Sample rates greater than 32 kHz, which used to create overflows of the Fixed type and produce negative results, are now allowed.
  • MoveHHi has been patched to avoid stack-into-heap problems during sound interrupts.
  • There are fewer clicks and pops, especially when opening a sound channel.
  • When playing multiple channels of sound using the bufferCmd, the Sound Manager will no longer mix in random amounts of silence, which caused sounds to be discontinuous and get out of sync.
  • Stopping a sound or starting a new one sometimes caused the channel to fail to produce any new sounds. This has been fixed.
  • The ampCmd works for all types of sound channels (square, wave table, and sampled).
  • Loop points now work on any type of sound, including 16-bit, stereo, and compressed sounds.
  • Linear interpolation is now performed across separate buffers, so you can play a set of sounds without getting a click between sounds.
  • Machines with the Macintosh II ROM (II, IIx, IIcx, SE/30) could lose sound interrupts after playing for long periods of time. This has been fixed.

SOUNDING OFF
Sound Manager 3.0 is a vast improvement over the old Sound Manager and will enhance QuickTime applications and other applications that use sound. So check it out; from the system beep to sophisticated movies, we're sure you'll notice the difference.

ADVANCED FEATURES

An important feature of Sound Manager 3.0 is the ability to play through alternate sound output devices installed in your system. These devices will be available from third-party developers. The Sound Manager can take advantage of specialized hardware features such as sample rate conversion and audio mixing. If such features are available in the hardware (such as better sample rate conversion done by a DSP), theSound Manager will allow this support to be passed off to the hardware for better quality and efficiency.

Support for plug-in audio codecs is another significant new feature. This allows the Sound Manager to support new compression methods, which become desirable now that we're supporting 16-bit data.

Sound Manager 3.0 was developed by Jim Reekes and Kip Olson. Kip wants everyone to know that the original design document describing the Sound Manager back in 1987 was titled "Software Architecture for a Device-Independent Sound Manager," which can be abbreviated as SADISM. This explains a lot, doesn't it?*

Sound Manager 3.0 has been made widely available. The extension, control panel, and related files are not only on this issue's CD but are also included in the Sound Manager Developer's Kit v. 3.0 available from APDA, in Hardware System Update 2.0, with sound products from third parties, and on various electronic bulletin boards (such as CompuServe and America Online). Sound Manager 3.0 is built into some new Macintosh systems; you can tell it's there if Sound Out is listed in the Sound control panel. *


JIM REEKES studied music composition and theory in college, never taking a single computer science or engineering class because he knew they would pollute his brain. He taught himself programming, beginning with the Apple II and then on the Macintosh 128K in 1984. He began working in Apple's Developer Technical Support group in 1988. He took over responsibility for the Sound Manager during System 7 beta (so you can't blame that one on him!) and recently finished Sound Manager 3.0, a complete rewrite. If there's one thing he has learned while at Apple, it's that there's a fine line between amazing insight and having a bad attitude. Jim has been collecting progressive rock and electronic music recordings since the 1970s. He grew up in Pomona, California, during the 1960s and can remember when Frank Zappa performed in local bars on Mission Blvd. and Cucamonga was a vineyard. He wishes programming didn't burn out his creative drive so that he could spend more time in his MIDI studio. *

Thanks to Ray Chiang and Bryan ("Beaker") Ressler for reviewing this column. Special thanks to Kip Olson. *

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Apple Digital Camera RAW Compatibility 6...
Apple Digital Camera RAW Compatibility update adds RAW image compatibility to Aperture 3 and iPhoto '11. For more information on supported RAW formats, see this page. Version 6.03: This update adds... Read more
OmniGraffle Pro 6.1.4 - Create diagrams,...
OmniGraffle Pro helps you draw beautiful diagrams, family trees, flow charts, org charts, layouts, and (mathematically speaking) any other directed or non-directed graphs. We've had people use... Read more
OmniGraffle 6.1.4 - Create diagrams, flo...
OmniGraffle helps you draw beautiful diagrams, family trees, flow charts, org charts, layouts, and (mathematically speaking) any other directed or non-directed graphs. We've had people use Graffle to... Read more
MegaSeg 5.9.5 - Professional MP3 DJ appl...
MegaSeg is a complete solution for pro audio/video DJ mixing, radio automation, and music scheduling with rock-solid performance and an easy-to-use design. Mix with visual waveforms and Magic... Read more
MarsEdit 3.6.8 - Quick and convenient bl...
MarsEdit is a blog editor for OS X that makes editing your blog like writing email, with spell-checking, drafts, multiple windows, and even AppleScript support. It works with with most blog services... Read more
BBEdit 11.0.3 - Powerful text and HTML e...
BBEdit is the leading professional HTML and text editor for the Mac. Specifically crafted in response to the needs of Web authors and software developers, this award-winning product provides a... Read more
Microsoft Office Preview 15.8 - Popular...
Welcome to the new and modern Microsoft Office for Mac. You will receive regular updates automatically until the official release in the second half of 2015. With the redesigned Ribbon and your... Read more
Yosemite Cache Cleaner 9.0.5 - Clear cac...
Yosemite Cache Cleaner is an award-winning general purpose tool for OS X. YCC makes system maintenance simple with an easy point-and-click interface to many OS X functions. Novice and expert users... Read more
ExpanDrive 4.3.2 - Access cloud storage...
ExpanDrive builds cloud storage in every application, acts just like a USB drive plugged into your Mac. With ExpanDrive, you can securely access any remote file server directly from the Finder or... Read more
RapidWeaver 6.0.8 - Create template-base...
RapidWeaver is a next-generation Web design application to help you easily create professional-looking Web sites in minutes. No knowledge of complex code is required, RapidWeaver will take care of... Read more

Take a First Look at NaturalMotion’s Daw...
NaturalMotion has released a preview of their upcoming title, Dawn of Titans. Dawn of Titans immerses you in a world of fantasy as you build your kingdom, raise an army, and capture territories. The focus on this epic action strategy game was the... | Read more »
GDC 2015 – Warfriends is Something Famil...
GDC 2015 – Warfriends is Something Familiar That’s Also a Little Different Posted by Rob Rich on March 6th, 2015 [ permalink ] About Fun‘s upcoming Warfriends is quite the interesting hybrid. | Read more »
Bored? MyLeisure FreeTime Maximizer Will...
Bored? MyLeisure FreeTime Maximizer Will Take Care of That! Posted by Jessica Fisher on March 5th, 2015 [ permalink ] iPhone App - Designed for the iPhone, compatible with the iPad | Read more »
New Publisher Allstar Games Heads West w...
Allstar Games has announced its first mobile title designed for western audiences, Allstar Heroes. The game will be a massive online battle arena (MOBA) that offers dozens of heroes for you to collect and pit against your opponents. As each hero has... | Read more »
RAD Boarding Review
RAD Boarding Review By Jennifer Allen on March 5th, 2015 Our Rating: :: NEARLY RADUniversal App - Designed for iPhone and iPad RAD Boarding isn’t quite one of the greats, but it has potential.   | Read more »
Presenting the International Mobile Gami...
11th Annual International Mobile Gaming Awards ceremony, hosted by actress Allison Haislip, gathered mobile game developers and publishers from around the world. They chose 13 winners out of the 93 nominations. British studio USTWO won the the Grand... | Read more »
AG Drive Review
AG Drive Review By Tre Lawrence on March 5th, 2015 Our Rating: :: FUTURISTIC STREET RACING.Universal App - Designed for iPhone and iPad Futuristic racing… interstellar style.   | Read more »
GDC 2015 – Nightmare Guardians is an Int...
GDC 2015 – Nightmare Guardians is an Interesting Hybrid of MOBA and Lane Defense Posted by Rob Rich on March 5th, 2015 [ permalink ] I have to say that lane defense (i.e. | Read more »
Overkill 3 Review
Overkill 3 Review By Tre Lawrence on March 5th, 2015 Our Rating: :: WHO'S NEXT?Universal App - Designed for iPhone and iPad Cover system gameplay in the third-person.   Developer: Craneballs Price: Free Version Reviewed: 1.1.6... | Read more »
Warner Bros. Interactive Entertainment A...
Warner Bros. has some exciting games coming down the pipe! | Read more »

Price Scanner via MacPrices.net

16GB iPad mini 3 on sale for $349, save $50
 Walmart has the 16GB iPad mini 3 WiFi on sale on their online store for $349.99 including free shipping or free local store pickup. Their price is $50 off MSRP, and it’s the lowest price available... Read more
Save up to 15% with Apple refurbished Time Ca...
The Apple Store has certified refurbished Time Capsules available for up to $60 off MSRP. Apple’s one-year warranty is included with each Time Capsule, and shipping is free: - 2TB Time Capsule: $255... Read more
Save up to $105 on AppleCare Protection Plans
B&H Photo has 3-Year AppleCare Warranties on sale for up to $105 off MSRP including free shipping plus NY sales tax only: - Mac Laptops 15″ and Above: $244 $105 off MSRP - Mac Laptops 13″ and... Read more
Apple restocks refurbished 15-inch Retina Mac...
The Apple Store has restocked Apple Certified Refurbished 2014 15″ Retina MacBook Pros, available for up to $400 off the cost of new models. An Apple one-year warranty is included with each model,... Read more
Roundup of MacBook Air sale prices, models up...
B&H Photo has MacBook Airs on sale for up to $100 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 11″ 128GB MacBook Air: $799 100 off MSRP - 11″ 256GB MacBook Air: $999 $100... Read more
New Firstrade Mobile App Enables On-The-Go Tr...
Firstrade Securities Inc. has announced its new mobile app, which gives investors immediate access to the company’s trading platform on all mobile devices. The app was developed in-house and was... Read more
Sonnet Introduces USB 3.0 + eSATA Thunderbolt...
Sonnet has announced the launch of its new USB 3.0 + eSATA Thunderbolt Adapter for easy connectivity to USB 3.0 devices and eSATA storage, and USB 3.0 + Gigabit Ethernet Thunderbolt Adapter for easy... Read more
Apple restocks refurbished 27-inch 5K iMacs f...
The Apple Store has restocked Apple Certified Refurbished 27″ 3.5GHz 5K iMacs for $2119 including free shipping. Their price is $380 off the cost of new models, and it’s the lowest price available... Read more
Free Clean Reader Mobile App Hides Swear Word...
The new Clean Reader app, now available in the Apple App Store and Google Play, delivers the opportunity of reading any book without being exposed to profanity. By selecting how clean they want their... Read more
Kinsa Launches “Groups” App to Monitor Illnes...
Kinsa, makers of the first FDA approved app-enabled smartphone thermometer thst won the 2013 Cleveland Clinic Medical Innovation Grand Prize and recently appeared in Apple’s “Parenthood” TV... Read more

Jobs Board

*Apple* Solutions Consultant - Retail Sales...
**Job Summary** As an Apple Solutions Consultant (ASC) you are the link between our customers and our products. Your role is to drive the Apple business in a retail Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Solutions Consultant - Retail Sales...
**Job Summary** As an Apple Solutions Consultant (ASC) you are the link between our customers and our products. Your role is to drive the Apple business in a retail Read more
Position Opening at *Apple* - Apple (United...
…Summary** As a Specialist, you help create the energy and excitement around Apple products, providing the right solutions and getting products into customers' hands. You Read more
Position Opening at *Apple* - Apple (United...
**Job Summary** The Apple Store is a retail environment like no other - uniquely focused on delivering amazing customer experiences. As an Expert, you introduce people Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.