日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Arduino Processing和Wekinator按鈕更改聲音播放器的音高

454398 ? 來源:工程師吳畏 ? 2019-07-30 14:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

設(shè)置Arduino Board

這個項目使用連接到Arduino Uno的五個按鈕。使用Arduino為按鈕建立連接,如下圖所示。

項目草圖

在輸入端,我們將有一個Arduino草圖和一個Processing草圖。 Arduino草圖將讀取五個按鈕的狀態(tài),并通過串行通信將其轉(zhuǎn)發(fā)到Processing。 Processing sketch將接收此數(shù)據(jù),并通過OSC(開放式聲音控制)協(xié)議將其轉(zhuǎn)發(fā)給Wekinator。

Arduino Sketch

#define buttonPin1 6

#define buttonPin2 5

#define buttonPin3 4

#define buttonPin4 3

#define buttonPin5 2

int inByte = 0; // incoming serial byte

// the setup function runs once when you press reset or power the board

void setup() {

Serial.begin(115200);

pinMode(buttonPin1, INPUT);

pinMode(buttonPin2, INPUT);

pinMode(buttonPin3, INPUT);

pinMode(buttonPin4, INPUT);

pinMode(buttonPin5, INPUT);

establishContact(); // send a byte to establish contact until receiver

// responds

}

// the loop function runs over and over again forever

void loop() {

// if we get a valid byte, read button pins:

if (Serial.available() 》 0) {

// get incoming byte:

inByte = Serial.read();

// read the state of the pushbuttons:

int buttonState1 = digitalRead(buttonPin1);

int buttonState2 = digitalRead(buttonPin2);

int buttonState3 = digitalRead(buttonPin3);

int buttonState4 = digitalRead(buttonPin4);

int buttonState5 = digitalRead(buttonPin5);

Serial.write(buttonState1);

Serial.write(buttonState2);

Serial.write(buttonState3);

Serial.write(buttonState4);

Serial.write(buttonState5);

}

}

void establishContact() {

while (Serial.available() 《= 0) {

Serial.print(‘A’); // send a capital A

delay(300);

}

}

處理草圖

import processing.serial.*;

import oscP5.*;

import netP5.*;

OscP5 oscP5;

NetAddress dest;

Serial myPort; // The serial port

int[] serialInArray = new int[5]; // Where we‘ll put what we receive

int serialCount = 0; // A count of how many bytes we receive

int button1, button2, button3, button4, button5;

boolean firstContact = false; // Whether we’ve heard from the microcontroller

void setup() {

size(256, 256); // Stage size

noStroke(); // No border on the next thing drawn

// Print a list of the serial ports, for debugging purposes:

println(Serial.list());

// I know that the first port in the serial list on my mac

// is always my FTDI adaptor, so I open Serial.list()[0]。

// On Windows machines, this generally opens COM1.

// Open whatever port is the one you‘re using.

String portName = Serial.list()[0];

myPort = new Serial(this, portName, 115200);

/* start oscP5, sending messages at port 9000 */

oscP5 = new OscP5(this,9000);

dest = new NetAddress(“127.0.0.1”,6448);

}

void draw() {

//Send the OSC message

sendOsc();

}

void serialEvent(Serial myPort) {

// read a byte from the serial port:

int inByte = myPort.read();

// if this is the first byte received, and it’s an A,

// clear the serial buffer and note that you‘ve

// had first contact from the microcontroller.

// Otherwise, add the incoming byte to the array:

if (firstContact == false) {

if (inByte == ’A‘) {

myPort.clear(); // clear the serial port buffer

firstContact = true; // you’ve had first contact from the microcontroller

myPort.write(‘A’); // ask for more

}

}

else {

// Add the latest byte from the serial port to array:

serialInArray[serialCount] = inByte;

serialCount++;

// If we have 3 bytes:

if (serialCount 》 4 ) {

button1 = serialInArray[0];

button2 = serialInArray[1];

button3 = serialInArray[2];

button4 = serialInArray[3];

button5 = serialInArray[4];

// print the values (for debugging purposes only):

println(button1 + “&” + button2 + “&” + button3 + “&” + button4 + “&” + button5);

// Send a capital A to request new sensor readings:

myPort.write(‘A’);

// Reset serialCount:

serialCount = 0;

}

}

}

void sendOsc() {

OscMessage msg = new OscMessage(“/wek/inputs”);

msg.add((float)button1);

msg.add((float)button2);

msg.add((float)button3);

msg.add((float)button4);

msg.add((float)button5);

oscP5.send(msg, dest);

}

設(shè)置ChucK

在輸出端,我們可以使用ChucK從Wekinator接收五個連續(xù)輸出,并根據(jù)這些輸出發(fā)出聲音。

下載您正在使用的操作系統(tǒng)的FM Synthesis示例。

現(xiàn)在打開終端并轉(zhuǎn)到您放置它的目錄并輸入以下行:

chuck FMSynth_5ContinousOutputs.ck

Chuck將開始收聽Wekinator的輸出并接收輸出,它將改變聲音的音高。

設(shè)置Wekinator

現(xiàn)在打開Wekinator并對設(shè)置進行以下調(diào)整:

將輸入設(shè)置為5并輸出為5

選擇輸出鍵入到所有連續(xù)

Wekinator將從Processing接收五個輸入,并在訓練后將向Chuck發(fā)送五個不同的輸出。從那里,ChucK將根據(jù)Wekinator輸出產(chǎn)生不同的聲音。

點擊 下一步 按鈕,您將看到此窗口:

按第一個按鈕,然后單擊 隨機化 。開始錄制一秒鐘,它將記錄一些樣本。

按第二個按鈕,然后單擊 隨機化 的。然后記錄一秒。

同樣,記錄其他三個按鈕的樣本。

記錄五個樣本后,單擊在 火車 上訓練Wekinator。然后單擊 運行 。現(xiàn)在當您按下按鈕時,程序?qū)⒏鶕?jù)您提供的輸入發(fā)出聲音。

相關(guān)項目

如何構(gòu)建Arduino演講者幾分鐘播放音樂

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Processing
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    9255
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6527

    瀏覽量

    197515
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    LP3910:硬盤式便攜媒體播放器的電源管理利器

    LP3910:硬盤式便攜媒體播放器的電源管理利器 在電子設(shè)備的設(shè)計中,電源管理是至關(guān)重要的一環(huán)。對于硬盤式便攜媒體播放器這類對電源要求較高的設(shè)備,一款性能出色的電源管理芯片能極大提升設(shè)備的穩(wěn)定性
    的頭像 發(fā)表于 04-30 15:45 ?174次閱讀

    語音芯片怎么樣寫入聲音?一文講透語音播放芯片的聲音寫入之道

    如果說芯片是電子產(chǎn)品的“大腦”,那么語音芯片就是賦予設(shè)備“聲音靈魂”的關(guān)鍵元器件。從商場迎賓、電動車報警,到智能門鎖、醫(yī)療設(shè)備,凡是需要“開口說話”的設(shè)備,內(nèi)部都藏著一顆或多顆能將數(shù)字信號轉(zhuǎn)化
    的頭像 發(fā)表于 04-24 10:04 ?122次閱讀
    語音芯片怎么樣寫入<b class='flag-5'>聲音</b>?一文講透語音<b class='flag-5'>播放</b>芯片的<b class='flag-5'>聲音</b>寫入之道

    語音芯片也能同時播放10種聲音?廣州唯創(chuàng)電子WTR096A-16S混音芯片帶來音頻體驗新突破

    引言:當單一聲音已不足以表達創(chuàng)意在智能硬件快速迭代的今天,音頻播放早已不滿足于“能響就行”。從沉浸式游戲音效到多聲源背景廣播,從教育產(chǎn)品的交互提示到智能家居的場景反饋——單一語音通道越來越難以承載
    的頭像 發(fā)表于 04-10 08:55 ?384次閱讀
    語音芯片也能同時<b class='flag-5'>播放</b>10種<b class='flag-5'>聲音</b>?廣州唯創(chuàng)電子WTR096A-16S混音芯片帶來音頻體驗新突破

    TLV320AIC28立體聲音頻編解碼:高性能音頻解決方案解析

    TLV320AIC28立體聲音頻編解碼:高性能音頻解決方案解析 在當今的電子設(shè)備中,音頻體驗是至關(guān)重要的一環(huán)。無論是智能手機、MP3 播放器還是數(shù)碼攝像機,都需要高質(zhì)量的音頻編解碼
    的頭像 發(fā)表于 02-03 14:50 ?555次閱讀

    TLV320AIC3262:低功耗立體聲音頻編解碼的卓越之選

    頻編解碼,憑借其豐富的功能和出色的性能,在移動設(shè)備、便攜式媒體播放器等領(lǐng)域得到了廣泛應用。今天,我們就來深入了解一下這款產(chǎn)品。 文件下載: tlv320aic3262.pdf 1. 功能特性:集多種
    的頭像 發(fā)表于 01-30 14:40 ?431次閱讀

    花椒直播開源鴻蒙專屬直播播放器 助力高效開發(fā)高性能直播應用

    近日,花椒直播開源了專注于直播場景的播放器“HJPlayer”。它基于自研的通用多媒體框架“HJMedia”打造,與早前開源的推流“HJPusher”共同構(gòu)成了覆蓋主播推流到觀眾播放的完整客戶端
    的頭像 發(fā)表于 10-22 11:20 ?518次閱讀
    花椒直播開源鴻蒙專屬直播<b class='flag-5'>播放器</b> 助力高效開發(fā)高性能直播應用

    N9H26播放視頻為什么沒有聲音?

    為什么播放視頻 (MJPEG MP3) 但沒有聲音
    發(fā)表于 09-01 08:17

    如何使用 M487 微控制 (MCU) 通過 DAC 在 SD 卡上播放 WAV 文件聲音?

    使用 M487 微控制 (MCU) 通過 DAC 在 SD 卡上播放 WAV 文件聲音
    發(fā)表于 08-20 06:05

    創(chuàng)通聯(lián)達助力飛傲M27革新便攜HiFi播放器體驗

    2025年8月15日,飛傲在第19屆深圳國際音頻展(SIAS)正式發(fā)布年度旗艦播放器FIIO M27。作為基于創(chuàng)通聯(lián)達TurboX C6490 SOM打造的標桿產(chǎn)品,M27憑借該模塊的卓越性能與飛傲自研聲學技術(shù)形成協(xié)同突破,為用戶帶來全方位、全場景的優(yōu)秀音頻體驗,全面革新便攜HiFi
    的頭像 發(fā)表于 08-19 16:15 ?2467次閱讀

    多路混音聲音播放芯片型號推薦

    以下是唯創(chuàng)知音旗下主流的多路聲音播放芯片深度解析,結(jié)合精準參數(shù)、豐富場景及技術(shù)特性,滿足智能設(shè)備多樣化音頻需求: 一、WTV380/890 系列:高集成多模態(tài)交互芯片 核心參數(shù) 通道能力:支持8 路
    的頭像 發(fā)表于 08-15 16:51 ?1047次閱讀

    【創(chuàng)龍TL3562-MiniEVM開發(fā)板試用體驗】9、帶音頻波形顯示的QT音樂播放器

    時域波形:直觀展示聲音的音量變化 (如聲波的震動幅度),默認情況下顯示的是時域信號。,而不是頻率。數(shù)據(jù)來源是原始PCM樣本。 在 Qt 中為音頻播放器增加頻譜顯示功能,可以通過
    發(fā)表于 08-08 19:18

    蜻蜓FM開源“SmartXPlayer”音頻播放組件,打造鴻蒙多端音頻播放新引擎

    分布式能力和多線程架構(gòu),提供高性能、易集成的音頻播放能力支持,助力開發(fā)者高效構(gòu)建更順滑、更智能、更便捷的音頻播放體驗。 當前,隨著音頻內(nèi)容和智能設(shè)備的普及,傳統(tǒng)播放器在多端適配、分布式投播、主線程阻塞等方面存在開發(fā)難、效率低、體
    的頭像 發(fā)表于 07-21 16:31 ?775次閱讀
    蜻蜓FM開源“SmartXPlayer”音頻<b class='flag-5'>播放</b>組件,打造鴻蒙多端音頻<b class='flag-5'>播放</b>新引擎

    Made with KiCad(135):Echo - 開源的音樂播放器

    “? Echo 是一個開源硬件平臺,專為音樂播放器設(shè)計。該項目的目標是開發(fā)一款基于開源軟件并采用開源設(shè)計的高品質(zhì)音樂播放器。 ” ? Made with KiCad 系列將支持新的展示方式。直接將以
    的頭像 發(fā)表于 07-16 11:17 ?3384次閱讀
    Made with KiCad(135):Echo - 開源的音樂<b class='flag-5'>播放器</b>

    在使用EZ-USB? FX3? 設(shè)備時,上電后相機開始正常工作,但延時10s左右播放器才能夠顯示圖像數(shù)據(jù)?為什么?

    在使用EZ-USB? FX3? 設(shè)備時,上電后相機開始正常工作,但延時10s左右播放器才能夠顯示圖像數(shù)據(jù)?這是由于固件中的某些設(shè)置問題嗎?
    發(fā)表于 07-16 07:08

    基于STM32的音樂播放器電路+PCB源文件+源碼+論文等打包下載

    基于STM32的音樂播放器電路+PCB源文件+源碼+論文等打包,推薦下載!
    發(fā)表于 05-29 21:37
    鄂托克旗| 鸡西市| 抚远县| 鱼台县| 巴里| 新兴县| 锡林浩特市| 红桥区| 河曲县| 霍林郭勒市| 鹿泉市| 青铜峡市| 莱州市| 扎兰屯市| 平利县| 来宾市| 巴彦县| 融水| 阳山县| 兴城市| 郴州市| 武安市| 同心县| 巴林右旗| 日照市| 尉犁县| 南平市| 梁平县| 温宿县| 吴忠市| 淮安市| 都昌县| 上饶市| 漳平市| 齐齐哈尔市| 庐江县| 普陀区| 株洲市| 油尖旺区| 吴堡县| 中卫市|