Program audio and sound for Linux using this practical, how-to guide. You will learn how to use DSPs, sampled audio, MIDI, karaoke, streaming audio, and more. Linux Sound Programming takes you through the layers of complexity involved in programming the Linux sound system. Youll see the large variety of tools and approaches that apply to almost every aspect of sound. This ranges from audio codecs, to audio players, to audio support both within and outside of the Linux kernel. What Youll Learn Work with sampled audio Handle Digital Signal Processing (DSP) Gain knowledge of MIDI Build a Karaoke-like application Handle streaming audio Who This Book Is For Experienced Linux users and programmers interested in doing multimedia with Linux. Jan Newmarch is Head of ICT (Higher Education) at Box Hill Institute, Adjunct Professor at Canberra University and Adjunct Lecturer in the School of Information Technology, Computing and Mathematics at Charles Sturt University. He is interested in more aspects of computing than he has time to pursue, but the major thrust over the last few years has developed from user interfaces under Unix into Java, the Web and now into general distributed systems. Jan has developed a number of publicly available software systems in these areas. Right now, he is looking at sound for Linux systems and programming the Raspberry Pis GPU.
Pro Bash Programming teaches you how to effectively utilize the Bash shell in your programming. The Bash shell is a complete programming language, not merely a glue to combine external Linux commands. By taking full advantage of Shell internals, Shell programs can perform as snappily as utilities written in C or other compiled languages. And you will see how, without assuming Unix lore, you can write professional Bash 4.3 programs through standard programming techniques. This second edition has updated for Bash 4.3, and many scripts have been rewritten to make them more idiomatically Bash, taking better advantage of features specific to Bash. It is easy to read, understand, and will teach you how to get to grips with Bash programming without drowning you in pages and pages of syntax. Using this book you will be able to use the shell efficiently, make scripts run faster using expansion and external commands, and understand how to overcome many common mistakes that cause scripts to fail. This book is perfect for all beginning Linux and Unix system administrators who want to be in full control of their systems, and really get to grips with Bash programming. Chris F.A. Johnson was introduced to Unix in 1990 and learned shell scripting because there was no C compiler on the system. His first major project was a menu-driven, user-extensible database system with report generator. Chris uses the shell as his primary, general-purpose programming language, and his projects have included a member database, menuing system, and POP3 mail filtering and retrieval. Chris is the author of Shell Scripting Recipes: A Problem-Solution Approach (Apress, 2005). When not pushing shell scripting to the limit, he designs and codes web sites, teaches chess, and composes cryptic crosswords.
Delve into the Broadcom VideoCore GPU used on the Raspberry Pi and master topics such as OpenGL ES and OpenMAX. Along the way, youll also learn some Dispmanx, OpenVG, and GPGPU programming. The author, Jan Newmarch bumped into a need to do this kind of programming while trying to turn the RPi into a karaoke machine: with the CPU busting its gut rendering MIDI files, there was nothing left for showing images such as karaoke lyrics except for the GPU, and nothing really to tell him how to do it. Raspberry Pi GPU Audio Video Programming scratches his itch and since he had to learn a lot about RPi GPU programming, he might as well share it with you. What started as a side issue turned into a full-blown project of its own; and this stuff is hard. What Youll Learn Use Dispmanx and EGL on Raspberry Pi Work with OpenMAX and its components, state, IL Client Library, * * Buffers, and more on RPi Process images and video on RPi Handle audio on RPi Render OpenMAX to OpenGL on the RPi Play multimedia files on the RPi Use OpenVG for text processing and more Master overlays Who This Book Is For You should be comfortable with C programming and at least some concurrency and thread programming using it. This book is for experienced programmers who are new or learning about Raspberry Pi. Jan Newmarch is Head of ICT (Higher Education) at Box Hill Institute, Adjunct Professor at Canberra University and Adjunct Lecturer in the School of Information Technology, Computing and Mathematics at Charles Sturt University. He is interested in more aspects of Computing than he has time to pursue, but the major thrust over the last few years has developed from user interfaces under Unix into Java, the Web and now into general distributed systems. Jan has developed a number of publicly available software systems in these areas. Right now, he is looking at sound for Linux systems and programming the Raspberry Pis GPU.
Embedded Systems: ARM Programming and Optimization combines an exploration of the ARM architecture with an examination of the facilities offered by the Linux operating system to explain how various features of program design can influence processor performance. It demonstrates methods by which a programmer can optimize program code in a way that does not impact its behavior but improves its performance. Several applications, including image transformations, fractal generation, image convolution, and computer vision tasks, are used to describe and demonstrate these methods. From this, the reader will gain insight into computer architecture and application design, as well as gain practical knowledge in the area of embedded software design for modern embedded systems. Covers three ARM instruction set architectures, the ARMv6 and ARMv7-A, as well as three ARM cores, the ARM11 on the Raspberry Pi, Cortex-A9 on the Xilinx Zynq 7020, and Cortex-A15 on the NVIDIA Tegra K1 Describes how to fully leverage the facilities offered by the Linux operating system, including the Linux GCC compiler toolchain and debug tools, performance monitoring support, OpenMP multicore runtime environment, video frame buffer, and video capture capabilities Designed to accompany and work with most of the low cost Linux/ARM embedded development boards currently available Jason D. Bakos is an associate professor of Computer Science and Engineering at the University of South Carolina. He received a BS in Computer Science from Youngstown State University in 1999 and a PhD in Computer Science from the University of Pittsburgh in 2005. Dr. Bakoss research focuses on mapping data- and compute-intensive codes to high-performance, heterogeneous, reconfigurable, and embedded computer systems. His group works closely with FPGA-based computer manufacturers Convey Computer Corporation, GiDEL, and Annapolis Micro Systems, as well as GPU and DSP manufacturers NVIDIA, Texas Instruments, and Advantech. Dr. Bakos holds two patents, has published over 30 refereed publications in computer architecture and high performance computing, was a winner of the ACM/DAC student design contest in 2002 and 2004, and received the US National Science Foundation (NSF) CAREER award in 2009. He is currently serving as associate editor for ACM Transactions on Reconfigurable Technology and Systems.
Modern Assembly Language Programming with the ARM Processor carefully explains the concepts of assembly language programming, slowly building from simple examples towards complex programming on bare-metal embedded systems. Considerable emphasis is put on showing how to develop good, structured assembly code. More advanced topics, such as fixed and floating point mathematics, optimization, and the ARM VFP and NEON extensions are also covered, helping users understand representations of, and arithmetic operations on, integral and real numbers in any base, gain a basic understanding of processor architectures and instruction sets, write ARM assembly language programs, quickly learn any new assembly language, implement the procedures and mechanisms for handling interrupt processing and performing, interface assembly language with high-level languages such as C/C++, and explore ethical issues involving safety-critical applications. Concepts are illustrated and reinforced with a large number of tested and debugged assembly and C source listing Intended for use on very low-cost platforms, such as the Raspberry Pi or pcDuino, but with the support of a full Linux operating system and development tools Includes discussions of advanced topics, such as fixed and floating point mathematics, optimization, and the ARM VFP and NEON extensions Larry D. Pyeatt earned his doctorate in Computer Science, focusing on Artificial Intelligence, from Colorado State University in 1999. He spent 13 years as a professor at Texas Tech University before moving to the South Dakota School of Mines and Technology in 2012. He has programmed in over 15 assembly languages, from mainframes to 8-bit embedded systems, and teaches a variety of courses including assembly language, operating systems, computer architecture, and probabilistic artificial intelligence.
Thorough LPIC-1 exam prep, with complete coverage and bonus study tools LPIC-1Study Guide is your comprehensive source for the popular Linux Professional Institute Certification Level 1 exam, fully updated to reflect the changes to the latest version of the exam. With 100% coverage of objectives for both LPI 101 and LPI 102, this book provides clear and concise information on all Linux administration topics and practical examples drawn from real-world experience. Authoritative coverage of key exam topics includes GNU and UNIX commands, devices, file systems, file system hierarchy, user interfaces, and much more, providing complete exam prep for the LPIC-1 candidate. Get access to invaluable study tools, including bonus practice exams, electronic flashcards, and a searchable PDF of key terms featured on the exam. Linux is viewed by many companies and organizations as an excellent, low-cost, secure alternative to expensive operating systems, such as Microsoft Windows. The LPIC-1 tests a candidates understanding and familiarity with the Linux Kernel. This book provides comprehensive preparation and review, helping readers face the exam with confidence. Review the system architecture, Linux installation, and package management Understand shells, scripting, and data management more completely Practice administrative tasks and essential system services Brush up on networking fundamentals and security issues As the Linux server market share continue to grow, so too does the demand for qualified and certified Linux administrators. Certification holders must recertify every five years, but LPI recommends recertifying every two years to stay fully up to date with new technologies and best practices. As exam day approaches, LPIC-1Study Guide is the one source you will want by your side. Christine Bresnahan , LPIC-1, started working with computers more than 25 years ago in the IT industry as a systems administrator. Christine is an Adjunct Professor at Ivy Tech Community College where she teaches Linux certification and Python programming classes. She also writes books and produces instructional resources for the classroom. Richard Blum, LPIC-1, has worked in the IT industry for more than 25 years as both a systems and network administrator. He has published numerous Linux and open-source books, and is an online instructor for Linux and Web programming.
Need some inspiration for your Raspberry Pi projects? Wondering how to work with Wii nunchucks, stepper motors, how to create a remote control panel? If you need guidance, Experimenting with Raspberry Pi is your own personal idea generator. Experimenting with Raspberry Pi covers how to work with various components and hardware like humidity and temperature sensors, Wii nunchucks, GPIO extenders, and IR receivers so you can add these to your own projects. Written with budgets in mind, author Warren Gay encourages you to build, experiment, and swap out various parts to learn more about the Pi and come up with the best ideas and instructions for your own amazing Raspberry Pi project ideas. Warren Gay has been an electronics enthusiast since childhood and often dragged discarded TV sets home after school. In high school he learned to program the IBM-1130 and then pursued a career in software development at Ryerson Polytechnical, in Toronto. Since then he has worked professionally for over 30 years, mainly in C/C++, under Unix and Linux. Meanwhile, the love of electronics has never faded since the early creation of his home-brewed Intel 8008 system in the 70s to the present day projects employing the Raspberry Pi. Warren also holds an advanced amateur radio license and was able to work the Mir space station (U2MIR) using packet radio in August 1991.Hes authored other books including Sams Teach Yourself Linux in 24 Hours, Linux Socket Programming by Example, and Advanced Unix Programming.
Raspberry Pi is Linux, but its a unique flavor of Linux, specifically for the ARM-based Pi. Raspberry Pi Software Reference guides you through the boot process, including options for tweaking HDMI, memory, and other boot options. Youll learn the details of run levels and creating new services, and how to use the custom command vcgencmd for doing things like reporting temperature, clock speeds, and voltage. And while there are cross-compilers available for some flavors of Linux, one of the most important things youll get from Raspberry Pi Software Reference is how to build your own Raspberry Pi cross-compiler on your Mac OSX, Linux, or Windows computer. Warren Gay has been an electronics enthusiast since childhood and often dragged discarded TV sets home after school. In high school he learned to program the IBM-1130 and then pursued a career in software development at Ryerson Polytechnical, in Toronto. Since then he has worked professionally for over 30 years, mainly in C/C++, under Unix and Linux. Meanwhile, the love of electronics has never faded since the early creation of his home-brewed Intel 8008 system in the 70s to the present day projects employing the Raspberry Pi. Warren also holds an advanced amateur radio license and was able to work the Mir space station (U2MIR) using packet radio in August 1991.Hes authored other books including Sams Teach Yourself Linux in 24 Hours, Linux Socket Programming by Example, and Advanced Unix Programming.
The Raspberry Pi is deceptively simple. Plug it in, boot it up, and use it as a personal computer, or attach a million gizmos and modules and invent something new and amazing. Either way, what it can actually do is not simple, and you should know exactly what the Raspberry Pi hardware is all about. Raspberry Pi Hardware Reference , from Mastering the Raspberry Pi , is the hardware guide you need on your desk or workbench. Every detail is covered: from power to memory, from the CPU to working with USB. Youll find all the details about working with both wired and wireless Ethernet, SD cards, and the UART interface. The GPIO chapter is invaluable, covering power budgeting, access, and even small but important details like the correct usage of sudo when working with GPIO pins. Youll also find details about the 1-Wire driver, the I2C bus, and the SPI bus. If you need to know anything about your Raspberry Pis hardware, you will find it here, in Raspberry Pi Hardware Reference . Warren Gay has been an electronics enthusiast since childhood and often dragged discarded TV sets home after school. In high school he learned to program the IBM-1130 and then pursued a career in software development at Ryerson Polytechnical, in Toronto. Since then he has worked professionally for over 30 years, mainly in C/C++, under Unix and Linux. Meanwhile, the love of electronics has never faded since the early creation of his home-brewed Intel 8008 system in the 70s to the present day projects employing the Raspberry Pi. Warren also holds an advanced amateur radio license and was able to work the Mir space station (U2MIR) using packet radio in August 1991.Hes authored other books including Sams Teach Yourself Linux in 24 Hours, Linux Socket Programming by Example, and Advanced Unix Programming.