InscriptionConnexion
petite experiment de la night, avec just les lib std jouer avec une saw pour faire un kick qui tabasse
:bts:


bon avec grok j'ai eu un resultat satisfaisant assez vite donc on passe sur le tracker, voici a quoi ressemble le kick généré sur fastTracker2

Image

boost de bass et ajout d'une saw en guise de layer et voila le resultat final sur une petite sequence
:bts:




avec un peu de bazar autour et mixé

voca.ro https://voca.ro/11w2OdbT1Afp
Propagande agressive, ambassadeur gay poubelle
il y a 10 heures
:MarioNon:
il y a 10 heures
petite experiment de la night, avec just les lib std jouer avec une saw pour faire un kick qui tabasse
:bts:


bon avec grok j'ai eu un resultat satisfaisant assez vite donc on passe sur le tracker, voici a quoi ressemble le kick généré sur fastTracker2

Image

boost de bass et ajout d'une saw en guise de layer et voila le resultat final sur une petite sequence
:bts:




avec un peu de bazar autour et mixé

voca.ro https://voca.ro/11w2OdbT1Afp
Ça t'a pris combien de temps ? C'est marrant de faire d'abord une saw en partant de rien avec C pour au final aller dans un tracker, tu essayes de trouver des sons complètement inédits ou c'est parce que tu aimes bien programmer?
:Chat_Edward_lunettes:
Ôi chúa của tôi, mon Capitaine, il a cassé, n'a pas payé.
il y a 10 heures
Ça t'a pris combien de temps ? C'est marrant de faire d'abord une saw en partant de rien avec C pour au final aller dans un tracker, tu essayes de trouver des sons complètement inédits ou c'est parce que tu aimes bien programmer?
:Chat_Edward_lunettes:
enfaite j'aime avoir mes propre outils dans la vie en général même si c'est de la merde ben j'utilise mes trucs je suis content
:jungchok:


par exemple pour mes videos j'ai codé mon propre video mixer en C (pck j'ai linux) qui fait que planter mais au moins j'ai la satisfaction de faire les choses avec mon truc

Image

pour le kick la ca m'a pris juste 1h ou 2 je sais pas trop tu sais je fais un truc puis j'arrête et je reprends plus tard parfois juste pour 10 minutes
Propagande agressive, ambassadeur gay poubelle
il y a 10 heures
la version WAV ici si ça interesse qq

www.looperman.com https://www.looperman.com[...]ndustrial-percussion-loop
Propagande agressive, ambassadeur gay poubelle
il y a 10 heures
Rekav
:face_risitas:
Une réponse sans stickers est à prendre au premier degré.
il y a 10 heures
Rekav
:face_risitas:
quand reviendra t-il
:jungchok:


il doit baiser plein de teen à Tel Aviv
:jungchok:
Propagande agressive, ambassadeur gay poubelle
il y a 10 heures
quand reviendra t-il
:jungchok:


il doit baiser plein de teen à Tel Aviv
:jungchok:
il doit se faire péter l'oignon oui
:face_risitas:
Une réponse sans stickers est à prendre au premier degré.
il y a 10 heures
il doit se faire péter l'oignon oui
:face_risitas:
non
:jungchok:
Propagande agressive, ambassadeur gay poubelle
il y a 10 heures
beh comment ça non ?
Propagande agressive, ambassadeur gay poubelle
il y a 10 heures
beh comment ça non ?
C'est de la merde
:moustachu:


Voilà du bon son :

il y a 10 heures
non
:jungchok:
si
:face_risitas:
Une réponse sans stickers est à prendre au premier degré.
il y a 10 heures
C'est de la merde
:moustachu:


Voilà du bon son :

Mais il est pas question de son la
:jungchok:


Je parle de sport
:jungchok:
Propagande agressive, ambassadeur gay poubelle
il y a 10 heures
Surtout, dis-nous pas ce que fait ton programme C. Ça risquerait d'être intéressant.
Certifié tous gaz.
il y a 10 heures
Surtout, dis-nous pas ce que fait ton programme C. Ça risquerait d'être intéressant.
euh bah bah c'est juste les lib std

je vous donne pas mon pg final car je vais le mettre sur mon github mais en gros un truc du genre

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

#include <stdint.h>

typedef struct {

char riff[4];

uint32_t file_size;

char wave[4];

char fmt[4];

uint32_t fmt_size;

uint16_t format;

uint16_t channels;

uint32_t sample_rate;

uint32_t byte_rate;

uint16_t block_align;

uint16_t bits_per_sample;

char data[4];

uint32_t data_size;

} WAVHeader;

int main() {

const int sample_rate = 44100;

const double duration = 0.45; // > it breath

const int num_samples = (int)(duration * sample_rate);

const double base_freq = 45.0; // >30 play on sub

const double sweep_start = 280.0;

const double sweep_amount = sweep_start - base_freq;

const double attack_time = 0.003;

const double decay_time = 0.35;

const double noise_amp = 0.7; // trnasient

const double noise_decay = 0.018;

const double distortion_drive = 4.5;

const double sub_boost = 1.3;

int16_t *samples = malloc(num_samples * sizeof(int16_t));

if (!samples) return 1;

double phase = 0.0;

double two_pi = 2.0 * M_PI;

srand(123);

for (int i = 0; i < num_samples; i++) {

double t = (double)i / sample_rate;

// envelope

double env = 0.0;

if (t < attack_time) {

env = (t / attack_time) * 1.2; // thump

} else {

env = exp(-(t - attack_time) * 3.5); // gentler decay more bass sustain

}

double mid_punch = (t > 0.004 && t < 0.04) ? 0.45 * exp(-(t - 0.012) * 35.0) : 0.0;

env += mid_punch;

double freq = base_freq + sweep_amount * exp(-t * 7.0); // Slower is better

double sine = sin(phase);

phase += two_pi * freq / sample_rate;

if (phase > two_pi) phase -= two_pi;

double low_boost = (freq < 80.0) ? sub_boost : 1.0;

double signal = env * (sine * low_boost + 0.0);

double noise = 0.0;

if (t < noise_decay) {

noise = noise_amp * (2.0 * (rand() / (double)RAND_MAX) - 1.0) * exp(-t / noise_decay);

}

signal += noise * 0.9;

signal *= distortion_drive;

signal = tanh(signal * 1.1);

signal /= distortion_drive * 0.75; // not working

if (signal > 0.92) signal = 0.92 + (signal - 0.92) * 0.3;

if (signal < -0.98) signal = -0.98;

signal = fmin(fmax(signal, -1.0), 1.0);

samples[i] = (int16_t)(signal * 32760.0);

}

FILE *fp = fopen("kick.wav", "wb");

if (!fp) { free(samples); return 1; }

WAVHeader header = {

{'R','I','F','F'}, 0, {'W','A','V','E'},

{'f','m','t',' '}, 16, 1, 1, sample_rate,

sample_rate * 2, 2, 16,

{'d','a','t','a'}, num_samples * 2

};

header.file_size = sizeof(WAVHeader) + header.data_size - 8;

fwrite(&header, sizeof(WAVHeader), 1, fp);

fwrite(samples, sizeof(int16_t), num_samples, fp);

fclose(fp);

free(samples);

printf("Generated kick.wav\n");

return 0;

}



je l'ai fais avec grok hein (enfin ducoup je l'ai pas fais
:risitas_ahi:
)
Propagande agressive, ambassadeur gay poubelle
il y a 9 heures
euh bah bah c'est juste les lib std

je vous donne pas mon pg final car je vais le mettre sur mon github mais en gros un truc du genre

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

#include <stdint.h>

typedef struct {

char riff[4];

uint32_t file_size;

char wave[4];

char fmt[4];

uint32_t fmt_size;

uint16_t format;

uint16_t channels;

uint32_t sample_rate;

uint32_t byte_rate;

uint16_t block_align;

uint16_t bits_per_sample;

char data[4];

uint32_t data_size;

} WAVHeader;

int main() {

const int sample_rate = 44100;

const double duration = 0.45; // > it breath

const int num_samples = (int)(duration * sample_rate);

const double base_freq = 45.0; // >30 play on sub

const double sweep_start = 280.0;

const double sweep_amount = sweep_start - base_freq;

const double attack_time = 0.003;

const double decay_time = 0.35;

const double noise_amp = 0.7; // trnasient

const double noise_decay = 0.018;

const double distortion_drive = 4.5;

const double sub_boost = 1.3;

int16_t *samples = malloc(num_samples * sizeof(int16_t));

if (!samples) return 1;

double phase = 0.0;

double two_pi = 2.0 * M_PI;

srand(123);

for (int i = 0; i < num_samples; i++) {

double t = (double)i / sample_rate;

// envelope

double env = 0.0;

if (t < attack_time) {

env = (t / attack_time) * 1.2; // thump

} else {

env = exp(-(t - attack_time) * 3.5); // gentler decay more bass sustain

}

double mid_punch = (t > 0.004 && t < 0.04) ? 0.45 * exp(-(t - 0.012) * 35.0) : 0.0;

env += mid_punch;

double freq = base_freq + sweep_amount * exp(-t * 7.0); // Slower is better

double sine = sin(phase);

phase += two_pi * freq / sample_rate;

if (phase > two_pi) phase -= two_pi;

double low_boost = (freq < 80.0) ? sub_boost : 1.0;

double signal = env * (sine * low_boost + 0.0);

double noise = 0.0;

if (t < noise_decay) {

noise = noise_amp * (2.0 * (rand() / (double)RAND_MAX) - 1.0) * exp(-t / noise_decay);

}

signal += noise * 0.9;

signal *= distortion_drive;

signal = tanh(signal * 1.1);

signal /= distortion_drive * 0.75; // not working

if (signal > 0.92) signal = 0.92 + (signal - 0.92) * 0.3;

if (signal < -0.98) signal = -0.98;

signal = fmin(fmax(signal, -1.0), 1.0);

samples[i] = (int16_t)(signal * 32760.0);

}

FILE *fp = fopen("kick.wav", "wb");

if (!fp) { free(samples); return 1; }

WAVHeader header = {

{'R','I','F','F'}, 0, {'W','A','V','E'},

{'f','m','t',' '}, 16, 1, 1, sample_rate,

sample_rate * 2, 2, 16,

{'d','a','t','a'}, num_samples * 2

};

header.file_size = sizeof(WAVHeader) + header.data_size - 8;

fwrite(&header, sizeof(WAVHeader), 1, fp);

fwrite(samples, sizeof(int16_t), num_samples, fp);

fclose(fp);

free(samples);

printf("Generated kick.wav\n");

return 0;

}



je l'ai fais avec grok hein (enfin ducoup je l'ai pas fais
:risitas_ahi:
)
Il est tombé dans le panneau de croire que moduler à un fréquence F(t) c'est juste faire sin (2 * pi * F(t) *t ).

Je le compilerai pour voir ce qu'il sort.
Certifié tous gaz.
il y a 9 heures
Il est tombé dans le panneau de croire que moduler à un fréquence F(t) c'est juste faire sin (2 * pi * F(t) *t ).

Je le compilerai pour voir ce qu'il sort.
je sais pas clé j'ai pas fais de recherche sur les fonctions de modulation, j'avais 4 de moyenne en maths en prepa et 6 en physique
:Mouais_Jesus:


ce n'est pas le programme final tu n'auras pas le punch que j'ai sorti, d'ou l'utilisation du tracker car j'ai pas trouvé comment appliqué de filtre sans librairie et la simple amplification du signal est stupide en soit ça va juste saturer une partie du signal pour rien

j'ai essayé d'amplifier juste certaine frequence mai ca ajoutait un click
Propagande agressive, ambassadeur gay poubelle
il y a 9 heures
je sais pas clé j'ai pas fais de recherche sur les fonctions de modulation, j'avais 4 de moyenne en maths en prepa et 6 en physique
:Mouais_Jesus:


ce n'est pas le programme final tu n'auras pas le punch que j'ai sorti, d'ou l'utilisation du tracker car j'ai pas trouvé comment appliqué de filtre sans librairie et la simple amplification du signal est stupide en soit ça va juste saturer une partie du signal pour rien

j'ai essayé d'amplifier juste certaine frequence mai ca ajoutait un click
I faut juste que tu sois conscient que l'IA recopie les erreurs trouvées sur le web. Que ça sortira des trucs qui pourront te servir, mais que ni elle ni toi ne sait réellement ce qu'elle fait.

Tu peux appliquer des filtres sans librairie, c'est juste des multiplications et des additions. Demande-lui de te synthétiser un IIR passe-haut ou passe-bas pour une fréquence de coupure donnée.

Précise-lui qu'elle doit normaliser juste avant le passage en entier pour le wav, pour éviter les saturations. Tu ne risques rien tant que tu es en flottant. Les boosts vont te faire dépasser [-1 .. +1] mais ça sera recadré sur 16 bits en sortie.
Certifié tous gaz.
il y a 8 heures
I faut juste que tu sois conscient que l'IA recopie les erreurs trouvées sur le web. Que ça sortira des trucs qui pourront te servir, mais que ni elle ni toi ne sait réellement ce qu'elle fait.

Tu peux appliquer des filtres sans librairie, c'est juste des multiplications et des additions. Demande-lui de te synthétiser un IIR passe-haut ou passe-bas pour une fréquence de coupure donnée.

Précise-lui qu'elle doit normaliser juste avant le passage en entier pour le wav, pour éviter les saturations. Tu ne risques rien tant que tu es en flottant. Les boosts vont te faire dépasser [-1 .. +1] mais ça sera recadré sur 16 bits en sortie.
ou clé je sais comment fonctionne un modéle de langage mais le plébien moyen comme moi n'a pas 1000 ans à accorder à ce genre de détail c'est juste des bétises que j'essaye hein, j'ai 100 trucs sur le feu j'ai même pas pensé que la fonction de modulation pouvait être en carton
:bts:
Propagande agressive, ambassadeur gay poubelle
il y a 8 heures
I faut juste que tu sois conscient que l'IA recopie les erreurs trouvées sur le web. Que ça sortira des trucs qui pourront te servir, mais que ni elle ni toi ne sait réellement ce qu'elle fait.

Tu peux appliquer des filtres sans librairie, c'est juste des multiplications et des additions. Demande-lui de te synthétiser un IIR passe-haut ou passe-bas pour une fréquence de coupure donnée.

Précise-lui qu'elle doit normaliser juste avant le passage en entier pour le wav, pour éviter les saturations. Tu ne risques rien tant que tu es en flottant. Les boosts vont te faire dépasser [-1 .. +1] mais ça sera recadré sur 16 bits en sortie.
et concerant l'application de filtre le problème c'est pas le code c'est mes connaissances et je t'avoue que je compte pas y mettre le nez à part si j'ai vraiment rien à faire
Propagande agressive, ambassadeur gay poubelle
il y a 8 heures