1.软音源的源码历史及发展
2.#gStore-weekly | gstore源码解析(一):基于boost的gstore http服务源码解析
3.音质最好的 播放器(电脑用)软件
4.用 VS2012 编译 PortAudio 的小插曲以及怎么加入 ASIO SDK 等
5.c++网络编程:Boost.asio源码剖析
软音源的历史及发展
软音源发展始于DirectSound技术,然而声音延迟问题阻碍了其进展。下载Steinberg公司随后引入了ASIO(Audio Stream Input Output)标准,源码显著缩短了音频处理软件与硬件之间的下载响应时间,从而极大推动了软音源技术的源码发展。ASIO驱动程序使得声卡对音频流的下载聚合源码影视响应时间降至十几毫秒以内,满足了实时需求。源码
软音源与软效果器的下载发展得益于ASIO的普及,其音质和性能已能与传统硬件抗衡,源码甚至超越后者。下载软音源分为插件和独立运行两种形式。源码独立运行的下载软音源虽然音质卓越,但需通过内录方式转换为音频,源码可能影响音质,下载因此市面上大多数软音源以插件形式出现。源码
插件是插入主工作站软件中使用的软件,依赖于主软件运行。录音 源码插件能够直接与音频轨进行缩混,避免了音质损耗。现今插件格式多样,有的相互通用,有的则不通用。部分插件为开放源码,任何人都可开发,而有些则需授权。某些插件可能需要特定硬件支持。
VST(Virtual Studio Technology)插件是目前最常用的插件,基于Steinberg的软效果器技术,以ASIO为运行平台,提供高品质效果处理。要达到VST最佳效果,声卡需支持ASIO。VST插件种类繁多,淮阴源码效果显著,如实时应用软吉他失真效果器,通过Line in口连接吉他输出,演奏时从电脑音箱中即可听到失真效果。
VSTi(Virtual Studio Technology Instruments)插件则是基于Steinberg的虚拟乐器插件技术,需声卡支持ASIO发挥性能。VSTi软音源种类丰富,音乐软件如Nuendo、Samplitude、Cubase等可作为VSTi宿主加载使用。VSTi虚拟乐器仅能加载在MIDI轨上。值得注意的是,VST插件需位于指定的VST Plugins目录下,宿主运行时才能找到。
#gStore-weekly | gstore源码解析(一):基于boost的gstore /TTPlus_Lite_Setup.exe
千千静听扩展包(TTPlus)是一个千千静听的资源插件集合包,收集了网上与其兼容的Winamp音效插件及编/解码插件,并且全全收录论坛上几乎所有的最新的资源.获千千静听官方推荐,是目前针对千千静听最全面最权威也是最方便的资源插件包.
用 VS 编译 PortAudio 的小插曲以及怎么加入 ASIO SDK 等
初次尝试在 Windows 下编译 PortAudio,并加入 ASIO SDK 时,源码皇帝我遇到了一系列挑战。开始时,我尝试使用 PyAudio,但未成功安装。出于对问题的好奇,我转而决定亲自编译 PortAudio,以证明我的电脑配置并无问题。此过程得到了在线社区的热心解答,尤其针对 VS 编译时出现的错误提示。
在访问 PortAudio 官方网站并下载最新源码后,我着手编译。然而,VS 出现了一系列错误提示,涉及 inline 关键字的使用不当以及函数调用格式问题。通过在线搜索,我发现其他开发者也遇到了类似的overScrollMode源码困难。最终,我得知只需将 "inline" 替换为 "__inline" 即可解决大部分问题。这一调整仅需对源代码中的个地方进行修改,操作相对简单。
完成错误修复后,编译过程得以顺利进行,尽管如此,事情并未就此结束。为了加入 ASIO SDK,我仔细阅读了 PortAudio 的教程,并正确解压和放置了 ASIO API 文件。ASIO SDK 的下载流程已简化,不再需要注册,只需直接下载即可。
在尝试了多种解决方法后,我最终选择通过直接安装包来解决 PyAudio 的安装问题。过程中,我注意到旧版()的 BUILD TOOL 依然存在,并提供下载链接。同样地,我遇到了 pymssql 和 freetds 的安装困难,最终选择使用 freetds-devel 包来解决相关问题。
经过一系列尝试,最终我发现安装 freetds-devel 包后,问题基本得到了解决。这一过程虽曲折,但也为我提供了对编译和安装过程的深入理解,同时,也突显了在线社区资源和解决方法的重要性。
c++网络编程:Boost.asio源码剖析
Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。
boost.asio是Boost库中非常著名的I/O组件,是用于网络和低层IO编程的跨平台C++库,为开发者提供了C++环境下稳定的异步模型。其在性能、移植性、扩展性等方面均为人称道,甚至被很多业内人士称为“网络神器”。asio是目前唯一有希望进入C++标准库以弥补标准库在网络方面的缺失的C++网络库,因此对asio的学习在某种意义上可以说是学习C++网络编程的必修课。
本文从源码角度出发,深入浅出地剖析asio的架构和设计理念,将asio的一切秘密呈现在读者眼前。适合已有较完善的C++基础知识、具备一定程度的泛型技术和面向对象技术、并对boost.asio有一定的了解的读者。
asio的核心架构由三大组件构成:io_object、services服务和"Asio核心组件",其中io_object是I/O对象的集合,包含socket、deadline_timer等对象;services服务是逻辑功能的实现者,包含deadline_timer_service、win_iocp_socket_service等服务;"Asio核心组件"即io_service,通过关联类service_registry管理服务,由io_object提供接口。
io_service的真正逻辑实现封装在内部桥接的类io_service_impl中,io_service_impl继承于service_base,在io_service初始化时被创建并由io_service持有其引用。asio中包含多个服务,如strand_service、deadline_timer_service、stream_socket_service等,以及对应的I/O对象如io_service::strand、basic_deadline_timer等。
asio中还包含Protocol和InternetProtocol概念,用于定义通信协议和网络通信协议。此外,还引入了泛型概念如ConstBuffer、ConstBufferSequence、MutableBuffer、MutableBufferSequence、Stream、AsyncReadStream、AsyncWriteStream、SyncReadStream和SyncWriteStream等,使得asio在设计上更加灵活和高效。
泛型与面向对象的完美结合使得asio在设计上既具有面向对象的封装性和可扩展性,又具备泛型编程的灵活性和高效性。通过Service Concept和CSU(Core-Service-User)架构,asio实现了用户友好的接口设计,使得开发者能够以简单而统一的方式使用asio提供的功能,无需自行处理复杂的泛型组件组装工作。