VOGONS


New DreamBlaster S2 !

Topic actions

Reply 120 of 123, by dreamblaster

User metadata
Rank Oldbie
Rank
Oldbie

DreamBlaster S2 now running on atari8.
see these demos :

Warhawk MIDI on Atari8 by MIDIcar and DreamBlaster S2 Sound Module : https://youtu.be/YjqlGjOn424

Alpha1 (Vangelis) MIDI on Atari8 by MIDIcar and DreamBlaster S2 Sound Module : https://youtu.be/bQ7yUYmdNEQ

Visit http://www.serdashop.com for retro sound cards, video converters, ...
DreamBlaster X2, S2, S2P, HDD Clicker, ... many projects !
New X2GS SE & X16GS sound card : https://www.serdashop.com/X2GS-SE ,
Thanks for your support !

Reply 121 of 123, by dreamblaster

User metadata
Rank Oldbie
Rank
Oldbie

Wenceslao Acosta Carrazco mailed me about his project for his Master's program at the University of Southampton.
Under the guidance of his supervisor, Nicholas Harris, he had the opportunity to recreate a music box using electronic components rather than traditional mechanisms.
He explained to me like below, and agreed I could post this here on vogons :

-----

To achieve this, the first stage of the project involved extracting information from MIDI files, which contain notes and tempos. We then developed a code that could be later interpreted by sensors. As a result, we created a Python script to extract notes and tempos from almost any song. Since all the notes are represented in a MIDI format ranging from 0 to 127, we converted them into binary code. As an additional feature, we encoded this binary information in Gray code format. Subsequently, with this information and the timing of each note (also in Gray code), we represented them as squares. A Logic 1 was depicted as a white square, while a Logic 0 corresponded to a black square. The final result looks something like this:

sheet distribution.png
Filename
sheet distribution.png
File size
227.64 KiB
Views
276 views
File license
Fair use/fair dealing exception

Later, with the aid of optical sensors capable of distinguishing between black and white surfaces and stepper motors, a 3D structure was designed using CAD tools. In this structure, the paper was also placed. After a series of tests, the final design took on a form similar to this:

3D structure V2.jpg
Filename
3D structure V2.jpg
File size
58.43 KiB
Views
276 views
File license
Fair use/fair dealing exception

As for the reading stage, we opted to utilize a Raspberry Pi Zero W. Once this device receives signals from the sensors, it interprets the information and sends a signal to control the stepper motor for continuous reading.
With the notes and their corresponding tempos decoded on the Raspberry Pi, we established a serial communication link with the Dreamblaster. The notes are then transmitted using Note On and Note Off commands within a Python script:

dreamblaster.write(bytes([0x90, nota_hex, 0x7F]))
time.sleep(tempo)
dreamblaster.write(bytes([0x80, nota_hex, 0x01]))

As an additional feature with the Dreamblaster, I incorporated a button that can alter the program's functionality, allowing for the change of instruments. From a multitude of available options, I selected the following presets: Grand Piano, Bright Piano, Synth Brass 1, Steel String Guitar, Nylon String Guitar, and Violin. It's worth noting that this section can be easily customized by adding or modifying options, as per the capabilities offered by the Dreamblaster. The commands used for this purpose were: 

def instrument(element):
      dreamblaster.write(bytes([0xC0, instrument_list[element]]))

Finally, the Dreamblaster sends the audio signal to an amplifier, ensuring that everyone can hear it clearly.

During my time experimenting with this synthesizer, I had a lot of fun. I even created a drum base, though I couldn't include it in the final project due to the time I had left in order to complete the project. Here is part of the code for the drum base:

def drum():
T = 0.35
H1 = 0x2A
Snare1 = 0x26
Kick1 = 0x24
while True:
dreamblaster.write(bytes([0x99,H1,0x7F]))
dreamblaster.write(bytes([0x99,Kick1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x89,H1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x99,H1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x89,H1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x99,H1,0x7F]))
dreamblaster.write(bytes([0x99,Snare1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x89,H1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x99,H1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x89,H1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x99,H1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x89,H1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x99,H1,0x7F]))
dreamblaster.write(bytes([0x99,Kick1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x89,H1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x99,H1,0x7F]))
dreamblaster.write(bytes([0x99,Snare1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x89,H1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x99,H1,0x7F]))
time.sleep(T/2)
dreamblaster.write(bytes([0x89,H1,0x7F]))
time.sleep(T/2)

As you can see, there are countless possibilities for implementation with the Dreamblaster that could have enhanced my master's project further. I would have loved to experiment with more features, such as incorporating a microphone, voice modulation, multiple speakers, additional drum bases, multiple channels in use instead of just one, and so on.

-----

I have uploaded his demo video to my youtube channel : see https://youtu.be/PGmfdnKxHx8

Visit http://www.serdashop.com for retro sound cards, video converters, ...
DreamBlaster X2, S2, S2P, HDD Clicker, ... many projects !
New X2GS SE & X16GS sound card : https://www.serdashop.com/X2GS-SE ,
Thanks for your support !

Reply 122 of 123, by dreamblaster

User metadata
Rank Oldbie
Rank
Oldbie

a block diagram and a few more photos of his setup

Attachments

  • Project schematic.png
    Filename
    Project schematic.png
    File size
    19.46 KiB
    Views
    275 views
    File license
    Fair use/fair dealing exception
  • picture 6.jpg
    Filename
    picture 6.jpg
    File size
    1.44 MiB
    Views
    275 views
    File license
    Fair use/fair dealing exception
  • picture 5.jpg
    Filename
    picture 5.jpg
    File size
    1.25 MiB
    Views
    275 views
    File license
    Fair use/fair dealing exception
  • picture 2.jpg
    Filename
    picture 2.jpg
    File size
    1.61 MiB
    Views
    275 views
    File license
    Fair use/fair dealing exception
  • Picture 1.jpg
    Filename
    Picture 1.jpg
    File size
    1.53 MiB
    Views
    275 views
    File license
    Fair use/fair dealing exception

Visit http://www.serdashop.com for retro sound cards, video converters, ...
DreamBlaster X2, S2, S2P, HDD Clicker, ... many projects !
New X2GS SE & X16GS sound card : https://www.serdashop.com/X2GS-SE ,
Thanks for your support !