LorenzoBalducci96 / custom-cdj

A raspberry-pi Cdj project realized with the usage of mixxx for the audio software and Arduino Leonardo for input reading. The MIDI protocol is used for the communication between Arduino and the Raspberry.
47 stars 9 forks source link

are you still working on this #3

Open midicdj1000 opened 4 years ago

midicdj1000 commented 4 years ago

HI, I have created my own PCB to go into cdj 1000 mk1,2 and 3. It's using a teensy 3.6 and I was using it with Traktor scratch. I just updated to fix a few issues with the addressable led I chose and issues with jog wheel movements and was looking at other options for using these and found your single deck MIXXX setup. Are you still working on this in any way ? I am quote interested and currently setting up to test my controller on it.

LorenzoBalducci96 commented 4 years ago

Hi, i'm still using these cdj's everyday, although i have no more updated the project because i have no necessity of other functions. Really proud to help you in anyway. If you have a mapping on the cdj 1000 that "emulate" another device (for example the cdj 2000), all you have to do is apply the custom skin to your mixxx release. In the other hand you have to make the mapping for mixxx.

midicdj1000 commented 4 years ago

HI, I wrote the software myself so it does not emulate anything and I have to make the mixxx mapping. I actually did this before on my desktop pc, but I lost it so have to start again.

https://www.youtube.com/watch?v=VZxglNNLu-8&list=PLm24lW1EHXRBq56NebYlt-0IqBr6Gwxkd&index=9

It's nothing new so just pitch bend for the pitch movement and then CC commands for the jog wheel and encoders for loops ect. I use 64 as the middle with 63 and 65 to move forwards and backwards.

LorenzoBalducci96 commented 4 years ago

ok as the one that i used. if you look at https://github.com/LorenzoBalducci96/custom-cdj/blob/master/Arduino_Leonardo_MIDI_1.midi.xml#L110 you can see that the code i used for pitch range midino is 0x52 (and of course 0x90 for status (that means button pressed)

in the javascript code for mapping: https://github.com/LorenzoBalducci96/custom-cdj/blob/master/Arduino_Leonardo_MIDI_1.midi.xml#L110

you find the function for the pitch that act on the engine.

SUGGESTION: for all the other buttons you can use the auto learn function of mixxx.

midicdj1000 commented 4 years ago

I am using the learn function for basic buttons. Will take at look at the other parts when I can, Work is going to to be busy for the next few weeks.

midicdj1000 commented 4 years ago

HI, after a lot of trial and error I have the jog wheel turning and the pitch working as well as any normal buttons ect. I have not tried rotary encoders for browsing or loop size yet. It also has some problem when I go to scratch mode and it will not come back out. I was wondering if you know why the zoomed waveform is not showing ? It has the whole track waveform. How can i make it load into a playlist automatically ? it is very hard to use with just a cdj at the moment.

LorenzoBalducci96 commented 4 years ago

if you don't see the zoomed waveform on mixxx try to change waveform type (options -> preferences -> waveforms -> waveform type and try RGB). The "waveform overwiew type" drop down list that you have under "waveform type" is for the full track waveform that, as you said, is showing, so don't touch. What do you mean with load into a playlist automatically? you want the file browser to default put into "playlist" section?

LorenzoBalducci96 commented 4 years ago

For what regard the not come back out of the scratch mode: make shure that you have mapped both wheelTouch pressed ( midi 0x90 ) and wheelTouch release (midi 0x80). If you are using the auto learn function, for auto learn the release button i suggest you to keep the jog pressed, start the auto learn and release; it will listen the 0x80 midi command.

4dvn commented 4 years ago

For what regard the not come back out of the scratch mode: make shure that you have mapped both wheelTouch pressed ( midi 0x90 ) and wheelTouch release (midi 0x80). If you are using the auto learn function, for auto learn the release button i suggest you to keep the jog pressed, start the auto learn and release; it will listen the 0x80 midi command.

Can you update the 2 waveform decks screen on a raspberry pi ?

LorenzoBalducci96 commented 4 years ago

what do you mean? Are you asking if i'm able to get the mixxx waveforms working on a raspberry pi?

4dvn commented 4 years ago

what do you mean? Are you asking if i'm able to get the mixxx waveforms working on a raspberry pi?

I mean how to change the mixxx waveforms from single waveform to both waveforms on a screen

LorenzoBalducci96 commented 4 years ago

the skinn of this project is just one waveform because is designed to fit in the custom cdj project. Can't you use an original skin that has 2 waveforms?

4dvn commented 4 years ago

the skinn of this project is just one waveform because is designed to fit in the custom cdj project. Can't you use an original skin that has 2 waveforms?

I use the ddj-400 and have plan to make it look like and xdj-rx2 on raspberry pi 3

LorenzoBalducci96 commented 4 years ago

so basically something like this but with the overview of the 2 waveforms one next to the other at the bottom of the screen? image

4dvn commented 4 years ago

Yes that it, i use the 3.5 touchscreen

LorenzoBalducci96 commented 4 years ago

For example you can use a skins like these that i just created. two_decks_mixxx_skins.zip

this is the preview 2_waveforms

The toggling between performance windows and library window should be achieved toggling full-screen library on and off as in my project.

In the zip file there are 2 skins that fit the most common raspberry pi screen resolutions (800x480 and 480x320) if you have a 3.5" display for shure you must use the 480x320 resolution. Please apologize me but i managed the default deere skin without rearranging the code so in the folder there are tons uf useless files, this is uncomfortable for future modding of the skin.

I don't know if is correct to push this file into my repository because it is related to a slightly different project.

4dvn commented 4 years ago

For example you can use a skins like these that i just created. two_decks_mixxx_skins.zip

this is the preview 2_waveforms

The toggling between performance windows and library window should be achieved toggling full-screen library on and off as in my project.

In the zip file there are 2 skins that fit the most common raspberry pi screen resolutions (800x480 and 480x320) if you have a 3.5" display for shure you must use the 480x320 resolution. Please apologize me but i managed the default deere skin without rearranging the code so in the folder there are tons uf useless files, this is uncomfortable for future modding of the skin.

I don't know if is correct to push this file into my repository because it is related to a slightly different project.

Here is my first test but when i load the skin is error on raspberry pi 3b+, maybe fail when copy: https://www.instagram.com/tv/B8Q3YrRn96L/?igshid=whchwfwkgkp8

LorenzoBalducci96 commented 4 years ago

what error?

4dvn commented 4 years ago

what error?

the skin is too big on 800x840

LorenzoBalducci96 commented 4 years ago

have you tried the 480x320 one? which is the resolution you are now using in the display?