Сб авг 19, 2017 15:07:02
Схему рисовать не хочу, так поясню. У меня тумблеры одним концом соединены в длину (строки), а другим концом в высоту (столбцы). Ну как стандартная матрица. Так вот если в одном столбце будут замкнуты два тумблера, то через строки они будут соединены в других столбцах на каждом шагу.Morroc писал(а):Не пойму почему с тумблерами так вышло, вроде всего хватает со стороны мк и мультиплексора чтобы каждый отдельно определять вкл/выкл. На проводах где то сэкономили, соединив что то вместе ?
SeregaT писал(а):Я кстати нашёл в интернете готовый проект драммашины на ардуине, но это не мидисеквенсор, а именно драммашина и ардуина сама генерирует звуки барабанов. Я сперва не обратил на этот проект внимания (хотел именно миди, так как там можно очень качественные сэмплы использовать, а тут - ну какое там качество звука ардуина может нагенерировать). Но на ютубе посмотрел, вроде неплохо звучит, решил попробовать. Там надо 9 тумблеров, у меня нет ни одного, пока так, проволочками позамыкаю Схему сейчас допаял, буду пробовать.
Сб авг 19, 2017 15:55:31
Сб авг 19, 2017 16:03:20
Не, там сами барабаны замыкаются между собой через матрицу ещё до мультиплексора. Даже с вытащеным мультиплексором, если просто проволочкой замыкать на землю барабаны, они звучат одновременно, если в каком либо столбце они включены вместе.Morroc писал(а):Так мультиплексор же подает 0 только на один из столбцов, остальные в воздухе висят и не мешают. Два тумблера замыкают две ноги мк на землю через мультиплексор и мы точно знаем какие это ноги / тумблеры.
Morroc писал(а):Ничего так барабашка на ардуине
Сб авг 19, 2017 16:23:32
Не, там сами барабаны замыкаются между собой через матрицу ещё до мультиплексора. Даже с вытащеным мультиплексором, если просто проволочкой замыкать на землю барабаны, они звучат одновременно, если в каком либо столбце они включены вместе.Morroc писал(а):Так мультиплексор же подает 0 только на один из столбцов, остальные в воздухе висят и не мешают. Два тумблера замыкают две ноги мк на землю через мультиплексор и мы точно знаем какие это ноги / тумблеры.
Сб авг 19, 2017 16:26:50
Morroc писал(а):Вот так ?
С вытащенным конечно - мы ведь не можем столбец определить
Сб авг 19, 2017 16:54:13
Вс авг 20, 2017 10:19:18
Morroc писал(а):Ничего так барабашка на ардуине
Пн авг 21, 2017 18:56:04
//--------- sequencer block ----------
if (digitalReadFast(10)) {
if (!(tempocnt--)) {
tempocnt=tempo;
digitalWriteFast(13,HIGH); //Clock out Hi
uint8_t trig=pgm_read_byte_near(pattern + (patselect<<4) + stepcnt++);
PORTC=stepcnt;
uint8_t mask=(PIND>>2)|((PINB&3)<<6);
trig&=mask;
if (stepcnt>patlength) stepcnt=0;
if (stepcnt==0) digitalWriteFast(12,HIGH); //Reset out Hi
if (stepcnt!=0) digitalWriteFast(12,LOW); //Reset out Lo
if (trig & 1) {
samplepntQU=0;
samplecntQU=7712;
}
if (trig & 2) {
samplepntCY=0;
samplecntCY=9434;
}
if (trig & 4) {
samplepntMA=0;
samplecntMA=568;
}
if (trig & 8) {
samplepntCW=0;
samplecntCW=830;
}
if (trig & 16) {
samplepntCL=0;
samplecntCL=752;
}
if (trig & 32) {
samplepntBD=0;
samplecntBD=1076;
}
if (trig & 64) {
samplepntBG2=0;
samplecntBG2=1136;
}
if (trig & 128) {
samplepntGU=0;
samplecntGU=2816;
}
}
digitalWriteFast(13,LOW); //Clock out Lo
}
}
if (!(digitalReadFast(10))) {
digitalWriteFast(13,LOW); //Clock out Lo
digitalWriteFast(12,LOW); //Reset out Lo
PORTC=0;
stepcnt=0;
tempocnt=1;
}
Вт авг 22, 2017 16:12:40
Вт авг 22, 2017 19:36:20
Morroc писал(а):Лучше проверить как то.
Ср авг 23, 2017 22:11:58
SeregaT писал(а):А вот возник ещё вопрос про программирование...
Вот тут фрагмент кода:Спойлер
- Код:
//--------- sequencer block ----------
if (digitalReadFast(10)) {
if (!(tempocnt--)) {
tempocnt=tempo;
digitalWriteFast(13,HIGH); //Clock out Hi
uint8_t trig=pgm_read_byte_near(pattern + (patselect<<4) + stepcnt++);
PORTC=stepcnt;
uint8_t mask=(PIND>>2)|((PINB&3)<<6);
trig&=mask;
if (stepcnt>patlength) stepcnt=0;
if (stepcnt==0) digitalWriteFast(12,HIGH); //Reset out Hi
if (stepcnt!=0) digitalWriteFast(12,LOW); //Reset out Lo
if (trig & 1) {
samplepntQU=0;
samplecntQU=7712;
}
if (trig & 2) {
samplepntCY=0;
samplecntCY=9434;
}
if (trig & 4) {
samplepntMA=0;
samplecntMA=568;
}
if (trig & 8) {
samplepntCW=0;
samplecntCW=830;
}
if (trig & 16) {
samplepntCL=0;
samplecntCL=752;
}
if (trig & 32) {
samplepntBD=0;
samplecntBD=1076;
}
if (trig & 64) {
samplepntBG2=0;
samplecntBG2=1136;
}
if (trig & 128) {
samplepntGU=0;
samplecntGU=2816;
}
}
digitalWriteFast(13,LOW); //Clock out Lo
}
}
if (!(digitalReadFast(10))) {
digitalWriteFast(13,LOW); //Clock out Lo
digitalWriteFast(12,LOW); //Reset out Lo
PORTC=0;
stepcnt=0;
tempocnt=1;
}
SeregaT писал(а):Если я правильно понял, синтезатор синтезатор считает импульсы не по наличию сигнала, а по его изменению. Типа появился сигнал - засчитали. Исчез сигнал - опять засчитали (правда не совсем в этом уверен, надо проверять).
Как есть: 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
как надо: 1 0 1 0 1 0 1 0
Ср авг 23, 2017 22:44:31
Чт авг 24, 2017 06:31:53
Чт авг 24, 2017 06:53:38
Чт авг 24, 2017 07:05:57
Brigadir писал(а):и давай договоримся: "гавкаться" больше не будем
Brigadir писал(а):Тут многие жаркие парни все свои силы вместо созидания тратят попусту на взаимное: ты дурак...а ты дурнее!).
Чт авг 24, 2017 07:20:28
Вс авг 27, 2017 09:39:53
Пн авг 28, 2017 18:19:14
Вт авг 29, 2017 13:24:38
Вт авг 29, 2017 13:31:58
Morroc писал(а):У меня была какая то VS1003 - mp3 играла, wav писать/играть не хотела
Morroc писал(а):насчет midi не знаю.