Jump to content

Marimba Eigenbau an Midi ???


Guest mididoc
 Share

Recommended Posts

Guest mididoc

Hallo erstmal, bin noch relativ neu in diesem Thema was Midi úsw betrifft, jedoch hätte ich da ein Projekt vor Augen, daß ich gerne durchführen möchte.

Es handelt sich dabei um eine Marimba mit 5 Oktaven.

Das Instrument möchte ich gerne selbst in Orginalgröße anfertigen, dabei soll es rein über MIDI spielbar sein.

Nuna ber zum eigentlichen Problem, wie krieg ich dasn nun hin das bei Anschlag eines jeden Holzklötzchen ein Signal erzeugt wird, das sich in Midi wandeln läßt ?

Als Abnehmer schwebt mir entweder ein Elektret Kondensatormikrofon oder ein Piezo Folien Lautsprecher vor.

Existiert die möglichkeit der Anschlagdynamik anhand des Signalpegels der dabei entsteht ?

Kann mir bitte jemand helfen oder ein paar Tipps dazu genen ?

MfG

Martin

Link to comment
Share on other sites

Guest mididoc

Hi Steff,

da bin ich ja nach langem Suchen schon an die richtige Person geraten, freut mich !

Wenn es Dir nichts ausmacht und ich glaube auch andere hier im Forum würden dem beistimmen, wenn Du uns von Deinem Eigenbau ein wenig Beschreiben könntest. Villeicht mit ein paar Bilder und Schaltpläne, ich hoffe Du kannst mir weiterhelfen.

:D

Gruß

Martin

Link to comment
Share on other sites

So hier also meine Erfahrungen mit dem Bau einer MIDIMARIMBA!

So ein Ding gibt es eigentlich schon fertig, von verschiedenen Firmen. Siehe:

http://www.stoffelshome.de/alt_controller/alt_midi_controller.html

Seht euch den thread:

Midibox Drum Triggers in diesem Forum an!!

Die Jungs sind auch gerade dabei sowas zu bauen!

Ich habe eine Marimba billig erstanden, deshalb mußte ich keine Holzstäbe sägen.

Wenn Ihr nur über MIDI spielen wollt, ist das Material der Klangstäbe, die Tonhöhe usw, völlig egal.

Als Sensoren habe ich PIEZO Schocksensoren von dem Elektronikversender Reichelt eingesetzt.

www.reichelt.de BestNr.: PKS1

Diese Sensoren sollten auf der Unterseite der Klangstäge befestigt werden. Doppelseitiges Klebeband

funktionierte nicht, da das Material die Schwingungen zu sehr abdämpfte. Bitte Superkleber verwenden.

Ich habe auch versucht das Gehäuse der PIEZO Sensoren zu entfernen, und nur die Plätchen aufzukleben.

Das Sensorsignal war dann aber auch schwächer.

Seltsamerweise funktionieren diese Sensoren auch gut als Kontaktmikrofon. Ich habe alle Sensoren in ein Mischpult geführt und hatte einen super Marimbasound

ganz ohne die Gefahr von Rückkopplungen wie bei einem normalen Mikrofon!

Zur Auswertung der Sensoren kann ein Drum to MIDI Konverter verwendet werden zB. mit 16 Kanälen von der Firma Yamaha.

Oder Selberbauen!:

Das Signal des Sensors ist eine sich schnell ändernde Wechselspannung im Bereich bis 100V. Dieses Signal muß zur Verarbeitung durch einen Controller aufbereitet werden. Ich habe eine Schaltung aus einem Trigger to MIDI Converter der Firma Yamaha kopiert. Siehe mein Schaltplan auf

www.minidat.de/apm/sensor.jpg

Diese Schaltung muß für jeden Ton aufgebaut werden. bei 3 Oktaven also 36 mal!!!

Durch die Diode nutze ich nur die positive Halbwelle des Signals. Die Zehnerdiode Schütz die nachfolgende Elektronik vor den Spannungsspitzen des Sensors. Der Kondensator speichert die Energie

des Sensors zur Auswertung durch den Controller. Wenn Ihr keine Anschlagdynamik braucht, genügen

digitale Eingänge an Controller wenn Ihr die Dynamik auswerten wollt, werden Analogeingänge benötigt.

36 Analogeingänge, hat kein Controller auf dem Chip Integriert. Ich habe mehrere Siemens 80515 mit 8 AD Eingängen genutzt und die von denen erzeugten Mididaten durch einen Merger zusammengeführt.

Ich habe von Torstens Elektronik keine Ahnung! Vieleicht ist es damit ganz leicht möglich.

Eine serielle Abfrage von AD Kanälen muß sehr schnell sein, um die kurzen Impulse der Sensoren überhaupt mitzubekommen.

Link to comment
Share on other sites

Guest mididoc

Hallo Steff,

erstmal Danke, dass Du Dir die Mühe gemacht hast uns Deinen Aufbau zu erläutern.

Habe gerade Die Schaltung von Deinem Link nachgebaut und ich erhalte ein Steil ansteigendes und anhand des Kondensators langsam abfallendes Signal.

Die Montage vom Piezoblättchen ist wirklich noch einige Versuche wert, bevor ich die richtige Variante gefunden habe. Auf jeden Fall muß eine feste Verbindung Plan mit den Holzklötzchen gemacht werden, so wie du es geschrieben hast.

Was mich interressiert, kann ich jetzt direkt an die "MBHP_AINX4" Elektronik Eingänge fahren ?

Wenn ja, wie wird eigentlich die Anschlagdynamik von dieser Elektronik erfasst ? Signalstärke oder wie  ???

Gruß

Martin

Link to comment
Share on other sites

Du bist aber schnell im Bauen :D

Also wie gesagt, ich habe keine Ahnung von Torstens Hard- und Software, da ich alles selber gebaut und programmiert habe! Und wie gesagt, klink dich in das Forum zum Drumtrigger ein.

Die  Erfassung der Stärke des Anschlages erfolgt wie du vermutest hast, über die Auswertug des AD Wandler Signals. Es reicht aber nicht nur dauernd die Werte des AD Wandlers zu Messen und in MIDI zu wandeln,  ???

Es muß ein Maximum bei den Messwerten erkannt werden.

Der Algorythmus sieht ungefähr wie folgt aus:

Ist der Aktuelle Messwert größer als der alte, dann merke dir den neuen. Ist der nächste Messwert kleiner als der letzte, und ist eine gewisse Schwelle überschritten, so löse eine MIDI-Note aus, mit der Anschlagstärke, die gemessen wurde

Damit das ganze funktioniert muß die Abtastrate des AD/Wandlers um einige Größenordnungen höher sein, als das Signal was du an deiner Schaltung gemessen hast. Also Abtastrate um die 10uS.

Falls Du noch Fragen hast, keim Problem.

Link to comment
Share on other sites

Der spezielle Drum Algorithmus in der MB64 arbeitet aehnlich wie von Steff beschrieben (er befindet sich in drums.inc):

; This include file provides following functions:

;    o DRUMS_Init: initializes the drums driver

;    o DRUMS_Timer: called by USER_Timer or USER_SR_Service_Finish periodically to update the DRUM_S

TATE

;    o DRUMS_AIN_NotifyChange: called from USER_AIN_NotifyChange on AIN events

;    o DRUMS_Tick: called by USER_Tick to handle the drum trigger events

;

; number of analog inputs which are assigned to drum triggers

#define DRUMS_NUMBER_AIN        8

;

; threshold value for rising signal - when will an "On" event be regognized?

#define DRUMS_THRESHOLD_RISING  64

;

; threshold value for falling signal - when will an "Off" event be regognized?

#define DRUMS_THRESHOLD_FALLING 16

;

; measuring time - defines, how long an analog value should be measured before

; the maximum value will be sent out) - absolute time depends on the period time

; of DRUMS_Timer. If DRUMS_Timer is called from USER_SR_Service_Finish,

; the time is: 1 mS * DRUMS_MEASURING_TIME

#define DRUMS_MEASURING_TIME    10

;

; using the MB64_POT handler to send an event (allows menu configuration

; of the MIDI events) or just send trigger the notes directly?

#define DRUMS_USE_MB64_POT_HANDLER 0

;

;

; Some comments to the concept: this driver consists of a finite state

; machine which measures the maximum peak value of an analog drum trigger

; signal and sends an "On" event after a certain delay defined by MEASURING_TIME.

; An "Off" event will be sent once the analog value falls below the THRESHOLD

; value.

;

; a) STATE == MEASURING_TIME+3

;    set by DRUMS_AIN_NotifyChange once the drum output passes the

;    THRESHOLD_RISING value or once the new measuring result is greater

;    than the last recorded MAX_VALUE

;    Exception: don't record MAX_VALUE if STATE == 0x01

;    (On event has already been sent)

;

; b) STATE >= 0x03

;    DRUMS_Timer decrements the STATE periodically until it is <= 0x02

;  

; c) STATE == 0x02

;    DRUMS_Tick sends an "On" event with the maximum value which has

;    been recorded by DRUMS_AIN_NotifyChange during STATE was >= 0x03

;    Thereafter it sets the STATE to 0x01

;

; d) STATE == 0x01

;    DRUMS_AIN_NotifyChange waits until the drum trigger falls below

;    the THRESHOLD_FALLING value and sends the "Off" event

;    Thereafter it sets the STATE to 0x00

;

; e) STATE == 0x00

;    Idle state - DRUMS_AIN_NotifyChange waits until the drum trigger

;    passes the THRESHOLD_RISING value again.

;    If so, the MAX_VALUE will be updated and the STATE will be

;    set to MEASURING_TIME+3 --- continue at a)

;

; Exception:

;    if the analog signal falls below the THRESHOLD_FALLING value

;    during STATE > 1, force state to 0x02, so that an On and Off

;    event will be sent

;

Allerdings betraegt die Sample Rate lediglich 200 uS, da der AIN Handler von MIOS so ausgelegt ist, dass er die restlichen Tasks moeglichst wenig stoert. Mit einer zusaetzlichen Hardware (einem sog. Integrator) laesst sich das jedoch relaxen, jedoch auf Kosten der Latenz (immerhin noch < 3 mS)

Hier noch ein weiterer Link zum Thema EDrums:

http://edrum.midibox.org

Admir hat sich auf das Thema spezialisiert und hat eine hochoptimierte Firmware programmiert.

Gruss,

       Thorsten.

Link to comment
Share on other sites

Guest mididoc

Hallo zusammen,

mit dem Programmieren der PIC Kontroller habe ich leider noch keine Erfahrung, habe mir aber jetzt einige MB Platinen bestellt und schau mir das ganze mal an wie ich zurechtkomme.

Wenn ich soweit bin, melde ich mich wieder, villeicht könnt ihr mir ja dann ein wenig weiterhelfen.

Inzwischen Danke für die Tips !  :)

Gruss

Martin

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...