Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: This feature may not be available in some browsers.
Wieso wird es denn Opensource Synthesizer genannt wenn der Sourcecode nicht verfügbar ist?Toll wäre es wie gesagt, wenn ihr die aktuellen Versionen auch als Sourcecode veröffentlichen würdet
Ist doch alles geuppt . Auch die Software. Aber ist doch klar das Rolf nicht irgend welche Zwischenversionen auf Github stellt . Wenn du auf die TubeOhm Seite schaust wirst du sehen da da ein Link zu Github ist. Wir haben es nur nicht explizit erwähnt das Jeannie open source ist. Dachte das wissen alle.Wieso wird es denn Opensource Synthesizer genannt wenn der Sourcecode nicht verfügbar ist?
Wobei ich sehe das ihr (@rolfdegen und @tubeohm ) den nicht so nennt.
Evtl. sollte man mal die Berichterstatter auf das Detail hinweisen.
Nur weil es DIY istmuss ja der Quellcode nicht verfügbar sein. Aber wenn es OpenSource heist hat man schon gewisse erwartungen.
Wird schon kommen. Denke Rolf ist noch beschäftigt mit der sysex Geschichte .Die Version im git ist 1.37 - als Zip gibt es dort noch die 1.42f - aber die hat ja laut tubeohm Webseite einen Bug.
Die aktuelle 1.43 wird als latest stable version auf der Webseite empfohlen und ist für die neue Soundbank Vorraussetzung - also keine "Zwischenversion"
Da würde ich mich über ein Update des Sourcecodes schon freuen.
a lot of sysex data..
uint14_to_sysex2Bytes(data[207], sysexCount, sysexData); // (207) 2 328 - LFO2releaseTime (0 - 12000) Fade out
float_to_sysex5Bytes(data[208], sysexCount, sysexData); // (208) 5 330 - Osc1ModAmt (0.00000 - 1.00000) Fx Mod
int8_to_sysex2Bytes(data[209], sysexCount, sysexData); // (209) 2 335 - LFO1enCurve (-8 - +8)
int8_to_sysex2Bytes(data[210], sysexCount, sysexData); // (210) 2 337 - LFO2enCurve (-8 - +8)
uint8_to_sysex1Byte(data[211], sysexCount, sysexData); // (211) 1 339 - LFO1mode (0 - 1)
uint8_to_sysex1Byte(data[212], sysexCount, sysexData); // (212) 1 340 - LFO2mode (0 - 1)
sysexData[sysexCount++] = 0xF7; // 1 346 - End SysEx (0xF7)
usbMIDI.sendSysEx(sysexCount, sysexData, true); // send SysEx data via USB
MIDI.sendSysEx(sysexCount, sysexData, true); // send SysEx data via Midi
}
Serial.println("transfer complete..");
Guck mal hier. der hatte ein ähnliches Phänomen
https://forum.pjrc.com/threads/49753-Problem-with-large-volumes-of-data-on-usbMidi
void usb_isr(void)
{
code...
if ((USB1_USBINTR & USB_USBINTR_SRE) && (status & USB_USBSTS_SRI)) {
//printf("sof %d\n", usb_reboot_timer);
if (usb_reboot_timer) {
if (--usb_reboot_timer == 0) {
usb_stop_sof_interrupts(NUM_INTERFACE);
_reboot_Teensyduino_();
}
}
#ifdef MIDI_INTERFACE
//usb_midi_flush_output();
#endif
#ifdef MULTITOUCH_INTERFACE
usb_touchscreen_update_callback();
#endif
#ifdef FLIGHTSIM_INTERFACE
usb_flightsim_flush_output();
#endif
}
}
Aber einen post weiter unten haben die ja eine Lösung mit einer blockier variable gepostet,
...
static uint8_t transmit_previous_timeout=0;
static uint8_t tx_noautoflush=0;
/* flag anti flush */
static uint8_t stopFlush = 0;
void usb_midi_send_sysex_buffer_has_term(const uint8_t *data, uint32_t length, uint8_t cable)
{
stopFlush = 1;
cable = (cable & 0x0F) << 4;
...
stopFlush = 0;
}
void usb_midi_send_sysex_add_term_bytes(const uint8_t *data, uint32_t length, uint8_t cable)
{
stopFlush = 1;
cable = (cable & 0x0F) << 4;
....
stopFlush = 0;
}
void usb_midi_flush_output(void)
{
if ( stopFlush == 0 )
{
if (tx_noautoflush == 0 && tx_packet && tx_packet->index > 0) {
tx_packet->len = tx_packet->index * 4;
usb_tx(MIDI_TX_ENDPOINT, tx_packet);
tx_packet = usb_malloc();
}
}
}