ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray
Statistics: Posted by Pierre Lakanal — 28 Apr 2026, 17:43 Statistics: Posted by oli_lab — 28 Apr 2026, 00:26
Olivier SENS ( alias @senso le créateur du logiciel) ) et moi organisons depuis plus de 15 ans une formation au Studio Lakanal à Montpellier.
Elle aura lieu cette année ➜ du 28 sept au 2 octobre 2026.
L'idée est de se former sur le logiciel tout en échangeant avec tous les participants et faire progresser ou émerger son projet avec Usine. Olivier s'adapte au niveau de chacun.
Cette formation est éligible aux OPCO, AFDAS, (Auteur compositeur, technicien, musicien...), plan de formation entreprise, France Travail, Auto-entrepreneur et tarif spéciaux en autofi.
Le nombre de place est limitée à 6 pour pouvoir échanger ensemble efficacement, et possibilité d’hébergement sur place type gite urbain s'il reste des places.
Vous pouvez nous contacter au 0467842989 pour toutes questions sur le financement ou à formation@studiolakanal.com pour toutes autres questions.
Bonne journée & à bientôt !
Pierre ||| Studio Lakanal ||| Montpellier
]]>
do the midi learns once and for all (here they are patched from CC1 to CC8
++
Olivar
see examples :
]]>
Statistics: Posted by rlgsbt — 27 Apr 2026, 16:22
Statistics: Posted by BM2F — 27 Apr 2026, 12:18
Statistics: Posted by sm_jamieson — 27 Apr 2026, 02:51

Statistics: Posted by oli_lab — 26 Apr 2026, 18:02
Statistics: Posted by titl — 26 Apr 2026, 17:13
Statistics: Posted by 23fx23 — 25 Apr 2026, 22:32
Statistics: Posted by rlgsbt — 25 Apr 2026, 09:45
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 sm_jamieson — 20 Apr 2026, 16:03
Statistics: Posted by oli_lab — 20 Apr 2026, 14:53
Statistics: Posted by sm_jamieson — 20 Apr 2026, 14:19
Statistics: Posted by titl — 16 Apr 2026, 20:30
Statistics: Posted by SylvainT — 15 Apr 2026, 19:15
Statistics: Posted by oli_lab — 15 Apr 2026, 01:39
Statistics: Posted by sm_jamieson — 11 Apr 2026, 15:45
Statistics: Posted by 3tiN3 — 11 Apr 2026, 08:12
Statistics: Posted by oli_lab — 10 Apr 2026, 11:00
Statistics: Posted by Pierre Lakanal — 28 Apr 2026, 17:43
Statistics: Posted by oli_lab — 28 Apr 2026, 00:26
Statistics: Posted by rlgsbt — 27 Apr 2026, 16:22
Statistics: Posted by BM2F — 27 Apr 2026, 12:18
Statistics: Posted by sm_jamieson — 27 Apr 2026, 02:51

Statistics: Posted by oli_lab — 26 Apr 2026, 18:02
Statistics: Posted by titl — 26 Apr 2026, 17:13
Statistics: Posted by 23fx23 — 25 Apr 2026, 22:32
Statistics: Posted by rlgsbt — 25 Apr 2026, 09:45
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 sm_jamieson — 20 Apr 2026, 16:03
Statistics: Posted by oli_lab — 20 Apr 2026, 14:53
Statistics: Posted by sm_jamieson — 20 Apr 2026, 14:19
Statistics: Posted by titl — 16 Apr 2026, 20:30
Statistics: Posted by SylvainT — 15 Apr 2026, 19:15
Statistics: Posted by oli_lab — 15 Apr 2026, 01:39
Statistics: Posted by sm_jamieson — 11 Apr 2026, 15:45
Statistics: Posted by 3tiN3 — 11 Apr 2026, 08:12
Statistics: Posted by oli_lab — 10 Apr 2026, 11:00