Pic ile midi kontrol

Başlatan hasno, 12 Temmuz 2010, 00:51:23

hasno

Merhaba arkadaşlar. Benim bir müzik programım var ve bu programda midi ile ayarlanabilen ses düğmeleri var. Ben bunun için pic ile midi controller yapmak istiyorum. Bilgisayar için nası bir driver ayarlamalıyım ve pic için nası bir program yazmalıyım ?

Midi kanalını 2 şekilde ayarlıyorum. Birinde hazır mixer isimleri var.


t2

microchip c18 veya diğer derlşeyicilerin USB midi aygıt demosu var. onları kullanabilirsiniz. Ben denemiştim Picle USB midi aygıt yapıp bilgisayara notalar gönderebiliyorsun

Driver gerekmiyor. windows otomatik tanıyor. PCden piyano davul vs sesler çıkıyor.

Benim bu picle yapılan midi işinden anladığım şu.

Aslında pic  her hangi bir enstürman sesi üretmiyor. Sadece bilgisyara hangi enstürmanın hangi notasından  nekadar süre çalışacağını iletiyor. Bilgisayar bunu algılayıp hafızadaki ses parçacıkalrından ortaya bir karışık ses veriyor ;)


hasno

#2
Ama ben bilgisayara sadece pot ile 0 - 100 arası volume değerleri göndermek istiyorum.

Tam olarak amacım şu tarz birşey yapmak (Tek Kanallı 10 kontrollü)

Resimdeki 3 kanallı

t2

#3
 pic18f2550 veya benzer bir pic kullanılır. Önce midi aygıt yapılır. Bunların komut listesi var. sır değil.

Diyelim  komut (12,,23,128) dediğin zaman 12. kanalın volumunü  128 yap demek oluyor. burakamları tamamen uydurdum.  fakat gidecek komutlar buna çok benziyor. kanal numarası eylem ve değer gibi 3 tane değer oluyor.

Tüm potları sırayla okursun  tümünü okuma işlemi saniyenin 10 da birinde tamamlanabilir.

Eğer okunan değerler bir öncekinden farklıysa (ayar yapılmışsa) yeni volum değerini bilgisayara gönderirsin.

Hobi değilse, seri üretim yapılacaksa sana dizayn konusunda ücretli yardım edebilirim.  Hobiyse , bu bilgiler ışığında kendin yapabilirsin.

hasno

#4
Hobi sayılır hocam. Şimdi benim planladığım bir konu da ; istediğim kadar kanal olacak (bu kanallar cihaz üzerinden sayılar arttırılarak seçilecek) fakat tek çıkış olarak çıkıcak. Bilgisayara bu kanal farkını nasıl anlatırım. Midi datayı kanal sayısı beraberinde gönderebilirmiyim? Gönderebilirsem bilgisayar bunu nası anlar ?

Bu projedeki tek amacım 1'den fazla enstrumana aynı anda hükmedebilmek. Bilgisayarı elden düşürmicem yinede. Yani başta bütün enstrumanları kanal ve controllerini ayarlayacağım. Örnek enstruman 1 : Channel 1, Volume : Controller 1  - Enstruman 2 : Channel 2, MasterCut : Controller 4 böyle böyle hepsini ayarlayacağım, sonradan gerekirse değiştirmeleri müzik esnasında yapacağım. Ama beni müzik esnasında bilgisayarda daha az oyalanmamı sağlayabilecek olan özellik yukarıda söylediğim gibi midi controllerin üzerinde kanal ayarıdır.


Benim dizaynım şu şekil çok basit



Bu arada bi sorum daha olacak; Usbdenmi gireyim yoksa ses kartı girişindenmi ?
Ve bir soru daha pic olarak 16f628 kullanabilirmiyim ? :)
yine bir soru daha Midi aygıtdan kasıtınız driver'mı ? :D

t2

#5
USB aygıt nedir? fare, klavye gibi bir aygıttır. Yapılacak kutuyu blgisayara bağlayınca fare veya klavye değil de Midi Aygıt bulundu diyecek.

Bu dediğin işleri aynen yapacak cihaz üretilebilir. Midi datayı kanal sayısı beraberinde gönderebilirsin. Zaten öyle oluyor standartı bu.

Bazı ses kartında midi port oluyor. eğer onu kullanacaksan 16f628 kullanılabilir sanıyorum. fakat 628de adc yoktur. Çeşitli potları  ve butonları okumak için  yetmez. 16f877a kullanabilirsin.

Öteyandan SES KARTININ midi portu laptopta olmaz. dolayısıyla usb kullanman daha uygun. usb yaparsan yine tek bir çip  olur. istediğin bütün işleri yapar.  ben bazı notalar gönderip bilgisayardan yankılı org sesi çıkınca çok sevinmiştim. Meğer bu sesler pcde kayıtlıymış pic sadece hangi sesin üretileceğini bildiriyor. 

USB den bağlanan volüm vs ayarlayan Midi aygıt yapmak yeni başlayan için zor olabilir.

Aygıt elle tutulan fiziksel bir  nesnedir. makine= cihaz.
Driver ise bilgisayarda bulunan bazı dosyalar inf, sys , dll ...
USB midi aygıt yaparsan driver yapmana gerek yok.  Windows xp ve sonraki sürümler bunu otomatik tanır.

hasno

pic18f2550 kullanmalıyım yani ?

ve midi aygıtı nasıl yapıacam varmı bir döküman felan?


hasno

Bir sorun geldi aklıma acaba ben 3 tane ayrı ayrı çözüm buldum fakat bunlardan başka bir yolu varmı acaba sorun şu ;

Enstrumanın volume'u 80 mesela ama cihazdaki 20 bunları her seferinde nası eşitlicem? Yani kanal değiştirdim diyelim ensturmanın volumu aniden cihazdaki değere inicek veya çıkıcak ? Şuan büyük bir sorun gibi görünüyor.

t2

Enstürmanı pcye doğrudan bağlamazsın öncelikle senin cihaza girer. Volum hariç diğer komutlar aynen gelip gider. Volumü ise senin ayarladığın şekilde gönderir.

hasno

#10
Benim cihazdaki volumu göndericem sürekli tamam ama kanal değiştirdiğimde yeni enstrumanın volumu 80 ise ben onu 100'e çıkartmak istediğimde 80'den yukarı değil cihazdaki potun en son kaldığı ayardan (örn :40) yukarı çıkmaya başlicak yani ilk önce bi önceki ayara yani 40'a inecek ondan sonra ben onu 100'e çıkarticam. Şimdi anlatabildim sorunu.


Bu sorunu çözdüm sonsuz dönen pot kullanıcam. Enstrumanın volume'nun değerini alıp üzerine bir ekleticem veya eksilticem.

hasno

#11
Programcılıkla ilgilendiğim için ve temelim olduğu için programsalı daha kolayıma geliyor ama elektronik şeması hakkında hiç bildim yok. Kaynaklar hep ingilizce zaten.

t2

Hobi olduğundan emin misiniz? Gerçekten kullanılacak sorunsuz çalışan bir cihaz yapılacaksa bu 2-3 aylık mesai demektir.  Uğraştığına değmez. 

hasno

#13
Hobi derken kendim kullanmak için yapıyorum çünkü piyasada istediğim gibi bir midi controller yok ve zaten çok pahalılar

Anladımki her zamanki gibi bu işede sıfırdan başlamak lazım. En iyisi led yakmaktan başliyim ondan önce araç gereçleri toplamayı öğreneyim :) Pic yazıcım var iyiki yoksa oda bir dert :D

hasno

Hocam son bi soru Pic olarak hangisini kullaniyim.

Midi için kullanılacak, LCD ve potlar kullanılacak ve hızlı olması gerek. İlerde dahada geliştirebilirim o yüzden bu özellikleride yapabilen en iyi pic hangisi ?