Hallo, hat jemand erfolgreich AppleMIDI via Wlan (WiFiNina) verwendet? Ich scheitere daran die AppleMidi Beispiele auf WiFiNina für den Nano WiFi zu ändern. Leider komme ich bei der Dokumentation von AppleMIDI nicht weiter. Für ein simples Bsp wäre ich sehr dankbar.
Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden.
Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben
➜ Wie man dieses Forum benutzt - bitte lesen
-—
Funktionieren die Beispiele ohne Änderung?
ja, mit ethernet lib kompiliert das bsp richtig. habe versucht einfach die ethernet lib durch wifinina lib zu ersetzen - das funktioniert aber nicht. auch beide (ethernet und wifinina) habe ich versucht - dann kompiliert es zwar ohne fehler aber es wird keine rtpmidi session über wlan angezeigt.
#include <Ethernet.h>
#include <WiFiNINA.h>
#include "credentials.h"
#define SerialMon Serial
#include <AppleMIDI_Debug.h>
#include <AppleMIDI.h>
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
unsigned long t1 = millis();
int8_t isConnected = 0;
const char* ssid = networkSSID; // Arbeit WLAN
const char* ssid2 = networkSSID2; // Arbeit WLAN
const char* password = networkPASSWORD; // Heimnetzwerk WLAN
const char* password2 = networkPASSWORD2; // Heimnetzwerk WLAN
int SSIDconnectCounter = 0;
int SSID2connectCounter = 0;
APPLEMIDI_CREATE_DEFAULTSESSION_INSTANCE();
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
void setup_wifi() {
delay(100);
//WiFi.disconnect();
Serial.println();
Serial.print("Connecting to wifi_1: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
delay(1000);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
SSIDconnectCounter++;
if (SSIDconnectCounter > 20) {
break;
}
}
SSIDconnectCounter = 0;
if (WiFi.status() != WL_CONNECTED) {
Serial.println();
Serial.print("Connecting to wifi_2: ");
Serial.println(ssid2);
WiFi.begin(ssid2, password2);
delay(1000);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print("*");
SSID2connectCounter++;
if (SSID2connectCounter > 20) {
break;
}
}
SSID2connectCounter = 0;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println("");
Serial.print("WiFi connected: ");
Serial.println(WiFi.SSID());
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
}
void setup() {
DBG_SETUP(115200);
DBG("Booting");
//if (Ethernet.begin(mac) == 0) {
// DBG(F("Failed DHCP, check network cable & reboot"));
// for (;;);
//}
setup_wifi();
DBG(F("OK, now make sure you an rtpMIDI session that is Enabled"));
DBG(F("Add device named Arduino with Host"), WiFi.localIP(), "Port", AppleMIDI.getPort(), "(Name", AppleMIDI.getName(), ")");
DBG(F("Select and then press the Connect button"));
DBG(F("Then open a MIDI listener and monitor incoming notes"));
MIDI.begin();
// Stay informed on connection status
AppleMIDI
.setHandleConnected([](const APPLEMIDI_NAMESPACE::ssrc_t& ssrc, const char* name) {
isConnected++;
DBG(F("Connected to session"), ssrc, name);
})
.setHandleDisconnected([](const APPLEMIDI_NAMESPACE::ssrc_t& ssrc) {
isConnected--;
DBG(F("Disconnected"), ssrc);
});
MIDI.setHandleNoteOn([](byte channel, byte note, byte velocity) {
DBG(F("NoteOn"), note);
});
MIDI.setHandleNoteOff([](byte channel, byte note, byte velocity) {
DBG(F("NoteOff"), note);
});
DBG(F("Sending MIDI messages every second"));
}
// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
void loop() {
// Listen to incoming notes
MIDI.read();
// send a note every second
// (dont cáll delay(1000) as it will stall the pipeline)
if ((isConnected > 0) && (millis() - t1) > 1000) {
t1 = millis();
byte note = random(1, 127);
byte velocity = 55;
byte channel = 1;
MIDI.sendNoteOn(note, velocity, channel);
// MIDI.sendNoteOff(note, velocity, channel);
}
}
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.