Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Getting Started with C++ Audio Programming for Game Development
Getting Started with C++ Audio Programming for Game Development

Getting Started with C++ Audio Programming for Game Development: Written specifically to help C++ developers add audio to their games from scratch, this book gives a clear introduction to the concepts and practical application of audio programming using the FMOD library and toolkit.

eBook
$22.99 $25.99
Paperback
$43.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with Print?

Product feature icon Instant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

Getting Started with C++ Audio Programming for Game Development

Chapter 2. Audio Playback

In this chapter, we will perform two of the most fundamental operations in audio programming—loading and playing audio files. This might not seem like much, but it is already enough to get us started adding audio into our games.

There are many different audio libraries available these days, such as DirectSound, Core Audio, PortAudio, OpenAL, FMOD, or Wwise. Some are available only on certain platforms, while others work almost everywhere. Some are very low-level, providing little more than a bridge between the user and the sound card driver, while others provide high-level features such as 3D sound or interactive music.

For this book, we will be using FMOD, a cross-platform audio middleware developed by Firelight Technologies that is extremely powerful, yet easy-to-use. However, you should try to focus more on the concepts covered, instead of the API, because understanding them will allow you to adapt to other libraries more easily, since a lot of this knowledge is...

Understanding FMOD


One of the main reasons why I chose FMOD for this book is that it contains two separate APIs—the FMOD Ex Programmer's API, for low-level audio playback, and FMOD Designer, for high-level data-driven audio. This will allow us to cover game audio programming at different levels of abstraction without having to use entirely different technologies.

Tip

Downloading the example code

You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

Besides that reason, FMOD is also an excellent piece of software, with several advantages to game developers:

  • License: It is free for non-commercial use, and has reasonable licenses for commercial projects.

  • Cross-platform: It works across an impressive number of platforms. You can run it on Windows, Mac, Linux, Android, iOS, and on most...

Installing FMOD Ex Programmer's API


Installing a C++ library can be a bit daunting at first. The good side is that once you have done it for the first time, the process is usually the same for every other library. Here are the steps that you should follow if you are using Microsoft Visual Studio:

  1. Download the FMOD Ex Programmer's API from http://www.fmod.org and install it to a folder that you can remember, such as C:\FMOD.

  2. Create a new empty project, and add at least one .cpp file to it. Then, right-click on the project node on the Solution Explorer, and select Properties from the list. For all the steps that follow, make sure that the Configuration option is set to All Configurations.

  3. Navigate to C/C++ | General, and add C:\FMOD\api\inc to the list of Additional Include Directories (entries are separated by semicolons).

  4. Navigate to Linker | General, and add C:\FMOD\api\lib to the list of Additional Library Directories.

  5. Navigate to Linker | Input, and add fmodex_vc.lib to the list of Additional...

Creating and managing the audio system


Everything that happens inside FMOD is managed by a class named FMOD::System, which we must start by instantiating with the FMOD::Syste m_Create() function:

FMOD::System* system;
FMOD::System_Create(&system);

Notice that the function returns the system object through a parameter. You will see this pattern every time one of the FMOD functions needs to return a value, because they all reserve the regular return value for an error code. We will discuss error checking in a bit, but for now let us get the audio engine up and running.

Now that we have a system object instantiated, we also need to initialize it by calling the init() method:

system->init(100, FMOD_INIT_NORMAL, 0);

The first parameter specifies the maximum number of channels to allocate. This controls how many sounds you are able to play simultaneously. You can choose any number for this parameter because the system performs some clever priority management behind the scenes and distributes...

Loading and streaming audio files


One of the greatest things about FMOD is that you can load virtually any audio file format with a single method call. To load an audio file into memory, use the createSound() method:

FMOD::Sound* sound;
system->createSound("sfx.wav", FMOD_DEFAULT, 0, &sound);

To stream an audio file from disk without having to store it in memory, use the createStream() method:

FMOD::Sound* stream;
system->createStream("song.ogg", FMOD_DEFAULT, 0, &stream);

Both methods take the path of the audio file as the first parameter, and return a pointer to an FMOD::Sound object through the fourth parameter, which you can use to play the sound. The paths in the previous examples are relative to the application path. If you are running these examples in Visual Studio, make sure that you copy the audio files into the output folder (for example, using a post-build event such as xcopy /y "$(ProjectDir)*.ogg" "$(OutDir)").

The choice between loading and streaming is mostly a tradeoff...

Playing sounds


With the sounds loaded into memory or prepared for streaming, all that is left is telling the system to play them using the playSound() method:

FMOD::Channel* channel;
system->playSound(FMOD_CHANNEL_FREE, sound, false, &channel);

The first parameter selects in which channel the sound will play. You should usually let FMOD handle it automatically, by passing FMOD_CHANNEL_FREE as the parameter.

The second parameter is a pointer to the FMOD::Sound object that you want to play.

The third parameter controls whether the sound should start in a paused state, giving you a chance to modify some of its properties without the changes being audible. If you set this to true, you will also need to use the next parameter so that you can unpause it later.

The fourth parameter is an output parameter that returns a pointer to the FMOD::Channel object in which the sound will play. You can use this handle to control the sound in multiple ways, which will be the main topic of the next chapter...

Checking for errors


So far, we have assumed that every operation will always work without errors. However, in a real scenario, there is room for a lot to go wrong. For example, we could try to load an audio file that does not exist.

In order to report errors, every function and method in FMOD has a return value of type FMOD_RESULT, which will only be equal to FMOD_OK if everything went right. It is up to the user to check this value and react accordingly:

FMOD_RESULT result = system->init(100, FMOD_INIT_NORMAL, 0);
if (result != FMOD_OK) {
  // There was an error, do something about it
}

For starters, it would be useful to know what the error was. However, since FMOD_RESULT is an enumeration, you will only see a number if you try to print it. Fortunately, there is a function called FMOD_ErrorString() inside the fmod_errors.h header file which will give you a complete description of the error.

You might also want to create a helper function to simplify the error checking process. For instance...

Project 1 – building a simple audio manager


In this project, we will be creating a SimpleAudioManager class that combines everything that was covered in this chapter. Creating a wrapper for an underlying system that only exposes the operations that we need is known as the façade design pattern, and is very useful in order to keep things nice and simple.

Since we have not seen how to manipulate sound yet, do not expect this class to be powerful enough to be used in a complex game. Its main purpose will be to let you load and play one-shot sound effects with very little code (which could in fact be enough for very simple games).

It will also free you from the responsibility of dealing with sound objects directly (and having to release them) by allowing you to refer to any loaded sound by its filename. The following is an example of how to use the class:

SimpleAudioManager audio;
audio.Load("explosion.wav");
audio.Play("explosion.wav");

From an educational point of view, what is perhaps even more...

Summary


In this chapter, we have seen some of the advantages of using the FMOD audio engine. We saw how to install the FMOD Ex Programmer's API in Visual Studio, how to initialize, manage, and release the FMOD sound system, how to load or stream an audio file of any type from disk, how to play a sound that has been previously loaded by FMOD, how to check for errors in every FMOD function, and how to create a simple audio manager that encapsulates the act of loading and playing audio files behind a simple interface.

Left arrow icon Right arrow icon

Key benefits

  • Add audio to your game using FMOD and wrap it in your own code
  • Understand the core concepts of audio programming and work with audio at different levels of abstraction
  • Work with a technology that is widely considered to be the industry standard in audio middleware

Description

Audio plays a fundamental role in video games. From music to sound effects or dialogue, it helps to reinforce the experience, convey the mood, and give feedback to the player. Presently, many games have achieved commercial success by incorporating game sounds that have enhanced the user experience. You can achieve this in your games with the help of the FMOD library. This book provides you with a practical guide to implementing the FMOD toolkit in your games. Getting Started with C++ Audio Programming for Game Developers is a quick and practical introduction to the most important audio programming topics that any game developer is expected to know. Whether you need to play only a few audio files or you intend to design a complex audio simulation, this book will help you get started enhancing your game with audio programs. Getting Started with C++ Audio Programming for Game Developers covers a broad range of topics – from loading and playing audio files to simulating sounds within a virtual environment and implementing interactive sounds that react to events in the game. The book starts off with an explanation of the fundamental audio concepts, after which it proceeds to explain how to use the FMOD Ex library, how to implement a 3D audio simulation, how to use the FMOD Designer toolkit, and how best to work with multi-layered sounds with complex behaviors attached to them. The final part of the book deals with working with audio at a much lower level by manipulating audio data directly. This book will provide you with a good foundation so that you can successfully implement audio into your games and begin pursuing other advanced topics in audio programming with confidence.

Who is this book for?

This book is perfect for C++ game developers who have no experience with audio programming and who would like a quick introduction to the most important topics required to integrate audio into a game.

What you will learn

  • Design complex generative /interactive sounds
  • Simulate an environment with 3D audio and effects
  • Load and play audio files in several formats
  • Control audio playback and many sound parameters
  • Adapt an audio API to fit the needs of a game
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Aug 26, 2013
Length: 116 pages
Edition : 1st
Language : English
ISBN-13 : 9781849699099
Languages :
Concepts :

What do you get with Print?

Product feature icon Instant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Publication date : Aug 26, 2013
Length: 116 pages
Edition : 1st
Language : English
ISBN-13 : 9781849699099
Languages :
Concepts :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 147.97
OpenGL Development Cookbook
$54.99
Getting Started with C++ Audio Programming for Game Development
$43.99
SDL Game Development
$48.99
Total $ 147.97 Stars icon

Table of Contents

6 Chapters
Audio Concepts Chevron down icon Chevron up icon
Audio Playback Chevron down icon Chevron up icon
Audio Control Chevron down icon Chevron up icon
3D Audio Chevron down icon Chevron up icon
Intelligent Audio Chevron down icon Chevron up icon
Low-level Audio Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.8
(4 Ratings)
5 star 75%
4 star 25%
3 star 0%
2 star 0%
1 star 0%
L. R. Nov 12, 2013
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This is the perfect book to everyone that wants to start using sounds within an application. It provides you with very important data in order to understand how to exploit the sound capabilities. It is performed step by step and through examples. It starts with all the basic data about sound theory like volume, pitch, channels, etc. Then it shows you the data file formats and how to start a first app using sound management playing sounds from a file using FMOD as sound engine.In general the book examples are based on C++ and considers the use of the FMOD sound engine for them. The book also explains the FMOD EX API and Design tools and how to exploit them practically in all the possibilities. It covers also the use of file in memory or as stream, how to load, play and manage the sound, how to exploit the channels, pitch, volume and panning, mono, stereo and 3d sound simulation, how to simulate an environment with obstruction for the sounds.Personally I selected this book because I'm involved in a personal project that aims to create an application for kids with learning disabilities. This book has helped me to understand how to manipulate the sounds in a manner that enables me to adapt the sound of my app to kids with sensory disorders. So this book is not only for game development then I consider this book very relevant to everyone that has a project that requires to exploit the sound capabilities within a software application in different ways.I strongly recommend this book to every developer experienced or beginner that aims to create software using sound.
Amazon Verified review Amazon
Corey Blackburn Nov 07, 2013
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Overall this book is exactly as the title suggests, an introduction to audio for game development with C++. It assumes that you are at least familiar with C++ and jumps right into audio. It should be noted that this book uses the FMOD audio engine.The first chapter serves as an introduction to the core concepts of audio. It's short, sufficient and has good visuals to explain each topic. We learn of sound waves and their properties volume and pitch. Then we moved on to representing a sound wave as either analog or digital and using sampling rate and bit depth when converting from analog to digital to control the quality. Last we saw that audio systems can have more than one output and various file formats.For the second and third chapter we get started with FMOD, audio playback and audio control. First we get an overview of FMOD and how to set up the Programmer's API with a Visual Studio project. Once that is setup we are ready to start! We learn to create and manage the FMOD audio system, how to load sounds both for streaming and into memory and then how to play them. Next we get into checking for errors to make sure everything is running as it should. Finally we're ready to create our own audio manager class. Now that we can load and play audio files the author goes into how to ways in which we can control the playback. The author then expands on our audio manager class after going over how to control the playback, volume, pitch, panning and channel grouping.Next in the fourth chapter the author gets into some more advanced features. We start off with 3D audio learning positional audio dealing with different audio soucres coming from specific locations. The author then explains how we simulate how the audio interacts with the environment through a technique called reverberation. Naturally most environments aren't empty so we get into how to handle obstruction and occlusion from objects. The last couple of pages in this section go over DSP effects(digital signal processing) giving us two quick samples.In the fifth chapter we get to learn about FMOD Designer and how to use sound events vs. audio files like we have been using. We start off learning to create simple events and how to avoid repetitive sound effects. The author goes over a few examples: a footstep sound loop, breaking glass sound effect and and an ambient track of singing birds. We then move on to multi-track events, these are a significantly more powerful. Expanding on our previous examples we make the footstep loop interactive allowing it to be more versatile. The singing birds turns into a complex forest with different animals that can also change based on the time of day in your simulation. I thought these were some pretty cool and useful examples that show off how powerful this tool really is.The fourth and fifth chapters contain code snippets but there is no demo project in the downloadable source code. As this book is a getting started guide and these chapters cover more advanced topics i'm okay with this. Unfortunately there is a shortage of books covering audio for games, but it would be nice to have these topics covered in more detail in a later book.Finally in the last chapter we dive deep into the low-level audio. Here we work with the bits and bytes of audio data and learn to code much of what FMOD already does for us. We will learn to load a WAV file, play and control the audio data, implement a basic delay effect and synthesize some basic sound waves. Although FMOD already handles everything we recreate in this chapter its a great learning experience to take a look at the underpinnings and see how they work and would be implemented.All of the source code compiled cleanly and ran as expected. You'll have to download FMOD Ex and SFML yourself. The author uses Visual Studio 2010. and make sure the project properties are set up (Additional Include Directories, Lib and Post-Build Event to copy the dll's to your output directory).This book was pretty short and to the point. It was easy to read, contained good examples and covers exactly what you would expect when reading the title. If you're looking to add some audio to your game and aren't already using an engine or framework that already has audio functionality included I would recommend this book as a great starting point.
Amazon Verified review Amazon
Amazon Customer Mar 04, 2018
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I would recommend this book as the best place for any beginner to start learning about audio programming. I have other books on audio programming, but this one is the most clear and concise allowing for quick integration into your software.
Amazon Verified review Amazon
A.K. Nov 04, 2013
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
This is an introductory book for [intermediate] C++ developers who want to start in audio programming, mainly using FMOD. The author starts by presenting some universal audio concepts in the first chapter such as volume, pitch, frequency, bit depth and audio file formats. Then he introduces FMOD and explains how to add it to a [Visual Studio C++] project, initialize FMOD, load/stream/play sounds, and check for errors. After this FMOD introduction, there is a project to build a simple C++ class audio manager. In Chapter 3, the author expands the manager to include audio control (playback, volume, pitch, panning, channel grouping).With the audio basics covered, the author explains 3D audio and how to work with positional audio, reverb and effects in FMOD. When working with positional audio, the developer must deal with occlusion and obstacles that affect the way audio is perceived by the player. This is a topic that could be further explored by the author, as it is touched in a couple of pages only. The same goes for DSP effects, which is presented in the last 3 pages of the same 3D audio chapter.The FMOD Designer tool is also introduced, which is a great tool from Firelight Technologies (developer of FMOD) for those who are more design-oriented. The author explains how to create simple sound events (such as footsteps and breaking glass SFX), multi-track events (e.g. interactive footsteps, car engine) and interactive music, and how to call these via code. For bigger projects or projects that need something more than basic audio control, this tool is a must.The final chapter involves low-level audio programming, i.e. how to work with the bytes of a digital sound file - loading, playbacking, changing properties, etc. Even though it still uses FMOD for audio control, the reader gets an 'under the hood' insight of the higher level audio APIs.At ~100 pages, this is a good introductory book for developers who are not familiar with audio programming, especially since there are not many books on the topic (there are some that focus on DirectSound/XACT programming, but these technologies seems to be pretty much dead -or are dying- and are MS-only). It is targeted at C++, but developers from other languages (e.g. C#) might benefit from the book as well, as FMOD supports other languages. The author's decision on FMOD is a good one too: FMOD is a multi-platform technology, supports many audio formats, and has been adopted by many successful games, companies and game engines (e.g. Unity, UE3). Previously I worked on a multi-platform game using FMOD for audio and the results were very nice.To get you started with audio programming, I think the contents and length of the book are OK, although the author could go deeper into the 3D audio and DSP effects section (and include 3D audio code in the audio manager as well; source-code is provided for chapters 2, 3 and 6 only).It is worth mentioning that FMOD Studio is not covered in the book, and for anything that is not audio-related (window, render and input management), the author uses SFML (Simple and Fast Multimedia Library).I would like to see another book from the author/publisher that deals with more advanced audio programming, such as more details on how to work with 3D audio (and the implications associated with it), real-time DSP effects, dynamic audio, and performance. Would also be good to see a project dealing with FMOD Designer (or FMOD Studio) and code, and not just examples.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the digital copy I get with my Print order? Chevron down icon Chevron up icon

When you buy any Print edition of our Books, you can redeem (for free) the eBook edition of the Print Book you’ve purchased. This gives you instant access to your book when you make an order via PDF, EPUB or our online Reader experience.

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
Modal Close icon
Modal Close icon