小编joh*_*cch的帖子

如何在Java中对多声道声音输入进行采样

我意识到这可能是相对利基,但也许这就是为什么这是好的问题无论如何.我正在寻找一个硬件多输入录音控制台(例如Alesis IO 26)来接收Adat lightpipe 8声道输入来进行信号处理.由于我还没有获得该设备并且需要弄清楚这是否可行(预算问题),我想问一下是否有人有任何经验来获取Java中的所有这8个数据输入?我已经看过很多使用Javax.sound.sampled库录制声音的例子,但是我找不到关于多声道超过2的任何信息.我​​感兴趣的是将8个声道单独作为单声道源采样到在它们上执行一些简单的DSP.硬件设备是否会被视为一个混音器?8个通道表示为8行?我希望我的术语合适.

如果有人可以向我指出任何相关信息,我将不胜感激.谢谢!

java javasound audio-recording

7
推荐指数
1
解决办法
4190
查看次数

npm嵌套依赖管理

我对管理npm嵌套依赖项的最佳实践有疑问.

让我解释一下我的情况,请告诉我我做错了什么,或者解决这个问题的最佳方法是什么.

我在nodeenv中使用express.js和express-mongostore运行应用程序.由于nodeenv,我正在全局搜索所有内容,因此它们都位于nenv/lib/node_modules文件夹下.问题是,我正在尝试开发出边缘express.js而express-mongostore还没有更新.安装两个模块后,我得到了这个文件夹结构.

nodeenv / lib / node_modules / express / node_modules / connect / ..
                             /
                             / connect-mongodb / node_modules/ connect / ...
Run Code Online (Sandbox Code Playgroud)

所以最终发生的事情是我有2个不同版本的连接.

我被烧了,因为mongodb商店生成的cookie和会话中间件生成的cookie是不同的,因为它们指向2个不同的connect utils实现(一个调用utils调用utils,另一个调用utils直接.不幸的是,他们指向需要解决时的不同文件).这里的实际差异是他们使用不同的算法签署cookie.有一段时间,我的会话使每个页面加载无效,我花了很长时间调试到这个级别.

我正在阅读互联网,似乎这应该是npm的方式而且是一件好事.这里的问题是,由于express依赖于连接中的一堆实用程序而且connect-mongodb在连接中继承了一些相同的类,使它们成为不同的存储库是有问题的.

我目前仍然有两个版本的连接,我修补一个像另一个.很明显,这不是一个可持续的解决方案.在这种情况下,我应该如何进行并处理依赖关系管理?

提前致谢!

node.js npm express

6
推荐指数
1
解决办法
1110
查看次数

具有单个数据库的多个节点实例

我正在编写一个Node应用程序,我正在考虑扩展.据我了解,横向扩展是扩展应用程序以处理更多并发请求的更简单方法之一.我的工作副本目前在后端使用MongoDb.

因此我的问题是:我的数据结构类似于需要严格维护订单的链表.我(想象)担心的是,当通过多个节点实例存在数据库竞争条件时,链表的分辨率可能不正确.

举个例子:假设服务器有这个列表a-> b.实例1带有对象c,实例2带有对象d.可能存在竞争条件,其中两个实例都读取a-> b并决定将它们自己的对象附加到列表中.然后,实例1将其插入设想为a-> b-> c,而实例2认为当数据库实际保持a-> b-> c-> d时它是a-> b-> d.

一般来说,这听起来像是乐观锁定的工作,但是,据我所知,MongoDB或Redis(我正在考虑的另一个数据库)都不以SQL方式进行事务处理.

因此,我认为解决方案是以下之一:

  1. 使用flags在MongoDB中实现我自己的事务.客户端对lock变量执行findAndModify,如果成功,则执行操作.如果不成功,客户端将在特定超时后重试.

  2. 使用Redis事务和pubsub来实现相同的效果.我还不确定如何做到这一点,但听起来似乎有点可信.

  3. 实现某种智能负载平衡.如果多个客户端在同一项上运行,请将它们路由到同一个实例.由于JS是单线程的,因此问题将得到解决.不幸的是,我没有找到一个直截了当的解决方案.

我确信有更好,更优雅的方式来实现上述目标,我很乐意听到任何解决方案或建议.谢谢!

transactions mongodb redis node.js

6
推荐指数
1
解决办法
919
查看次数