ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray
Statistics: Posted by sm_jamieson — 30 Apr 2026, 18:03 Statistics: Posted by grego mondo — 30 Apr 2026, 13:06
We need a new forum section "Usine Hacking" ![]()
]]>
and then, in each rack, I get the Global Array value(s) wich I need to control my faders and knob
eg something like choosing in a combo box the first instrument : Tuba > all my faders are feeded from values 1 = volume, 9 (1+8) reverb, 17 (1+16) delay
choosing the second instrument : Serpent > all my faders are feeded from values 2 = volume, 10 (2+8) reverb, 18 (2+16) delay
(this way I can also feed one value in the GA from 2 separated controllers.
Here I just tried some stuffs to help find a solution to your problem ![]()
]]>
Statistics: Posted by grego mondo — 29 Apr 2026, 10:18
Statistics: Posted by sm_jamieson — 29 Apr 2026, 03:19
Statistics: Posted by oli_lab — 28 Apr 2026, 00:26
Statistics: Posted by BM2F — 27 Apr 2026, 12:18
Statistics: Posted by sm_jamieson — 27 Apr 2026, 02:51
CODE:
void diywt::writeWavFile(const std::string& filename) {realSize = m_maxWrite;sdkTraceInt(realSize);sdkTraceInt(m_lastMarkerNumber);// Structures pour les en-têtesstruct RiffHeader {char chunkId[4] = { 'R', 'I', 'F', 'F' };uint32_t chunkSize;char format[4] = { 'W', 'A', 'V', 'E' };};struct FmtChunk {char chunkId[4] = { 'f', 'm', 't', ' ' };uint32_t chunkSize = 16;uint16_t audioFormat = 3; // 32-bit floatuint16_t numChannels;uint32_t sampleRate;uint32_t byteRate;uint16_t blockAlign;uint16_t bitsPerSample;};struct DataChunk {char chunkId[4] = { 'd', 'a', 't', 'a' };uint32_t chunkSize;};std::ofstream outFile(filename, std::ios::binary);if (!outFile) {sdkTraceErrorChar("can't open file");return;}// Paramètres audioint numChannels = 1;int bitsPerSample = 32;int numSamples = m_markersStart[m_lastMarkerNumber];//realSize;// Calculer la taille des données audiouint32_t dataSize = numSamples * numChannels * bitsPerSample / 8;// Remplir les en-têtesRiffHeader riffHeader;FmtChunk fmtChunk;fmtChunk.numChannels = numChannels;fmtChunk.sampleRate = sdkGetSampleRate();fmtChunk.byteRate = fmtChunk.sampleRate * numChannels * bitsPerSample / 8;fmtChunk.blockAlign = numChannels * bitsPerSample / 8;fmtChunk.bitsPerSample = bitsPerSample;DataChunk dataChunk;dataChunk.chunkSize = dataSize;// Calculer la taille totale du fichieruint32_t totalFileSize = sizeof(RiffHeader) + sizeof(FmtChunk) + sizeof(DataChunk) + dataSize;// +sizeof(CueChunk) + cueChunkSize + sizeof(AdtlChunk) + adtlChunkSize;riffHeader.chunkSize = totalFileSize - 8; // Soustraire les 8 octets du chunkId et du chunkSize// Écrire les en-têtes dans le fichieroutFile.write(reinterpret_cast<char*>(&riffHeader), sizeof(RiffHeader));outFile.write(reinterpret_cast<char*>(&fmtChunk), sizeof(FmtChunk));outFile.write(reinterpret_cast<char*>(&dataChunk), sizeof(DataChunk));// Écrire les données audiofor (f = 0; f < numSamples; ++f) {outFile.write(reinterpret_cast<const char*>(&m_audioBuffer[f]), sizeof(float));}// Ajouter un padding si nécessaire pour aligner le chunk suivant sur un nombre pair d'octetsif (dataSize % 2 != 0) {outFile.put(0);}outFile.close();/*//mettre à jour la sortie markerOutint tempSize = m_lastMarkerNumber;markersOut.setSize(tempSize);for (int m = 0; m < tempSize; m++) {markersOut.setArrayData(m, float(m_markersStart[m])/float(numSamples));}*/if (!outFile) {sdkTraceErrorChar("Error closing file");return;}std::string s = fdrFileName.getPChar();s = s + " successfully created";sdkTraceChar(s.c_str());m_signalisation = 2;}Statistics: Posted by oli_lab — 21 Apr 2026, 19:41
Statistics: Posted by sm_jamieson — 21 Apr 2026, 19:06

Statistics: Posted by oli_lab — 21 Apr 2026, 17:29
Statistics: Posted by sm_jamieson — 21 Apr 2026, 10:46
Statistics: Posted by oli_lab — 10 Apr 2026, 11:00
Statistics: Posted by oli_lab — 01 Apr 2026, 21:22
Statistics: Posted by woodslanding — 01 Apr 2026, 20:15
Statistics: Posted by Gilsornette — 28 Mar 2026, 16:42
Statistics: Posted by oli_lab — 28 Mar 2026, 14:59
Statistics: Posted by Gilsornette — 28 Mar 2026, 12:42
Statistics: Posted by gwennaelle — 13 Mar 2026, 09:26
Statistics: Posted by oli_lab — 13 Mar 2026, 02:18
Statistics: Posted by gwennaelle — 12 Mar 2026, 18:39
Statistics: Posted by XpiR — 14 Feb 2026, 20:52
Statistics: Posted by oli_lab — 10 Feb 2026, 15:17
Statistics: Posted by XpiR — 06 Feb 2026, 11:33
Statistics: Posted by sm_jamieson — 30 Apr 2026, 18:03
Statistics: Posted by grego mondo — 30 Apr 2026, 13:06
Statistics: Posted by grego mondo — 29 Apr 2026, 10:18
Statistics: Posted by sm_jamieson — 29 Apr 2026, 03:19
Statistics: Posted by oli_lab — 28 Apr 2026, 00:26
Statistics: Posted by BM2F — 27 Apr 2026, 12:18
Statistics: Posted by sm_jamieson — 27 Apr 2026, 02:51
CODE:
void diywt::writeWavFile(const std::string& filename) {realSize = m_maxWrite;sdkTraceInt(realSize);sdkTraceInt(m_lastMarkerNumber);// Structures pour les en-têtesstruct RiffHeader {char chunkId[4] = { 'R', 'I', 'F', 'F' };uint32_t chunkSize;char format[4] = { 'W', 'A', 'V', 'E' };};struct FmtChunk {char chunkId[4] = { 'f', 'm', 't', ' ' };uint32_t chunkSize = 16;uint16_t audioFormat = 3; // 32-bit floatuint16_t numChannels;uint32_t sampleRate;uint32_t byteRate;uint16_t blockAlign;uint16_t bitsPerSample;};struct DataChunk {char chunkId[4] = { 'd', 'a', 't', 'a' };uint32_t chunkSize;};std::ofstream outFile(filename, std::ios::binary);if (!outFile) {sdkTraceErrorChar("can't open file");return;}// Paramètres audioint numChannels = 1;int bitsPerSample = 32;int numSamples = m_markersStart[m_lastMarkerNumber];//realSize;// Calculer la taille des données audiouint32_t dataSize = numSamples * numChannels * bitsPerSample / 8;// Remplir les en-têtesRiffHeader riffHeader;FmtChunk fmtChunk;fmtChunk.numChannels = numChannels;fmtChunk.sampleRate = sdkGetSampleRate();fmtChunk.byteRate = fmtChunk.sampleRate * numChannels * bitsPerSample / 8;fmtChunk.blockAlign = numChannels * bitsPerSample / 8;fmtChunk.bitsPerSample = bitsPerSample;DataChunk dataChunk;dataChunk.chunkSize = dataSize;// Calculer la taille totale du fichieruint32_t totalFileSize = sizeof(RiffHeader) + sizeof(FmtChunk) + sizeof(DataChunk) + dataSize;// +sizeof(CueChunk) + cueChunkSize + sizeof(AdtlChunk) + adtlChunkSize;riffHeader.chunkSize = totalFileSize - 8; // Soustraire les 8 octets du chunkId et du chunkSize// Écrire les en-têtes dans le fichieroutFile.write(reinterpret_cast<char*>(&riffHeader), sizeof(RiffHeader));outFile.write(reinterpret_cast<char*>(&fmtChunk), sizeof(FmtChunk));outFile.write(reinterpret_cast<char*>(&dataChunk), sizeof(DataChunk));// Écrire les données audiofor (f = 0; f < numSamples; ++f) {outFile.write(reinterpret_cast<const char*>(&m_audioBuffer[f]), sizeof(float));}// Ajouter un padding si nécessaire pour aligner le chunk suivant sur un nombre pair d'octetsif (dataSize % 2 != 0) {outFile.put(0);}outFile.close();/*//mettre à jour la sortie markerOutint tempSize = m_lastMarkerNumber;markersOut.setSize(tempSize);for (int m = 0; m < tempSize; m++) {markersOut.setArrayData(m, float(m_markersStart[m])/float(numSamples));}*/if (!outFile) {sdkTraceErrorChar("Error closing file");return;}std::string s = fdrFileName.getPChar();s = s + " successfully created";sdkTraceChar(s.c_str());m_signalisation = 2;}Statistics: Posted by oli_lab — 21 Apr 2026, 19:41
Statistics: Posted by sm_jamieson — 21 Apr 2026, 19:06

Statistics: Posted by oli_lab — 21 Apr 2026, 17:29
Statistics: Posted by sm_jamieson — 21 Apr 2026, 10:46
Statistics: Posted by oli_lab — 10 Apr 2026, 11:00
Statistics: Posted by oli_lab — 01 Apr 2026, 21:22
Statistics: Posted by woodslanding — 01 Apr 2026, 20:15
Statistics: Posted by Gilsornette — 28 Mar 2026, 16:42
Statistics: Posted by oli_lab — 28 Mar 2026, 14:59
Statistics: Posted by Gilsornette — 28 Mar 2026, 12:42
Statistics: Posted by gwennaelle — 13 Mar 2026, 09:26
Statistics: Posted by oli_lab — 13 Mar 2026, 02:18
Statistics: Posted by gwennaelle — 12 Mar 2026, 18:39
Statistics: Posted by XpiR — 14 Feb 2026, 20:52
Statistics: Posted by oli_lab — 10 Feb 2026, 15:17
Statistics: Posted by XpiR — 06 Feb 2026, 11:33