This commit is contained in:
2026-02-12 21:00:02 -08:00
parent 77f8236347
commit 8bdbf227ca
1141 changed files with 1010880 additions and 2 deletions

View File

@@ -0,0 +1,72 @@
/**
* @file example-serial-receive.ino
* @author Phil Schatzmann
* @brief Receiving audio via IP and writing to I2S
* @version 0.1
* @date 2022-03-09
*
* @copyright Copyright (c) 2022
*/
#include "AudioTools.h"
#include <WiFi.h>
const char *ssid = "ssid";
const char *password = "password";
AudioInfo info(16000, 1, 16);
uint16_t port = 8000;
WiFiServer server(port);
WiFiClient client;
I2SStream out;
MeasuringStream outTimed(out);
StreamCopy copier(outTimed, client);
void connectWifi(){
// connect to WIFI
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println(WiFi. localIP());
// Performance Hack
WiFi.setSleep(false);
}
void setup() {
Serial.begin(115200);
AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Info);
connectWifi();
// start server
server.begin();
// start I2S
Serial.println("starting I2S...");
auto config = out.defaultConfig(TX_MODE);
config.copyFrom(info);
config.buffer_size = 512;
config.buffer_count = 6;
out.begin(config);
Serial.println("started...");
}
void loop() {
// get a new connection if necessary
if (!client){
client = server.available();
}
// copy data if we are connected
if (client.connected()){
copier.copy();
} else {
// feed the dog
delay(100);
}
}

View File

@@ -0,0 +1,65 @@
/**
* @file example-serial-receive.ino
* @author Phil Schatzmann
* @brief Receiving audio via IP and just measuring the thruput
* @version 0.1
* @date 2022-03-09
*
* @copyright Copyright (c) 2022
*/
#include "AudioTools.h"
#include <WiFi.h>
const char *ssid = "ssid";
const char *password = "password";
AudioInfo info(16000, 1, 16);
uint16_t port = 8000;
WiFiServer server(port);
WiFiClient client;
MeasuringStream out;
StreamCopy copier(out, client);
void connectWifi() {
// connect to WIFI
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println(WiFi. localIP());
// Performance Hack
WiFi.setSleep(false);
}
void setup() {
Serial.begin(115200);
AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Info);
connectWifi();
// start server
server.begin();
// start out
out.begin();
Serial.println("started...");
}
void loop() {
// get a new connection if necessary
if (!client){
client = server.available();
}
// copy data if we are connected
if (client.connected()){
copier.copy();
} else {
// feed the dog
delay(100);
}
}

View File

@@ -0,0 +1,63 @@
/**
* @file example-serial-send.ino
* @author Phil Schatzmann
* @brief Sending audio over IP
* @version 0.1
* @date 2022-03-09
*
* @copyright Copyright (c) 2022
*/
#include "AudioTools.h"
#include <WiFi.h>
AudioInfo info(16000, 1, 16);
SineWaveGenerator<int16_t> sineWave( 32000); // subclass of SoundGenerator with max amplitude of 32000
GeneratedSoundStream<int16_t> sound( sineWave); // Stream generated from sine wave
WiFiClient client;
MeasuringStream clientTimed(client);
StreamCopy copier(clientTimed, sound, 256); // copies sound into MeasuringStream
const char *ssid = "ssid";
const char *password = "password";
const char *client_address = "192.168.1.33"; // update based on your receive ip
uint16_t port = 8000;
void connectWifi() {
// connect to WIFI
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println(WiFi. localIP());
// Performance Hack
//esp_wifi_set_ps(WIFI_PS_NONE);
WiFi.setSleep(WIFI_PS_NONE);
client.setNoDelay(true);
}
void connectIP() {
if (!client.connected()){
while (!client.connect(client_address, port)) {
Serial.println("trying to connect...");
delay(5000);
}
}
}
void setup() {
Serial.begin(115200);
AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Info);
connectWifi();
// Setup sine wave
sineWave.begin(info, N_B4);
Serial.println("started...");
}
void loop() {
connectIP(); // e.g if client is shut down we try to reconnect
copier.copy();
}